[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Fluid Synth CC1 Tremolo

From: David Back
Subject: Re: [fluid-dev] Fluid Synth CC1 Tremolo
Date: Tue, 7 Jul 2020 07:42:37 +0000 (UTC)

Hi Marcus et al

Taking your last point first: If you have ever used a midi editor you would soon realise that midi channels DO contain midi events. The channel number contained in most events merely associates the event with a particular channel.

According to the midi specification the number of midi channels cannot exceed 16. This is emphasised by the fact that the channel representation contained in events has only 4 bits which automatically limits its range to values between 0 and 15.

Moving on and considering the synth contained in fluidsynth without any other encuberances such as your midi input module. It automatically follows from the above that if the synth can have more than 16 channels OR the channels do not contain midi events they CANNOT be midi channels AND thus the synth channel numbers CANNOT be midi channel numbers. (Even though in PARTICULAR CASES the synth channel numbers may be the equal to midi channel numbers).

Why don't you all relent, admit you are wrong, and change the synth documentation to indicate that the synth inputs are SYNTH channels i.e. FSchans as I have called them.

It would be very useful if somebody familiar with all the aspects of FS drew a block diagram to show each of its modules and the paths of signals between the modules. This diagram should be published along with the other docs.

I have been designing and writing software ever since the first microprocessors came on to the market and know that proper documentation is very important. I also know that in general that much of the documentation should be written before even one line of code is produced. The coder simply follows the documentation and makes his/her code do what the documents say it should do.


On Monday, 6 July 2020, 23:05:16 BST, Marcus Weseloh <marcus@weseloh.cc> wrote:

Hi all,

Am So., 5. Juli 2020 um 16:32 Uhr schrieb David Back via fluid-dev
> Thanks for your comment. Even though the FS documentation is wrong and confusing when you consider midi and FSchannels I know you are not going to change it.
> Your argument that these channels are equivalent may be right a simple case such as your command interface but when you consider an organ they most definately are not the same or even equivalent. And it is very confusing to think they are.

FWIW, I would be interested in understanding why you think that our
documentation is "wrong". I can understand "confusing"... FluidSynth
is highly flexible and has a huge API, which makes documenting it
quite hard. But "wrong" is quite a strong word, so I would be very
interested in your reasons for saying that.

FluidSynth is a SoundFont synth, it's synthesis model and by extension
it's API is closely tied to the SoundFont spec and MIDI as a whole.
And the FluidSynth concept of channels is closely related to the
semantics of MIDI. Consider the fact that there are many API calls
(like fluid_synth_cc, fluid_synth_pitchbend, fluid_synth_sysex,
fluid_synth_channel_pressure, ...) that have firm roots in the MIDI
standard. And the naming and valid ranges of the parameters that you
pass to those functions are also (mostly) based in the world of MIDI.
So in my opinion,  FluidSynth concept of "channels" is at least a
subset of MIDI channels and calling them "MIDI channels" makes that
quite clear.

I understand that your application is using its own MIDI processor,
does custom MIDI event routing and uses FluidSynths flexibility to
achieve things not possible with the built-in MIDI engine. But I don't
understand why that makes you say that our documentation is wrong...
Would you care to explain this in more detail?

> Also midi channels contain midi events in a specified defined format. The FSchannels are driven by software procedures in a completely different specified format.

I think this is a weird interpretation. In my view, MIDI channels
don't "contain" MIDI events. MIDI events can specify which MIDI
channel they affect, which means that channels are not a "container"
for events but rather a concept (or the numerical address) of a
configuration and state of a synthesis engine (of which 16 are
directly addressable via MIDI events and many more via the API).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]