16 September 2026
Converting Miles Sound System XMI to WAV: 1990s PC Game Soundtracks
Converting Miles Sound System XMI to WAV: 1990s PC Game Soundtracks
During the MS-DOS PC gaming boom of the 1990s, the Miles Sound System (MSS)—originally created by programmer John Miles under the name Audio Interface Library (AIL)—was the industry gold standard middleware for interactive video game sound.
Titles developed by Sierra On-Line, Origin Systems, LucasArts, Bullfrog Productions, and BioWare—including Wing Commander, Ultima Underworld, Theme Park, Master of Magic, Star Wars: X-Wing, and Baldur's Gate—relied on the Extended MIDI (.xmi) format to drive music playback across AdLib, Sound Blaster, Roland MT-32, and General MIDI hardware.
1. The Structure of an IFF XMID File
Unlike standard .mid files which follow standard MIDI chunk conventions (MThd / MTrk), XMI files are organized into Electronic Arts-style Interchange File Format (IFF) chunk structures:
- Top-Level
FORMChunk: Declares the overall envelope with anXDIR(sequence catalog) orXMID(single extended song) form type FourCC. - Timbre Bank (
TIMB) Chunk: Catalogs which hardware patch voices, Roland MT-32 timbres, or General MIDI program numbers are utilized by the sequence tracks. - Event Stream (
EVNT) Chunk: Encapsulates the compressed MIDI note events. Rather than standard MIDI variable-length quantities, XMI represents delta time through sequential accumulator bytes with values under 128 (0x00..0x7F). - Embedded Note Duration: In XMI, Note On events (
0x90) explicitly embed note duration counts directly within the command packet, simplifying polyphony tracking on early CPUs.
2. In-Browser Synthesis to 16-bit Linear WAV
Because contemporary operating systems and media players do not ship with 1990s Miles Sound System drivers, playing .xmi files requires emulating the sequence scheduler and instrument voice synthesizer:
- Delta Interval Accumulation: Accumulates sequential sub-128 timing bytes to schedule note onset and release events precisely against tempo markings.
- Harmonic Voice Generation: Emulates multi-harmonic oscillator instruments across channels with dynamic ADSR amplitude envelopes.
- Stereo Spatialization: Evaluates pan controller events (
CC 10) to recreate wide stereo imaging. - Uncompressed WAV Export: Writes standard 16-bit 44.1 kHz linear PCM stereo audio via
writeWav.
3. Preservation with 100% Offline Client-Side Privacy
Preserving retro computer gaming culture should never depend on cloud services or remote server conversions. convrtr synthesizes your .xmi soundtrack files entirely inside your browser sandbox. 100% offline, private, and instant.
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 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 HMI DOS Game Audio to WAV: Emulating 1990s PC Soundtracks
Explore Human Machine Interfaces (HMI) MIDI audio from Descent, Warcraft II, and Mortal Kombat. Learn how multi-track game sequences synthesize into 16-bit stereo WAV.
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.