MIDI Implementation Chart
This is a living document. I have changed the details of the MIDI implementation many times, and I invite you to change it as well. This should provide a rough guide to your starting point.
Linked documents are courtesy of Jeff Glatt. For any controls that show coarse and fine, MBMixer will support coarse only. Unless specified, each control is applied to the channel received on only.
Volume, Control Change 7, value range 0-127.
Balance, Control Change 8, Value range 1-64-127.
Pan, Control Change 10, Value range 1-64-127.
Expression, Control Change 11, value range 0-127
Effects 1, Control Change 12, value range 0-127
Effects 2, Control Change 13, value range 0-127
WithFX, Control Change 15, value range 0-63 false, 64-127 true
SetFlags, Control Change 20, value range 0-31
SendMix, Control Change 21, value is ignored
SavePreset (full board), Control Change 22, value range 0-63
LoadPreset (full board), Control Change 24, value range 0-63
MasterVolume (full board), Control Change 23, value range 0-127
Effects 1 Pre, Control Change 80, value range 0-63 false, 64-127 true
Effects 2 Pre, Control Change 81, value range 0-63 false, 64-127 true
Effects 1 Mute, Control Change 82, value range 0-63 false, 64-127 true
Effects 2 Mute, Control Change 83, value range 0-63 false, 64-127 true
All Sound Off (full board), Control Change 120, value ignored
Program Change 0 to 63 will load the saved settings for this channel only.
Program Change 64 to 127 will SAVE this channel into bank 0 to 63.
WithFX, CC#15, is used to determine which MIDI channels have effects loops included This will normally be false for line mixers, and true for audio mixers. When false, two audio channels will be used for this MIDI channel, and effects controls will be ignored. When true, four audio channels will be used for this MIDI channel, and effects controls will become active.
SetFlags, CC#20, provides a quick way to configure a MIDI channel with a single command.
FX1Pre, flag value 1
FX2Pre, flag value 2
FX1Mute, flag value 4
FX2Mute, flag value 8
WithFX, flag value 16
Simply add the flag values above as you would like the channel configured, and send the result as the value for SetFlags.
SendMix, CC#21, s a request to the MBMixer to send the current settings for this channel. It will respond with a group of MIDI messages describing the current settings. This is useful for synchronizing the control surface, or to capture this channels mix in a sequencer. This may also be used by software that wishes to query the current settings before making adjustments.
SavePreset(full board), CC#22, will save all 16 channels of the current board to the bank number requested. Valid bank numbers are 0 to 63. Bank 0 is the “default” bank, and will be loaded automatically on power-up and after “All Sounds Off” CC#120.
LoadPreset(full board), CC#24, will load all 16 channels from the bank number requested.
MasterVolume(full board), CC#23, will set the master volume, which will affect all channels. Valid range is 0-127. I do NOT support the setting master volume by system exclusive at this time
Effects 1,2 Pre, CC#80,81, if set to true, each effects loop will be handles as “pre-fader”. The level will be controlled by effects level and master volume only. If set to false, volume and expression will also be used to calculate the signal level.
Effects 1,2 Mute, CC#82,83, if set to true, the designated effects channel will be silenced. This allows switching the channel in and out without changing the level settings.
All Sound Off(full board), CC#120, will load preset zero, usually resetting the board to a silent condition. As some systems will use this command without discretion, it may be disabled as a pre-compile option.