I raised a query on the Fluidsynth list, and they
suggested trying with
the command-line
version of fluidsynth. I tried that and it responded as it should -
which suggests the
problem is in the Calf Gui. I guess I should raise it with the Calf list
(if I can find it.)
I assume that LV2 uses either Alsa or Jack to communicate, but I've not
used LV2 at all.
Certainly Fluidsynth, and hence Calf, is quite happy using Jack. I don't
know about the
other Calf plugins, as I've never used any, other than the synth.
I think I found the cause, LV2 version indeed is fine... it's a change in
calfjackhost done in 2018:
https://github.com/calf-studio-gear/calf/commit/1b37e753876fdd104a906aed1e7…
To me it looks that this commit is just plain wrong in raising the channel number by one.
The intent (see issue #97 referenced in this commit msg) is to compensate the offset seen
in calf monosynth and other synths, but apparently this change simply increases the input
buffer channel by one...
So I changed line 197 in jackhost.cpp from:
int channel = (buffer[0] & 0x0f) + 1;
to read:
int channel = (buffer[0] & 0x0f);
and this fixes the off by one error in fluidsynth, and it seems the other synths still
respond on correct channels, even if displaying 0-15 in their MIDI channel selectors.
(tried with Mamba virtual keyboard on my laptop, which also displays channels as 1 - 16)
Bill
--------
[1]
https://github.com/calf-studio-gear/calf/commit/1b37e753876fdd104a906aed1e7…