Skip to content
Bret Curtis edited this page Apr 12, 2014 · 4 revisions

Extended Multiple Instrument Digital Interface (XMI) is a MIDI-like format that was created by John Miles for use with his Miles Sound System software library which was first released in the late 1980s as "Audio Interface Library", or AIL. The library has been popular since its creation, but the life of the XMI format is limited. Like MIDI, it sends instructions to a MIDI device to play notes, but it also has several added features that are not part of the MIDI standard like extra channel support, looping, and compression. It also can contain up to 10 MIDI files in one file. Because of the Miles Sound System popularity, a great number of DOS games in the early 1990s use XMI. However, fewer new games are using it because run-time sequenced music is being replaced by of more powerful digital audio formats.

Most XMI files use a separate instrument file which must be combined with the XMI file in order to achieve the proper sound.

Winamp's MIDI player supports XMI, but it is not turned on by default, so you must manually turn it on and associate the extension.

Technical

The XMI format is is an IFF variant used to contain MIDI events. The top-level chunk is always FORM. This is followed by an XDIRINFO chunk containing the amount of subsongs contained, written as a 16-bit little-endian integer. After that comes a CAT  chunk which contains the collection of subsongs as a series of XMIDFORM, XMIDEVNT, XMIDTIMB, and EVNT chunks. All XMI files end with hex values "FF 2F" followed by one or two nulls.

XMI files play MIDI at a fixed clock rate of 120 Hz. To play them correctly, the Tempo and PPQN division values used for playback should therefore also yield a constant 120 Hz, for example a tempo of 500 000 microseconds and a PPQN of 60, or a tempo of 1 000 000 microseconds and a PPQN of 120. Tempo events contained in the EVNT chunks should be ignored; they are vestigial remnants of the original MIDI file converted into the XMI format and do not correspond to the values used by the converted event stream.

Games

Absolute Zero (DOS)
Air Bucks (DOS)
Airlift Rescue (DOS)
Al Qadim: The Genie's Curse (DOS)
Albion (DOS)
Alien Legacy (DOS)
Amazing 3-D Adventure Set CD (DOS)
Black Hawk (DOS)
Black Knight Marine Strike Force (DOS)
The Bard's Tale: Construction Set (DOS)
Battle Isle 2 (DOS)
The Blue and the Gray (DOS)
Battle Chess 4000 (DOS)
Bridge Deluxe 2 With Omar Sharif (DOS)
Buck Rogers Matrix Cubed (DOS)
Caesar (DOS)
Dark Half (DOS)
Death Gate (DOS)
Dune (DOS)
Dungeon Hack (DOS)
Dungeon Keeper (DOS)
Eye of the Beholder III: Assault On Myth Drannor (DOS)
Fade to Black (DOS)
Fairy Tale Adventure 2 (DOS)
Fortress of Doctor Radiaki (DOS)
Lands of Lore (DOS)
A Line In the Sand (DOS)
The Legend of Kyrandia: Book One (DOS)
The Lost Vikings (DOS)
Magic Carpet 2 (DOS)
Master of Magic (DOS)
Mega Man X (DOS)
Monopoly Deluxe (DOS)
Panzer General (DOS)
Prophecy of the Shadow (DOS)
Rex Blade: The Battle Begins (DOS)
Serf City Life Is Feudal (DOS)
Settlers (DOS)
The Seven Cities of Gold (DOS)
The Space Adventure (DOS)
Sim City 2000 (DOS)
Sim Farm (DOS)
Spelljammer: Pirates of Realmspace (DOS)
Stronghold (DOS)
Stunt Island (DOS)
Ultima VII, Part 2: Serpent Isle (DOS)
Ultima VIII: Pagan (DOS)
Ultima Underworld: The Stygian Abyss (DOS)
Ultima Underworld II: Labyrinth of Worlds (DOS)
Unlimited Adventures (DOS)
Warcraft 2: Tides of Darkness (DOS)
Wargame Construction Set 2 Tanks (DOS)
Wayne's World (DOS)
When Two Worlds War (DOS)
Wolf (DOS)
Zorro (DOS)

Links

Clone this wiki locally