Difference between revisions of "IMF"

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
(Games)
(38 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Template: Infobox Format
+
{{Infobox Format
| Title     = id's Music Format
+
| Title       = id's Music Format
| Format   = IMF
+
| Format     = IMF
| Developer = [[id Software]]
+
| Developer   = [[id Software]]
| Released = 1991/11/??
+
| Header      = Custom
| FirstGame = [[Catacomb 3-D (DOS)]]
+
| Content    = Instructional
| Extension01 = *.imf
+
| Instruments = Combined
| Extension02 = *.wlf
+
| OutputDA    = No
| Extension03 = *.adlib
+
| OutputMIDI  = No
 +
| OutputFM    = Yes
 +
| OutputPSG  = No
 +
| Released   = 1991-10-09
 +
| FirstGame   = [[Catacomb 3-D (DOS)]]
 +
| Extension01 = *.imf
 +
| Extension02 = *.wlf
 +
| Extension03 = *.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 MIDI-like format that would be played via [[FM Synthesis]] on an AdLib card. 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 [[OPL]] chip. [[AdPlug]] gives the most accurate playback of IMF.
+
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 if IMF format was [[Too Hot]]. 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.
+
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.
  
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 OPL 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.
+
Jason Blochowiak's memory is a little fuzzy on the format:
 +
{{Quote|
 +
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).}}
  
IMF has one design flaw. Different games play IMF files at different speeds, but the playback rate is not part of the IMF header. Because of this, extra 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. To fix this problem, the Wolf 3D games are given the *.WLF extension and Duke Nukem II delays are simply doubled in the file to match the 560 Hz tempo. This flaw can easily be fixed by creating a file header which included the necessary playback rate, but both the files and players would have to be updated.
+
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 decent playback of IMF, but it has issues with percussion.
  
 
==Players==
 
==Players==
* [[AdPlug]] - Winamp/foobar2000
+
<div style="float:right;">([[:Category: IMF Players|Category]])</div>
  
 +
* [[Audio Overload]] - Linux, Macintosh, Windows
 +
* [[AdPlug]] - foobar2000, Winamp
 +
* [[Camoto]] - Linux, Windows
 +
* [[IMF Music Player Winamp Plugin]] - Winamp
  
 
==Converters==
 
==Converters==
* [[DRO to MIDI]] - DOS/Linux
+
<div style="float:right;">([[:Category: IMF Converters|Category]])</div>
 +
 
 +
===IMF to ?===
 +
* [[Audio Overload]] - Linux, Macintosh, Windows - [[WAV]]
 +
* [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=write}}
 +
* [[DRO to MIDI]] - Linux, Windows - [[MIDI]]
 +
* [[IMF Music Player Winamp Plugin]] - Winamp - [[WAV]]
 +
* [[IMF to MIDI]] - DOS - [[MIDI]]
 +
* [[OPL to WAV]] - Windows - [[WAV]]
  
 +
===? to IMF===
 +
* [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=read}}
 +
* [[IMF Creator]] - Windows - [[MIDI]]
  
 
==Games==
 
==Games==
{{Template: Table Header
+
<div style="float:right;">([[:Category: Games That Use IMF|Category]])</div>
| Color    = FFF0FF
+
 
| Caption01 = Released
+
{| class="wikitable" |
| Caption02 = Title
+
! Released
| Caption03 = Sample
+
! Title
}}
+
! Sample
 
|-
 
|-
| 1991/11/??
+
| 1991-11-??
 
| [[Catacomb 3-D (DOS)]]
 
| [[Catacomb 3-D (DOS)]]
| {{Song-Box|01 - Catacomb 3-D - DOS - Too Hot.ogg}}
+
| {{Song-Box|01 - Catacomb 3-D - DOS - Too Hot to Handle.ogg}}
 
|-
 
|-
| 1991/12/15
+
| 1991-12-15
 
| [[Commander Keen IV: Secret of the Oracle (DOS)]]
 
| [[Commander Keen IV: Secret of the Oracle (DOS)]]
| | {{Song-Box|05 - Commander Keen 4 - DOS - Welcome to a Good Old Kick In the Pants In Hillville.ogg}}
+
| {{Song-Box|05 - Commander Keen 4 - DOS - Welcome to a Kick In Yore Pants In Good Ole Hillville!.ogg}}
 
|-
 
|-
| 1991/12/15
+
| 1991-12-15
 
| [[Commander Keen V: The Armageddon Machine (DOS)]]
 
| [[Commander Keen V: The Armageddon Machine (DOS)]]
| {{Song-Box|06 - Commander Keen 5 - DOS - Wednesday At the Beach.ogg}}
+
| {{Song-Box|06 - Commander Keen 5 - DOS - Wednesday On the Beach.ogg}}
 
|-
 
|-
| 1991/12/15
+
| 1991-12-15
 
| [[Commander Keen VI: Aliens Ate My Babysitter! (DOS)]]
 
| [[Commander Keen VI: Aliens Ate My Babysitter! (DOS)]]
 
| {{Song-Box|01 - Commander Keen 6 - DOS - Aliens Ate My Babysitter.ogg}}
 
| {{Song-Box|01 - Commander Keen 6 - DOS - Aliens Ate My Babysitter.ogg}}
 
|-
 
|-
| 1992/03/??
+
| 1992-03-??
 
| [[Cosmo's Cosmic Adventure (DOS)]]
 
| [[Cosmo's Cosmic Adventure (DOS)]]
 
| {{Song-Box|02 - Cosmo's Cosmic Adventure - DOS - Just About Going Wacky.ogg}}
 
| {{Song-Box|02 - Cosmo's Cosmic Adventure - DOS - Just About Going Wacky.ogg}}
 
|-
 
|-
| 1992/05/05
+
| 1992-05-05
 
| [[Wolfenstein 3D (DOS)]]
 
| [[Wolfenstein 3D (DOS)]]
 
| {{Song-Box|02 - Wolfenstein 3D - DOS - Wondering About My Loved Ones.ogg}}
 
| {{Song-Box|02 - Wolfenstein 3D - DOS - Wondering About My Loved Ones.ogg}}
 
|-
 
|-
| 1992/09/18
+
| 1992-09-18
 
| [[Spear of Destiny (DOS)]]
 
| [[Spear of Destiny (DOS)]]
 
| {{Song-Box|01 - Spear of Destiny - DOS - The Tower.ogg}}
 
| {{Song-Box|01 - Spear of Destiny - DOS - The Tower.ogg}}
 
|-
 
|-
| 1992/??/??
+
| 1992-??-??
 
| [[Catacomb 3-D (DOS)|The Catacomb Abyss (DOS)]]
 
| [[Catacomb 3-D (DOS)|The Catacomb Abyss (DOS)]]
 
| Included in data files, but never played.
 
| Included in data files, but never played.
 
|-
 
|-
| 1993/01/??
+
| 1993-01-??
 
| [[Major Stryker (DOS)]]
 
| [[Major Stryker (DOS)]]
|  
+
| {{Song-Box|02 - Major Stryker - DOS - Rock-It In Space.ogg}}
 
|-
 
|-
| 1993/04/09
+
| 1993-04-09
 
| [[Monster Bash (DOS)]]
 
| [[Monster Bash (DOS)]]
 
| {{Song-Box|03 - Monster Bash - DOS - Bach Bash.ogg}}
 
| {{Song-Box|03 - Monster Bash - DOS - Bach Bash.ogg}}
 
|-
 
|-
| 1993/08/03
+
| 1993-08-03
 
| [[Bio Menace (DOS)]]
 
| [[Bio Menace (DOS)]]
|  
+
| {{Song-Box|02 - Bio Menace - DOS - Chasing.ogg}}
 
|-
 
|-
| 1993/12/03
+
| 1993-12-03
 
| [[Duke Nukem II (DOS)]]
 
| [[Duke Nukem II (DOS)]]
 
| {{Song-Box|03 - Duke Nukem 2 - DOS - Theme to Duke Nukem II.ogg}}
 
| {{Song-Box|03 - Duke Nukem 2 - DOS - Theme to Duke Nukem II.ogg}}
 
|-
 
|-
| 1993/12/05
+
| 1993-12-05
 
| [[Blake Stone: Aliens of Gold (DOS)]]
 
| [[Blake Stone: Aliens of Gold (DOS)]]
 
| {{Song-Box|02 - Blake Stone - DOS - Aliens of Gold.ogg}}
 
| {{Song-Box|02 - Blake Stone - DOS - Aliens of Gold.ogg}}
 
|-
 
|-
| 1993/??/??
+
| 1993-??-??
 
| [[Catacomb 3-D (DOS)|Catacomb Armageddon (DOS)]]
 
| [[Catacomb 3-D (DOS)|Catacomb Armageddon (DOS)]]
 
| Included in data files, but never played.
 
| Included in data files, but never played.
 
|-
 
|-
| 1993/??/??
+
| 1993-??-??
 
| [[Catacomb 3-D (DOS)|Catacomb Apocalypse (DOS)]]
 
| [[Catacomb 3-D (DOS)|Catacomb Apocalypse (DOS)]]
 
| Included in data files, but never played.
 
| Included in data files, but never played.
 
|-
 
|-
| 1994/01/05
+
| 1994-01-05
 
| [[Realms of Chaos (DOS)]] (Beta Version Only)
 
| [[Realms of Chaos (DOS)]] (Beta Version Only)
|
+
| {{Song-Box|419 - Realms of Chaos - DOS - The Evil Mryaal Beta.ogg}}
 
|-
 
|-
| 1994/??/??
+
| 1994-??-??
 
| [[Operation Body Count (DOS)]]
 
| [[Operation Body Count (DOS)]]
 
| {{Song-Box|01 - Operation Body Count - DOS - Title.ogg}}
 
| {{Song-Box|01 - Operation Body Count - DOS - Title.ogg}}
 
|-
 
|-
| 1994/03/??
+
| 1994-03-??
 
| [[Corridor 7: Alien Invasion (DOS)]]
 
| [[Corridor 7: Alien Invasion (DOS)]]
|  
+
| {{Song-Box|01 - Corridor 7 - DOS - Introduction.ogg}}
 
|-
 
|-
| 1994/06/01
+
| 1994-06-01
 
| [[Hocus Pocus (DOS)]] (Beta Version Only)
 
| [[Hocus Pocus (DOS)]] (Beta Version Only)
 
|  
 
|  
 
|-
 
|-
| 1994/10/28
+
| 1994-10-28
 
| [[Blake Stone: Planet Strike (DOS)]]
 
| [[Blake Stone: Planet Strike (DOS)]]
|  
+
| {{Song-Box|03 - Blake Stone 2 - DOS - Last Laugh.ogg}}
 +
|-
 +
| 1994-10-??
 +
| [[Wolfenstein 3D (ARCH)]]
 +
| {{Song-Box|01 - Wolfenstein 3D - ARCH - Horst-Wessel-Lied.ogg}}
 +
|-
 +
| 1994-11-18
 +
| Wolfenstein 3D (PC98)
 +
| Includes IMF files from original DOS version, but never plays them.
 +
|-
 +
| 2008-04-19
 +
| [[Voxelstein 3D (W32)]]
 +
| {{Song-Box|04 - Wolfenstein 3D - DOS - Searching For the Enemy.ogg}}
 
|}
 
|}
  
 +
==How to Obtain==
 +
IMF files have to be ripped from compressed game files, but luckily, every game that used IMF has already been ripped and can be downloaded from each game's page.
 +
 +
==Recording Guide==
 +
To convert an IMF soundtrack into one that can be uploaded to the VGMPF, see [[IMF - Recording Guide]].
  
 
==Links==
 
==Links==
 
* [http://en.wikipedia.org/wiki/IMF_%28music%29 en.wikipedia.org/wiki/IMF_%28music%29] - Wikipedia.
 
* [http://en.wikipedia.org/wiki/IMF_%28music%29 en.wikipedia.org/wiki/IMF_%28music%29] - Wikipedia.
 
* [http://www.shikadi.net/moddingwiki/IMF_Format shikadi.net/moddingwiki/IMF_Format] - Shikadi.
 
* [http://www.shikadi.net/moddingwiki/IMF_Format shikadi.net/moddingwiki/IMF_Format] - Shikadi.

Revision as of 10:53, 8 April 2020

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-10-09
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 decent 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)
1994-10-?? Wolfenstein 3D (ARCH)
-
1994-11-18 Wolfenstein 3D (PC98) Includes IMF files from original DOS version, but never plays them.
2008-04-19 Voxelstein 3D (W32)

How to Obtain

IMF files have to be ripped from compressed game files, but luckily, every game that used IMF has already been ripped and can be downloaded from each game's page.

Recording Guide

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

Links