MIDI Basics A Cheat Sheet - EMusician

MIDI Basics A Cheat Sheet

Cheat Sheet delivers concise, explicit information on specific recording/audiorelated subjects.
Publish date:

Cheat Sheet delivers concise, explicit information on specific recording/audio-related subjects. This installment describes MIDI basics for those raised on audio, but who now want to work with MIDI.


MIDI means Musical Instrument Digital Interface, and is a special-purpose computer language devoted to music. Consider MIDI as a catch-all name for the process of sending digital control messages from one device (such as a footswitch, keyboard, sequencer, etc) to another device (e.g., a synthesizer). This can happen over a physical cable or within a computer.


This is a physical device that communicates with your computer so your host program can send MIDI data to, and receive MIDI data from, the physical world. There are two main interface types. One includes hardware 5-pin DIN MIDI in and out connectors that hook up to hardware MIDI devices. The other dispenses with physical connectors and sends/receives MIDI data via USB (or more rarely, FireWire), so you don’t need a dedicated MIDI interface as long as your computer has a spare port.


A MIDI Thru connector complements the in and out connectors. It re-transmits the incoming data at the MIDI in, which can then feed another MIDI-compatible device.


The MIDI language expresses various aspects of a musical performance, such as the notes that are played, their dynamics (called “velocity”), pitch bend wheel changes, and more. When you play (for example) a synthesizer, its MIDI out transmits data that quantifies all aspects of your performance. The computer records this data, which you can then play back through the computer interface’s MIDI out, and use to drive either the synthesizer you played or any other MIDIcompatible synthesizer. This instrument will reproduce the performance exactly as you performed it.


You can change a MIDI note’s pitch, dynamics, start time—almost any aspect of the performance—with a host program’s MIDI editing capabilities. This makes it very easy to correct mistakes; for example, it’s very difficult to do something like change one note inside a chord when dealing with audio, but it’s simple with MIDI. MIDI also makes it easy to change an instrument’s sound, because all you need to do to is send the MIDI data to a different instrument, or different sound within the same instrument. Also, MIDI-driven tracks handle pitch transposition and tempo changes better than digital audio, because you’re changing the data being fed to notes—not the timbral quality of the notes themselves.


MIDI groups information in multi-byte “sentences” or “messages” of one or more “words.” Status words identify a particular function, such as note on, note off, pitch wheel change, and so on. Data words provide data on the function identified by the status word, such as which note is on and/or how much the pitch wheel has changed.


MIDI can send and receive data over 16 different virtual channels; each channel can carry unique data and drive its own polyphonic MIDI instrument. This is sent over a single MIDI cable or connection as MIDI transmits information, not audio. MIDI sends this data serially—each word is sent consecutively. Tagging each piece of data with a channel identification number (ID) allows programming a particular MIDI instrument to look only for data with that particular channel ID.


Two common MIDI modes determine how devices respond to channelized data. Omni mode accepts data coming in over any channel. Regardless of the channel ID, an instrument or track in Omni mode will attempt to act on any incoming data. Poly mode receives only messages intended for a specific channel. Thus, two MIDI receivers set to receive different channels could monitor the same data stream, but be controlled independently of each other.


When MIDI was invented, 16 channels seemed like a reasonable number. However as instruments evolved, this clearly wasn’t enough. Some MIDI interfaces include several MIDI ports, each of which can carry 16 channels. For example, an interface with four ports could deliver data on 4 x 16 = 64 MIDI channels.


These allow changing an instrument sound on the fly, even in the middle of a phrase if necessary, by calling up a different program (e.g., guitar sound instead of piano). MIDI originally provided for 128 MIDI program change messages. Later, a Bank Select message was added that allows selecting up to 16,384 banks of 128 programs each.


These messages translate the position of pedals, knobs, levers, switches, and other physical “controllers” into digital MIDI data that can be recorded into a computer sequencer, then played back to vary a particular parameter within an individual program (delay feedback, filter frequency, vibrato amount, etc.). These messages usually digitize the physical controller motion into 128 discrete values (0–127).


MIDI “tags” each continuous controller message with an ID from 0 to 127. Don’t confuse this with channel IDs; each channel can support up to 128 controllers, so (for example) a Controller 7 message appearing over Channel 2 is independent from a Controller 7 message appearing over Channel 3.


MIDI also includes messages that define tempo (therefore allowing easy tempo changes), synchronization among multiple pieces of MIDI gear, and transport control.