That infernal MIDI Mapper (written by Dan McKee)
<!-- saved from url=http://www.zoltrix.com/mmquest.htm -->

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 patcs, 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 (Compuserve)
71333,1572
