MIDI Matters (Part 1)
Back To Basics
Jay Chapman takes a side step from his regular foray into MIDI and presents this 'back to basics' article especially for the many new readers who have picked up on the series since it first began.
This article is for the benefit of a number of Sound On Sound readers who have been sorely mistreated in quite a few of my past articles. Who am I referring to? The people who don't fully understand MIDI - yet.
It's easy to forget that there will always be a bunch of newcomers arriving at some part or other of the MIDI universe and that they will need help in deciphering the jargon. The idea of this article is to explain some of the commonplace terms found in articles on MIDI. I mean the simple terms, the obvious ones, the ones that people take for granted but don't really know what they mean. Or maybe they have some idea but they're not quite sure...
If you are one of the people who just cast a haunted glance over your shoulder, read on, gentle reader, read on!
MIDI is an acronym for Musical Instrument Digital Interface. Now 'Musical Instrument' shouldn't rock the boat too much but what do 'Digital' and 'Interface' mean?
Digital means (as far as we need concern ourselves here) that there is some information around which has been coded up in numeric form. An analogy would be the London Tube Map which is split into Zones 1, 2 and 3. If we want to tell somebody which zone we are in (and we already know that the subject of our conversation is 'tube zones') then we can just talk in terms of the numeric values 1, 2 and 3. Another analogy would be to refer to somebody's house purely via a number - such as their telephone number.
Interface means "a piece of equipment where interaction occurs between two systems" (Oxford Reference Dictionary). In our case, we may want a keyboard to interact with a synthesizer module, ie. playing on the keyboard causes the synthesizer to sound. The interface consists of the electronics in each device that implement the MIDI Out (see below) on the keyboard, the MIDI In (also see below!) on the synthesizer module, and the MIDI cable between them.
Digital Interface combines the electrical connection (eg. Out, cable, In) between the devices and the flow of information between them which is coded up in numeric form. The keyboard must somehow convert the 'playing' of the musician into numbers, which are passed over the Digital Interface and understood by the synthesizer, which must think in terms of the same numbers as the keyboard. Most of the time we don't see or care about the fact that this information is numeric, we are more interested in the effect the numbers have when they arrive!
MIDI In, Out and Thru are the labels on the three sockets on the back panel of each of your MIDI-equipped devices. Some devices have only two sockets and some even need only one of these three.
Basically the labels say it all. MIDI In is where our numbers (remember 'Digital') flow into the device from some other device. MIDI Thru pushes out a straight copy of what just came in on the MIDI In to cater for the case where some other device also needs to listen in: consider the situation where one keyboard is controlling two or more synthesizers, for example. MIDI Out is responsible for sending out any numbers that this device created. A keyboard will have a MIDI Out socket for fairly obvious reasons, since all the numbers representing what the musician 'played' must get across to the boxes that are supposed to make the sounds!
Connectors are on the end of your cables and the back panel of your devices (labelled MIDI In, Out and Thru). MIDI cables look a lot like hi-fi cables: they may terminate with 5-pin 180 degree DIN plugs but they do not carry audio signals as we have already seen (remember 'Digital' above), so don't get confused. Only connect a MIDI In (or a MIDI Thru) to a MIDI Out and nowhere else. Another cable to watch out for, that you may have lying around with the same plug on the end, is the remote control on your hi-fi tape recorder. Although the signals that flow through this type of hi-fi cable are definitely more digital than audio, they are simple on/off signals that just duplicate electronically the switches on the front panel of the tape recorder: not as sophisticated as MIDI by a long chalk!
Hardware means the physical side of your equipment. It is the term often used to refer to the actual microprocessor and associated components that are involved with sending, receiving or acting upon the digital information flowing around your (MIDI connected) set of equipment.
Software is the computer program, ie. the set of microprocessor instructions that tells the hardware (or some of it at least) what to do. As far as MIDI is concerned, it is usually hardware that senses what is happening in the cable and converts it into numbers for the software to understand and act upon.
MIDI protocol means the set of rules that have been drawn up (by the International MIDI Association) to tell equipment manufacturers - and anybody else who is interested - how instruments, computers and other devices should connect themselves and communicate to produce a complete MIDI system. The MIDI 1.0 Specification document concerns itself with the hardware and the message protocol required. The form of the messages is dealt with below.
Hexadecimal... no, we'll save that for a day when we haven't got a headache!
31.25 Kbaud is the speed that bits (short for 'binary digits') fly between a MIDI Out and a MIDI In connection. 'Bits' need not concern us here, you'll be relieved to know, beyond the fact that they are grouped in eights to form a byte. If we think of a maximum of about 3,000 bytes per second travelling from device A to device B we might make more sense of it. Especially when we realise that each byte is effectively a number in the range 0 to 255 and that the numbers (remember 'Digital') represent the musical information that is formed into MIDI messages (see below).
MIDI messages are really what it's all about. When, for example, a keyboard player presses and releases a note, the world wants to know about it (see Note On/Off below). Perhaps a synthesizer module wants to sound the note for the length of time it was held by the player; perhaps a sequencer wants to record it for later playback. Now the basic currency for MIDI communications is the byte (see last paragraph), so each MIDI message must be made up of one or more bytes. And, as we shall see, the interpretation of each byte (or number) or string of bytes (or numbers) is governed by the MIDI message protocol.
Status bytes are used to tell us what sort of message we are dealing with: Note On, Note Off, Time Clock, Program Change, Aftertouch... there are plenty more. Whenever a Status byte arrives at MIDI In a receiving device knows exactly how it should respond to this type of message. In some cases there is no response expected eg. a synthesizer with no built-in sequencer will probably ignore Time Clock messages. An echo or reverb unit might only respond to Program Change messages (so that it can provide a different effect as each new program is selected from the master keyboard or sequencer, for example). All the different types of MIDI messages will be discussed further so don't panic if they are a little bit vague at the moment.
Data bytes are all the bytes that aren't Status bytes! Where a message only needs one byte (eg. a Time Clock message consists of just the number 248, which fits into just one byte) then that is what is sent. In this case, the one byte is a Status byte since it identifies the type of message. There is nothing else to be done so there are no other bytes involved. However, if it is necessary to send more than one byte to complete a message, then the bytes that follow the Status byte are the associated Data bytes. Most of the time there are one or two Data bytes. As we shall see...
Status versus Data It is easy to tell a Status byte from a Data byte: Status bytes always have numeric values of 128 or more and Data bytes 127 or less. Since Data bytes are used to carry supplementary information to complete a message that started with an appropriate Status byte, it is worth noting that this extra information can only be represented by numbers in the range 0 to 127, otherwise the system might think that it has received a new Status byte instead!
Note On event occurs when, for example, you press a key on a keyboard. It is usually intimately associated with (and followed by) a Note Off event message, although that may not always be the case: consider what should happen when you hit a drum pad where the 'on' and the 'off could be considered to occur at the same time! The MIDI message for Note On consists of three bytes. The first byte is the Status byte that says that we are dealing with a Note On event. The two Data bytes that follow tell us other useful information about the event - details coming up...
Note Number is what is held in the first Data byte of the Note On event message. The permitted Note Number can only be in the range 0 to 127, where 60 is Middle C and each value represents a semitone. In other words 59 is B below Middle C and 61 is C# above Middle C. At 12 semitones to the octave MIDI can cope with a 12 1/2 octave keyboard span, including about two octaves below and one octave above an 88-note piano keyboard. It may well be that you have to instruct your synthesizer (which has, say, a 5-octave keyboard) to transpose in order for it to produce all of the possible MIDI Note Numbers. Even then it may not be able to produce them all. Another little problem to be aware of is that not all receiving devices can handle the full range of Note Numbers and you may therefore get nothing, or something a little weird, out of some MIDI devices if you send them very low or very high Note Numbers.
Velocity, or rather the number representing it, is the contents of the second of the two Data bytes making up the three byte Note On event message. This value corresponds to our concept of 'touch sensitivity' in a keyboard, the existence of which distinguishes between normal piano and organ keyboards, of course.
In most electronic instruments touch sensitivity is measured in terms of the velocity of the struck key. In other words, it is based upon the fact that the harder you strike the key, the shorter the time it will take to move from rest to the far end of its possible travel. This time is measured electronically and presented as a velocity value equivalent (in theory) to the distance travelled divided by the time taken. MIDI's normal range of values for keyboard velocity, held in the second Data byte of the Note On event message, is 1 to 127 (with the value 0 reserved for a special usage). Normally, the value 1 would represent ppp (extremely quiet), 64 would mean somewhere between mp and mf (medium loudness) and 127 would be fff (extremely loud). Not all MIDI keyboards can generate a velocity value (in which case they use the default value 64 - midway in the range 1 to 127 - in the Data byte which they are still obliged to send), and not all receiving devices can respond to the velocity byte (which they still take in-but ignore).
OK folks, that's all for now. May I suggest you find a nice quiet corner, sit yourself down, and re-read what I have just presented thoroughly. By which time, hopefully, you'll all be clued up and ready for next month's instalment of MIDI basics!
Feature by Jay Chapman
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!