Image placeholder title
Image placeholder title

Illustration: Dmitry Panich

If you're coming in to the world of desktop music production as a person who doesn't play keyboards — if you're a guitarist/songwriter, for instance — you may find MIDI somewhat mystifying and intimidating. Even after you start to master skills such as miking, mixing, and adding effects, the more sophisticated MIDI features of your multitrack sequencer/recorder might do nothing but gather dust.

That would be a shame, because even a basic MIDI synthesizer (either a hardware instrument or a software plug-in) can add a lot to your music. By using a MIDI drum module rather than sampled loops, for instance, you can create your own beats. Though MIDI has been around for 20 years, it's far from obsolete. To make the most of it, though, you need to grasp a few basic concepts. In this article I'll focus mainly on the side of MIDI that's used for controlling a synth from a sequencer. I'll save other MIDI features, such as synchronization, for another time.


MIDI (Musical Instrument Digital Interface) began as a way of letting musicians play one keyboard while hearing their performance come from other keyboards or rackmounted tone modules that could be placed at a distance, say, on the other side of the room. If you think of MIDI as remote control for keyboards, you're on the right track.

When you hook up a synthesizer or other keyboard to a computer using MIDI, you can record, edit, or play back your keyboard performances in a software sequencer. Compared to digital audio, which requires a fast computer and hard drive, MIDI is extremely efficient. Even an old, slow computer, which may break a sweat when asked to play a few audio tracks, can breeze through a complex song containing dozens of MIDI tracks without trouble.

But while the MIDI and audio tracks may lie side by side in your sequencer, and while you'll hear them all when you hit the Play button on the sequencer's transport bar, MIDI and audio are completely different. MIDI is not sound: it's a performance-control language. When you press a key on your MIDI keyboard, the keyboard sends out a MIDI message called a Note On. When you let the key up, the keyboard sends out another message called a — you guessed it — Note Off. Those two messages will be exactly the same whether the synth is making a sound like a flute, a Hammond organ, a kick drum, or anything else.

In order to hear MIDI tracks, then, you need to send the data they contain to a synth or some other type of tone module that makes the actual sound. If you want to make a mix of a song that includes both MIDI and audio tracks, you have to record the output of the synth into the sequencer as a new audio track. Once you've done that, you can mute the MIDI tracks and unplug the synth.


Image placeholder title

FIG. 1: To get MIDI in and out of your computer, you need a MIDI interface, such as this USB Midisport 2✕2 from M-Audio. The Midisport has two outputs, which allow you to use up to 32 MIDI channels (16 on each output).

MIDI messages are generally carried on 5-pin cables. Some newer MIDI keyboards, however, can send and receive MIDI when hooked directly to a computer through USB. Assuming that you're using standard MIDI cables, you'll need to connect the keyboard's MIDI Out jack to the computer's MIDI In jack and vice versa. Because computers don't have built-in MIDI jacks, the connections are made by way of a MIDI interface such as the one shown in Fig. 1. If your computer has a consumer sound card, you may be able to buy an inexpensive adapter that plugs in to the sound card's joystick port and provides MIDI jacks.

Because MIDI cables don't carry audio signals, you still need to plug your keyboard in to a sound system to hear it (unless, of course, it has its own built-in speakers). If you play the keyboard and hear sound coming from your computer's audio output, the keyboard is most likely controlling a MIDI synth inside the computer — either the one that is on your sound card or one that's running entirely in software.

If you're planning to use only computer-based software synthesizers, any MIDI keyboard will do the job. You don't even need to plug in its audio output (if it has one). It's also possible to record MIDI data directly into your computer sequencer using the mouse or QWERTY keyboard, but a hardware MIDI keyboard is much faster and more fun to use.


MIDI defines 16 channels for performance data such as Note Ons, Note Offs, and the other types of data discussed below. For a MIDI track in your sequencer to be played by a synthesizer, both have to be set to the same channel. If you don't hear any sound when you send MIDI messages to a synth, the first thing to check is whether the synth is receiving on the wrong channel.

Messages on all 16 channels can travel down a single MIDI cable at the same time (actually, one right after the other in extremely rapid succession), so you can easily hook up several synths to the computer and have each synth play an independent part. One might play the bass line, for instance, while another plays a piano accompaniment. When a single synth is switched to multitimbral mode, it can play multiple parts on several MIDI channels at once.


We've already met MIDI's Note On and Note Off messages. They're used for starting and stopping notes. Each Note On and Note Off message includes a note number. MIDI defines 128 note numbers, a wider range than a grand piano keyboard. Middle C is note number 60.

Once a note has been started by a Note On message, it has to be stopped by a Note Off message that has the same note number. If the note numbers don't match, the receiving synthesizer will ignore the Note Off message, and the note will never stop sounding.

In addition to a note number, each Note On message contains a Velocity value. If you strike the key harder, it generates a higher Velocity value; if you strike the key more gently, the Velocity is lower. A Note On message can have a Velocity value anywhere between 1 and 127. (A Note On that has a Velocity of 0 is interpreted as a Note Off, for technical reasons that we needn't go into here.)

Most often, the Velocity data is used by the receiving synth to decide how loud the note should be. If your MIDI track is too loud, one quick way to make it softer is by reducing the Velocity values of the notes. Most sequencers provide graphic editing for Velocities, as shown in Fig. 2. By boosting the Velocities of single notes, you can add accents.

Image placeholder title

FIG. 2: This figure shows some MIDI notes recorded into Cakewalk Sonar. The area near the bottom of the window displays the Velocity values for all of the notes. The pencil tool (upper left) can be used to edit the values graphically.


There's more to music than just starting and stopping notes. In order to shape the sound while a note plays, MIDI provides various types of controller data.

Image placeholder title

FIG. 3: In addition to controlling the synth''s ­internal sounds, hardware controllers, such as those found on this Alesis Andromeda A6 ­keyboard, can send out MIDI Pitch Bend and Control Change messages to other instruments.

Many synths have knobs, wheels, sliders, joysticks, or ribbon controllers like those shown in Fig. 3 on their front panels. These hardware controllers can usually be assigned to one or more of the synth's sound parameters (such as filter cutoff frequency or vibrato amount). If you're playing the keyboard live, you can use the knobs, wheels, and sliders to shape the tone and never worry about MIDI. They will also transmit MIDI controller data, however, and the data can be recorded into your sequencer. When the controller data plays back, you hear the knob or wheel movement just as you played it, even though the knob or wheel won't physically move.

There are three basic types of controller data. Pitch Bend data, as the name implies, is usually used to change the pitch of a note. Your synth may have a dedicated pitch wheel or joystick for just this purpose. Aftertouch is usually generated by pressing down on a key while it's playing a note. Aftertouch can be used for many different musical effects, such as adding vibrato or giving the note an expressive volume swell. Finally, MIDI defines a set of more than 100 Control Change messages. Like Aftertouch, Control Changes can be used to change the sound in various ways. In owners' manuals and articles such as this one, you'll often see Control Changes referred to with the abbreviation “CC.”

Each Control Change message has a channel number, a controller number, and a value between 0 and 127. A few of the controller numbers have defined meanings. For example, CC 7 is the Master Volume controller. So if your sequencer sends out a CC 7 message that has a value of 0 on channel 3, any synthesizer that is receiving on channel 3 should respond by turning its output volume down to zero. Other CCs have no defined meanings, so you can use them to shape the sound in whatever way your synth allows.

The Pitch Bend message is unique in that it's bidirectional. Zero is in the middle of its range rather than at the bottom, so you can bend the pitch up or down. The maximum range of a pitch bend — that is, how far up or down the pitch goes when you throw the pitch wheel or lever to the outer end of its travel — is set in the receiving device. It's not part of the MIDI Pitch Bend message itself.


Your synth probably has a memory bank containing numerous sound programs (also known as patches, presets, or voices). Instead of selecting a new program manually with the front-panel buttons, you can send the synth a Program Change message, which will accomplish the same thing.

MIDI allows for 128 different Program Change messages on each channel. Unfortunately, the numbering system used (0-127 or 1-128) won't necessarily correspond to the numbers used on the synth. For instance, some hardware manufacturers number their programs A1 through A16, B1 through B16, and so on. It's up to you to figure out which MIDI Program Change number corresponds to which synth program. If your synth has a General MIDI sound set, however, you may be able to select the programs by name from your sequencer, which is convenient.

These days, a synth may have several hundred programs organized into various banks. To access them using MIDI, you need to send the synth a Bank Select message to choose the correct bank, followed by a Program Change message to select a program within the bank.


Don't look down on MIDI just because it isn't the latest and greatest. With a good synthesizer or two and a knowledge of MIDI, you can craft incredibly expressive tracks and weave sonic tapestries that will leave your sample-loop-using friends slack jawed with envy.

Jim Aikinhas been writing about music technology for over 25 years. His new book, Software Synthesizers, came out in April 2003.


When you play a note on a MIDI keyboard or any other instrument, you want to hear the sound now, not a week from Tuesday. MIDI is fast enough (barely) that it won't cause any audible timing delays by itself. But delays in a MIDI system can become a problem.

If you're playing computer-based instruments from a MIDI keyboard, you'll need an audio interface and music software that uses a low-latency standard, such as ASIO or WDM.

If a hardware synthesizer responds sluggishly to MIDI data that is already recorded into the sequencer, you need to thin out the data or to reprogram the synth so that it doesn't have to work so hard. You may have recorded a lot of Aftertouch data into your MIDI tracks without meaning to. Try erasing it all. If the synth is playing big chords that have four-oscillator tones, try reducing the oscillator count to two or three per note.