MIDI stands for Musical Instrument Digital (or Direct, in some circles) Interface. It is a common language that electronic musical instruments use to communicate with each other. MIDI can send information such as note on/note off messages, sustain pedal information, pitch bend and modulation, and a host of other messages that allow synthesizers, drum machines and MIDI sequencers to exchange data. With MIDI you can use a master keyboard to control the sounds of another MIDI instrument, send banks of sound patches, transmit digital samples from one unit to another, and record real-time MIDI data into a sequencer for editing and playback.

It is done with ports – IN, which receives MIDI data; OUT, which transmits MIDI data, and; THRU, which replicates the MIDI data arriving at the MIDI IN port and sends it out.



We know that all MIDI Interfaces are not created equally. Most common interfaces will have a MIDI IN and a MIDI OUT port. If all you will ever use is one MIDI instrument, then that will probably work quite nicely for you. But, if you are a gadget freak like me, then you will wind up owning several MIDI devices and will want to hook them all together and have an all night recording session. If you want to control more than one instrument using a single device (like a sequencer or master keyboard controller), then you will need a way to pass outgoing information to every MIDI device in your setup. This is where the MIDI THRU port comes in.

The MIDI THRU port takes all information that comes into the MIDI Interface by way of the MIDI IN port and passes it on to the next device. In essence, it makes a copy and anything that comes in and sends it back out. For example: let’s say that you are using a PC-based MIDI sequencing program and that you have two external MIDI devices, a keyboard and a drum machine. If all you do is hook up the keyboard using the MIDI IN/OUT scenario, then you will not be able to pass information to the drum machine when you are recording or playing back your sequence. Most decent external MIDI devices will have a MIDI THRU port. If you take a MIDI cable and plug it into the keyboard’s MIDI THRU port and take the other end and plug it into the drum machine’s MIDI IN port, then all of the MIDI data that the keyboard receives will be duplicated and passed along to the drum machine. Cool, huh? Not only that, if your MIDI sequencer has MIDI THRU option, you will be able to triggers sound that are on the drum machine from your keyboard as long as you have the PC’s MIDI Sequencer up and running. If your MIDI sequencer does not have a THRU function – get rid of it… it sucks. If your drum machine has a MIDI THRU port as well, you can hook another MIDI instrument into your chain by “daisy-chaining” it off of the drum machine. Using the daisy-chain method, you can attach a total of sixteen external MIDI devices to your PC!

Why sixteen? Sixteen is a crucial number in the MIDI specification. Your sequencer has to know which instrument a MIDI data stream is intended for. If there was no way to give your external devices a way to ignore multiple MIDI streams, then each instrument would try to play all the MIDI data that it receives whether it was intended for that device or not.

MIDI Channels

Every instrument in your MIDI setup has to have a MIDI Channel number assigned to it so that you can specify which instrument will respond to which data stream. There are sixteen MIDI channels available for you to use: 1 – 16. It is important to note that the channels are not exclusive, meaning that more than one instrument can be configured to respond to the same MIDI channel without having to worry about any sort of conflict. In this way you can “layer” MIDI instruments to create incredibly rich sounds. For example, you could have two devices in a chain that are both responding to MIDI channel number 1. The first device could be assigned a nice, fat piano sound, while the second device has a nice string ensemble. When you play notes on the first device, those notes would be sent down the chain and the device set up to respond to the same channel would trigger the same notes using the string ensemble. The two sounds would come out of your speakers as if they were a single instrument. Layering instruments in this way gives you the ability to produce some very unique sounds without having to learn how to create voices from scratch.

There are different MIDI MODES that each instrument can be set to that determines exactly how it responds to incoming MIDI data streams. If an instrument is set to OMNI ON, a MIDI device will try to respond to what ever MIDI information comes into it regardless of what MIDI channel it is set to. Some older MIDI devices must be set to MIDI channel 1 for OMNI ON to function properly… this is not generally a limitation of newer MIDI devices. The second mode is OMNI OFF, which is the default for most synthesizers. In the OMNI OFF mode a synth will only respond to a MIDI data stream that corresponds to the device’s MIDI channel. There are also two other modes that you must be aware of that affect the audio output of a MIDI device and work in conjunction with the two OMNI modes. These two additional “Voice Assignment”modes are known as POLY and MONO. If a MIDI device is set to OMNI OFF/POLY, then it will respond only to its specified MIDI channel and it will play as many voices as it is capable of playing. A Yamaha DX7 II, for instance, can play up to 16 different notes at one time. So, you could effectively play a sixteen note chord (if you had enough fingers). If you had 17 fingers, when you tried to play the 17th note, the first note that you played would drop out to make room for the newer note. Some synths can only play as little as four notes at a time, and some of the even older devices can only play one note at a time. These are known as MONOPHONIC (or one voice) synthesizers. The corresponding MIDI MODE is known as MONO. If you set your synthesizer to OMNI ON/MONO, then it will respond to all incoming MIDI data streams and only play one note at a time… not very practical, but can be useful in situations where you need ambient background noise to create a subtle effect or for some sort of solo instrument.

Most newer MIDI devices available today are MULTI-TIMBRAL. Meaning that they can respond to multiple MIDI Channels, with each channel having a different sound assigned to it. Roland’s Sound Canvas is a good example of this. The little box has no keys as it was meant to be accessed from a MIDI controller such as a Master Keyboard. The Sound Canvas can play 32 notes at once (another way to say it is 32 note polyphonic) and it can respond to all 16 MIDI channels at the same time. Each MIDI channel can be assigned its own unique sound. Having a Multi-timbral MIDI device is like having 16 keyboards in one little box. You can create a whole symphony on one of these babies – until you run out of notes, that is! The Sound Canvas, however, as do many other multi-timbral devices, allows you to chain multiple devices together so that you can effectively create a larger note base to draw from when playing… any notes that would normally be dropped out would automatically be routed to the other device. Two Sound Canvas’ hooked up in this way would create a 64 note polyphonic instrument.

Once you start adding new devices to your MIDI setup, you will quickly find yourself thinking “Sixteen MIDI Channels are not enough!” Never fear… there is a way to control more that sixteen MIDI devices at one time, using more than the available 16 channels. Well, sort of…. the solution is a MIDI Patch Bay. It not only allows you a more sophisticated MIDI recording setup, it opens up a whole new world of synth sound (patch) management.

Using MIDI Patchbays

A MIDI Patch Bay is a device that allows dynamic control over your MIDI devices. Models come with up to 34 MIDI IN/OUT ports (sometimes even more, if you can find one) and each input port can have the output of any other port in the patchbay mapped to it. This allows for complex, multiple MIDI setups available to you at the push of a button. If you have multiple MIDI Sequencers or a Dual MIDI Interface for your computer, using a patchbay would allow you to dynamically control up to 32 MIDI instruments using two groups of 16 MIDI channels. The most common MIDI patchbays, however, have 8 INs and 8 OUTs and cost around $200.

Let us say that in your studio setup you have a master keyboard that is multi-timbral, another multi-timbral MIDI device, like a MIDI drum machine, and a digital effects unit (can you say reverb?) that can change presets using MIDI. Remembering that each multi-timbral device can respond to each MIDI channel simultaneously and assign a different sound to each channel, you can see how quickly you could eat up 16 MIDI channels with even such a small setup – unless you were doing a bunch of sound layers. With a MIDI Patchbay, you would plug your MIDI sequencer into the IN and OUT of the patchbay’s first group (remember: MIDI OUT can only plug into MIDI IN), plug each of the other MIDI devices into the patchbay in a like fashion, and you can then assign the sequencer’s MIDI output (IN on the patchbay) to be broadcast to each of the patchbay’s MIDI OUTs. Another interesting aspect of a MIDI patchbay is the ability to isolate instruments from the sequencer. Not all devices attached to the patchbay have to respond to the sequencer, they can be configured to respond only to a specific device patched into the patchbay (such as the master keyboard or some other alternative controller). Any MIDI IN or OUT on the patchbay can be configured to respond to accept or send data to any of the other ports simultaneously.

This type of assignability allows you to do things like direct-to-synth patch dumps or the transmission of device exclusive data that would not be as easily accomplished using a MIDI daisy chain setup. Remember, in a MIDI daisy chain setup, those devices that are being controlled from the master keyboard’s THRU port will only be able to receive MIDI data. You can send patch changes, but you would not be able to dump data directly from a device in the chain (other than the master keyboard), because the device’s MIDI OUT port is not being used. MIDI patchbays remove the one-way communications limitation that plagues daisy-chainers. (Sounds kind of obscene, doesn’t it?)

A low-cost alternative to a MIDI Patch Bay is something called a THRU BOX. A THRU BOX is a small device that has a single MIDI IN that is copied to three (3) or more MIDI THRU ports. The duplicated input can be sent to as many separate MIDI devices as your THRU BOX has ports. As we just discussed concerning using THRU-based setups, much of the MIDI traffic in such an environment is “one way”, limiting the flexibility/accessibility of the devices. A MIDI Patch Bay is the best way to go if your budget allows. Now, how do you make music? It can be a pain in the neck sometimes to get everything working together in your MIDI “network”. But, once you have the jungle of cables sorted out – you’ll be ready to make some music. So, let’s read about MIDI Sequencing and Synchronization in the next section.

The MIDI Interface

Any decent synthesizer these days comes with a MIDI Interface built into it. Most computers today come with some sort of Sound Card pre-installed that is capable of functioning as a MIDI instrument using General MIDI or GM. You will need an adaptor cable, though, to plug external MIDI instruments into the sound card so they can be controlled by the computer. These adaptor cables are generally a “Y-cable” that plugs into the sound card’s joystick port and splits to replicate the joystick port and give you a MIDI IN and OUT port as well.

There are also dedicated MIDI Devices that you can buy for your PC that are considerably more flexible and cost between £35 and £300, depending on how sophisticated a MIDI interface you need. The most basic, yet more advanced than a sound card-based MIDI Interface, gives you a MIDI IN, OUT and THRU port or multiple OUTs like a MIDI patch bay – though not as sophisticated.

Owning a MIDI Interface by itself doesn’t do a whole lot for you. You must have some sort of sound-generating device. On the PC, a sound card has a built-in MIDI compatible sound device that can be accessed without any special cabling. Simply load a MIDI file and play it back. There are tons of MIDI files on the Internet! If your sound card is not one of the new wavetable types, then the sound that you hear will probably be a bit on the thin side. This is because the method in which the sounds are generated is not very sophisticated – relatively speaking, of course.

The low-end sound cards use something called Frequency Modulation Synthesis (FMS), which is a sound producing technology whereby simple waveforms (sine/square/triangular) are combined mathematically to produce complex sound waves. Wavetable Synthesis is actually method of synthesizing sound which uses high quality digitally recorded sounds ( samples) as building blocks to create more complex creations that can then be further modified with digital filters (like compression, reverb, etc.) If you will be using your PC as a sound-generating MIDI instrument (as opposed to just using for the MIDI Interface), I highly recommend that you invest in a Wavetable Sound Card. They only cost slightly more than a entry-level sound card and your ears, not to mention that base, animal rhythm that exists in us all, will thank you.

Most sound card MIDI adaptors only have two MIDI ports on them. One of the ports will be a MIDI IN port and the other will be a MIDI OUT port. If you are using only your sound card as a MIDI sound device, then you will never need to hook any MIDI cables to either of the two ports. If you will be using an external MIDI instrument such as a synthesizer or a drum machine with your PC, then you will need to take one MIDI cable and plug it into the computer’s MIDI OUT port and take the other end of it and plug that into the external instrument’s MIDI IN port. This allows the PC to send MIDI messages to your external instrument for playback. To record MIDI information from the external instrument to the computer, you will need to plug a MIDI cable into the external instrument’s MIDI OUT port and take the other end and plug it into the PC’s MIDI IN port. When you play notes on the external instrument, the notes will be passed out of the MIDI OUT port and move into the PC’s MIDI IN port. Using a MIDI Sequencer on your PC will allow you to record MIDI information into your PC for playback and editing. This is the most basic MIDI setup. It works very much like water running through pipes.

Let’s review the first two MIDI ports before moving on.

  • Messages arriving at the MIDI IN port are routed to the instrument’s internal sound-generating hardware.
  • A synthesizer will respond to messages from it’s MIDI IN port as though they originated on its own keyboard.
  • All messages that originate from an instrument’s keyboard or other on-board control is transmitted to the MIDI OUT port.

Now let’s discuss advanced MIDI setups utilizing the third, and perhaps most useful of the MIDI Interface ports – MIDI THRU. The next section also describes how you can control multiple MIDI devices by assigning them one of the 16 MIDI channels.

MIDI Messages

When you press a key on your keyboard to trigger a note on another synth, you are sending a single MIDI event. All MIDI messages are made up of a series of “words” of binary information. So each note you play constitutes a single event. MIDI uses a serial interface (like a Modem) that operates using a bandwidth of 31.25 Kbps (thousand bits per second). There are five types of MIDI messages:

Channel Voice Messages: These are performance messages and convey note on/off information. They can use all sixteen MIDI channels with each channel being polyphonic. Channel Voice Messages send information such as notes played, sustain pedal, breath controllers, aftertouch, pitch bend, and modulation.

Channel Mode Messages: This type of message allows you to specify which MIDI channel the data will be sent on and what patch number (sound) the receiving synth will use to execute the message. In other words, Channel Mode Messages tell a synth how to respond to incoming MIDI data. There are four types of Channel Mode Messages; OMNI ON/POLY, OMNI ON/MONO, OMNI OFF/POLY, and OMNI OFF/MONO. To illustrate, a synth set to OMNI ON/POLY will respond to all incoming MIDI data regardless of the MIDI channel and will play as many notes as it’s polyphony will allow. OMNI ON/MONO will respond to all data, but only play one note at any given time. OMNI OFF/POLY or MONO will allow a synth to respond to a specific MIDI channel (whatever it is set to) and play either it’s maximum polyphony or a single note respectively. Most synths default to the MIDI Mode OMNI ON/POLY.

Another type of Channel Mode Message is the LOCAL CONTROL ON/OFF message. This allows you to “disconnect” a synth’s keyboard from its internal voices. When using a sequencer, your master keyboard should most likely be set to LOCAL OFF so you can control other instruments in your MIDI setup without triggering notes on the master keyboard. The sequencer can be configured to send note on/off information to the master keyboard when you wish so you will still have access to its voice capabilities.

System Common Messages: If your synth can store song information, these message types allow you to choose which song from the synth’s memory will be played and at what point in the song play will begin. Not all MIDI devices utilize this feature of MIDI.

System Real Time Messages: Handles all data that is related to synchronization and timing. These messages are MIDI CLOCK, START, STOP, CONTINUE, ACTIVE SENSING (to verify proper MIDI connections), a SYSTEM RESET. Although not all synths respond to SYSTEM RESET, be careful with this one, as it returns a synth to its factory default settings.
System Exclusive Messages: This type of message transmits information to a specific brand of synthesizer. Each manufacturer will hard-code MIDI messages that are unique to the device. Using these messages, you can send configuration information to your synth that is unique to its make and model. An example would be uploading a new bank of sounds to your synth on the fly just before a sequence begins to play.

Ultimately, it is the System Exclusive Message set in the MIDI Specification that allows you to effectively manage a complex MIDI setup. But, alas, there are limitations as we discuss in the next section.

Limitations of MIDI

At this point it is necessary to state the obvious: There are a ton of different MIDI devices made by many different manufacturers. Each have different features, different sounds, and, in some cases, add propriety functions to the accepted implementation of the MIDI standard (especially some of the first MIDI-compatible synthesizers). Just because a device has a pitch bend or modulation wheel on its control panel doesn’t always mean that it can receive MIDI information related to that specific controller. The only way to know for sure is to read that unit’s users manual. (You do read the users manual, don’t you?) Don’t worry about any one device “freaking out” just because it receives MIDI data about a controller that it cannot respond to. Any data a MIDI device receives that it doesn’t understand, it simply ignores. (Unlike spouses, which one can never quite tune-out completely.)

Theoretically, MIDI can transmit sixteen unique musical tracks with up to 128 notes in each “performance”. Each note can have its own attack, decay, sustain, release, aftertouch, etc. In addition to this, each channel can send data that covers 64 different control types (breath control, modulation, pitch bend, channel pressure, etc.) That’s alot of data coming and going when you have a bandwidth of only 31,250 bps. All of you web surfers out there probably know by now if you’ve been surfing for any length of time, what it is like to hit an over-tasked web server. When the channel gets clogged, you inevitably wind up with delays… something unacceptable when playing music.

When a key is pressed on your master synth, it takes up to seven milliseconds for the synth to route that MIDI information to its MIDI OUT port. It takes another millisecond for that message to travel to the next instrument, which in turn takes up to seven milliseconds to respond to the incoming message and play the note. This delay is not generally noticeable to the ear, and MIDI can transmit up to 1000 NOTE ON or NOTE OFF messages in a single second. (This does not count the other MIDI messages, like pitch bend, modulation, sustain, etc.) If you are playing live… then you shouldn’t really worry about it. I doubt seriously that you have chops enough to outplay MIDI bandwidth. BUT… if you are in a studio environment with lots of MIDI tracks being recorded into a sequencer, then, it is quite possible that you might reach the limit of the bandwidth if your composition is complicated. If you have a lot of instruments, then a THRU box is something that you will want to invest in, or a MIDI Patch Bay (if you have the cash!) This can help minimize the effect of transmission delay and keep you making music instead of pulling out hair, something which I – fortunately – have an abundance of.