Within the MIDI Specification there are two basic types of message byte: the status byte and the data byte. The Most Significant Bit of a status byte is always 1, the Most Significant Bit of a data byte is always 0. The maximum length for a standard MIDI message is three bytes but for some types of MIDI message the length can be less.
Status | Data 1 | Data 2 |
---|---|---|
1 t t t n n n n | 0 x x x x x x x | 0 x x x x x x x |
There are only 7 bits, in each byte, to represent the unique data that the message byte contains. It can easily be calculated that there are only 2^7, or 128, discrete values available per byte. This means that there are 8 fundamental types of status message (t) which, if a channel specific message, can be sent to any one of 16 different MIDI Channels. If the status message is not channel specific the lower nibble (4 bits) of the status represents one of 16 different message sub-classes.
There are two different classifications of MIDI messages: MIDI Data Messages and MIDI System Messages. MIDI Data Messages are channel specific, MIDI System Messages are not channel specific.
All values are in HEX format!
Message | Status | Data 1 | Data 2 |
---|---|---|---|
Note Off | 8n | Note Number | Velocity |
Note On | 9n | Note Number | Velocity |
Polyphonic Aftertouch | An | Note Number | Pressure |
Control Change | Bn | Controller Number | Data |
Program Change | Cn | Program Number | Unused |
Channel Aftertouch | Dn | Pressure | Unused |
Pitch Wheel | En | LSB | MSB |
Key |
---|
n is the MIDI Channel Number (0-F) |
LSB is the Least Significant Byte |
MSB is the Least Significant Byte |
There are several different types of controller messages. |
MIDI DATA Messages - Control Messages
All values are in HEX format!
Message | Status | Data 1 | Data 2 |
---|---|---|---|
14 bit controllers MSB | Bn | 01 (Modulation Wheel) | Data |
02 (Breath Controller) | Data | ||
04 (Foot Contoller) | Data | ||
05 (Portamento Time) | Data | ||
06 (Data Entry Slider) | Data | ||
07 (Main Volume) | Data | ||
14 bit controllers LSB | Bn | 21 (Modulation Wheel) | Data |
22 (Breath Controller) | Data | ||
24 (Foot Contoller) | Data | ||
25 (Portamento Time) | Data | ||
26 (Data Entry Slider) | Data | ||
27 (Main Volume) | Data | ||
7 bit controllers | Bn | 40 (Sustain Pedal) | 00-3F (off) 40-FF (on) |
41 (Portamento) | 00-3F (off) 40-FF (on) | ||
42 (Sostenato pedal) | 00-3F (off) 40-FF (on) | ||
43 (Soft pedal) | 00-3F (off) 40-FF (on) | ||
60 (Data Increment) | 7F | ||
61 (Data Decrement) | 7F | ||
62 (Non-Registered Parameter Number) | LSB | ||
63 (Non-Registered Parameter Number) | MSB | ||
64 (Registered Parameter Number) | LSB | ||
65 (Registered Parameter Number) | MSB | ||
79 (Reset All Controllers) | 7F | ||
Channel Modes | Bn | 7A (Local) | 00 (off) / 7F (on) |
7B (All Notes Off) | 00 | ||
7C (Omni Off) | 00 | ||
7D (Omni On) | 00 | ||
7E (Mono) | 00-0A | ||
7F (Poly) | 00 |
Key |
---|
n is the MIDI Channel Number (0-F) |
LSB is the Least Significant Byte |
MSB is the Least Significant Byte[/td |
System Exclusive
Message | Status | Data 1 | Data 2 |
---|---|---|---|
System Exclusive Start | F0 | Manufacturers ID | Data, data, data |
System Exclusive End | F7 | ||
Polyphonic Aftertouch | An | Note Number | Pressure |
System Common
Message | Status | Data 1 | Data 2 |
---|---|---|---|
Song Pointer | F2 | LSB | MSB |
Song Select | F3 | Song Number | |
Tune Request | F6 |
MIDI Time Code
Message | Status | Data 1 | Data 2 |
---|---|---|---|
Quarter Frame | F1 | Data |
System Realtime
Message | Status | Data 1 | Data 2 |
---|---|---|---|
Timing Clock | F8 | ||
Measure End | F9 | Unused | |
Start | FA | ||
Continue | FB | ||
Stop | FC | ||
Active Sensing | FE | ||
Reset | FF |
Key |
---|
n is the MIDI Channel Number (0-F) |
LSB is the Least Significant Byte |
MSB is the Least Significant Byte |
Discuss this article in our Music Forum.
John Moxey
Songstuff Site Crew
About Songstuff
Songstuff was launch in September 2000 and has grown into an all round resource for musicians, attracting interest from musicians of all experience and skill levels. The Songstuff Songwriting and Music Community has grown into an essential, dynamic networking resource, where members exchange ideas and collaborate on common projects. Great thanks and appreciation are owed to the moderation team for helping to grow the community into the active and creative place it has become.
Site Crew conduct draw on their experience and contacts to perform interviews, and write quality articles on a variety of subjects. In addition the Songstuff Community members regularly contribute articles and Songstuff has many regular contributors from across the field of music.
Our Crew
Songstuff Site Crew are highly experienced and cover a broad range of music industry roles including label owners, music educators, professional musicans, songwriters, band managers and other music industry professionals.
This article has been written by one of the Songstuff Site Crew.