The Musical Instrument Digital Interface protocol, better known as MIDI, has been around since the early 1980s and remains a crucial element in music production today. Anyone working with electronic music or digital audio workstations (DAWs) like Logic Pro, Pro Tools, Ableton Live, etc., needs to know what MIDI is and how it works to produce music successfully. This article will provide an overview of MIDI basics and cover the recent improvements in the protocol that have been introduced with MIDI 2.0.
In the early 1980s, manufacturers of electronic music instruments realized there needed to be a standard means of digital communication between different hardware devices and computers. MIDI technology was standardized in 1983 by a panel of music industry representatives and is maintained by the MIDI Manufacturers Association (MMA). This standard allows for efficient communication between devices regardless of manufacturer. It also established uniform connectivity via five-pin MIDI cables. Later, standards for communication via USB cables and wireless connections were added to the MIDI spec.
One of the common misconceptions for beginners is that MIDI communicates audio signals. It does not. It only communicates data that instructs connected devices like synthesizers, sound modules and computers to generate sound. It specifies pitches and provides a way to change other parameters.
Let’s have a look at the basic MIDI messages:
The MIDI Note Message
When you press a key on a MIDI keyboard connected to a computer via some sort of interface or directly via a USB cable, three basic data values are transmitted:
Note Number – ranging from 0 to 127 (which is the range of seven bit data), these numbers relate directly to the note to be generated. The octave is indicated after the letter note name but to confuse things a bit, middle C on a piano (which is indicated by the MIDI note number 60) is sometimes designated as as C3 and sometimes as C4, depending on the manufacturer. You can typically switch this in the DAW you are using as well. Very high or very low MIDI note numbers like C -1 are often used not as sounding notes but as as key switches to change patches since those notes are beyond the usable range of most virtual instruments or hardware synths.
Here are some examples of MIDI note ranges as related to string instruments. Here, Middle C is indicated as C4, but in terms of MIDI note number, it is always 60.
It should be noted that the octave number starts with the note C, so for a C scale starting at C2, the progression would be C2, D2, E2, F2, G2, A2, B2, C3, D3, E3, etc.
Knowing the octave of the note you are programming is of course crucial and most DAWs will provide a way to see what octave you are using whether it be in a piano roll or step sequencer interface.
Velocity – also ranges from 0 to 127 and can be related to volume — but it’s not the same thing. For example, when you hit a piano key with a certain velocity it generates various overtone content related to the intensity of the strike. You can strike a key at a velocity of 127 and then turn down the volume independently. So volume does not equal velocity in terms of MIDI. Velocity values are often used to trigger different samples to more accurately simulate real instruments. Velocity values can also be used to modulate or change the parameters of an electronic instrument or create a buildup of intensity. Velocity is easily edited in any DAW and is a crucial element in music production often overlooked by those just starting their musical journey. A velocity of 0 is in essence the same as a note-off message. Velocity is often represented by a color that corresponds to the velocity value.
Channel – typically ranging 1 through 16, Channel controls where information will be sent within a DAW or to external instruments set to receive data on that Channel. This allows you to control specific devices or virtual synths independently.
These three parameters alone can achieve an amazing amount of control including the pitch, dynamics, timbre and duration of a sound. Duration can be simply the time difference between the Note On message (velocity > 0) and the Note Off message (velocity = 0). Or, in the case of one-shot samples, it is defined by the duration of the sample itself, triggered by the Note On message.
CC or Continuous Controller Messages are typically generated via a MIDI controller that has sliders or knobs that transmit CC data (usually 0 to 127). This sort of data can control any parameter in a virtual synth, hardware instrument or MIDI-enabled effect. You can also use CC data to control DAW parameters like volume sliders, panning, etc. unless the DAW itself restricts such control to proprietary controllers.
Some DAWs have MIDI effect plugins like the Modulator in Logic Pro that can generate and send CC data to virtual synths, effects or external devices. These are extremely powerful and should be explored to reap the benefits.
Aftertouch (or pressure controller data) is available on some (but not all) MIDI controllers. When you press a key on an aftertouch-capable controller, you can increase or decrease the subsequent pressure and that data can be used to control parameters like vibrato or filter cutoff frequency in a virtual instrument. It’s a nice feature and worth the extra cash if you are shopping for a MIDI controller.
Pitch bend messages are sort of of like CC messages but dedicated to pitch control and are often 14-bit messages, meaning you can get a more precise frequency without audible stepped quantization artifacts. You can set the range of pitch bend in the MIDI controller or receiving instrument based on the context. The pitch bend wheel on a keyboard usually rests at the center point and you can often have a different range for the positive and negative values if you so choose.
All of these sorts of messages will contain the CC number or controller type, a value (7 or 14 bit) and channel number.
DAWs usually have some way of visually monitoring incoming MIDI data that will identify the type of message, value and channel number. This is a quick way of identifying CC numbers especially, as MIDI controllers use a variety mapping schemes for knobs and sliders.
Of course, you can always consult the device manual or refer to the MIDI implementation chart as well.
Some common CC numbers are:
Controller 1 – Mod Wheel
Controller 2 – Breath Control
Controller 64 – Sustain
Controller 7 – Volume
MIDI Implementation Charts
Every piece of MIDI gear comes with a MIDI implementation chart that identifies how parameters can be controlled via CC messages, capabilities such as aftertouch, etc. You may never need to look at these somewhat obscure charts, but they become handy if you need to control a specific parameter in an external synth and need to know how it can be accessed. Below is a partial MIDI implementation chart for my Korg minilogue xd.
These sorts of messages are used to synchronize the clock of one device to another. This makes it possible to start and stop external sequencers connected to a computer, and can be based on the DAW’s transport. You can also sync the tempo of the sequencer as well as any LFOs being used to modulate parameters.
There are three means of communication in terms of MIDI. The first method that was developed when the protocol was established was the five-pin MIDI DIN connector which is still used today.
This is a unidirectional protocol meaning basically that MIDI OUT needs to go to MIDI IN and vice versa. There is also MIDI Thru, which sends out anything received in the MIDI In port unaltered. Some devices allow you to switch the functionality of the ports as well.
USB MIDI was a huge advancement in that you no longer needed an interface but could use a standard USB jack on a computer or hub to connect a controller or MIDI device. Not only that, but this sort of communication is bi-directional, so moving a parameter in a virtual synth can be visually indicated on a MIDI controller that uses MIDI encoders. So the visual representation on the controller matches the virtual interface and vice versa.
3.5 mm MIDI connectors are found on some devices where space is limited. Adapters are available to connect to standard MIDI jacks or cables.
Wireless MIDI is especially useful for applications that are cell phone and tablet-based. Some traditional controllers are also now allowing wireless communication. The lack of, or impracticality of, physical connections makes this an essential means of communication.
RTP MIDI – this is a method to send MIDI messages over a network using Wi-Fi or CAT5/CAT6 ethernet cables. This eliminates the length limitations of DIN and USB cables. Interfaces such as those made by iConnectivity have this capability.
Every DAW has a way of routing MIDI data generated in the DAW itself or from a MIDI controller to an external device. Look for something referring to an external instrument — it should have a way to route MIDI data via a specific channel.
A fairly recent and long-awaited development is MIDI 2.0. We are in the golden age of MIDI in terms of connectivity and control. Two huge developments in this new protocol include:
MPE (MIDI Polyphonic Expression) – This enables individual control of parameters such as pitch bend, vibrato, timbre, and volume on a note-by-note basis, while MIDI previously only allowed for control of these parameters on a track-wide or channel-wide basis. Not all virtual instruments, hardware synths or controllers are MPE-capable yet, but that is quickly changing. More and more virtual instruments now have this functionality such as Logic Pro’s Alchemy.
14 Bit CC data can now be implemented offering very precise control without audible quantization artifacts. Previously nearly all CCs used 7 bit data, which only offered 128 data points as opposed to the 16,348 offered by 14 bit CCs.
MIDI.org is a great resource for all things MIDI.
Also, check out some of my past articles:
If you are a music producer or musician you owe it to yourself to know the basics of MIDI. This article barely scratches the surface so I suggest you dig deeper to reveal the potential and creative possibilities.