Harmony Central: Drums & Percussion
[an error occurred while processing this directive]
An Introduction to MIDI
By Stephen Dill
This is a basic introduction to MIDI. It starts with a keyboard-based perspective, since that is what MIDI was originally designed for, but ends with how MIDI is used with Electronic Drums. Since my writing can be fairly technical and I may not explain things perfectly, please email me if you have any questions.
In 1983, the MIDI (Musical Instrument Digital Interface) specification was introduced as a standard for communication between computers and electronic musical instruments. It revolutionized the music equipment industry by allowing products from different manufacturers to work together flawlessly. It is used with devices such as keyboards, electronic drums, sound modules, and sequencers.
MIDI is a digital language that uses short MIDI Messages to describe musical events, such as notes, dynamics, volume, and vibrato. MIDI does not transmit audio, such as the sound of a drum, in real time. It is also different from trigger signals sent by drum trigger pads and acoustic triggers (although trigger signals can be translated into MIDI using a trigger-to-MIDI converter).
MIDI is transmitted over 5-pin MIDI cables that connect to MIDI In, MIDI Out, and MIDI Thru jacks. Generally the MIDI In of one device connects to the MIDI Out of a second device. MIDI Thru is an optional output jack used to chain multiple instruments together - it outputs an exact copy of the data a device receives on its MIDI In jack.

There are 16 virtual MIDI Channels, and each channel is used for a single voice (though that voice can be used for many sounds, as in a drum kit). For MIDI transmissions to work properly between two instruments, they must both be communicating on the same channel, or the receiving device must be in Omni Mode where it responds to messages on all channels.
Picture a setup with a MIDI keyboard and a sound module, as shown below. The MIDI Out of the keyboard is connected to the MIDI In of the sound module. The keyboard is set to transmit on Channel 1 and the sound module is set to receive on Channel 1. The sound module is connected with regular audio cables to an amp and speakers.

In this setup, one that is commonly used for MIDI performance, the keyboard is called a MIDI Controller, because it is used to control another device (the sound module).
When you press middle C on the keyboard, a message is sent to the MIDI Out jack of the keyboard that says "middle C on channel 1 is pressed." When the sound module receives this message, which it will because it is set to receive on channel 1, it plays a note at the pitch of middle C. When you release the key on the keyboard, a message saying "middle C on channel 1 is released" is sent to the sound module and it stops playing the sound.
The main concept here is that the keyboard knows nothing about the actual sound that is played. It only knows things like "Note On" and "Note Off" when you press and release a key, which it communicates to the sound module. It is entirely up to the sound module how to create the sound, and it is easy to change settings so that the sound module will take the same MIDI data and play a bass sound instead of a piano sound.
MIDI data can be recorded on a Sequencer, which is like a tape recorder for MIDI data. A sequencer can be built into hardware like a drum machine, or can be a program on a computer. Sequencers are capable of recording MIDI data on multiple tracks, so you can make a whole song from separate parts. It also easy to edit MIDI data on a computer, allowing you to change the notes of a track, speed up the tempo, copy and paste parts, and choose a different voice for a track.
General MIDI (GM) is a supplement to the MIDI specification that makes it so that any MIDI song will sound roughly the same when played on any GM-compatible sound module. This allows you to play MIDI files from the web, or even write songs and email them to your friends! (See below for more on General MIDI.)
As described above, a Note On Message is used when a note is played and a Note Off Message is used when the note is finished. Each note message has a Note Number, which specifies which key was pressed on a keyboard. Each note message also has a Note Velocity, which specifies the dynamics (loudness) of the sound.
Aftertouch Messages are used to change the dynamics of notes after you play them. They are usually caused by changing the pressure of a key that is held on a keyboard. There are two types of Aftertouch - Polyphonic Aftertouch separately controls the dynamics of each note being played, and Monophonic Aftertouch (also known as Channel Pressure) controls the dynamics of all of the notes on a channel. Aftertouch isn't particularly useful with drum sounds.
The tuning of a note played can be controlled by a Pitch Bend Message; this is not very useful with drum sounds.
There are a variety of parameters for each voice that can be affected using Continuous Controllers. These can be used to affect the volume, stereo panning (left vs. right speaker), modulation (vibrato), sustain (note held), and other functions of a voice. Continuous controllers can also communicate device parameters, such as when you press the increment (+) button or decrement (-) button on a keyboard. How this affects the receiving device depends on how that device is set.
You can change the voice played on a channel using a Program Change Message, also known as a Patch Change. This can be used to switch, for example, from a piano sound to a flute sound. General MIDI specifies a voice map, so that by using standard Program Change numbers you can always find a specific voice - for example, a piano sound is always at program #0 (see below for more on General MIDI). In the case of a drum module, a program change message changes the whole drum set, not just the drum sound assigned to a particular note (see below for more on MIDI and electronic drums).
There are some common device modes that can be set using MIDI. You can set a device to receive Omni Mode, where it responds to messages sent on all 16 MIDI channels as if they were from one instrument on one channel. Many devices can also be played either in Mono Mode, where it only plays one note at a time (when you play a second note it cuts off the sound of the first note), or in Poly Mode, where it plays multiple notes at once. Poly On (Mono Off), Omni Off is the most common way to use a sound module.
To allow each device to be able to perform its own special functions and transmit the data using MIDI, there are System Exclusive (SysEx) messages. This allows you to switch between special modes on a synthesizer, change between many banks of voices, and send bulk data such as the synthesizer parameters that describe how to play a voice. You can save and edit SysEx data on a computer, which is particularly useful for editing voices in a Patch Editor program.
MIDI also provides several messages for devices that need to be synchronized, although you aren't likely to run into these in most MIDI setups. There is a MIDI Clock message to allow devices to keep the same beat (no, you can't plug this into your bass player). There are Song Select, Song Position, Start, Continue, and Stop messages to synchronize devices to play a song together.
Ah, the part you've been waiting for...
Most electronic drum systems work with MIDI, but there is one more step between a trigger pad and a MIDI cable. When you hit a trigger pad with a stick, an electric Trigger Pulse (or Trigger Signal) is sent to the Trigger Module. Inside the trigger module, the signal is analyzed and recognized as an actual drum hit (rather than a false trigger) if the signal is sharp enough. Depending upon which pad was hit and how hard you hit it, the note event is assigned a note number and a note velocity. So if you hit a snare pad really hard, a message of "Note On, note number 38 on channel 1 with a velocity of 127" might be sent to the MIDI Out jack of the trigger module. This would soon be followed by a "Note Off, note number 38 on channel 1" message.

If the trigger module has a built-in synthesizer, it will play the note itself (without using MIDI, because all of the work is done internally). However, it will still send MIDI data to its MIDI Out jack, and you can record the data on a sequencer. A trigger module without a built-in synthesizer is called a Trigger-to-MIDI Converter, because all it does is converts trigger signals to MIDI. You have to connect the MIDI Out of a trigger-to-MIDI converter to the MIDI In of a drum sound module to get any sound.
In a MIDI drum sound module, each drum sound in a drum kit is assigned to a keyboard note. With General MIDI, standard mapping is used to assign specific drum sounds to specific notes. This means, for example, that you will always find a snare drum sound at note number 38 in a GM drum kit (so most trigger modules will automatically assign the snare pad to note number 38). Because a whole drum kit is assigned to the notes of a keyboard, a Program Change message will change the whole drum kit, not just a single sound on a single note (there is no easy way to change the drum sound of a single note using MIDI, it depends on the particular module and usually involves SysEx messages).
General MIDI (GM) is an extension that allows a MIDI sequence to sound roughly the same on any GM-compatible sound module. It effects sound modules, and does not change the MIDI specification for things like sequencers or controllers.
GM requires that the sound module have a Polyphony of 32 notes, meaning that the module can play at least 32 notes at the same time. It also requires that a sound module be able to use all of the 16 MIDI channels at the same time, so you can have up to 16 separate tracks (each with its own voice) in a song.
General MIDI specifies a common Voice Bank of 128 sounds that must be in every GM compatible module. Each voice is assigned a standard program change number, so that you will always get a piano sound when you use program change #0 (for example). However, each synthesizer can generate each sound in its own way, so the piano sounds on different synthesizers may sound significantly different.
A GM module defaults to play a drum kit on channel 10. There is also a standard Drum Sound Map that specifies the note numbers (35-81) of 47 different drum sounds. So you will always find a snare sound at note number 38 and a bass sound at note number 35. It doesn't specify the timbre of the sound, so you can have different snare sounds (at note number 38) in different drum kits.
For more information about MIDI check out any of the great sites listed below:
Return to: Harmony Central: Drums & Percussion: EDW Home
Copyright © 1998 by the Electronic Drum Web.
This site was originated by drummer Jonathan Karow and is now maintained by
Harmony Central.
All products are designs and trademarks of their respective companies.
Feedback: Send mail to webmaster@harmony-central.com.