Chapter Three: MIDI

5. MIDI Data Format: Controller Change in Detail | Page 2

MIDI Controller Numbers
The table below presents a summary of the standard MIDI controller numbers in decimal and hexadecimal (h) form; the map on page 1 shows how they are grouped.
Decimal Hex Controller Name
0 00h Bank Select MSB† (often followed by Controller #32, Bank Select LSB)
1 01h Modulation Wheel or Lever
2 02h Breath Controller
3 03h Undefined
4 04h Foot Controller
5 05h Portamento Time
6 06h Data Entry MSB†
7 07h Channel Volume (formerly Main Volume)
8 08h Balance
9 09h Undefined
10 0Ah Pan
11 0Bh Expression Controller
12 0Ch Effect Control 1
13 0Dh Effect Control 2
14–15 0E–0Fh Undefined
16–19 10–13h General Purpose Controllers (Nos. 1–4)
20–31 14–1Fh Undefined
32–63 20–3Fh LSB for Controllers 0–31† (rarely implemented, except #32 Bank Select LSB and #38 Data Entry LSB)
64 40h Damper Pedal (Sustain): values 0–63 = Off, 64–127 = On
65 41h Portamento On/Off
66 42h Sostenuto On/Off
67 43h Soft Pedal On/Off
68 44h Legato Footswitch
69 45h Hold 2
70 46h Sound Controller 1 (default: Sound Variation)
71 47h Sound Controller 2 (default: Timbre/Harmonic Intensity)
72 48h Sound Controller 3 (default: Release Time)
73 49h Sound Controller 4 (default: Attack Time)
74 4Ah Sound Controller 5 (default: Brightness; in MPE, per-note timbre)
75 4Bh Sound Controller 6 (default: Decay Time)
76 4Ch Sound Controller 7 (default: Vibrato Rate)
77 4Dh Sound Controller 8 (default: Vibrato Depth)
78 4Eh Sound Controller 9 (default: Vibrato Delay)
79 4Fh Sound Controller 10 (no default)
80–83 50–53h General Purpose Controllers (Nos. 5–8)
84 54h Portamento Control
85–87 55–57h Undefined
88 58h High Resolution Velocity Prefix†
89–90 59–5Ah Undefined
91 5Bh Effects 1 Depth (default: Reverb Send Level; previously External Effects Depth)
92 5Ch Effects 2 Depth (previously Tremolo Depth)
93 5Dh Effects 3 Depth (default: Chorus Send Level; previously Chorus Depth)
94 5Eh Effects 4 Depth (previously Detune Depth)
95 5Fh Effects 5 Depth (previously Phaser Depth)
96 60h Data Increment (Data Entry +1)
97 61h Data Decrement (Data Entry -1)
98 62h Non-Registered Parameter Number LSB†
99 63h Non-Registered Parameter Number MSB†
100 64h Registered Parameter Number LSB†
101 65h Registered Parameter Number MSB†
102–119 66–77h Undefined
Channel Mode Messages
120 78h All Sound Off
121 79h Reset All Controllers
122 7Ah Local Control On/Off
123 7Bh All Notes Off (sent by most Panic buttons)
124 7Ch Omni Off
125 7Dh Omni On
126 7Eh Mono On (Poly Off)
127 7Fh Poly On (Mono Off)

† Replaced or no longer needed in the MIDI 2.0 Protocol; see Controllers in MIDI 2.0 below.

Update

Controllers in MIDI 2.0

MIDI 2.0 keeps the same 128 controller numbers but gives each controller value 32 bits instead of 7, so the LSB controllers (32–63) are no longer needed for fine resolution, and 16-bit note velocity makes the High Resolution Velocity Prefix (88) unnecessary. Several controllers that MIDI 1.0 used as workarounds are replaced by messages of their own: bank selection (0 and 32) now travels inside the Program Change message, and RPNs and NRPNs (98–101, with Data Entry 6 and 38) become single Registered and Assignable Controller messages, 16,384 of each per channel. MIDI 2.0 also adds controllers for individual notes, so each held note can have its own brightness or vibrato on a single channel.