IMF

From Video Game Music Preservation Foundation Wiki
Revision as of 10:35, 31 August 2016 by TheAlmightyGuru (talk | contribs) (Recording Guide)
Jump to: navigation, search
id's Music Format
IMF.png
Developer: id Software
Header: Custom
Content: Instructional
Instruments: Combined
Target Output
Output - Digital Audio - No.png Output - MIDI - No.png Output - FM Synthesis.png Output - PSG - No.png
Released: 1991-11-??
First Game: Catacomb 3-D (DOS)
Extensions
  • *.imf
  • *.wlf
  • *.adlib

The id Music Format (name verified by John Romero) is an AdLib audio structure developed by Jason Blochowiak. It was designed to be an optimized music format that would be played on the OPL2 chip on the AdLib or Sound Blaster. In fact, the format is actually very similar to to the AdLib command syntax because it stores the raw data that needs to be sent to the chip.

IMF was originally created to be used in Commander Keen IV: Secret of the Oracle (DOS), but due to contractual obligations, the first published game to use IMF was Catacomb 3-D (DOS). The very first song to use IMF format was Too Hot to Handle. IMF music was almost included in Commander Keen: Keen Dreams (DOS), but due to space constraints, all music was removed from the game in order to fit on a single floppy disk.

Jason Blochowiak's memory is a little fuzzy on the format:

IMF sounds like it's probably what I did - boiling down MIDI note and instrument change info as input into AdLib register/value pairs with timing information (which, if I recall correctly, what was stored in the music playback files).

There are two types of IMF formats. The first series of games to use IMF format are in what is now called Type-0. Type-0 IMF doesn't include any header information and is sent straight to the OPL2 chip. Later games use Type-1 which has a short header that includes the length of the song, and allows for meta data in a footer.

Unfortunately, IMF does not store the song's playback rate. Because of this, precautions must be made when playing back IMF files. Bio Menace, Catacomb 3-D, Commander Keen, and Monster Bash all play at 560 Hz, but Cosmo's Cosmic Adventures, Wolfenstein 3-D, and games using the Wolf 3D engine (Spear of Destiny, Blake Stone 1 & 2, Operation Body Count, and Corridor 7) all run at 700 Hz. Duke Nukem II is unique and runs at 280 Hz.

The most common solution this this problem is to give the Wolf 3D games a *.WLF extension, keep the others as *.IMF. AdPlug will automatically adjust the playback rate for these files. To achieve proper play-back for Duke Nukem II, all the delays are doubled in the file setting it to match the 560 Hz tempo. They must then be halved when put back into the game. Alternately, the format could be modified with a header that contains the necessary playback rate, but both the files and players would have to be updated, so this is unlikely.

AdPlug has descent playback of IMF, but it has issues with percussion.

Players

(Category)

Converters

(Category)

IMF to ?

? to IMF

Games

(Category)
Released Title Sample
1991-11-?? Catacomb 3-D (DOS)
1991-12-15 Commander Keen IV: Secret of the Oracle (DOS)
1991-12-15 Commander Keen V: The Armageddon Machine (DOS)
1991-12-15 Commander Keen VI: Aliens Ate My Babysitter! (DOS)
1992-03-?? Cosmo's Cosmic Adventure (DOS)
1992-05-05 Wolfenstein 3D (DOS)
1992-09-18 Spear of Destiny (DOS)
1992-??-?? The Catacomb Abyss (DOS) Included in data files, but never played.
1993-01-?? Major Stryker (DOS)
1993-04-09 Monster Bash (DOS)
1993-08-03 Bio Menace (DOS)
1993-12-03 Duke Nukem II (DOS)
1993-12-05 Blake Stone: Aliens of Gold (DOS)
1993-??-?? Catacomb Armageddon (DOS) Included in data files, but never played.
1993-??-?? Catacomb Apocalypse (DOS) Included in data files, but never played.
1994-01-05 Realms of Chaos (DOS) (Beta Version Only)
1994-??-?? Operation Body Count (DOS) noicon
1994-03-?? Corridor 7: Alien Invasion (DOS)
1994-06-01 Hocus Pocus (DOS) (Beta Version Only)
1994-10-28 Blake Stone: Planet Strike (DOS)
2008-04-19 Voxelstein 3D (W32)
2013-??-?? Wolfenstein 3D (AND)

Recording Guide

To convert a, IMF soundtrack into one that can be uploaded to the VGMPF, see IMF - Recording Guide.

Links