MIDI INTERFACES FOR THE IBM PC
     by David (Rudy) Trubitt
from September, 1990 issue of ELECTRONIC MUSICIAN

     If you are looking for a MIDI interface for an IBM PC or
compatible system, don't consider it a simple hardware purchase. 
The interface you use will have a big impact on the software you
will be able to run.  Unlike the Macintosh or Atari ST, there is no
serial communication driver built into the PC's operating system. 
For that reason, interfaces and software are not automatically
compatible.  But there is a de facto standard:  Roland's MIDI
Processing Unit (MPU-401).
     When it was introduced in 1984n the principal selling point of
the MPU-401 was Intelligent mode, which takes care of many
important MIDI talks without bogging down the PC's central
processor.  The IBM PC's of 1984 had less poser than today's
models, so the MPU's processing capabilities were useful.  Roland
offered the MPU-401 chips to other companies, making it easy for
them to make compatible products of their own.  Enough MPU-styled
interfaces were sold that nearly every software company had to
support it to stay competitive.  This is still the case.  Even
programs designed specifically for non-MPU interfaces usually offer
MPU-compatible versions.
     The MPU-401's biggest advantage today is software
compatibility.  If you want to run the largest number of programs,
especially shareware, you should be looking at an MPU-compatible
interface.
     Today, the typical PC-compatible has increased in power to the
point that it doesn't need the help Intelligent mode offers.  Also,
Roland's MPU-401 chips discard MIDI time code (MTC) messages when
in Intelligent mode.  As an alternative, the MPU can operate in -
you guessed it - Dumb mode (also called UART mode), which does pass
MTC messages.  In this case, the computer is responsible for
everything and all features of Intelligent mode are lost.  Many
developers who support the MPU-401 today are using Dumb mode,
despite the extra work it entails.  This means that users pay for
unused features.
     Several manufacturers have taken the basic MPU-401 and added
additional MIDI ports and SMPTE read/write capability. (for you
non-musical types out there, SMPTE is a time code used mainly in
multi-track recording and audio-video sync-ing...LC).  These
interfaces function like a plain MPU0401 unless the software is
specifically written or updated to support the additional features.

Check with the software manufacturer to find out if their software
supports any "extras" that your interface provides.

NON-MPU INTERFACES
     MPU-401 compatible interfaces must be installed in an
expansion slot, forcing laptop users to seek alternatives.  Many
laptops use a MIDI interface that works with the printer port,
either serial or parallel.  You'll have to call your software
vendor to find out if their programs support these interfaces, as
none of the serial or parallel interfaces are MPU-compatible.  
     To achieve the MIDI rate of 31.25 kilobaud (and you guys
thought your modems were hot stuff!!!!!.....LC) serial MIDI
interfaces run the PC's serial port at higher rates than were
originally intended.  In most cases, this is no problem, although
one software vendor cited potential throughput problems in dense
datastreams.  There are a number of serial interfaces available,
and they are gaining support among software vendors.
     The parallel port has some potential advantages over the
serial port as a host to a MIDI interface.  Suprisingly, there is
only one parallel port MIDI interface on the market today, the
Eclipse HRS-3000.
BUILT-IN SOUND AND PREPACKAGED SYSTEMS
     Several manufacturers make cards that incorporate interfaces
with onboard synthesizers, which are well-suited for educational
applications. Game software can also take advantage of this type of
device for generating sound effects and music that are synchronized
with the on-screen action.  
     Some systems of this type, such as the IBM PC Music Feature
Card (which includes an onboard Yamaha FB-01 synth), are not MPU-
compatible.  Roland's LAPC card on the other hand, combines an MPU
interface with a Roland MT-32 synth.  In some cases, the MIDI
implementation of game-oriented boards may be limited, so read the
fine print.
     Most MIDI interfaces include some of tape sync capability as
part of their design.  However, in nearly every case, the signals
that they put on tape are incompatible with each other (with the
exception of the four different frame rates of SMPTE).

WHO'S DRIVING THIS THING ANYWAY?
     To transmit and receive MIDI messages, a special software
program called a device driver is used.  The application program
communicates with the driver program rather than with the interface
itself.  Typically, a device driver is designed into each
application program, and drivers are incompatible from program to
program.
     To acheive the blissful state of INDEPENDENCE, in which the
user selects software and hardware without concern for
compatibility, a system-wide driver must be written to support a
number of interfaces and programmers must agree to support the
protocols used by that driver.  Such a driver can also be designed
to manage access from several programs simultaneously in a
multitasking environment, such as Microsoft Windows 3.0. 
     Playroom Software is close to releasing its MIDI Executive
program, a driver for several popular interfaces that can also
manage more than one interface and application simultaneously. 
Playroom is encouraging other software vendors to support MIDI
Executive but MIDI Executive requires the Windows environment, and
most current PC users are using DOS wothout Windows.  Also, it is
almost certain that Microsoft will offer some sort of MIDI support
in fuuture versions.  Although Microsoft's offering may be less
sophisticated than Playroom's there is a possibility that the two
will compete for developer support.  A solution like Playroom's
could be a real step forward for MIDI on the IBM PC.
     In summary, let your software needs drive your hardware
purchase.  If you aren't sure of your future needs, an MPU-401
compatible interface is a safe choice.  If you are putting together
a system primarily t run one package, ask the software vendor for
a recommendation.


MANUFACTURERS OF IBM PC MIDI INTERFACES

-Brown-Wagh Publishing: (408) 395-3838

-Computer Music Supply: (800) 322-MIDI or (714) 594-5051

-Eclipse: (800) 456-6434 or (214) 238-9944

-Kee Electronic Enterprises: (800) KEE-MIDI ext 10, 
     or (817) 560-1912

-Mix Bookshelf (IBM PC Music Feature) (800) 233-9604
     or (415) 653-3307

-Music Quest:  (800) 876-1376 or (214) 881-7408

-Optronics Technologies (503) 488-5040

-Passport Designs: (415) 726-0280

-RolandCorp US: (213) 685-5141

-Voyetra (800) 233-9377 or (914) 738-4500

David (Ruby) Trubitt would consider a MIDI brain implant if it were
MPU-401 Compatible.

SIDEBAR 1
IRQ's - NINETY PERCENT OF THE PROBLEM
     If you're having a problem installing an interface card in
your PC, your MIDI interface and some other card may both be trying
to use the same interrupt request line or IRQ.
     IRQ's are a way for parts of your PC (such as a MIDI
interface) to tell the CPU to stop what it's doing and take care of
something that can't wait (such as reading incoming MIDI messages).

This request is made by toggling the state of a pin on the
expansion bus.  If two cards are trying to toggle the same pin, the
CPU may lock up.  MPU-401 Interfaces normally are shipped using
IRQ2.
     Other plug-in devices also may be set to IRQ2, and some
Leading Edge and Tandy 1000's use IRQ2 for disk controlor other
functions.  If the offending card cannot be removed to have its IRQ
number changed, you'll have to change the IRQ settings on the MIDI
interface.  Most newer interfaces have user-selectable IRQ's, but
your software must be able to use the alternate IRQ or it won't
recognize the presence of the interface.  Many new programs offer
user-selectable IRQ's, but older programs and shareware may not
have this ability.

SIDEBAR 2
There is a chart which I scanned in very hurriedly as .PCX file. 
You are welcome to view it, but it is hard to read.  This is all
from the September issue of Electronic Musician, a great magazine
if you are into computer/music interaction.  
The following text is a postscript to the chart (which is
MIDI1.PCX, MIDI2.PCX and MIDI3.pcx)

"Sound" refers to onboard synthesis capabilities ( a metronome
doesn't qualify).  "MPU" refers to MPU-401 Compatibility.

1 Soundblaster cannot use MIDI ina and out simultaneously

2 CMS-444-EXB Expansion rack adds four MIDI ins, four outs, and LED 
  monitor; $279. Extra I/O not MPU-401 compatible.

3 Can upgrade to 1-in, 4-out CMS-404 for $39.

4 The two MIDI outs are independent, providing 32 channels

5 With optional Quad Pask, foutr non-independent MIDI outputs     
  provided.

6 Supports Pre-MIDI, 5 volt clock sync and converts to/from FSK and 
  MIDI clock.

7 Same model works with Atari ST and Amiga

8 HRS-300 must select one of three inputs, non-merging. Same signal 
  sent to all three inputs.

9 Price for package that includes interface, sequencing software, 
  cables, and videotape.