MIDI Specification Message Summary
 
Updated 1995 By the MIDI Manufacturers Association
 
WARNING: The details of this implementation could dramatically affect compatibility with other products. It is recommended that you consult the official MMA detailed specification for any additional information.
 
Status
D7----D0
Data Byte(s)
D7----D0
Description
Channel Voice Messages
1000cccc 0nnnnnnn
0vvvvvvv
Note Off event.
This message is sent when a note is released (ended).
(nnnnnnn) is the note number.
(vvvvvvv) is the velocity.
1001cccc 0nnnnnnn
0vvvvvvv
Note On event.
This message is sent when a note is depressed (start).
(nnnnnnn) is the note number.
1010cccc 0nnnnnnn
0vvvvvvv
Polyphonic Key Pressure (Aftertouch).
This message is sent when the pressure (velocity) of a previously triggered note changes.
(nnnnnnn) is the note number.
(vvvvvvv) is the new velocity.
1011cccc 0nnnnnnn
0vvvvvvv
Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Certain controller numbers are reserved for specific purposes. See Channel Mode Messages.
(ccccccc) is the controller number.
(vvvvvvv) is the new value.
1100cccc 0ppppppp Program Change.
This message sent when the patch number changes. (ppppppp) is the new program number.
1101nnnn 0ccccccc Channel Pressure (After-touch).
This message is sent when the channel pressure changes. Some velocity-sensing keyboards do not support polyphonic after-touch. Use this message to send the single greatest velocity (of all the current depressed keys).
(ccccccc) is the channel number.
1110nnnn 0lllllll
0mmmmmmm
Pitch Wheel Change.
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
0vvvvvvv
Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control by using reserved controller numbers. The numbers are:

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
0ddddddd
..
..
0ddddddd
11110111
System Exclusive.
This message makes up for all that MIDI doesn't support. (iiiiiii) is a seven bit Manufacturer's I.D. code. If the synthesizer recognizes the I.D. code as 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.)
11110001   Undefined.
11110010 0lllllll
0mmmmmmm
Song Position Pointer.
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.
11110101   Undefined.
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.
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.
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.
 
The MIDI Manufacturers Association approves of electronic distribution of this document via this and other sites, as long as it is not modified in any way.
 
Studee : The Studio Education for Thai Musician..