The MIDI Message specification (or "MIDI Protocol") is probably the most important part of MIDI.
Though originally intended just for use over MIDI Cables to connect two keyboards, MIDI messages are now used inside computers and cell phones to generate music, and transported over any number of professional and consumer interfaces (USB, FireWire, etc.) to a wide variety of MIDI-equipped devices. There are different message groups for different applications, only some of which are we able to explain here.
MIDI is a music description language in digital (binary) form. It was designed for use with keyboard-based musical instruments, so the message structure is oriented to performance events, such as picking a note and then striking it, or setting typical parameters available on electronic keyboards. For example, to sound a note in MIDI you send a "Note On" message, and then assign that note a "velocity", which determines how loud it plays relative to other notes. You can also adjust the overall loudness of all the notes with a Channel Volume" message. Other MIDI messages include selecting which instrument sounds to use, stereo panning, and more.
The first specification (1983) did not define every possible "word" that can be spoken in MIDI , nor did it define every musical instruction that might be desired in an electronic performance. So over the past 20 or more years, companies have enhanced the original MIDI specification by defining additional performance control messages, and creating companion specifications which include:
- MIDI Machine Control
- MIDI Show Control
- MIDI Time Code
- General MIDI
- Downloadable Sounds
- Scalable Polyphony MIDI
Alternate Applications MIDI Machine Control and MIDI Show Control are interesting extensions because instead of addressing musical instruments they address studio recording equipment (tape decks etc) and theatrical control (lights, smoke machines, etc.).
MIDI is also being used for control of devices where standard messages have not been defined by MMA, such as with audio mixing console automation.
Tables displaying some of the most commonly used messages for musical performance are available below and via the links in the left-hand column.. For the complete specification(s), you will need to get the most recent edition of the Complete MIDI 1.0 Detailed Specification and any supplemental documents and/or specifications that are appropriate.
MIDI Message Tables