361 lines
18 KiB
Plaintext
361 lines
18 KiB
Plaintext
|
||
HOW MUCH FOR JUST THE MIDI?
|
||
|
||
By Eric Lipscomb (BITNET: LIPS@UNTVAX). This article appeared in the
|
||
October 1989 issue of North Texas Computing Center Newsletter,
|
||
"Benchmarks".
|
||
|
||
Computer retailers are hearing about it. Music store sales
|
||
people are buying and selling it. Musicians and students are
|
||
talking about it. Professional writers are publishing articles
|
||
about it. Entire magazines are devoted to it. Students at the
|
||
Massachusetts Institute of Technology are receiving large grants
|
||
to research it. Joe "Keys" Manzotti uses it when he plays with his
|
||
band at the Holiday Inn on weekends. Just what IS this MIDI thing
|
||
anyway?
|
||
|
||
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.
|
||
|
||
|
||
A Method, Not An Object
|
||
|
||
|
||
All too often I have seen misinformed customers browsing
|
||
through a music store: "Where do you keep your MIDIs?" "I'd like
|
||
to get a MIDI for my home computer." "I need to get two MIDIs so
|
||
they can talk to each other, right?" Explaining to customers that
|
||
they cannot just get a MIDI becomes frustrating to the salesman.
|
||
Fortunately, the average consumer is learning more about the
|
||
concept of MIDI through articles such as this one. To have a
|
||
complete understanding of how MIDI works, though, one should learn
|
||
its history.
|
||
|
||
|
||
The Saga of MIDI
|
||
|
||
|
||
The combined advances and cost-efficiency in synthesizer
|
||
technology caught the music world by storm. At times, a musician
|
||
could not get a new synthesizer home before it had been outdated
|
||
by a new product. One major factor in the increased popularity in
|
||
synthesizers, and the increased push for research and design of
|
||
these units, was the development of new sound generation methods.
|
||
Musicians were creating new and different sounds worldwide.
|
||
Eventually, the musical world began to recognize the synthesizer
|
||
as a legitimate musical instrument.
|
||
|
||
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 Method of MIDI
|
||
|
||
|
||
Much in the same way that two computers communicate via
|
||
modems, two synthesizers communicate via MIDI. The information
|
||
exchanged between two MIDI devices is musical in nature. MIDI
|
||
information tells a synthesizer, in its most basic mode, when to
|
||
start and stop playing a specific note. Other information shared
|
||
includes the volume and modulation of the note, if any. MIDI
|
||
information can also be more hardware specific. It can tell a
|
||
synthesizer to change sounds, master volume, modulation devices,
|
||
and even how to receive information. In more advanced uses, MIDI
|
||
information can to indicate the starting and stopping points of a
|
||
song or the metric position within a song. More recent
|
||
applications include using the interface between computers and
|
||
synthesizers to edit and store sound information for the
|
||
synthesizer on the computer.
|
||
|
||
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.
|
||
|
||
|
||
The INs and OUTs of MIDI
|
||
|
||
|
||
The closest most people ever care to get to the heart of the
|
||
MIDI interface are the three 5-pin ports found on the back of every
|
||
MIDI unit. Labeled IN, OUT, and THRU, these ports control all of
|
||
the information routing in a MIDI system. The IN port accepts MIDI
|
||
data, data coming "in" to the unit from an external source. This
|
||
is the data that controls the sound generators of the synthesizer.
|
||
The OUT port sends MIDI data "out" to the rest of the MIDI setup.
|
||
This data results from activity of the synthesizer, such as key
|
||
presses, patch changes, and so on. The THRU port also sends data
|
||
out to the MIDI system, but not in the same manner as the OUT port.
|
||
The data coming from the THRU port is an exact copy of the data
|
||
received at the synthesizer's IN port. There is no change made to
|
||
the data from the time it arrives at the IN port to the time is
|
||
leaves the THRU port (which is a very, VERY small amount of time).
|
||
|
||
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.
|
||
|
||
|
||
MIDI Chains and Loops
|
||
|
||
|
||
A MIDI chain describes a series of one-way connections in a
|
||
MIDI setup. The elemental chain is a single-link chain. The MIDI
|
||
OUT port of one device is connected to the MIDI IN port of a
|
||
second. In this configuration, a key pressed on the first unit
|
||
will cause both units to sound. Pressing a key on the second unit,
|
||
however, only causes the second unit to sound. Many instruments
|
||
may be chained together using a series of single links to connect
|
||
the units. In this case, the OUT of the first unit is connected
|
||
to the second, the THRU of the second is connected to the IN of a
|
||
third, and so on. If all the units are set to receive on the same
|
||
channel, pressing a key on the first one will cause all the units
|
||
to sound. Pressing a key on any of the other units will only
|
||
activate the sound of that unit.
|
||
|
||
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.
|
||
|
||
|
||
Computers and MIDI
|
||
|
||
|
||
Computer manufacturers soon realized that the computer would
|
||
be a fantastic tool for MIDI, since MIDI devices and computers
|
||
speak the same language. Since the MIDI data transmission rate
|
||
(31.5 kBaud) is different from ANY computer data rate,
|
||
manufacturers had to design a MIDI interface to allow the computer
|
||
to talk at MIDI's speed. Apple Computers, with the Macintosh and
|
||
Apple ][ series, and Commodore were the first companies to jump on
|
||
the MIDI computer bandwagon [pun intended]. Roland designed an
|
||
interface for the IBM series of compatible computers a few years
|
||
later, and Atari designed a completely new computer, the ST series,
|
||
with fully operable MIDI ports built in. Today, there are many
|
||
different interfaces available for almost all types of computer
|
||
system.
|
||
|
||
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.
|
||
|
||
|
||
Computers in MIDI Chains
|
||
|
||
|
||
Basically, the computer functions the same as any other unit
|
||
in a MIDI chain or loop. Most interfaces have the same three ports
|
||
as other MIDI devices. The computer's main job in a chain, though,
|
||
would be as a MIDI data driver, meaning it would supply the MIDI
|
||
data for the rest of the chain. Very rarely is a device connected
|
||
to the IN port of a computer MIDI interface except to provide input
|
||
for synchronization signals or data to edit. Even more rare is a
|
||
connection to the computer's THRU port, although it can be used.
|
||
|
||
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.
|
||
|
||
|
||
The Future of MIDI
|
||
|
||
|
||
The MIDI specifications set out by the initial design team
|
||
have not changed drastically since its creation. The current data
|
||
structure is as it was originally designed, the only exception
|
||
being that some of the initial status bytes were not initially
|
||
defined. As it stands, the architecture of MIDI does not allow for
|
||
any further expansion. To enhance MIDI further would take a
|
||
complete redesign of the system. The IMA has been discussing new
|
||
MIDI designs, but industry and the general public will prevent any
|
||
real action from taking place because the new design would not be
|
||
backwards compatible: none of the current MIDI hardware would
|
||
operate in the new environment.
|
||
|
||
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.
|
||
|
||
|
||
References
|
||
|
||
Arnell, Billy. "McScope: System." Music, Computers, and Software
|
||
April 1988: 58-60.
|
||
|
||
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-11.
|
||
|
||
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.
|
||
|
||
|
||
|
||
ABOUT THE AUTHOR: Eric Lipscomb is a Vice President of the
|
||
International Electronic Musicians User's Group, an organization
|
||
devoted to the advancement of knowledge about MIDI and other
|
||
aspects of electronic music In his spare time he writes for and
|
||
performs with the comedy group "Green Chili Burp and the
|
||
Aftertaste."
|
||
|
||
***************************************************************************
|
||
CCNEWS Copyright Notice
|
||
|
||
If you use this article, in whole or in part, in printed or electronic
|
||
form, you are legally and morally obligated to credit the author and the
|
||
original publication name, date, and page(s). We suggest that you also
|
||
inform the author of your intention to use this article, in case there are
|
||
updates or corrections that he or she might wish to suggest.
|
||
|
||
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.
|
||
|
||
***************************************************************************
|
||
|