         CMFStuff - Utilities For Working With CMF Music Files
         =====================================================

Disclaimer:
-----------

These utilities are hereby placed into the Public Domain. I, Rocco
Loscalzo, retain full copyright and allow their use, in unmodified form,
for whatever purpose the user sees fit. I do not vouch for their
suitability to perform any pre-defined task and cannot be held
responsible for any damage incurred by their use to you, your health,
your PC or pet cat. Anyone using these utilities does so entirely at
their own risk.


Contact Information:
--------------------

Should you have any queries regarding the use of these utilities you can
contact me via email at:

                      RoccoLoscalzo@compuserve.com

Also, you might want to periodically check out my web site at:

        http://ourworld.compuserve.com/homepages/RoccoLoscalzo/


Sales Pitch:
------------

If you are interested in being able to incorporate music and sound
effects into your own games (SB compatibles only) you can email me at
the address above. A DOS real-mode and protected-mode sound library is
available with full 'C' source code. Email me for details and pricing.

Archive Contents:
-----------------

1. PlayCMF v1.2. A DOS based command line player for CMF files. Includes
support for OPL3 (18 voice) FM chipset and shows %age of song played.
This is a true polyphonic (plays multiple notes per channel) CMF player.
Just type PlayCMF for a list of command line options.

2. PatchCMF v1.3. A fully featured DOS based CMF music instrument patch
editor. Use this utility after you have, say, converted your song from
MIDI to CMF format and want to adjust the instrument timbre settings.
This utility has full online help by pressing the F1 key which describes
all of the available options. Here's a brief rundown of features:

        * Support for OPL3 (18 voice) FM chipset.
        * True polyphonic support.
        * Displays instruments used, names and channel mappings.
        * Allows you to work on a CMF file without overwriting the
          original.
        * Allows playback of music to test your amendments.
        * Instrument patch facility using import from IBK files.
        * 'Dynamic' instrument patching facility to allow you to
          sequence through a number of IBK instruments while the music
          is actually being played.
        * Allows instrument export into IBK file.
        * Channel filtering during playback.
        * In-built instrument timbre editor for all of those 'minor
          adjustments'.

3. MID2CMFR v1.0. A DOS based commaned line utility for converting type
0 and type 1 MIDI files into CMF format. It runs in protected mode to
allow it to work with huge midies. If you try and run it from Win95 DOS
box it may go full screen on you. It should still work okay though. This
utility was written to get around, dare I call them, bugs within
Creative Lab's own CMF2MID convertor. MID2CMFR is more sophisticated
than the Creative version primarily allowing better mapping of the MIDI
percussion instruments. The MIDI to CMF conversion process requires the
use of 2 instrument bank (IBK) files. One to handle the mapping of the
General Midi (GM) instruments and one to handle the mapping of the drum
(percussion) channel. 3 such IBKs are included with this release:

(a) MELODY.IBK          This is used to implement the general midi map.
(b) DRUM.IBK            This is used to implement the fixed drum channel
                        sounds in CMF (see below).
(c) ALLDRUMS.IBK        This holds the timbre settings for all of the
                        percussion instruments.

According to GM, percussion note keys 35 to 81 define the percussion
instruments. This gives a total of 47. The first 47 instrument timbres
in ALLDRUMS.IBK match those percussion key assignments i.e. percussion
key 35 is instrument timbre 0, etc.

Here's how MID2CMFR works:

MID2CMFR <file.mid> [<file.cmf>] [options]

options are:

/RESTRICT (default) means that only the fixed CMF drum sounds are used
i.e. BD, SD, TT, CY and HH. Note that all bass drum percussion
instruments are mapped to BD channel, all snare drums to SD, etc. All
other percussion keys e.g triangle, etc, are NOT included in the
conversion to CMF. With this mode only the first 5 instruments of the
IBK designated for the drum timbres will be used i.e. DRUM.IBK by
default. These are 0=BD, 1=SD, 2=TT, 3=CY and 4=HH.

/ALLPERCUSSION means that all percussion key assignments are mapped to
the CMF drum channels. It attempts to be clever and allocate each
different percussion instrument to a free drum channel. With this mode
the first 47 instrument timbres of the designated drum IBK should match
the default GM percussion key assignments. ALLDRUMS.IBK is the default
drum IBK in this mode.

/MELODY:<file.ibk> means that you designate an override IBK file to be
used to handle the GM instrument mappings. MELODY.IBK is the default.

/DRUM:<file.ibk> means that you designate an override IBK file to be
used to handle the drum (percussion) mappings. The default depends upon
the mode described above. Any file you designate should reflect the mode
you are using.


Final Note:
-----------

I hope you find one or more of these utilities useful. I had a bit of a
'mare creating them but have found them very useful for me. If you like
them drop me a line!

Cheers,

Rocco Loscalzo (CyberFrog) 8:)
