From 8784dbbc7454620ee2efa74c6e5e37014c0f3bd1 Mon Sep 17 00:00:00 2001 From: derselbst Date: Tue, 15 Mar 2022 21:35:32 +0100 Subject: [PATCH] Elaborate on MSB and LSB handling, #1052 --- src/synth/fluid_synth.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/synth/fluid_synth.c b/src/synth/fluid_synth.c index 636dc01e4..68ce09658 100644 --- a/src/synth/fluid_synth.c +++ b/src/synth/fluid_synth.c @@ -1557,6 +1557,10 @@ fluid_synth_remove_default_mod(fluid_synth_t *synth, const fluid_mod_t *mod) /** * Send a MIDI controller event on a MIDI channel. + * + * Most CCs are 7-bits wide in FluidSynth. There are a few exceptions which may be 14-bits wide as are documented here: + * https://github.com/FluidSynth/fluidsynth/wiki/FluidFeatures#midi-control-change-implementation-chart + * * @param synth FluidSynth instance * @param chan MIDI channel number (0 to MIDI channel count - 1) * @param num MIDI controller number (0-127) @@ -1571,6 +1575,8 @@ fluid_synth_remove_default_mod(fluid_synth_t *synth, const fluid_mod_t *mod) * could be used as CC global for all channels belonging to basic channel 7. * - Let a basic channel 0 in mode 3. If MIDI channel 15 is disabled it could be used * as CC global for all channels belonging to basic channel 0. + * @warning Contrary to the MIDI Standard, this function does not clear LSB controllers, + * when MSB controllers are received. */ int fluid_synth_cc(fluid_synth_t *synth, int chan, int num, int val)