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 [] [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: means that you designate an override IBK file to be used to handle the GM instrument mappings. MELODY.IBK is the default. /DRUM: 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:)