Chapter Three: MIDI
1. How does the MIDI system work? Page 5
Notes about controllers (channel voice message)
Controllers are where the real expressive power of MIDI comes into play. Controllers are invoked by the controller change status byte (1011nnnn) followed by the controller number (0-127) followed by the controller value. Because these messages often result in a dense stream of changing values, running status is crucial for data reduction. Many MIDi sequencers will have the capacity to reduce the density of controller change data as well.
If you view the list of controller numbers, you will notice that certain numbers have been assigned to specific functions. The most important of these are:
In general, controller #'s 0-63 are reserved for continous-type data, such as volume, mod wheel, etc., controllers 64-121 have been reserved for switch-type controllers (i.e. on-off, up-down), such as the sustain pedal. Older conventions of switch values, such as any data value over 0 = 'ON,' or recognizing only 0 = 'OFF' and 127 = 'ON' and ignoring the rest, have been replaced by the convention 0-63 = 'ON' and 64-127 = 'OFF.'
While the MIDI Specification suggests these 'default' uses, and most manufacturers have set the default for at least mod wheel, volume, panning and sustain pedal to respond to the specific numbers above, the actual response of an instrument is determined by the instrument's programming, which often can be altered. For example, while the instrument's default may be to use a sustain pedal to sustain a pitch, this may be reprogrammed to jump up an octave either instead or simlultaneously using the same controller #. When programming synth/sampler patches, combining the function of a single controller # to change multiple parameters of a sound is often a very powerful tool.
It is little known (and little used) that controller#'s 32-63 are reserved as an additional 7 bit LSB for corresponding controller #'s 0-31. So for example, controller #39 can be used as a fine-tuning of controller #7 (main volume). The same is true for controller #33 which acts as an LSB for controller #1 (modulation wheel).
Controller #'s 122-127 are reserved for channel mode messages, described in the next module. A complete list of the MIDI 1.0 spec assigned controller numbers appears on the next page.