With Fluidsynth lv2 in MODEP i found that Reverb and Chorus works on some soundfonts but not on some others one. It is a specific feature in the sf2 loaded font or is a weird fluidsynth beheaviour ?
May be i’ve not been clear on question … Die FluidSynth include a section with Reverb and Chorus with some controls available. When i load some fonts (example “Yamaha C5 Grand v2.4.sf2”) this effects works. When i load other fonts the effects do nothing. However if i use an external reverb plugin like “Roomy” it works in every case. I’ve done some experiments but i didn’t find so far the reason for this beheaviour. I tested either stereo sampled and mono sampled soundfounts. It seems that the reverb and effect activated by FuidSynth have to be built in into the soundfount in some manner for them to work.
If other made some experiments or have suggestions and hints that will be much appreciated.
Finally i solved the issue. As usual the answer were hidden into the Fliudsynth manual and Midi implementation chart. With the LV2 plugin it possible to map every control visible in the GUI to a MIDI control change. So, say you define the CC 23 as the midi control you want to use for Reverb Level and you want also use Midi channel 16 for control. So you configure touchosc to send on channel 16 the CC 23 with level from 0 to 127. Activating MIDI learn in MODEP the FluidSynth plugin actually learn and the knob move on the screen according the touchosc surface … it seems right, isn’t it, but actually it is not !!!. Let see why :
The FluidSynth manual say that the “Reverb Send Amount” is hardwired on CC 91 that is BTW the usually standard midi control for that task. So, in order for the function to work it necessary that che Control Change programmed in the touchosc has to be CC 91. Also the Reverb Send Amount is tailored to a specific MIDI channel, so if you send CC91 on MIDI channel 16 only on that channel you will hear the Reverb Effect. It is clear that if you are playing a patch on MIDI Channel 1 the CC 91 on Channel 16 do nothing.
So, to sum it all up … use CC 91 for the Reverb Level control and send the command on the right channel you are using. Same story apply for Chorus only that the hardwired control in Fluidsynth is CC 93
Just a question you can ask … Why some fonts work and some not ? I analyzed the working soundfonts with Polyphone and found that in the instrument patch is defined a 20% reverb level. With this setting when the font load into the FluidSynth the sound engine set a 20% reverb level without taking into account the CC91 control. Actually what is called “level” in the FluidSynth GUI is actually the Dry/Wet controll with is conceptually equal to “level” but is not a real “Reverb Send Amount”.
There is a reason for that, because if we do something complex we could fix a Dry/Wet level and then send different Send Amount to different midi channels. Since the FluidSynth is actually a multichannel synthetizer it is possible to have different instruments on each MIDI Channel and so we could model the sound if we inject a multipart midi sequence.
However … to make a long story short I hope my findings will be helpfull for others. I spent many hours of testing to understand the issue and solve the problem.
Now my TouchOsc panel is working nice.