Table 1 of 3 - Summary of MIDI Messages
The following table lists many of the major MIDI messages in numerical (binary) order. This table is intended as an overview of MIDI, and is by no means complete.
See also:
- Table 2 - Expanded Messages List (Status Bytes)
- Table 3 - Summary of Control Change Messages (Data Bytes)
Additional messages are listed in the printed documentation available from the MMA.
WARNING! Details about implementing these
messages can dramatically impact
compatibility with other products. We strongly recommend consulting the
official
Complete MIDI 1.0 Detailed Specification for additional information.
Table 1: MIDI 1.0 Specification Message Summary
Updated 1995 By the MIDI Manufacturers Association
Status Data Byte(s) Description
D7----D0 D7----D0
-------------------------------------------------------------------------
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.
(vvvvvvv) is the new value (0-119).
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.





















