Table 1: MIDI 1.
0 Specification Message Summary
Updated 1995 By the MIDI Manufacturers Association
Status Data Byte(s) Description
-------------------------------------------------------------------------
Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
-------------------------------------------------------------------------
1000nnnn 0kkkkkkk Note Off event.
0vvvvvvv This message is sent when a
note is released (ended).
(kkkkkkk) is the key (note) number.
(vvvvvvv) is the velocity.
1001nnnn 0kkkkkkk Note On event.
0vvvvvvv This message is sent when a
note is depressed (start).
(kkkkkkk) is the key (note) number.
(vvvvvvv) is the velocity.
1010nnnn 0kkkkkkk Polyphonic Key Pressure (Aftertouch).
0vvvvvvv This message is most often sent by
pressing down on the key after it
"bottoms out".
(kkkkkkk) is the key (note) number.
(vvvvvvv) is the pressure value.
1011nnnn 0ccccccc Control Change.
0vvvvvvv This message is sent when a controller
value changes. Controllers include devices
such as pedals and levers.
Controller numbers 120-127 are reserved
as "Channel Mode Messages" (below).
(ccccccc) is the controller number (0-119).
(vvvvvvv) is the controller value (0-127).
1100nnnn 0ppppppp Program Change.
This message sent when the patch number changes.
(ppppppp) is the new program number.
1101nnnn 0vvvvvvv Channel Pressure (After-touch).
This message is most often sent by pressing down
on the key after it "bottoms out". This message
is different from polyphonic after-touch. Use
this message to send the single greatest
pressure value (of all the current depressed keys).
(vvvvvvv) is the pressure value.
1110nnnn 0lllllll Pitch Wheel Change.
0mmmmmmm This message is sent to indicate a change in the
pitch wheel. The pitch wheel is measured by a
fourteen bit value. Center (no pitch change) is
2000H. Sensitivity is a function of the
transmitter.
(llllll) are the least significant 7 bits.
(mmmmmm) are the most significant 7 bits.
-------------------------------------------------------------------------
Channel Mode Messages (See also Control Change, above)
-------------------------------------------------------------------------
1011nnnn 0ccccccc Channel Mode Messages.
0vvvvvvv This the same code as the Control
Change (above), but implements Mode
control and special message by using
reserved controller numbers 120-127.
The commands are:
All Sound Off.
When All Sound Off is received
all oscillators will turn off, and
their volume envelopes are set to
zero as soon as possible.
c = 120, v = 0: All Sound Off
Reset All Controllers.
When Reset All Controllers is received,
all controller values are reset to their
default values. (See specific Recommended
Practices for defaults).
c = 121, v = x: Value must only be zero
unless otherwise allowed
in a specific Recommended
Practice.
Local Control.
When Local Control is Off, all devices
on a given channel will respond only to
data received over MIDI. Played data, etc.
will be ignored. Local Control On
restores the functions of the normal
controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
All Notes Off.
When an All Notes Off is received,
all oscillators will turn off.
c = 123, v = 0: All Notes Off
(See text for description of actual
mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off)
where M is the number of channels
(Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off)
(Note: These four messages also cause
All Notes Off)
-------------------------------------------------------------------------
System Common Messages
-------------------------------------------------------------------------
11110000 0iiiiiii System Exclusive.
0ddddddd This message makes up for all that MIDI
.. doesn't support. (iiiiiii) is usually a
.. seven-bit Manufacturer's I.D. code. If the
0ddddddd synthesizer recognizes the I.D. code as
11110111 its own, it will listen to the rest of
the message (ddddddd). Otherwise, the
message will be ignored. System Exclusive
is used to send bulk dumps such as patch
parameters and other non-spec data.
(Note: Real-Time messages ONLY may be
interleaved with a System Exclusive.)
This message also is used for extensions
called Universal Exclusive Messages.
11110001 Undefined. (Reserved)
11110010 0lllllll Song Position Pointer.
0mmmmmmm This is an internal 14 bit register that
holds the number of MIDI beats (1 beat=
six MIDI clocks) since the start of
the song. l is the LSB, m the MSB.
11110011 0sssssss Song Select.
The Song Select specifies which sequence
or song is to be played.
11110100 Undefined. (Reserved)
11110101 Undefined. (Reserved)
11110110 Tune Request.
Upon receiving a Tune Request, all analog
synthesizers should tune their oscillators.
11110111 End of Exclusive.
Used to terminate a System Exclusive
dump (see above).
-------------------------------------------------------------------------
System Real-Time Messages
-------------------------------------------------------------------------
11111000 Timing Clock.
Sent 24 times per quarter note when
synchronization is required (see text).
11111001 Undefined. (Reserved)
11111010 Start.
Start the current sequence playing.
(This message will be followed with
Timing Clocks).
11111011 Continue.
Continue at the point the sequence was
Stopped.
11111100 Stop.
Stop the current sequence.
11111101 Undefined. (Reserved)
11111110 Active Sensing.
Use of this message is optional. When
initially sent, the receiver will expect
to receive another Active Sensing message
each 300ms (max), or it will be assume
that the connection has been terminated.
At termination, the receiver will turn off
all voices and return to normal (non-
active sensing) operation.
11111111 Reset.
Reset all receivers in the system to
power-up status. This should be used
sparingly, preferably under manual
control. In particular, it should not
be sent on power-up.
==============================================================================
TABLE 2: Expanded Status Bytes List
(adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88)
Updated 1995 By the MIDI Manufacturers Association
STATUS BYTE | DATA BYTES
------------------------------------------------------------------------------
1st Byte Value | Function | 2nd | 3rd
- - - - - - - - -| | Byte | Byte
Binary |Hex| Dec| | |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10000000= 80= 128| Chan 1 Note off | Note Number | Note Velocity
10000001= 81= 129| Chan 2 " | (0-127) | (0-127)
10000010= 82= 130| Chan 3 " | see | "
10000011= 83= 131| Chan 4 " | Table | "
10000100= 84= 132| Chan 5 " | 4 | "
10000101= 85= 133| Chan 6 " | " | "
10000110= 86= 134| Chan 7 " | " | "
10000111= 87= 135| Chan 8 " | " | "
10001000= 88= 136| Chan 9 " | " | "
10001001= 89= 137| Chan 10 " | " | "
10001010= 8A= 138| Chan 11 " | " | "
10001011= 8B= 139| Chan 12 " | " | "
10001100= 8C= 140| Chan 13 " | " | "
10001101= 8D= 141| Chan 14 " | " | "
10001110= 8E= 142| Chan 15 " | " | "
10001111= 8F= 143| Chan 16 " | " | "
10010000= 90= 144| Chan 1 Note on | " | "
10010001= 91= 145| Chan 2 " | " | "
10010010= 92= 146| Chan 3 " | " | "
10010011= 93= 147| Chan 4 " | " | "
10010100= 94= 148| Chan 5 " | " | "
10010101= 95= 149| Chan 6 " | " | "
10010110= 96= 150| Chan 7 " | " | "
10010111= 97= 151| Chan 8 " | " | "
10011000= 98= 152| Chan 9 " | " | "
10011001= 99= 153| Chan 10 " | " | "
10011010= 9A= 154| Chan 11 " | " | "
10011011= 9B= 155| Chan 12 " | " | "
10011100= 9C= 156| Chan 13 " | " | "
10011101= 9D= 157| Chan 14 " | " | "
10011110= 9E= 158| Chan 15 " | " | "
10011111= 9F= 159| Chan 16 " | " | "
10100000= A0= 160| Chan 1 Polyphonic | " | Aftertouch
10100001= A1= 161| Chan 2 Aftertouch | " | amount
10100010= A2= 162| Chan 3 " | " | (0-127)
10100011= A3= 163| Chan 4 " | " | "
10100100= A4= 164| Chan 5 " | " | "
10100101= A5= 165| Chan 6 " | " | "
10100110= A6= 166| Chan 7 " | " | "
10100111= A7= 167| Chan 8 " | " | "
10101000= A8= 168| Chan 9 " | " | "
10101001= A9= 169| Chan 10 " | " | "
10101010= AA= 170| Chan 11 " | " | "
10101011= AB= 171| Chan 12 " | " | "
10101100= AC= 172| Chan 13 " | " | "
10101101= AD= 173| Chan 14 " | " | "
10101110= AE= 174| Chan 15 " | " | "
10101111= AF= 175| Chan 16 " | " | "
10110000= B0= 176| Chan 1 Control/ | See | See
10110001= B1= 177| Chan 2 Mode change | Table | Table
10110010= B2= 178| Chan 3 " | 3 | 3
10110011= B3= 179| Chan 4 " | " | "
10110100= B4= 180| Chan 5 " | " | "
10110101= B5= 181| Chan 6 " | " | "
10110110= B6= 182| Chan 7 " | " | "
10110111= B7= 183| Chan 8 " | " | "
10111000= B8= 184| Chan 9 " | " | "
10111001= B9= 185| Chan 10 " | " | "
10111010= BA= 186| Chan 11 " | " | "
10111011= BB= 187| Chan 12 " | " | "
10111100= BC= 188| Chan 13 " | " | "
10111101= BD= 189| Chan 14 " | " | "
10111110= BE= 190| Chan 15 " | " | "
10111111= BF= 191| Chan 16 " | " | "
11000000= C0= 192| Chan 1 Program | Program # | NONE
11000001= C1= 193| Chan 2 change | (0-127) | "
11000010= C2= 194| Chan 3 " | " | "
11000011= C3= 195| Chan 4 " | " | "
11000100= C4= 196| Chan 5 " | " | "
11000101= C5= 197| Chan 6 " | " | "
11000110= C6= 198| Chan 7 " | " | "
11000111= C7= 199| Chan 8 " | " | "
11001000= C8= 200| Chan 9 " | " | "
11001001= C9= 201| Chan 10 " | " | "
11001010= CA= 202| Chan 11 " | " | "
11001011= CB= 203| Chan 12 " | " | "
11001100= CC= 204| Chan 13 " | " | "
11001101= CD= 205| Chan 14 " | " | "
11001110= CE= 206| Chan 15 " | " | "
11001111= CF= 207| Chan 16 " | " | "
11010000= D0= 208| Chan 1 Channel | Aftertouch | "
11010001= D1= 209| Chan 2 Aftertouch | amount | "
11010010= D2= 210| Chan 3 " | (0-127) | "
11010011= D3= 211| Chan 4 " | " | "
11010100= D4= 212| Chan 5 " | " | "
11010101= D5= 213| Chan 6 " | " | "
11010110= D6= 214| Chan 7 " | " | "
11010111= D7= 215| Chan 8 " | " | "
11011000= D8= 216| Chan 9 " | " | "
11011001= D9= 217| Chan 10 " | " | "
11011010= DA= 218| Chan 11 " | " | "
11011011= DB= 219| Chan 12 " | " | "
11011100= DC= 220| Chan 13 " | " | "
11011101= DD= 221| Chan 14 " | " | "
11011110= DE= 222| Chan 15 " | " | "
11011111= DF= 223| Chan 16 " | " | "
11100000= E0= 224| Chan 1 Pitch | Pitch | Pitch
11100001= E1= 225| Chan 2 wheel | wheel | wheel
11100010= E2= 226| Chan 3 control | LSB | MSB
11100011= E3= 227| Chan 4 " | (0-127) | (0-127)
11100100= E4= 228| Chan 5 " | " | "
11100101= E5= 229| Chan 6 " | " | "
11100110= E6= 230| Chan 7 " | " | "
11100111= E7= 231| Chan 8 " | " | "
11101000= E8= 232| Chan 9 " | " | "
11101001= E9= 233| Chan 10 " | " | "
11101010= EA= 234| Chan 11 " | " | "
11101011= EB= 235| Chan 12 " | " | "
11101100= EC= 236| Chan 13 " | " | "
11101101= ED= 237| Chan 14 " | " | "
11101110= EE= 238| Chan 15 " | " | "
11101111= EF= 239| Chan 16 " | " | "
11110000= F0= 240| System Exclusive | ** | **
11110001= F1= 241| MIDI Time Code Qtr. Frame | -see spec- | -see spec-
11110010= F2= 242| Song Position Pointer | LSB | MSB
11110011= F3= 243| Song Select(Song #) | (0-127) | NONE
11110100= F4= 244| Undefined (Reserved) | ? | ?
11110101= F5= 245| Undefined (Reserved) | ? | ?
11110110= F6= 246| Tune request | NONE | NONE
11110111= F7= 247| End of SysEx (EOX) | " | "
11111000= F8= 248| Timing clock | " | "
11111001= F9= 249| Undefined (Reserved) | " | "
11111010= FA= 250| Start | " | "
11111011= FB= 251| Continue | " | "
11111100= FC= 252| Stop | " | "
11111101= FD= 253| Undefined (Reserved) | " | "
11111110= FE= 254| Active Sensing | " | "
11111111= FF= 255| System Reset | " | "
** Note: System Exclusive (data dump) 2nd byte= Vendor ID (or Universal
Exclusive) followed by more data bytes and ending with EOX.
Table 3: Control Changes
and Mode Changes (Status Bytes 176-191)
Adapted from "MIDI by the Numbers" by D. Valenti-Electronic Musician 2/88, updated
1995/1999/2002 by the MIDI Manufacturers Association
Control Number
3rd Byte Value
(2nd Byte Value)
Control Function
Used
Decimal Binary Hex Value
As
0 00000000 00 Bank Select 0-127 MSB
1 00000001 01 Modulation Wheel or Lever 0-127 MSB
2 00000010 02 Breath Controller 0-127 MSB
3 00000011 03 Undefined 0-127 MSB
4 00000100 04 Foot Controller 0-127 MSB
5 00000101 05 Portamento Time 0-127 MSB
6 00000110 06 Data Entry MSB 0-127 MSB
7 00000111 07 Channel Volume (formerly Main Volume) 0-127 MSB
8 00001000 08 Balance 0-127 MSB
9 00001001 09 Undefined 0-127 MSB
10 00001010 0A Pan 0-127 MSB
11 00001011 0B Expression Controller 0-127 MSB
12 00001100 0C Effect Control 1 0-127 MSB
13 00001101 0D Effect Control 2 0-127 MSB
14 00001110 0E Undefined 0-127 MSB
15 00001111 0F Undefined 0-127 MSB
16 00010000 10 General Purpose Controller 1 0-127 MSB
17 00010001 11 General Purpose Controller 2 0-127 MSB
18 00010010 12 General Purpose Controller 3 0-127 MSB
19 00010011 13 General Purpose Controller 4 0-127 MSB
20 00010100 14 Undefined 0-127 MSB
21 00010101 15 Undefined 0-127 MSB
22 00010110 16 Undefined 0-127 MSB
23 00010111 17 Undefined 0-127 MSB
24 00011000 18 Undefined 0-127 MSB
25 00011001 19 Undefined 0-127 MSB
26 00011010 1A Undefined 0-127 MSB
27 00011011 1B Undefined 0-127 MSB
28 00011100 1C Undefined 0-127 MSB
29 00011101 1D Undefined 0-127 MSB
30 00011110 1E Undefined 0-127 MSB
31 00011111 1F Undefined 0-127 MSB
32 00100000 20 LSB for Control 0 (Bank Select) 0-127 LSB
LSB for Control 1 (Modulation Wheel or
33 00100001 21 0-127 LSB
Lever)
34 00100010 22 LSB for Control 2 (Breath Controller) 0-127 LSB
35 00100011 23 LSB for Control 3 (Undefined) 0-127 LSB
36 00100100 24 LSB for Control 4 (Foot Controller) 0-127 LSB
37 00100101 25 LSB for Control 5 (Portamento Time) 0-127 LSB
38 00100110 26 LSB for Control 6 (Data Entry) 0-127 LSB
LSB for Control 7 (Channel Volume, formerly
39 00100111 27 0-127 LSB
Main Volume)
40 00101000 28 LSB for Control 8 (Balance) 0-127 LSB
41 00101001 29 LSB for Control 9 (Undefined) 0-127 LSB
42 00101010 2A LSB for Control 10 (Pan) 0-127 LSB
43 00101011 2B LSB for Control 11 (Expression Controller) 0-127 LSB
44 00101100 2C LSB for Control 12 (Effect control 1) 0-127 LSB
45 00101101 2D LSB for Control 13 (Effect control 2) 0-127 LSB
46 00101110 2E LSB for Control 14 (Undefined) 0-127 LSB
47 00101111 2F LSB for Control 15 (Undefined) 0-127 LSB
LSB for Control 16 (General Purpose
48 00110000 30 0-127 LSB
Controller 1)
LSB for Control 17 (General Purpose
49 00110001 31 0-127 LSB
Controller 2)
LSB for Control 18 (General Purpose
50 00110010 32 0-127 LSB
Controller 3)
LSB for Control 19 (General Purpose
51 00110011 33 0-127 LSB
Controller 4)
52 00110100 34 LSB for Control 20 (Undefined) 0-127 LSB
53 00110101 35 LSB for Control 21 (Undefined) 0-127 LSB
54 00110110 36 LSB for Control 22 (Undefined) 0-127 LSB
55 00110111 37 LSB for Control 23 (Undefined) 0-127 LSB
56 00111000 38 LSB for Control 24 (Undefined) 0-127 LSB
57 00111001 39 LSB for Control 25 (Undefined) 0-127 LSB
58 00111010 3A LSB for Control 26 (Undefined) 0-127 LSB
59 00111011 3B LSB for Control 27 (Undefined) 0-127 LSB
60 00111100 3C LSB for Control 28 (Undefined) 0-127 LSB
61 00111101 3D LSB for Control 29 (Undefined) 0-127 LSB
62 00111110 3E LSB for Control 30 (Undefined) 0-127 LSB
63 00111111 3F LSB for Control 31 (Undefined) 0-127 LSB
64 01000000 40 Damper Pedal on/off (Sustain) <63 off, >64 on ---
65 01000001 41 Portamento On/Off <63 off, >64 on ---
66 01000010 42 Sustenuto On/Off <63 off, >64 on ---
67 01000011 43 Soft Pedal On/Off <63 off, >64 on ---
<63 Normal, >64
68 01000100 44 Legato Footswitch ---
Legato
69 01000101 45 Hold 2 <63 off, >64 on ---
70 01000110 46 Sound Controller 1 (default: Sound Variation) 0-127 LSB
Sound Controller 2 (default: Timbre/Harmonic
71 01000111 47 0-127 LSB
Intens.)
72 01001000 48 Sound Controller 3 (default: Release Time) 0-127 LSB
73 01001001 49 Sound Controller 4 (default: Attack Time) 0-127 LSB
74 01001010 4A Sound Controller 5 (default: Brightness) 0-127 LSB
Sound Controller 6 (default: Decay Time - see
75 01001011 4B 0-127 LSB
MMA RP-021)
Sound Controller 7 (default: Vibrato Rate - see
76 01001100 4C 0-127 LSB
MMA RP-021)
Sound Controller 8 (default: Vibrato Depth -
77 01001101 4D 0-127 LSB
see MMA RP-021)
Sound Controller 9 (default: Vibrato Delay -
78 01001110 4E 0-127 LSB
see MMA RP-021)
79 01001111 4F Sound Controller 10 (default undefined - see 0-127 LSB
MMA RP-021)
80 01010000 50 General Purpose Controller 5 0-127 LSB
81 01010001 51 General Purpose Controller 6 0-127 LSB
82 01010010 52 General Purpose Controller 7 0-127 LSB
83 01010011 53 General Purpose Controller 8 0-127 LSB
84 01010100 54 Portamento Control 0-127 LSB
85 01010101 55 Undefined --- ---
86 01010110 56 Undefined --- ---
87 01010111 57 Undefined --- ---
88 01011000 58 Undefined --- ---
89 01011001 59 Undefined --- ---
90 01011010 5A Undefined --- ---
Effects 1 Depth
(default: Reverb Send Level - see MMA RP-
91 01011011 5B 0-127 LSB
023)
(formerly External Effects Depth)
92 01011100 5C Effects 2 Depth (formerly Tremolo Depth) 0-127 LSB
Effects 3 Depth
(default: Chorus Send Level - see MMA RP-
93 01011101 5D 0-127 LSB
023)
(formerly Chorus Depth)
Effects 4 Depth (formerly Celeste [Detune]
94 01011110 5E 0-127 LSB
Depth)
95 01011111 5F Effects 5 Depth (formerly Phaser Depth) 0-127 LSB
Data Increment (Data Entry +1) (see MMA
96 01100000 60 N/A ---
RP-018)
Data Decrement (Data Entry -1) (see MMA
97 01100001 61 N/A ---
RP-018)
Non-Registered Parameter Number (NRPN) -
98 01100010 62 0-127 LSB
LSB
Non-Registered Parameter Number (NRPN) -
99 01100011 63 0-127 MSB
MSB
100 01100100 64 Registered Parameter Number (RPN) - LSB* 0-127 LSB
101 01100101 65 Registered Parameter Number (RPN) - MSB* 0-127 MSB
102 01100110 66 Undefined --- ---
103 01100111 67 Undefined --- ---
104 01101000 68 Undefined --- ---
105 01101001 69 Undefined --- ---
106 01101010 6A Undefined --- ---
107 01101011 6B Undefined --- ---
108 01101100 6C Undefined --- ---
109 01101101 6D Undefined --- ---
110 01101110 6E Undefined --- ---
111 01101111 6F Undefined --- ---
112 01110000 70 Undefined --- ---
113 01110001 71 Undefined --- ---
114 01110010 72 Undefined --- ---
115 01110011 73 Undefined --- ---
116 01110100 74 Undefined --- ---
117 01110101 75 Undefined --- ---
118 01110110 76 Undefined --- ---
119 01110111 77 Undefined --- ---
Controller numbers 120-127 are reserved for Channel Mode Messages, which rather than
Note: controlling
sound parameters, affect the channel's operating mode.
120 01111000 78 [Channel Mode Message] All Sound Off 0 ---
[Channel Mode Message] Reset All
121 01111001 79 Controllers 0 ---
(See MMA RP-015)
[Channel Mode Message] Local Control
122 01111010 7A 0 off, 127 on ---
On/Off
123 01111011 7B [Channel Mode Message] All Notes Off 0 ---
[Channel Mode Message] Omni Mode Off (+
124 01111100 7C 0 ---
all notes off)
[Channel Mode Message] Omni Mode On (+
125 01111101 7D 0 ---
all notes off)
[Channel Mode Message] Poly Mode On/Off
126 01111110 7E ** ---
(+ all notes off)
[Channel Mode Message] Poly Mode On (+
127 01111111 7F 0 ---
mono off +all notes off)
** Note: This equals the number of channels, or zero if the number of channels equals the number of
voices in the receiver.
Table 3a: Registered Parameter Numbers
To set or change the value of a Registered Parameter:
1. Send two Control Change messages using Control Numbers 101 (65H) and 100 (64H) to select the
desired Registered Parameter Number, as per the following table.
2. To set the selected Registered Parameter to a specific value, send a Control Change messages to the
Data Entry MSB controller (Control Number 6). If the selected Registered Parameter requires the LSB
to be set, send another Control Change message to the Data Entry LSB controller (Control Number 38).
3. To make a relative adjustment to the selected Registered Parameter's current value, use the Data
Increment or Data Decrement controllers (Control Numbers 96 and 97).
Parameter Number
Parameter
Control 101 Control 100 Data Entry Value
Decimal Function
Value (MSB) Value (LSB)
Pitch Bend MSB = +/- semitones
0 00H = 0 00H = 0
Sensitivity LSB =+/--cents
Channel Fine
Tuning Resolution 100/8192 cents
(formerly 00H 00H = -100 cents
1 00H = 0 01H = 1
Fine Tuning - 40H 00H = A440
see MMA 7FH 7FH = +100 cents
RP-022)
Channel
Coarse
Only MSB used
Tuning
Resolution 100 cents
(formerly
2 00H = 0 02H = 2 00H = -6400 cents
Coarse
40H = A440
Tuning - see
7FH = +6300 cents
MMA RP-
022)
Tuning
3 00H = 0 03H = 3 Program Tuning Program Number
Change
Tuning Bank
4 00H = 0 04H = 4 Tuning Bank Number
Select
Modulation For GM2, defined in GM2
5 00H = 0 05H = 5 Depth Range Specification.
(see MMA For other systems, defined by
General manufacturer
MIDI Level 2
Specification)