That infernal MIDI Mapper

This is an attempt to answer some of the most common questions about the MIDI
Mapper and MIDI under Windows.  If you've got questions that aren't covered
here, please let me know and I'll try to put your questions (and my answers)
into the next version of this file.

Q.  What's the MIDI Mapper for anyway?

A.  The MIDI Mapper's purpose is to provide device independence to MIDI
    devices.  It attempts to do that same thing that the printer drivers do
    for instance - a Windows program doesn't have to know how to deal with
    your specific printer type, it just deals with a generic printer.  Then
    Windows and the printer driver figure out how to make the printed output
    appear.

Q.  Okay, how does it provide this independence?

A.  Technically, what the MIDI Mapper does, is remap patches, notes, channels
    and adjust velocities.  It uses the Patch Map, Key Map and Setup to
    determine how to do this.  You can create or adjust these yourself.

Q.  Huh?  What's a patch, channel and velocity?

A.  These are all part of the MIDI lingo.  A Patch is used to determine the
    sound to be used - examples would be Pianos, Strings or Guitars.  Patches
    are used to select which instrument is used.  Channels are used to
    separate songs to allow more than one instrument to sound at the same
    time.  There are 16 MIDI channels, and each channel can use a single
    instrument or patch at a time.  All notes are played on a MIDI channel.
    Velocity is a measure of how hard a note is pressed, and is used to
    specify how loud a particular note is.

Q.  Will it work with all MIDI files?

A.  Well, kinda yes and no.  Until recently, there wasn't any standard for
    patch numbers, or note numbers.  It was up to the manufacturer to
    determine what patch number to use for a Piano sound for instance.  Now
    there is a General MIDI specification, which does identify which
    instrument is to be used for each patch number.  However, there are a
    large number of songs out there that are not General MIDI.  Now this
    doesn't mean that you shouldn't try to play non-General MIDI files with
    the MIDI Mapper.  The worst that can happen is it'll sound bad.

Q.  What's General MIDI?

A.  This is an official specification from the International MIDI Association
    (the MIDI standards committee).  Microsoft has used a subset of the
    specification for their own purposes.  Microsoft has adopted the General
    MIDI patch numbers and drum key numbers, however they have not taken the
    complete specification.

Q.  What are the differences between Microsoft's way and the real General MIDI
    Specification?

A.  The General MIDI Specification requires much more capable MIDI equipment
    than Microsoft.  A real General MIDI device supports 32 note polyphony
    (that's 32 notes sounding at the same time), and uses all 16 MIDI
    channels.  This is more than Microsoft's target device can handle, so
    Microsoft has defined two less capable devices - a "Basic" device, and an
    "Extended" one.  They've also defined a set of "Authoring Guidelines" for
    MIDI files.

Q.  What are the capabilities of a Basic device.

A.  A Basic device must be capable of playing 6 melodic notes, in at least
    three different instruments, as well as 5 percussion notes.  All sound
    cards are capable of this - in fact, most can only do this.  Basic devices
    are supposed to listen to MIDI channels 13 through 15 for the melodic
    instruments, with the drums on channel 16.  The Adlib, Sound Blaster and
    original Sound Blaster Pro are all Basic devices, as are most sound cards.

Q.  Okay, what about Extended devices?

A.  Extended devices must be capable of 16 melodic notes, using 9 instruments,
    plus 16 note, 8 instrument percussive.  Extended devices are supposed to
    listen to MIDI channels 1 through 9 for melodic sounds, with the drum
    track on channel 10.  Examples of Extended devices include the Roland
    MT-32/LAPC, Roland Sound Canvas series (including the SCC-1), and Turtle
    Beach's MultiSound card.

Q.  What are Microsoft's Authoring Guidelines?

A.  The purpose of the guidelines is to allow people to build a single MIDI
    file that will play on either a Basic device or an Extended one.  To do
    this, you put two versions of the same song in the file - one on channels
    13 through 16, and another on channels 1 through 10.  Each copy of the
    song is must meet the rules for Basic and Extended devices, with higher
    priority sounds on the lower channel numbers.  The guidelines also include
    specific setting for volume and such.

Q.  Are there a lot of files done Microsoft's way?

A.  Yes and no.  Here on CompuServe, we don't have any that meet the Microsoft
    rules.  However, the CANYON.MID file included with Windows does, and there
    are a number of CD-ROMs out there that include Microsoft format files.

Q.  How do I know whether a song is General MIDI?

A.  Here on CompuServe, we mark the files with a keyword of GM.  Windows has a
    warning message that you'll get if a song isn't marked as General MIDI -
    most people turn this off, because not all files that are General MIDI are
    marked as such.

Q.  Okay, enough background - How do I get this thing to play?

A.  Getting MIDI working under Windows requires two steps - installing the
    required drivers for your sound equipment, and configuring the MIDI
    Mapper.

Q.  Where do I install the Sound Drivers?

A.  All sound drivers are installed using the Window Control Panel application
    (in your Main program group).  Once started, Control Panel shows a set of
    icons - choose the one labeled Drivers to install, remove or configure
    sound drivers.  Now a list of the currently installed drivers will be
    shown - press Add to add a new driver.  Most sound cards come with drivers
    for them - follow the manufacturer's directions to install the drivers.
    This is also fairly well documented in your Windows manuals.

Q.  Okay, how do I configure the MIDI Mapper?

A.  Most sound cards come with new setups for the MIDI Mapper.  There are
    often three setups that'll use the internal sounds of the sound card - one
    labeled "Basic", one labeled "Extended" and one labeled "All".  The
    differences between these three setups are the channels used.  A Basic
    setup will ignore anything on channels 1 to 12, and an extended setup will
    ignore anything on channels 11 through 16.  The All setup will listen to
    all 16 MIDI channels.

Q.  When do I use All?

A.  For songs from CompuServe, All is the best setting.  However, Canyon won't
    sound very good with this setting, because it contains two copies of the
    song as discussed before.  Unless you've got a large collection of songs
    done Microsoft's way, it's probably best to stick with All, and use a
    sequencer to edit Canyon if you want to hear it.

Q.  What's this setting called MIDI?

A.  Most sound cards include an optional MIDI connection.  Often this is an
    add on.  You'd use this to connect an external MIDI device, such as a
    keyboard.  Unless you've got an external MIDI device, you can ignore
    anything like "Sound Blaster 1.0 MIDI" - if you use this, you won't hear
    anything.

Q.  What are the MIDI Mapper Setups?

A.  A Setup in the MIDI Mapper connects a key map and patch map to a set of
    drivers.  A Key map is used to remap drum notes, and the patch map is used
    to remap patches.  The setup ties all of these together, and assigns a
    patch map, key map and device to each MIDI channel.

Q.  When would I have to edit or create a MIDI Mapper Setup?

A.  If you've got a MIDI device that isn't supported in the list of available
    setups, you'll have to edit the setup.  For instance, someone with a
    Roland Sound Canvas is probably using the Windows MPU-401 driver.  The
    Sound Canvas is a real General MIDI device - it doesn't need any patch or
    key maps.  You can easily create a setup for this - just assign "MPU-401"
    as the driver for each channel, and save the setup.

I hope this has been of some use to you.  As mentioned before, please let me
know if there's something you think should be covered in a future edition of
this file.

Dan McKee
MIDI Forum Sysop
71333,1572
