User manual
USER MANUAL
MIDI Overview
This chapter presents a brief overview of the Musical Instrument Digital Interface—MIDI. You should
also have a more detailed reference on the subject, especially if you need to understand advanced
features not covered here, such as MIDI Time Code and Sample Dump Standard.
Introduction
The MIDI specification details a combination of hardware and software, enabling synthesizers,
computers, effects, and other MIDI devices to communicate with each other. Communication may be
one-way (sending or receiving) or two-way (sending and receiving). For instance, a simple effects
processor might have only MIDI input, to allow remote MIDI selection of program number.
Synthesizers usually have MIDI input and output. They can receive requests to play notes from other
keyboards or from a computer, and they can send notes played on the unit's own keyboard. Program
changes and actual program information can be sent and received.
Numbers and conventions
Often, MIDI documentation refers to number values in decimal, hexadecimal (often called hex), or
binary, as is convenient. Tables often denote MIDI bytes as binary, such as 1011nnnn or 0vvvvvvv.
Otherwise, if not noted or obvious, assume decimal. Hexadecimal is used as a shorthand for binary,
usually preceded by a dollar sign ($)—as in this text—or followed by an H. (For instance, $7E and 7EH
stand for hexadecimal 7E.)
MIDI hardware interface
The MIDI interface operates at 31.25 Kbaud, which works out to 320 microseconds per byte. Since
most MIDI messages consist of two or three bytes, this means that it takes less than a millisecond to
send a MIDI command.
The serial data is transferred in a current loop configuration. Many devices have a MIDI thru, which
simply passes the MIDI input. You may use these to daisy-chain MIDI devices, but a chain of three
devices is the practical limit, since each thru adds timing distortion to the MIDI signal, making it difficult
for the receiver to interpret the data correctly. Y-cords are not appropriate for either splitting or
combining MIDI data. You must use MIDI thru boxes to distribute, and mergers to combine MIDI
streams.
Proper MIDI cables are made from shielded twisted pair cable, and should be a maximum length of 50
feet (15 meters). (Beyond using quality built MIDI cables, there is no advantage to using expensive or
esoteric cables. They have no effect on the MIDI transfer or the sound quality of your instrument.)
As a final hardware note, the thoughtful folks that brought us MIDI deemed that the connections would
be opto-isolated. This eliminates the possibility of ground loops through the MIDI cables. Also, you will
not harm your MIDI ports if you accidentally plug an output into another output (but it won't do anything
interesting either).
MIDI data format
MIDI communications happen through multibyte messages consisting of one status byte, optionally
followed by one or two data bytes, except for system exclusive messages, which have an arbitrary
number of data bytes. Status bytes have their most significant bit (MSB) set to differentiate them from
data bytes, so status bytes range in value from 128 ($80) to 255 ($FF), while data bytes range from 0
to 127 ($7F).
MIDI supports 16 message channels, letting you link multiple devices while maintaining individual
control. Messages sent on specific channels, such as note on and note off, are called channel
messages. Messages that are not channel oriented are called system messages. See Table 1 at the
Rev 1.2 - Page 75