FluidSynth controls not working (local or MIDI CC) Enabling Parameters in Polyphone

Hello all,

I am facing a strange issue (maybe I never noticed it before… :wink:) with FluidSynth plugin

Many controllers (from front panel or MIDI) do not work and have no effect on the played sounds :

  • on envelope/filter page : env attack, env release, filter cutoff, filter resonance are not working at all
  • on main page : pan control works weirdly (I can put the sound full left, but when I want to set it full right, the sound still appears lightly on the left)

What did I miss ?
Does any Zynthianer have an idea of what I shall change to make these controls work ?

Thanks

Benoit

Hi @BEB - Could you could answer some questions:

What kind of Zynth do you have - V4, V5, DIY?

What do you mean by “not working” when you ‘turn the knob’ does it seem to change the parameter with no effect, or not change the parameter?

What software version are you running - Stable, Oram, other?

Hi Tunagenes,
sorry, I completely forgot to pass the configuration details.

I am using a V5 (official kit), but I am pretty sure it does not work on my V3 too (I can check when I will be back home)

The symptom is : when I turn the knob (or when I send a MIDI CC), I see the indicator moving as expected and displaying the Control value. But it has no effect at all on the sound (for the filter cutoff and resonance, this is the most “visible” - I should say “hearable” :wink: - as the sound is absolutely not affected even with cutoff = 0)

As far as I know, I use the last stable version. However, just to be sure, I will check when I will be back in the studio tomorrow

Benoit

1 Like

Be aware that parameter change is only audible if the soundfont supports the parameter, e.g. not all soundfonts will respond to filter cutoff. This depends on how the soundfont is constructed.

Please check with a soundfont you are confident reacts to the parameter.

You may wish to file a feature request for only responsive parameters to be exposed.

1 Like

That could certainly explain what’s happening!

Aaaaaahhh, that would explain why I got the feeling that the CC stopped working “suddenly” : this happened after I uploaded new SF2 files in the Zynthian !

I did not know that it was possible to inhibit support of some parameters in SF2 files. I will take a look in the SF2 file with the SF2 editor I use (Polyphone) to see if I can find where this is defined.

Thanks a lot for the explanation :partying_face:

Benoit

The other way around. The soundfont author needs to enable each feature and map it appropriately.

Found it !

For the other Zynthianers who are facing the same issue : here is how to “activate” the cutoff and other parameters in SF2 editor Polyphone : look at the bottom of the screen, the “Modulator” must be set with a gain > 0 in order to have the cutoff (or any other parameter activated)

3 Likes

Hello to all Zynthianers,

after spending some hours on this issue, I want to share some informations as things are far from being as easy as it seems, if you want to activate cutoff and resonance control in a SF2 file for FluidSynth.

The SF2 modulators are really a complex thing :sweat: and I spent hours in order to edit my SF2 file so the Zynthian can modulate the filter as I wanted.

First of all, there are two main things to understand when you deal with MIDI control :

  • SF2 files do not use MIDI value range (0…127) but 0…1 or -1…1 value ranges (in other terms, FluidSynth scales all incoming MIDI values whatever input is 7 bits or 14 bits…)
  • Most parameters in SF2 are expressed in real units. For example, cutoff frequency is in Hz not in % or anything like that.

The first mistake I made has been to send directly MIDI value to the filter cutoff… which meant that I had a filter with a cutoff frequency from 1Hz to 128Hz… :face_with_raised_eyebrow:

Second important thing to understand : modulators are LAYERED !!!
The way they act on a sound depends directly of the layer they are declared : values defined at INSTRUMENT level are absolute.
For example, the cutoff defined here for “Dance synth 1” is 19Hz. Cutoff computed by modulators will be added to this value.
image

If you want now to control cutoff from MIDI Control Change (CC74 for example), you will have to create a modulator like this following one

Note how the values are scaled before the multiplier : with the selected curve, it goes from 0 to 1 while MIDI CC goes from 0 to 127. Note also that Sound Font defines that lowest cutoff frequency is 8.176Hz (under the rightmost selection list), so when CC changes from 0 to 127, then scaled from 0 to 1, then multiplied by 13500 gives a frequency control range from 8.176 Hz to 19912Hz. Easy, no ? :rofl:
(No operation means “equal”, by the way…)

When this SoundFont is uploaded in the Zynthian, the Cutoff knob has finally an effect! Yayyyy :partying_face:

You think things are still too simple ?
Then you have to know that ALL modulators going to the same parameter (cutoff here) are added! So if you define a second modulator driven by another MIDI Control Change or the Note Velocity or anything else, the Cutoff frequency becomes driven by the two parameters :slightly_smiling_face:
And the SoundFont specification says that there is no limit (in theory…) to the number of modulators for a given parameter…

Last but not least, you can also define a modulator at the PRESET level. But try to guess what happens then ?
Modulators declared at PRESET level have a relative effect

Modulators at PRESET level multiply the instrument modulator output by their own output! (that’s why you see a “x” rather than “Hz”)

So, you have to be careful about the layer where you declare your modulator (in most cases, it will be at Instrument level, while you keep modulators at Presets level to default definition)

And finally, I have to say that I am now in love with the modulation scheme available in FluidSynth, as it is incredibly powerful when you know how to use it

5 Likes

I changed the Title of this thread simply because the analysis provided is of great benefit to fluidsynth users. Personally I wonder what filter settings might do to Bell Samples…

You always end up learning something by investigating…

It’s rather good as an approach!

I think we also deserve some musical recompense…

Go on you know you want to!!

Consider it the Liner notes…

A beautifully written explanation of how to work with modulators in Polyphone so that the resulting soundfonts are usable and respond to CC messages.
The example cutoff filter is exactly what I need as a “player” on the ewi - wind controller. I’ve already tried to edit some soundfonts, but the feeling of frustration when I opened Polyphone and had no idea how it works… ugh.
Thanks,

1 Like