What is MIDI and How Does it Work?

It’s not just you, MIDI is a complicated topic. Even though it’s been THE industry standard for 36+ years, and many musicians use it in one application or another, it’s still a hard concept to wrap our heads around.

We know that it works. And while the technical functionality is complicated, the practical application is very easy. You take a MIDI controller, like a footswitch or a keyboard, plug it into a MIDI equipped amp or sound module (on your computer via an interface or an outboard unit), and it magically works.

That speaks volumes to the reliability and relevance of 36-year-old technology.

Understanding How MIDI Works and Why It’s So Great

For musicians, MIDI has been one of the greatest under-appreciated technologies. Why is that? It could be the same reason we just expect on our mini-miracle known as a smart phone to do tasks that were incredibly impossible 10 years ago: When something works, we don’t typically question it. 

But there is a lot of value in understanding how something works. Especially something that’s had such an impact on the musical equipment industry. Actually, songwriting and composition wouldn’t be the same without MIDI.

I’ll show you what I mean by that. But first let’s talk about what MIDI actually is. 

What is MIDI? (Musical Instrument Digital Interface Standard) 

In the early 1980’s there was a flood of electronic musical instruments, mostly synthesizers, but no way to synchronize these instruments if they were from different companies. You couldn’t take sounds from one and use it on another.

A big part of the reason for this is there were multiple data interchange interfaces (basically, pre-MIDI functionality like the Digital Control Bus and CV/gate). They had their own protocols for how the synthesizer responded to the keys being triggered, and used proprietary inputs and cables.

Seeing this as a potential roadblock for the growth of the industry, and wanting to increase the capabilities of these instruments, several founders of companies like Roland, Yamaha, and Moog (just to name a few) got together to develop a standardized method of communication between devices.

The MIDI Standard

This standard was called the MIDI Standard (Musical Instrument Digital Interface Standard), and was unveiled at the 1983 Winter NAMM show.

(The first useful application was connecting multiple synthesizers. You’d play a key on one, and they all would play that note. Multiple sounds and textures with one key strike. This opened a new sonic realm for live and studio performances. But it was only the beginning.)

In 1985, the MIDI Manufacturers Association (MMA) was founded by the companies behind MIDI to create and enhance these standards.

It’s important to note that no one owns MIDI. It’s THE standard for digital communication for and between electronic musical instruments, and communicating musical information between these instruments and computers/software.

This is a testament to the joint efforts to create and maintain the standard, and how well it actually works.

Communication With a Device or Controller

In its essence, MIDI is a communication protocol allowing two devices to communicate digitally. This could be a MIDI controller sending commands to change the channel on a guitar amp, or a MIDI keyboard sending musical information to a synthesizer or sound module.

It’s a one-way communication though. The MIDI controller (footswitch or keyboard alike) can’t receive data, it can only send it. They’re devices telling something what to do.

They’re just sending data.

That’s right, MIDI is not audio. MIDI is data, and nothing more. Let me show you what I mean.

Picture yourself recording a piano part for your upcoming thrash metal/jazz fusion band’s debut release. Here is a very common signal flow for your MIDI keyboard.

MIDI keyboard > Computer (via interface) > Sound Module in Computer

The sound module will contain the synthesized music sounds. Like a grand piano, or Hammond organ. This could be the stock sounds that come with your Digital Audio Workstation (DAW- Like ProTools), or a plug-in like Waves.

You’ll record your take live, and nail it on the first shot (well done!). But instead of seeing an audio file in ProTools like a guitar track, you’ll see a midi track. Open the piano roll in your session and you’ll see a bunch of rectangles. If you play them back you hear audio, but you only see these shapes. 

This is the MIDI message.

midi piano message

(MIDI message as displayed in the piano roll)

The shapes are the visual representation of the data that you transmitted in your take. They tell your sound module or synthesizer what to play. What notes are to be played, and with what velocity. When the notes start and stop.

These shapes are a digital piano roll.

Similar to the physical piano roll on player pianos (pictured below). The piano roll itself is just a paper material with specific holes punched into it. These holes tell the piano what notes are to be played, and when the notes start and stop.

analog piano roll

(“Analog” piano roll, where the piano roll in DAWs get their name)

But it isn’t the piano. It’s just a command the piano follows.

Back to the digital version, this piano roll is contained within a music sequencer. Which most DAWs have nowadays. This music sequencer lets you make edits to what was being played. You’re manipulating your take. You can take out bad notes. Extend or shorten notes. Quantize notes to the grid. Add notes that were missing.

Since this is just data and not an audio file, you can edit it anyway you want or need to. You can write parts completely in the music sequencer.

How Does MIDI work?

Once you understand that MIDI is a data transmission, you can think of a MIDI controller as a super high-tech mouse. You press a key, a command is sent to the sound module, and the sound module executes the command. 

(Something to note: we’ll be seeing values of 0-127 across the next section, all with different applications. These values have to do with MIDI being in 7-bit resolution. With this resolution, you have 27 (or 128) potential values.)

Channel Voice Message 

For example, when you press a key on a MIDI keyboard, it sends a data message through the MIDI OUT port. This message is called the Channel Voice Message. It’s the musical performance information as received from (played on) the MIDI controller.

The message begins with a NOTE ON message (when you press the key down), followed by the key number (what key you pressed) and the VELOCITY information (how hard you pressed the key, using the 0-127 values).

When you release the key, a NOTE OFF (when you release it) message is sent, followed by RELEASE VELOCITY information (which is typically ignored).

One additional notable message is called Aftertouch. This is only possible if your keyboard has the hardware, which is a secondary pressure sensitive sensor strip under the keys. After a note is played and sustained, press the key down further to send an Aftertouch message. With Aftertouch you can control vibrato, volume (swells), and other programmable parameters.

MIDI Channels

MIDI devices are capable of having 16 channels (or 16 unique streams of data). The limitation came from the 5-pin MIDI cable only being capable of transmitting 16 channels at once. In each channel will be an instrument with all of its messages (which we’ll get into more shortly)

Think of MIDI Channels like channels on a sound board. Each channel is completely independent of another, though they’re on the same console. You’ll have a vocalist on channel 1, bass on channel 2, guitar on channel 6, and so on.

While they’re all separate instruments and follow separate paths, they’re all able to perform at the same time.

Within each MIDI Channel are MIDI Tracks. These are not the same. The best example is a drum set. You’ll have a kick drum track, snare track, high hat track, tom tracks, and cymbal tracks. All components of the drum set are on different tracks, but flow through the same channel (channel 9 for example).

Program Change Message

MIDI is capable of having 128 programs, and assign Program Change Numbers (PC#) to each (0-127). These programs are also referred to as patches, instruments, presets, etc.

For most applications these are synthesized instruments, like a grand piano, flute, guitar, bass, etc. Changing from program to program is similar to changing channels on an amplifier.

These programs were standardized in sound sets (does this bring back memories of Casio keyboards from Sears catalogs??). This is the standard for General MIDI.

However, Manufacturers of sound modules don’t have to conform to this. The manufactures can shape the tones in any way they want, and assign anything to any program.

While MIDI itself can only support 128 programs/patches, devices (hardware) can create banks. Each bank has 128 patches, so you have much more capabilities via banking.

Control Change Message

While the Channel Voice Message is telling the sound module what to play (the musical performance), the Control Change Message is the extra “pizazz” as set by your expression controls on your MIDI controller. These expression controls being sliders, wheels, switches, and pedals.

These expression devices control things like vibrato depth and the pitch wheel. They can even control things like brightness, effects levels, and other parameters as set by the manufacturer.

They’re often called Control Change Numbers (CC#) and have a value ranging from 0-127. If you think of a parameter like velocity, 0 would be silent, and 127 is the hardest hit possible.

As another example, a CC# value of 0 for reverb depth would be unnoticeable, and 127 would be the max wash possible on the unit.

These CC#s can be anything the manufacturer wants, even non-effect changes. For example, the Strymon Timeline delay pedal will allow you to assign Control Changes to perform functions like Record/Start/Stop in the looper function.

In addition to the dozens of pedal parameters with predefined value ranges (delay repeats, mix, etc).

Once these are set by the user, a simple trigger (foot switch on a MIDI controller) will send the Control Change Message to the pedal, which completes the task. AKA, changes the mix setting on your delay. 

MIDI Note Numbers

MIDI Note Numbers range from 0-127, and all align to certain notes on a piano keyboard (represented in frequencies). Even though a full-sized keyboard only has 88 keys (or 108 if you’re using a Stuart & Sons extended range piano), you have more potentials on either side (bass and treble) due to MIDI’s 7-bit resolution.

You can check out the full list of values here.

System Exclusive Messages (SysEx)

System Exclusive Messages, also written as SysEx, are commands manufacturers can assign that are unique to their equipment. This could be any number of things, both in Real Time and Non-Real Time.

The way they’re coded allows them to be ignored by non-compatible devices. For example, an Alesis specific SysEx message would be ignored on a Roland device.

The most common uses for Non-Real Time SysEx messages on sythns is to dump (and then recall) patches on another device from your controller (synth). This replaced the need for removable storage on the controller itself.

They also have another purpose for the studio musician.

SysEx messages can be used to control recording equipment. Sending commands such as Record, Stop, Pause, and Play are examples of Real Time System Exclusive Messages.

What This All Looks Like In The Studio

Let’s look at an example of using a MIDI keyboard that’s plugged into your computer via a USB interface. In your computer you’re running a sound module, like Waves. 

When you hit the C4 key (middle C) on a MIDI keyboard, you’re sending a one-way signal from the keyboard to your computer. This signal is converted into MIDI data.

What key you hit (notation and pitch), how hard or soft you hit it (velocity), considerations like vibrato or pan slides you may have active on your keyboard, and any Aftertouch information if your keyboard has that feature.

This data is then interpreted by your music sequencer and played back as audio by your sound module.

If you’re using a Yamaha Grand Piano patch, middle C will sound like you hit the middle C on the grand piano, at the velocity at which you played it, and any sound control settings as you have them set (like reverb).

Keeping this in mind, this is exactly what happens when you’re using a virtual MIDI keyboard in the piano roll inside your DAW. No matter what sound library you use, synthesizers or drums, horns or strings, every key on the virtual keyboard is assigned to a specific MIDI channel.

Your virtual MIDI keyboard is taking the place of a physical MIDI keyboard.

In here you can add performance dynamics like velocity, control the key-on and key-off settings on each note (when a note starts and how long each note is sustained), and adjust expression controls. It doesn’t feel like you’re using MIDI here. It just feels like you’re putting blips on a grid and making music. A little like Mario Paint. 

But it absolutely is MIDI. In the 21st century. 

MIDI Over Bluetooth / MIDI Over USB 

Speaking of living in the 21st century...MIDI transmissions don’t just happen with the 5-pin MIDI cables. USB is perfectly capable of transmitting MIDI data. In fact, there’s a good chance you’ve used MIDI via USB, and had no idea it was MIDI.

USB is faster, more universally accepted (computers don’t come with MIDI ports), and it can power your device while MIDI can’t.

In fact, USB is similar to MIDI as far as being an act of standardization across devices in its industry. It even has a non-profit organization similar to the MMA. But this article is about MIDI, not USB, so I digress.

Because MIDI is “simply” data, this data can be transferred wirelessly via Bluetooth. We’re only just starting to see this in devices (MIDI controllers and apps), but I suspect this will be a growing trend in a wireless world. 

What’s The Real Benefit Of MIDI?

MIDI in the past was about controlling multiple devices. The application was performance. Live or in the studio. Splitting a keyboard in half to have one instrument on the lower keys, and another on the higher.

Using multiple sound modules on one device. Connecting multiple keyboards to perform at the same time.

Fast forward to 2019, and everyone has a home recording setup. You can get a humble MIDI keyboard for around the price of a Boss pedal, and just about every DAW comes with a piano roll. A non-keyboardist can do their best attempt at a keys part.

They’ll do a few passes, you edit the takes in the piano roll, do some time alignment, add some 9ths, 11ths, and 13ths to color the take a little more, and your recording session for keys is done. Real life studio magic.

Maybe there’s a philosophical debate about whether you should do this just because you can. But that debate has been around for the last 20 years or more.

Ever since digital recording came about, people have been debating live takes vs cut ins. Triggered drums vs real drums. What is and isn’t cheating.

And while we’re not here to debate that, MIDI does allow beginner musicians to write and express themselves musically.

Even for the pro player, it’s nice to be able to do an awesome take and change tones or instruments altogether. This is the same idea as running a dry guitar or bass signal into the board.

The take doesn’t change, but what it sounds like does. It’s not your live amp, but it is your playing and it gives you flexibility on tones.

Which is similar to the idea of using outboard (or digital) EQ in addition to the amp. You’re still going to dial in a good tone, but you’re going to tweak it to serve the mix (and the song!) as a whole. Which is the idea behind changing patches after you nail your take.

Maybe a less aggressive synth is needed. Or maybe it shouldn’t be a synth at all.

But let’s take a step back from recording. All of these tools that MIDI gives us has what I consider the biggest benefit: song writing and composition.

When I started playing guitar and writing music in my early teens, I would do one of two things:

  • Write the part out in tablature and hope I remembered the feel and timing
  • Put a tape recorder near my amp and record just that one part

At band practices we’d bring our riffs and songs and work them out. The hard way. If I wrote two guitar parts, or a bass parts, I'd have to teach them to the other musicians. It was slow, and there was no guarantee it would sound good (or was the best option).

Sometimes this wouldn’t even happen until we went to record. We would have to change or write parts while we were paying our hourly rate at the studio.

But with how easy it is to use MIDI with the DAW most of us already have, we can write and arrange the entire song. Using the piano roll we can write any instrument’s parts we can’t track.

Bass, drums, keys, auxiliary instruments like strings and horns. From there we can print the sheet music for those players.

If we don’t like the arrangement, we can drag and drop entire sections of songs. It’s composition with real time feedback.

Non-Keyboard Applications

While keyboards are the bread and butter of MIDI’s applications, I’d be remiss if I didn’t talk about other non-keyboard MIDI controllers.

Modern guitar players are transitioning to virtual amps. Not just amp modeling units like Line6 HX STOMP, but software like Guitar Rig and Bias FX . These are 100% virtual amps.

No hardware, no speaker cabinets, just software (it’s not just software, we know this is quite an engineering feat). Since they’re software stored on your computer, there aren’t any foot switches like you’d have with a traditional amp.

This is where MIDI Foot Controllers enter the picture. They act like foot switches on an amp modeling pedal for example, but are sending Program Change messages to recall stored “channels”.

Some have expression pedals which send Control Change messages (like the sweep of a wah, volume, etc) to the software.

As home studios become more accessible, musicians are using MIDI controllers to send commands to DAWs. Simple commands like Play/Stop/Record.

Depending on the software and your settings, a single action on the MIDI Foot Controller can send multiple commands at once. As an example, you could have a switch assigned to the key function sequence to:

Stop the recording, undo the most recent take, go back to the punch in marker, and record a new take.

This all varies by DAW, and the software you use to program your controller, but you get the idea.

Lastly, musicians are using MIDI controllers to trigger backing tracks. Programs like Ableton and Prime MultiTrack are used to create or record backing tracks and loops. Since MIDI is just a data transmission, there are many MIDI controlled apps for iOS and Android, like Dreamfoot and Jam-up to name a couple. (these are really cool apps, so they’ll need to have their own article!)

The Future Of MIDI - MIDI 2.0

At Winter NAMM in January 2019, the MMA announced plans to implement MIDI 2.0. Yes, even with all of the advances in technology since the early 80’s, we’re still on version 1.0.

Granted, there have been several updates since then, but this is the largest set of additions since MIDI was first introduced 36+ years ago.

The meetings are closed door, and while the specification is written it’s not yet tested. The MMA is testing, and writing new updates as they’re testing.

Obviously with something this big there will be a long phase of testing before publishing and implementation into hardware.

While many details are still unreleased, we do know of some.

MIDI-CI (Capability Inquiry) allows for Bi-Directional communication. Bi-Directional means it’s a dialogue, not a monologue. Instead of a one-way conversation from your MIDI controller, devices can share information between each other.

MIDI 2.0 will have backwards compatibility. With millions of MIDI devices already out there, this is a critical feature to allow users with MIDI 1.0 devices to use MIDI 2.0 protocols.

32-Bit Resolution

A big upgrade with big (although ambiguous) implications is MIDI 2.0’s 32-bit resolution, compared to 1.0’s 7-bit resolution. Quoting this article:

“1 bit resolution would give 21, or 2, potential values: 0 or 1. 2 bit resolution would be 22, or 4, potential values: 00, 01, 10, or 11. Continue to 7-bit resolution, and you have 27, or 128, potential values, which when translated from binary to decimal are the values 0-127. This is the range of values that can represent velocity and pitchbend, among others.

With the proposed 32 bits of resolution, MIDI 2.0 is offering 232 potential values. That works out to 4,294,967,296 values, or about 33.5 million per 1 value available with MIDI 1.0.

This may be overkill, but then again, it may never need to be upgraded after this, as the difference between a pitchbend value of 0 and a pitchbend value of 0.000000029 (1/33.5 million of a MIDI 1.0 value) would in most cases be imperceptible.”

What does this mean? No one’s really sure. Very little is known about this, as very little is known about MIDI 2.0 in general. Prominent YouTuber Adam Neely has a few theories of possibilities. Even if there aren’t any immediate applications it creates the possibility of future ones.

One of the more interesting applications is microtonal music. Western music uses 12 tone music, with half steps between each note. Middle Eastern music already uses quarter tones.

With 4+ billion potential value possibilities, you could conceivably play any note (frequency) that could exist. Which means you could finally replicate those old Black Sabbath records NOT tuned to standard 440hz ;)

The music community will wait with bated breath to see exactly what MIDI 2.0 will bring.

The good news is that MIDI 1.0 is still an extremely useful and reliable protocol. Around the world people are using it to control digital amp units like AxeFX, control and automate lighting on stage, and create and compose music.

We don’t know what the future holds for MIDI, but we do know it will continue to be the standard for instruments and computers to “talk music” with each other.

If you found this article interesting, share it with a friend who needs to know more about MIDI!