15 September 2026
Converting HMI DOS Game Audio to WAV: Emulating 1990s PC Soundtracks
Converting HMI DOS Game Audio to WAV: Emulating 1990s PC Soundtracks
In the golden era of 1990s MS-DOS gaming, developing reliable audio drivers for hundreds of competing sound cards—from AdLib and Sound Blaster Pro to the Gravis UltraSound and Roland Sound Canvas—was an immense technical hurdle.
To solve this, many top game studios (including Interplay, Blizzard Entertainment, Parallax Software, and Midway) turned to the Human Machine Interfaces (HMI) Sound Operating System. HMI .hmi (and .hmp) music files provided a unified multi-track sequence container that powered the unforgettable soundtracks of Descent, Descent II, Warcraft II: Tides of Darkness, Mortal Kombat, Shattered Steel, and Battle Arena Toshinden.
1. The Architecture of an HMI File
An HMI file is an extended, optimized MIDI container designed for real-time interrupt-driven game playback:
- Signature Header: Begins with ASCII string
HMI-MIDIFILE0115orHMI-MIDISONG0615in the first 32 bytes. - Track Table & Offsets: Stores track count, division (typically 120 ticks per quarter note), and offsets to individual channel track streams.
- Track Stream Packets: Encapsulates standard MIDI messages (Note On
0x90, Note Off0x80, Program Change0xC0, Control Change0xB0) preceded by variable-length delta tick intervals. - Multi-Track Voice Priority: Allowed game engines to dynamically reprioritize music channels when intense combat sound effects were triggered.
2. In-Browser Multi-Voice Synthesis
Because modern operating systems and mobile devices do not include vintage HMI sound drivers, playback requires decoding the sequence events and synthesizing the instrument voices into a standard digital audio stream:
- Delta-Time Scheduling: Maps tick durations against tempo markings (BPM) to construct a high-precision audio timeline.
- Harmonic Voice Generation: Emulates multi-channel synthesizer instruments with parameterized attack, decay, sustain, and release (ADSR) amplitude envelopes.
- Stereo Spatialization: Applies channel pan controllers (
CC 10) and master volume (CC 7) to preserve the wide dynamic stereo mix. - 16-bit Linear PCM WAV Encoding: Emits standard uncompressed RIFF WAV files that play seamlessly on any modern phone, browser, or media player.
3. Pure Offline In-Memory Conversion
Preserving retro video game music should never require sending files to untrusted cloud servers. convrtr synthesizes .hmi and .hmp files 100% client-side inside your browser sandbox. Zero data ever leaves your device.
Related reading
Converting FastTracker II XM Chiptune Modules to WAV: Architecture and Synthesis
Explore the forensic format of Triton FastTracker II Extended Modules (.xm). Understand 32-channel pattern matrices, linear pitch tables, delta sample compression, and client-side WAV rendering.
Converting Scream Tracker 3 S3M Modules to WAV: Architecture and Synthesis
Examine Future Crew's Scream Tracker 3 (.s3m) format. Learn how 32-channel bit-packed note patterns, 16-bit paragraph sample offsets, and Gus/OPL panning are synthesized into 16-bit linear PCM WAV.
Converting Impulse Tracker IT Modules to WAV: Architecture and Synthesis
Explore Jeffrey Lim's Impulse Tracker (.it) format. Learn about 64-channel matrix structures, C5Speed frequency tables, sample compression, and client-side WAV rendering.
Converting PolyTracker (PTM) to WAV: 32-Channel DOS Game Chiptune Synthesis
Explore Carlos Hasan's PolyTracker PTMF architecture. Learn how 32-channel panning tables, 16-bit PCM samples, ping-pong loops, and tracker synthesis render into CD-quality WAV in browser memory.
Converting Farandole Composer (.far) to WAV: 16-Channel DOS Tracker Synthesis
Dive into Daniel Potter's 1994 Farandole Composer module format. Discover how 16-channel pattern cells, 8-bit PCM samples, custom panning tables, and real-time chiptune synthesis render into pristine 16-bit WAV audio.
Converting Composer 669 (.669) to WAV: 8-Channel DOS Tracker Synthesis
Explore Tomasz Pytel's 1992 Composer 669 tracker format. Learn how 8-channel pattern matrices, 108-byte song messages, 8-bit unsigned PCM waveforms, and software mixing synthesize into clean 16-bit stereo WAV.
Converting AMF Tracker Modules to WAV: Advanced Module Format Audio Synthesis
Dive into Otto Chrons' Advanced Module Format (AMF) and ASYLUM tracker architecture. Learn how 16-channel DOS module tracking and 8-bit PCM software mixing render into studio-quality WAV audio.
Converting DSM Tracker Modules to WAV: RIFF DSMF Multi-Channel Audio Synthesis
Explore DSIK's Dynamic Studio Module (DSM) tracker architecture. Learn how RIFF container chunks, 16-channel pattern matrices, and 8-bit PCM samples synthesize into 16-bit stereo WAV.
Converting Reality Adlib Tracker (RAD) to WAV: 9-Channel OPL2 FM Synthesis
Explore the internal architecture of Reality Adlib Tracker (.rad) files. Learn how Yamaha YM3812 2-operator FM synth parameters synthesize into 16-bit stereo WAV in your browser.
Converting Oktalyzer (OKT) Modules to WAV: Amiga 8-Channel Chiptune Synthesis
Explore Armin Sander's legendary Amiga Oktalyzer (.okt) tracker format. Learn how 8-channel software mixing on the 4-channel Paula sound chip is rendered into studio WAV audio.
Converting MultiTracker (MTM) Modules to WAV: 32-Channel Track Matrix Synthesis
Discover Daniel Gold's Renaissance MultiTracker (.mtm) format. Learn how 32-channel track matrix sequencing, volume panning, and 8-bit PCM samples synthesize to 16-bit WAV.
Converting id Software IMF Audio to WAV: Yamaha OPL2 FM Synthesis in the Browser
Dive into id Software's IMF music format from Wolfenstein 3D and Commander Keen. Learn how Yamaha YM3812 FM register bytes synthesize into 16-bit stereo WAV audio.
Converting AdLib ROL Music to WAV: Emulating 1980s PC FM Synthesis
Discover AdLib Visual Composer (.rol) music from the pioneer era of PC audio. Learn how Yamaha YM3812 (OPL2) FM synthesis converts to 16-bit stereo WAV.
Converting Miles Sound System XMI to WAV: 1990s PC Game Soundtracks
Discover Miles Sound System Extended MIDI (.xmi) audio from Wing Commander, Ultima, and Theme Park. Learn how IFF XMID sequences convert to 16-bit stereo WAV.