MIDI stands for Musical Instrument Digital Interface and has been the rage among electronic musicians throughout its six year existence. It is a powerful tool for composers and teachers alike. It allows musicians to be more creative on stage and in the studio. It allows composers to write music that no human could ever perform. But it is NOT a tangible object, a thing to be had. MIDI is a communications protocol that allows electronic musical instruments to interact with each other.
Musicians were physically limited, though, because they had only two hands. Popular and avant-garde performers alike desired to "layer" their new sound creations, to play two sounds together to create a "larger" sound. Though this was possible to some extent in a multi-track recording studio, layering could not be realized on the road. A few synthesizer design technicians from different manufacturers then got together to discuss an idea they shared. Surely, they said, there had to be a way to play one keyboard and have another one sound simultaneously. They jotted a few notes, considered a few options, and scuttled back to their design labs to create this communication method.
They revealed their results at the first North American Music Manufacturers show in Los Angeles in 1983. The simple demonstration connected two synthesizers, not manufactured by the same company, with two cables. A representative from one company then played one of the synthesizers while an amazed audience heard both sound. The process was then reversed to demonstrate the two-way nature of the communication. Other variations were illustrated, and the rest is music history.
The basis for MIDI communication is the byte. Through a combination of bytes a vast amount of information can be transferred. Each MIDI command has a specific byte sequence. The first byte is the status byte, which tells the MIDI device what function to perform. Encoded in the status byte is the MIDI channel. MIDI operates on 16 different channels, numbered 0 through 15. MIDI units will accept or ignore a status byte depending on what channel the machine is set to receive. Only the status byte has the MIDI channel number encoded. All other bytes are assumed to be on the channel indicated by the status byte until another status byte is received.
Some of these functions indicated in the status byte are Note On, Note Off, System Exclusive (SysEx), Patch Change, and so on. Depending on the status byte, a number of different byte patterns will follow. The Note On status byte tells the MIDI device to begin sounding a note. Two additional bytes are required, a pitch byte, which tells the MIDI device which note to play, and a velocity byte, which tells the device how loud to play the note. Even though not all MIDI devices recognize the velocity byte, it is still required to complete the Note On transmission.
The command to stop playing a note is not part of the Note On command; instead there is a separate Note Off command. This command also requires two additional bytes with the same functions as the Note On byte. Most people are confused at first by this approach to Note On and Note Off, but after further thought they realize the necessity of the structure.
Another important status byte is the Patch Change byte. This requires only one additional byte: the number corresponding to the program number on the synthesizer. The patch number information is different for each synthesizer, and the standards have been set by the International MIDI Association (IMA). Channel selection is extremely helpful when sending Patch Change commands to a synthesizer.
The SysEx status byte is the most powerful and least understood of all the status bytes because it can instigate a variety of functions. Briefly, the SysEx byte requires at least three additional bytes. The first is a manufacturer's ID number or timing byte, the second is a data format or function byte, and the third is generally an "end of transmission" (EOX) byte. There are a number of books that have been written on the topic of System Exclusive messages, so this article will not deal with it further.
MIDI makes use of special five conductor cable to connect the synthesizer ports. Curiously though, only three of the conductors are actually used. Data is carried through the cable on pins 1 and 3, and pin 2 is shielded and connected to common. Pins 4 and 5 remain unused. Not just any cable will suffice for the exactness of the MIDI system, either. MIDI cable is specially grounded and shielded to ensure efficient data transmission. This means that MIDI cable is a little more expensive than standard 5-conductor cable, but reliable data transmission is absolutely necessary for MIDI.
The length of the cable is critical as well. IMA specifications suggest an absolute maximum cable length of 50 feet because of the method of data transmission through the cable. The entire length of a MIDI chain (discussed below) is unlimited, however, provided that none of the links are longer than 50 feet. The optimal maximum length for cable is about 20 feet, and most commercially manufactured cable comes in five to ten foot lengths.
A MIDI loop is a special configuration of a MIDI chain. The single element loop is made of two interconnecting links. This was the configuration used in the debut of the MIDI system. The OUT port of the first unit is connected to the IN port of the second, and the OUT port of the second is connected to the IN port of the first. In this case, as described earlier, a key pressed on either unit causes both units to sound, provided they are on the same channel. A MIDI feedback loop does NOT exist here, as the data going into the second unit from the first is not duplicated in the OUT port of the second going back into the first. Here, we have two one-way links connected, not a multi-link chain.
MIDI loops connecting several devices using all three ports can become complex very quickly. As a brief example, imagine four synthesizers named A, B, C, and D for convenience. A's OUT is connected to B's IN and consequently to C's IN via B's THRU. B's OUT connects to D's IN, whose THRU connects to A's IN. A key pressed on A sounds A, B and C. A key pressed on C sounds C and C alone. A key pressed on B sounds B, D, and A, while a key pressed on D sounds D only. C does not sound when B is pressed because there is no direct connection between B and C, and B's note, which does route through D, does not route through A into C because A's THRU is not connected to C, or anything else for that matter. A note played on A does not sound on D for the same reason. You get the idea.
As great as the number of available interfaces may be, the availability of software packages is almost beyond belief. Virtually everything that can be done via MIDI has a software package to do it. First came the sequencers. Based on a hardware device that simply recorded and replayed MIDI data, the software sequencer allowed the computer to record, store, replay, and edit MIDI data into "songs." Though the first sequencers were somewhat primitive, the packages available today provide very thorough editing capabilities as well as intricate synchronization methods, such as MTC (MIDI Time Code) and SMPTE.
Various patch editors and librarians are also available for computers. These programs allow the user to edit sounds away from the synthesizer and often in a much friendlier environment than what the synthesizer interface offers. The more advanced librarians permit groups or banks of sounds to be edited, stored on disk, or moved back and forth from the synthesizer's memory. They also allow for rearranging sounds within banks or groups of banks for customized libraries. These programs are generally small and can be incorporated into some sequencing packages for ease of use. On the other hand, each synthesizer requires a different editor/librarian since internal data formats are unique for each. Some packages offer editor groups for a specific manufacturer's line as some of the internal data structure may be similar between the units. But, there is not yet a universal librarian that covers all makes and models of sound modules; it would just be too large.
In this scope the implementation of MIDI channels is most effective. The computer can send data out on all 16 MIDI channels simultaneously. For example, sixteen MIDI devices, each set up for a different MIDI channel, could be connected to the computer. Each unit could be playing a separate line in a song from the sequencer, creating an electronic orchestra. This implementation is being used more and more in today's music scenes: the recording studio, major orchestras, opera, and film scoring.
But MIDI does continue to hold promise. The extent of the SysEx applications has not yet been fully realized. MIDI is by no means about to become outdated or abandoned by the musical world, and as technology becomes more and more affordable, a greater number of non-technical people will invest in their own personal MIDI systems. There may in fact be a day where the average American family has a home, two cars, three kids, and their own MIDI in the garage.
Conger, Jim. C Programming for MIDI. Redwood City: M & T Books, 1988.
Cooper, Jim. "Mind Over MIDI: Information Sources and System-exclusive Data Formats." Keyboard October, 1986: 110-111.
Enders, Bernd and Wolfgang Klemme. MIDI and Sound Book for the Atari ST. Redwood City: M & T Books, 1989.
Matzkin, Jonathan. "A MIDI Musical Offering." PC Magazine 29 Nov. 1988: 229+.
Peters, Constantine. "Reading up on MIDI for the Novice and the Pro." PC Magazine 29 Nov. 1988: 258.
If space and format permit, we would appreciate your crediting the "Articles database of CCNEWS, the Electronic Forum for Campus Computing Newsletter Editors, a BITNET-based service of EDUCOM." We would also appreciate your informing us (via e-mail to CCNEWS@EDUCOM) when you use an article, so we will know which articles have proven most useful.