Home » Recording And Music Production » Recording Articles and Music Production Articles » Midi Message Format
Midi Message Format
The MIDI Message Format, as defined within the MIDI Specification, defines two basic types of message bytes: the status byte and the data byte. The Most Significant Bit (MSB) 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 messages, the length can be less.
Table of Contents
Midi Message Format Explained
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.
Note: 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
Term | Meaning |
---|---|
n | MIDI Channel Number (0-F) |
LSB | Least Significant Byte |
MSB | Most Significant Byte |
There are several different types of controller messages.
MIDI Data Messages - Control Messages
Note: 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 Controller) | 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 Controller) | 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 Increment) | 7F | ||
62 (NRPN) | LSB | ||
63 (NRPN) | MSB | ||
64 (RPN) | LSB | ||
65 (RPN) | MSB | ||
79 (Reset All Controllers) | 7F | ||
Channel Modes | Bn | 7A (Local) | 00 (off) / 7F (on) |
7B (All Notes Off) | 0 | ||
7C (Omni Off) | 0 | ||
7D (Omni On) | 0 | ||
7E (Mono) | 00-0A | ||
7F (Poly) | 0 |
Key
Term | Meaning |
---|---|
n | MIDI Channel Number (0-F) |
LSB | Least Significant Byte |
MSB | Most Significant Byte |
NRPN | Non-Registered Parameter Number |
RPN | Registered Parameter Number |
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 |
MIDI Message Format Conclusion
Use these tables to be able to construct or deconstruct MIDI messages. This could be for software programming, or MIDI file processing, or debugging issues in MIDI data streams. If you have any questions about the MIDI message format you can discuss this article in our Music Forum.
Related Articles
If you want to find out more about recording and music production? If so, you can find articles and tutorials on our Recording and Music Production Articles page.
Articles of specific interest might be:
Useful Links
Would you like to join in the discussion about recording, music production, or music technology? For that matter, just about any music-related subject? Then join our music community!
You might also find our Music Production and Recording Board particularly useful.
To help you to understand specific terms, take a look at our Music Glossary. It has extensive descriptions of music technology terms and concepts. It also contains entries about music theory and terms from across the music industry including music marketing and music promotion.
Become A Contributor To The Songstuff Music Library
Contributors Wanted
Are you a qualified entertainments lawyer? Or perhaps you have in-depth knowledge about tour management? Are you an experienced band manager? Or perhaps a booking agent? Would you be interested in helping musicians to build their skills and understanding by contributing demonstration videos, reviews, articles and tutorials to the Songstuff music library? We rely upon musicians, and people working within the music industry, being willing to contribute to our knowledge base.
As well as contributions to our music library, we feature contributions in our site blogs and social media portals. In particular, we add video contributions to the Songstuff Channel on YouTube.
Please contact us and we can explore the possibility of you joining our contributors asap.
Songstuff Media Player
If you would like to listen to some awesome indie music while you browse, just open our media player. It opens in another window (or tab) so your playlist can play uninterrupted as you browse.
Open the Songstuff Media Player.
Playlists are curated by SSUK for the Independent Music Stage and Songstuff.