
                      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.
     
***************************************************************************
