What is MIDI in music? Instruments, history, MIDI commands and more


What is MIDI in music? (And what does MIDI stand for?)

MIDI stands for Musical Instrument Digital Interface and is a format that is used for transporting musical note and timing information in digital format from one device to another. It specifies what notes are being played, when they are played (timing) and how they are played (velocity, panning, modulation, and more).

MIDI allows you to synchronise multiple instruments together and share note information across the format. 

MIDI enables devices such as keyboards, synthesizers, drum machines, sequencers and computers to be connected together and trigger sounds from one another.

The term has also evolved to include any music that is programmed or sequenced, rather than recorded from an acoustic instrument. 

‘MIDI’ can also be used as a derogatory term by musicians to indicate that music sounds fake, plasticy and programmed instead of real – for example a trumpet playing friend of mine once said to me “the horn section on this recording sounds like MIDI!”

Today, MIDI is used in many applications including lighting control, automation systems, sequencing and more.

When was MIDI first released?

MIDI was released in 1983, and the first instruments with MIDI were the Roland Jupiter-6 and the Prophet 600, released in early 1983. Not long afterward, the first MIDI drum machine, the Roland TR-909 was released and the Roland MSQ-700 MIDI sequencer followed.

The MIDI standard was developed by a group of synth and keyboard manufacturers, lead by Ikutaro Kakehashi from Roland and Dave Smith from Sequential Circuits. MIDI was unveiled to the world in 1983 at the NAMM show where Roland and Sequential Circuits collaborated to produce a standard where a Prophet 600 and a Roland JP-6 were connected together and were demonstrated to send note and program control information back and forth.

Ikutaro Kakehashi and Dave Smith became two of only a handful of individuals to receive a Technical Grammy Award in 2013 for their innovation in the creation of the MIDI standard which has led to the production of countless chart-topping hits throughout the decades since its inception.

The predecessor to MIDI was the Sync24 format (also known as DIN sync), which has much less functionality than MIDI – it only carries clock and timing information. By contrast, MIDI carries note information (pitch, velocity, panning) and much more.

A Roland Jupiter 6 – one of the first synthesizers to come equipped with MIDI

What are the 16 MIDI channels?

MIDI devices and MIDI arrangements have a maximum of 16 channels. Each channel operates as a standalone track and can control an individual instrument with commands such as the note value, length, velocity, panning and more.

Each channel plays a single instrument by sending note information, velocity, pitch bend, and other values along the channel.

The most popular MIDI format is General MIDI which denotes channel 10 as the channel for drums and percussion. All other channels are usually allocated to melodic instruments. More about General MIDI below.

In a typical MIDI arrangement, the channel configuration could look as follows

  • Channel 1: Synth Voice
  • Channel 2: Pad 4 
  • Channel 3: Bass Lead
  • Channel 4: Synth Bass
  • Channel 5: Rock Organ
  • Channel 6: Lead 5
  • Channel 7: Lead 1 (Square)
  • Channel 8: Synth Strings
  • Channel 8: Synth Ensemble
  • Channel 10: Drums

In this example 10 out of the 16 possible channels are used.

A MIDI file utilising 10 channels in the GM (General MIDI) format – opened in Anvil Studio

What is General MIDI?

General MIDI (GM) is the most commonly used format for the structure of MIDI information. General MIDI helps organize instruments into groups and assign them specific program values so that a MIDI arrangement will play consistently on multiple devices with the same sounds. For example, Acoustic Grand Piano is always assigned to program #1, Nylon acoustic guitar: #25, Cello: #43 and so on.

The instrument program values assigned are the same on each channel, with the exception of channel 10, which is reserved for drums and percussion sounds.

GM-compliant MIDI files and performances will have drums and percussion assigned only to channel 10.

There is nothing more frustrating than loading up a MIDI arrangement that was produced using a different standard and finding drums playing a grand piano sample and some other instrument playing a strange cacophony on the percussion channel! Since there are many MIDI files from pre-GM days floating around the interweb I have had that happen many times!

To comply with the General MIDI standard, according to the MIDI association: “Each manufacturer must ensure that their sounds provide an acceptable representation of song data written for General MIDI.” https://www.midi.org/specifications-old/item/gm-level-1-sound-set

The same MIDI arrangement will still sound different when played through different devices, as each instrument will have a uniquely different set of samples or synthesis presets assigned to each program number. However, the idea of General MIDI was that the whole project would not need to be reconfigured and instruments re-assigned to different channels for the performance to be recognisable.

The General MIDI format also assigns instrument sounds to family groups See the table below sourced from the MIDI association which shows how the instruments are grouped.

General MIDI Level 1 Instrument Families
The General MIDI sounds are grouped by families.
Program numberFamily Name
1-8Piano
9-16Chromatic Percussion
17-24Organ
25-32Guitar
33-40Bass
41-48Strings
49-56Ensemble
57-64Brass
65-72Reed
73-80Pipe
81-88Synth Lead
89-96Synth Pad
97-104Synth Effects
105-112Ethnic
113-120Percussive
121-128Sound Effects

Source: https://www.midi.org/specifications-old/item/gm-level-1-sound-set

How many midi program values are there?

There are 128 different program values for each parameter, usually expressed between 0 and 127. 

For example a note could have a velocity anywhere from 0 (off) to 127 (loud). To put it another way, if you strike a note on a MIDI keyboard lightly, the velocity program value for that note may be around 40, if you strike the note harder, the velocity may be around 90-100 and if you strike the note with full power the velocity program value would be 127.

What are the different MIDI commands?

There are 8 MIDI Commands in the MIDI 1.0 standard. These commands are explained below. Also included is the hex value for each command for the technical ones among us.

    Note OFF.

This command is used to end a note. The variables of the command are the key (note number) and the velocity. (Velocity is set to zero to end a note).

    Note ON.

This command specifies when a note starts playing. The variables are the key (note number) and the velocity of the note.

    Control change. (CC)

Another command available within the MIDI format is the control change command. This is ofen used to assign to knobs or faders on a MIDI device to allow them to change parameters such as modulation, portamento, volume, panningsustain pedal (on/off) and many other variables on an instrument or channel.

    Program change. (Patch change) {0xC0}

The Program Change command allows you to send a signal to change the patch (instrument) assigned to a channel

    Polyphonic key pressure. (Aftertouch) {0xA0}

This command is activated on some compatible devices after a note has been depressed by adding pressure to the note, this signal can then trigger such as an LFO, pitch bend or more.

This function is only available on a select few number of synthesizers.

    Monophonic key pressure (channel aftertouch) {0xD0}

Similar to Polyphonic key pressure is monophonic key pressure, this function applies to the entire channel, instead of to an individual key or note. This can be used to add an effect to a channel.

    Pitch bend. {0xE0}

The pitch bend message provides the ability to adjust the pitch of the entire channel. Often controlled by a pitch wheel on a keyboard, synth or MIDI controller.

Pitch and modulation control wheels on a Yamaha MOTIF synthesizer

    System exclusive {0xf0 and 0xf7}

These are commonly GLOBAL commands affecting the entire device. Commonly known as SysEx. These commands can include the manufacturer ID (view a list of all manufacturer ID’s on the official MIDI org page.). 

A SysEx command always starts with 0xF0 and is then followed by the specific data needed for the command, then closes with 0xF7.

Refer to this article for more details

https://learn.sparkfun.com/tutorials/midi-tutorial/advanced-messages

What are the three types of MIDI ports? 

The three types of MIDI ports are IN, OUT and THRU. Many MIDI-capable devices will have these 3 round 5 pin DIN ports

  • MIDI IN is used for sending a signal into the device it is plugged into. For example, if you wanted to utilise the sounds in a sound module or synth, you would plug the cable into the MIDI IN port, and incoming MIDI signal would trigger that device to play.
  • MIDI OUT is used for sending signal out from one MIDI device to another. For example plug the cable into the MIDI OUT port of a MIDI controller, and the other end of the cable into the MIDI IN port of the device to control. 
  • MIDI THRU carries the signal from the MIDI IN port and allows you to send that same signal onto another device, essentially creating a ‘daisy-chain’ where multiple MIDI devices are all connected together, sharing the same signal.
Roland Juno 106 Synthesizer showing MIDI ports. From left: THRU, OUT, IN.

A couple more examples of how to connect devices together.

  1. Trigger the sounds on a vintage synth with MIDI capabilities from a computer. Run a cable from the MIDI OUT port on the computer (Or MIDI interface connected to the computer) to the MIDI IN port on the synth.
  1. Use a MIDI controller to play sounds from two different MIDI devices simultaneously. Run a cable from the MIDI OUT port on the controller to the MIDI IN port on device 1. Run a second cable from the MIDI THRU port on device 1 to the MIDI IN port on device 2.
Diagram showing a MIDI configuration with a computer, drum machine and synth

Some modern devices have dropped these 5-pin DIN ports and replaced them with a USB port that can carry all of the same information and connect the device into a computer. This has the advantage that you do not need to have a MIDI interface connected to the computer to allow you to connect the device.

The disadvantage of this approach is that you cannot connect the device to another MIDI-capable instrument or device directly, 

When should I Use MIDI THRU?

Use MIDI THRU if you want to connect multiple MIDI devices together in a ‘daisy chain’ without the need for a MIDI splitter or MIDI patch bay. The MIDI THRU port replicates the signal that is received from the MIDI IN port and sends it on to another device. 

What is a midi program number

In MIDI, the instrument sound or “program” for each of the 16 possible MIDI channels is selected with the Program Change message, which has a Program Number parameter. The following table shows which instrument sound corresponds to each of the 128 possible GM Program Numbers. There are 128 program numbers.

How many midi values are there?

There are 128 possible MIDI values for each parameter. 

Because data bytes define which note is played, and the velocity at which it is played, there are 128 possible MIDI notes – more than a piano – and 127 possible key velocities (0 velocity is a special case). Change each number in a MIDI command and a different musical result occurs.

What is C4 in MIDI?

C4 in MIDI refers to ‘Middle C’ It is the fourth ‘C’ from the left on a standard piano keyboard with 88 keys. C3 is the third from the left (one octave below C4), C2 is second from the left (two octaves below C4) and C1 is the first C from the left (4 octaves below C4). 

By following this numbering system, you can identify any note on a piano keyboard B6, G3, etc.

The lowest number on an 88 key piano is A0 and the highest note is C8

C4 is note number 60 in MIDI notation.

Diagram showing the number notation in MIDI

MIDI Frequently Asked Questions

Why does MIDI go to 127?

Because of the limitations of the original MIDI format in the 1980’s, MIDI 1.0 information is in 7-bit resolution. This means that there are a maximum of 128 values. (One byte of information in 7-bit is 2 to the power of 7 which = 128). MIDI values run from 0 up to a maximum value of 127, providing 128 possible values.

Complete list of GM MIDI Instruments (Numbers & codes)

For a complete list of MIDI instrument patches in the General MIDI (GM) sound set, you can visit the MIDI.org website;

https://www.midi.org/specifications-old/item/gm-level-1-sound-set

Is MIDI Still Used?

MIDI technology is still commonly in use in many modern musical instruments and equipment. DAW software such as Pro Tools, Logic, FL Studio, Reaper, Ableton, Cubase and more can all still open and create MIDI files. Many modern audio interfaces, keyboards and synths still have the standard MIDI 5-pin DIN sockets on them to enable them to connect to and control vintage instruments such as synths and drum machines.

What is MIDI quantize?

MIDI quantize is a tool that is used in DAWs (digital audio workstations) to adjust the timing of a MIDI performance so that the timing aligns with the grid, or with a particular groove. The most common use of quantize is to adjust the note start time so it begins exactly on time. In MIDI performances if you are playing a part via a MIDI keyboard for example, it is difficult to get the timing exactly right. This means that you may end up hitting some notes slightly early or late. Quantize allows you to adjust the performance afterwards to fix any timing errors.

What is MIDI 2.0?

In 2019 at the NAMM show, the MIDI Manufacturers Association (MMA) announced they had written the specification for the all new MIDI 2.0 format after over a decade of development, and were in the testing phases. In February 2020, the specification was officially released and there have been a handful of devices released that state they are MIDI 2.0 capable including Roland’s A-88 MKII, Korg Keystage and Native Instrument’s Kontrol S88.

The new standard is backwards compatible with MIDI 1.0 devices, supports 256 channels instead of 16, web-based integration, 32-bit resolution vs 7bits and Multi Polyphonic Expression (MPE).

Unlike MIDI 1.0, MIDI 2.0 is bi-directional so devices can talk to each other and auto-configure to work together. Information is sent back and forth to determine if a device is compatible with the MIDI 2.0 standard. If a MIDI 2.0 device determines that a connected device is only capable of communication using MIDI 1.0, it will only send information in the MIDI 1.0 format.

MIDI 2.0 has a higher 32-bit resolution and can pick up much more detail on innovative new controllers that recognise gestures and more nuanced movements. MIDI 1.0 allowed for 127 steps, while MIDI 2.0 allows for up to 4,294,967,296 steps! This results in performances having a much smoother, more analogue feel with more dynamics.

Another new addition to the MIDI 2.0 standard is the use of profiles. This technology allows a device to sense and autoconfigure settings such as fader and pot control parameters to match the profile of the connected device. Presents for this include General MIDI, Piano, Organ, mixer control, light control and more.

A modern MIDI controller interfacing with a tablet

What are MIDI Control change commands

MIDI control change (CC) commands are used to send messages to a MIDI device and adjust parameters of MIDI data. The commands are generally fixed to certain parameters, but a number of CC commands are empty and can be assigned to whatever is needed. For example, a MIDI foot pedal can be assigned to control Wah on a guitar effects unit with MIDI capability.

Here is an example of common CC commands and their uses;

  • MIDI CC 0: Bank Select : This allows you to select a particular bank of sound patches
  • MIDI CC 1: Modulation Wheel: This is often used for a vibrato effect on the channel
  • MIDI CC 7: Volume of the channel  0 = off, 127 = full volume
  • MIDI CC 10: Pan (Adjusting pan left or right) Centered pan = 64, hard left = 0, hard right = 127
  • MIDI CC 64: Damper (Sustain Pedal)

There are a number of undefined CC commands, which can be assigned to custom parameters on a MIDI device. Undefined command numbers include;

  • CC 3
  • CC 9
  • CC 14-15
  • CC 20-31
  • CC 85-87
  • CC 89-90
  • CC 102-119

For a full list of all MIDI control change commands, visit:

https://anotherproducer.com/online-tools-for-musicians/midi-cc-list/

Additional Resources For Reference

How to record MIDI in Pro Tools

https://pan.no/rees/htm/re_mds.htm

https://en.wikipedia.org/wiki/DIN_sync

https://pjb.com.au/muscript/gm.html

https://newt.phys.unsw.edu.au/jw/notes.html

https://www.sweetwater.com/insync/midi-channel/

https://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html

https://pages.uoregon.edu/emi/37.php

Audio Production Room

Hi I’m Tim Wells – an experienced session and live drummer, mixing engineer and all-around lover of music! I’ve been passionate about music from a young age and I’ve had the great privilege of creating and performing music all around the world. I've had the incredible experience of touring as a live drummer through over 10 countries, performing in festivals, clubs, street corners, churches and cafes in front of audiences anywhere between 8 and 8,000! I've also spent time in the recording studio as a session drummer, but also as a recording and mixing engineer.

Recent Posts