10 Essential Facts Even if you use MIDI every day, there may be moments when you wonder what the heck is going on. Why doesn’t your software know how to talk to your synth? What are those awful noises, and how can you shut them up? Distilling the essentials of MIDI down to a list of 20 facts was a challenge — there are a lot of details that you won’t find below. I’ve concentrated on the basics, while ignoring more esoteric topics like RPNs and quarter-frame messages. But if you don’t come away from this article knowing at least a little more than you did before, it’s because you’re already an expert. 1. MIDI sends performance instructions, not sound. When you press a key on a MIDI keyboard, you’re not making a sound — you’re sending a performance instruction called a note-on message. (see Fig. 1). It’s entirely up to the instrument at the other end of the cable what sort of sound to create (if any) when it receives the message. What’s more, MIDI cables don’t carry any audio data at all. If you only hook your synth to the rest of your system with MIDI cables, you won’t be able to listen to it unless it has its own speakers. 2. In goes to out, out goes to in. Most MIDI hardware will give you a set of three jacks on the back panel, labeled In, Out, and Thru. When you’re cabling two devices to one another, the Out jack on your master keyboard should be connected to the In jack on whatever device you want to receive the MIDI data from the keyboard. Several devices can be connected in a chain, so they all receive identical messages from the master keyboard (or some other MIDI source, such as a computer). To do this, connect the source device’s Out to the In of the first receiving device. Then connect this device’s Thru to the In of the second device, the Thru of the second device to the In of the third device, and so on. 3. Too many Thru connections in a row can corrupt the data. It’s not a good idea to connect more than four or five devices in series using MIDI Thru connections. The digital signal will degrade gradually each time it passes through a device. Because it’s digital, the degradation will have no musical consequences at first — but when the signal gets degraded beyond a certain point, the last device(s) in the line will start to freak out, giving you stuck notes and all sorts of other weirdness. 4. MIDI communications are one-directional. Unlike more modern digital communications transports, such as USB, MIDI cables carry information in only one direction. If you want two devices to be able to communicate with one another (which is often necessary when you’re using MIDI for a system-exclusive data dump, a topic discussed below), the MIDI Out of each device must be connected to the MIDI In of the other. 5. MIDI connectors transmit data in serial, not parallel, format, and the data transmission rate is barely fast enough. Digital messages fly down a MIDI cable one bit at a time. For technical reasons that you don’t need to worry about, a MIDI byte contains ten bits rather than the usual eight bits. The data transmission speed of MIDI is 31,250 bits per second. As a result, a single MIDI cable can carry, at most, 3,125 bytes per second. As explained below, a MIDI note-on message normally contains three bytes. What this means is that, as a rule of thumb, it takes a little less than 1ms (one millisecond) to send a single note-on message down a cable. To send a 20-note chord down the same cable takes about 20ms. The 20th note will arrive at the receiving device 20ms after the first note — a time lag that can be perceived in some situations, at least if you know what to listen for. When MIDI is used within the confines of a computer, the speed limitations of hardware MIDI connections are entirely bypassed. For instance, let’s say you instantiate a softsynth within a sequencer and then record a MIDI track that plays the softsynth. Once the MIDI track has been recorded and is playing back, the sequencer should be able to play the softsynth with, at worst, 1 ms of timing slop, which won’t usually be detectable. 6. Sixteen channels can share one cable. Two types of messages are defined in the MIDI Specification — system messages and channel messages. The actual music performance data (notes, controllers, pitchbend, and so on) is in the form of channel messages. MIDI defines 16 channels, which can all operate independently on a single cable at the same time. To use more than 16 channels, you’ll need a more complex cable setup. For instance, your computer might be equipped with a multiport MIDI interface providing eight output ports. Assuming your sequencer can address these ports independently of one another, you’ll be able to use 16 channels on each port, for a total of 128 channels. A few synths can receive on up to 32 channels at once. To do this, they need two physical MIDI input jacks (or else some other type of connector, such as USB, to receive MIDI from a computer). 7. There are two kinds of MIDI sync. The original MIDI Specification defined the clock message, as well as stop, start, and continue messages and a song position pointer message. These can be used to synchronize two devices, such as sequencers, to one another. The clock message is sent 24 times for each quarter-note, which means it’s tempo-dependent. It contains no information about how much time has passed, or where in the song the transmitting device is at the moment. A more complex type of synchronization is provided by MIDI Time Code (MTC). Basically, MTC is a way of sending SMPTE synchronization code (which is used to synchronize tape decks and other devices) down a MIDI cable. MTC provices realtime sync — that is, it contains information about how much time has passed since the beginning of the song. However, MTC does not provide tempo information. If two devices are synced to one another with MTC, and if they’re set to different tempos, they’ll drift apart musically even though they’re properly synchronized. 8. Middle C is note 60. MIDI defines a set of 128 notes for each channel. Middle C is note 60, which means that a conventional 5-octave MIDI keyboard has a range from note 36 through note 96. There has never been an entirely standard method of displaying octave information in sequencer edit windows, however. Some sequencers display note 60 as C3, while others display it as C4. 9. A MIDI note-on message contains three parts. First up is the channel number. (For you tweakheads out there, the channel number is part of the status byte. With a few exceptions, every MIDI message starts with a status byte, which tells the receiving device what kind of message is about to arrive.) Then comes the note number. Last is the key velocity. The channel number can have a value between 1 and 16. Both the note number and the velocity can be anywhere between 0 and 127. 10. A velocity of zero turns a note off. There are two basic ways to turn off a MIDI note once it has started. You can send a note-off message, or you can send a note-on message with a velocity of 0. In either case, obviously, the channel number and note number need to match an earlier note-on message. If they don’t match, the note will never be switched off. In your sequencer’s preferences box, you may be able to switch “send note-off messages” on or off. This means, “Send real note-off messages, or send note-ons with velocity 0?” It should make no musical difference how you set this switch, except that in dense musical passages sending note-offs may slow down the MIDI data stream very slightly. Because note-on messages with velocity 0 function as note-off messages, the possible range of velocities that can be used to start MIDI notes is 1–127, not 0–127.