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.

MIDI Message Format, MIDI Information and Learning - Binary Code
Facebook
X
Pinterest
LinkedIn
Mix
Reddit
Threads
Email

Table of Contents

Midi Message Format Explained

StatusData 1Data 2
1 t t t n n n n0 x x x x x x x0 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!

MessageStatusData 1Data 2
Note Off8nNote NumberVelocity
Note On9nNote NumberVelocity
Polyphonic AftertouchAnNote NumberPressure
Control ChangeBnController NumberData
Program ChangeCnProgram NumberUnused
Channel AftertouchDnPressureUnused
Pitch WheelEnLSBMSB

Key

TermMeaning
nMIDI Channel Number (0-F)
LSBLeast Significant Byte
MSBMost Significant Byte

There are several different types of controller messages.

MIDI Data Messages - Control Messages

Note: All values are in HEX format!

MessageStatusData 1Data 2
14-bit controllers MSBBn01 (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 LSBBn21 (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 controllersBn40 (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 ModesBn7A (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

TermMeaning
nMIDI Channel Number (0-F)
LSBLeast Significant Byte
MSBMost Significant Byte
NRPNNon-Registered Parameter Number
RPNRegistered Parameter Number

System Exclusive

MessageStatusData 1Data 2
System Exclusive StartF0Manufacturers IDData, data, data
System Exclusive EndF7
Polyphonic AftertouchAnNote NumberPressure

System Common

MessageStatusData 1Data 2
Song PointerF2LSBMSB
Song SelectF3Song Number
Tune RequestF6

Midi Time Code

MessageStatusData 1Data 2
Quarter FrameF1Data

System Realtime

MessageStatusData 1Data 2
Timing ClockF8
Measure EndF9Unused
StartFA
ContinueFB
StopFC
Active SensingFE
ResetFF

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.