Skip to content
Tom M edited this page Sep 25, 2019 · 31 revisions

This is a list of MIDI events that fluidsynth handles by default. That "handling" is either given by the General MIDI standard or the SoundFont spec.

Note: In order to control even more aspects of the sound synthesis (e.g. ADSR, low pass filter cutoff & resonance, reverb & chorus amount) SoundFont modulators must be used.

✔️ Implemented according to MIDI or SoundFont spec and usable by default

✅ Partially or customly or implemented and usable by default

⚠️ Requires special setup of fluidsynth to be usable by default

❌ Not handled by default, but usable via SoundFont modulators

MIDI Message Implementation Chart

MIDI Message Implementation Status
NOTE_OFF ✔️
NOTE_ON ✔️
CONTROL_CHANGE See related table below.
MIDI_SET_TEMPO ✔️
PROGRAM_CHANGE ✔️
CHANNEL_PRESSURE ✔️
KEY_PRESSURE ✔️
PITCH_BEND ✔️
MIDI_SYSTEM_RESET ✔️

MIDI Control Change Implementation Chart

MIDI CC Implementation Status
(000) Bank Select ✔️ Interpretation of MSB and LSB depends on synth.midi-bank-select
(001) Modulation Wheel ✔️ SF2 default modulator
(002) Breath Controller ⚠️ Usable in breathmode, see PolyMono documentation
(004) Foot Controller
(005) Portamento Time ✔️ MSB and LSB, see PolyMono documentation
(006) Data Entry ✔️ MSB and LSB.
(007) Channel Volume ✔️ SF2 default modulator
(008) Balance non-standard SF2 modulators.
(010) Pan ✔️ SF2 default modulator
(011) Expression ✔️ SF2 default modulator
(064) Sustain Pedal ✔️ See Sostenuto documentation
(065) Portamento Switch ✔️ See PolyMono documentation
(066) Sostenuto Pedal ✔️ See Sostenuto documentation
(068) Legato Switch ✔️ See PolyMono documentation
(072) Sound Controller 3 (default: Release Time)
(073) Sound Controller 4 (default: Attack Time)
(074) Sound Controller 5 (default: Brightness)
(084) Portamento Control (PTC) ✔️ See PolyMono documentation
(091) Effects 1 Depth (Reverb Send Level) ✔️ SF2 default modulator
(092) Effects 2 Depth (Tremolo Depth)
(093) Effects 3 Depth (Chorus Send Level) ✔️ SF2 default modulator
(091) Effects 4 Depth (Celeste (Detune) Depth)
(091) Effects 5 Depth (Phaser Depth)
(098) NRPN LSB ✔️ See related table below
(099) NRPN MSB ✔️ See related table below
(100) RPN LSB See related table below
(101) RPN MSB See related table below
(120) All Sound Off ✔️
(121) Reset All Controllers ✔️
(121) Local Control ✔️ Ignored, because not applicable
(123) All Notes Off ✔️
(124) Omni Mode Off ✔️ See PolyMono documentation
(125) Omni Mode On ✔️ See PolyMono documentation
(126) Mono Mode ✔️ See PolyMono documentation
(127) Poly Mode ✔️ See PolyMono documentation

RPN Control Change Implementation Chart

RPN CC Implementation Status
(000) RPN_PITCH_BEND_RANGE ✔️
(001) RPN_CHANNEL_FINE_TUNE ✔️
(002) RPN_CHANNEL_COARSE_TUNE ✔️
(003) Tuning Program Select ✔️
(004) Tuning Bank Select ✔️
(005) Modulation Depth Range ❌ Not yet implemented

NRPN Control Change Implementation Chart

All SF2 generators can be altered with NRPN Control Change messages. See section 8.1.2 in the spec.