(Often abbreviated CC, while the correct term is "Control Change") A category of MIDI messages which are used to convey performance or patch data for parameters other than those which have their own dedicated message types (note on, note off, aftertouch, polyphonic aftertouch, pitch bend, and program change). The continuous controller message format contains a controller number and a seven-bit value. 128 controller numbers are possible, but eight are reserved for special purposes, leaving 120 available. The standard originally assigned meanings to only a few of these, notably mod wheel which is assigned to continuous controller #1. However, subsequent revisions have assigned meanings to many of them, and divided the possible numbers into ranges for different purposes:
- Numbers 0-31 are for commonly implemented controllers. Some of these controllers are capable of providing more resolution than what the seven-bit data byte can contain, and depending on the routing, whatever is being controlled may benefit from additional resolution in order to prevent zippering. So, numbers 32-63 are used for additional resolution for these controllers. When a controller wants to send a high-resolution value, it sends the most significant bits using its normal controller number, and then it sends the additional bits using the controller numbered 32 higher. So, for instance, if a controller has a mod wheel capable of sending additional resolution, each time the wheel is moved, the controller sends the normal controller #1 message followed by a controller #33 message.
- Numbers from 64 to 69 (originally 64 to 80) have long been reserved for on/off type parameters, with #64 being assigned to the sustain pedal. (A value of zero equals "off"; any nonzero value is taken to be "on".)
- Numbers 70 to 95 are for controller definitions mostly associated with General MIDI. The extent to which these are implemented varies greatly. Many synths don't implement any of them.
- Numbers 96 to 101 are used with the registered parameter mechanism.
- Numbers 102 to 119 are reserved.
- Numbers 120 to 127, as mentioned above, are special-purpose numbers for messages known as "channel mode" messages. They are for telling the receiving device to change modes associated with the MIDI capability itself. These are not considered controller messages.
Unfortunately, the standard is not very consistent about the meanings of some of the standard assignments.For instance, some such as volume and pan derive their names from the functions they are intended to perform, while others such as breath controller and expression pedal are named after the types of input devices that generally produce controller messages of that type. Also note that there is no enforcement on usage on conventional meanings for continuous controller messages; some soft synths in particular are notorious for totally disregarding the standard controller number assignments.
Here are some commonly used controller numbers and their conventional meanings. Where two numbers are shown separated by a '|' character, the second number is the controller number for the least-significant-byte for controllers capable of additional resolution.
0 | 32: bank select
1 | 33: mod wheel
2 | 34: breath controller
4 | 36: foot pedal
5 | 37: portamento time
6 | 38: data entry -- used with the registered parameter mechanism
7 | 39: volume
10 | 42: pan -- adjusts the left-right positioning of a signal in a stereo output
11 | 43: expression pedal
16 | 48: general purpose controller #1
17 | 49: general purpose controller #2
18 | 50: general purpose controller #3
19 | 51: general purpose controller #4
64: sustain pedal
65: portamento on/off
67: soft pedal
69: hold 2
88: High resolution velocity prefix (added 2010)
98 & 99: non-registered parameter number
100 & 101: registered parameter number
121: reset all controllers
122: local control on/off
123: all notes off