Chapter Three: MIDI

6. MIDI Data Format: Channel Mode Messages

Channel mode messages are intended to control the overall function of ALL voice channels of an instrument. The MIDI 1.0 Specification intended that instruments be designed to operate only under one mode at a time. Channel mode messages use controller #'s 122-127 and are sent on an intended instrument's basic channel. An instrument's programmable parameter set should include a basic channel setting. This means that you may have a number of the same model of instrument tuned to different basic channels, paying attention only to the channel mode messages sent on their particular basic channel.

The four types of channel modes are called OMNI, MONO/POLY, ALL NOTES OFF and LOCAL CONTROL. OMNI, if set ON, instructs all instrument voices to respond to any and all received channel voice messages regardless of what channel they are sent on. This would be equivalent to your TV set displaying all cable channels simultaneously.

MONO/POLY modes change the polyphonic capabilities of a single voice or multiple voices (see below). A new NOTE ON message in MONO mode ends the previous note and begins the new note. You may wish to set your synth to MONO mode if you want to use a patch with portamento (a gliding or glissando between notes).

A channel mode message looks like this:
1011nnnn 0ccccccc 0vvvvvvv
n=basic channel, c=controller #'s 122-127, v=action for that mode (on/off).

The full implementation is:

Status Byte Data Byte 1 Data Byte 2 (& 3) Description
1011nnnn 01111010 (122) 00000000 (0) = off
01111111 (127) = on
Local Control
1011nnnn 01111011 (123) 00000000 (0) All Notes OFF
1011nnnn 01111100 (124) 00000000 (0) Omni Mode OFF (all notes off as well)
1011nnnn 01111101 (125) 00000000 (0) Omni Mode ON (all notes off as well)
1011nnnn 01111110 (126) 0mmmmmmm
(m=number of channels)*

Mono Mode ON (poly mode off, all notes off as well)
1011nnnn 01111111 (127) 00000000 (0) Poly Mode ON (Mono Mode OFF, all notes off as well)
A special case is when M=0 instructs the instrument to assign one note to each of its voices, starting with the Basic Channel through 16.

There are four OMNI-MONO/POLY modes combinations:

Mode Omni POLY/MONO Result
1 ON POLY Messages are received from all channels and assigned to all voices
2 ON MONO Message are received from all channel and control one voice monophonically
3 OFF POLY Messages are received only on a specified channel, but are assigned to all voices
4 OFF MONO Messages are received only on a specified channel, but are assigned to a specified number of monophonic voices

ALL NOTES OFF is useful for sequencing programs, where missed messages may leave a note 'hanging' or sounding indefinitely because it missed it's NOTE OFF command. This is equivalent to the PANIC button and many synths.

LOCAL CONTROL (on/off) is designed to separate the MIDI-generating keyboard function of a synth/sampler from its sound-producing capability. This is useful when you want only notes returning from a computer to cause the instrument to sound, avoiding a common problem of doubled notes. Notes and other data are still send to the MIDI OUT port. DAW's and other MIDI sequencers have settings for MIDI Patch Thru that may route the note you are playing on the keyboard back to the instrument to be played, so with LOCAL CONTROL on, you will hear a sort of flanged sound from the two notes, both local and returning from your DAW, and this will also rob your instrument of half its polyphony, as each note you play uses two voices. Normally, LOCAL CONTROL is best set on the instrument itself, not through MIDI.