XMI

Материал из Old-Games.RU Wiki
Перейти к навигации Перейти к поиску

XMI или XMIDI (от eXtended MIDI) - формат представления MIDI-файлов, разработанный Джоном Майлсом (John Miles) для программного пакета Audio Interface Library (AIL). Вместе с этим пакетом, а также с родственными пакетами MIDPAK и Miles Sound System, в 1990-х годах этот формат получил широкое распространение среди разработчиков компьютерных игр для платформы DOS.

XMI был разработан для использования расширений MIDI, не вошедших в сам формат MIDI, но реализованных низкоуровневой звуковой библиотеке Audio Interface Library. XMI-файл содержит в себе всю необходимую для воспроизведения исходной MIDI-мелодии информацию, при этом ненужные с точки зрения библиотеки элементы воспроизведения при конвертации исключаются. В результате итоговый XMI-файл на 10-30% меньше оригинала и требует меньше ресурсов на воспроизведение.

Вышеупомянутые расширения MIDI в основном позволяют управлять драйвером, в т.ч. временно блокировать смену патча для выбранного канала и зацикливать те или иные фрагменты композиции. Кроме того, один XMI-файл может содержать как одну, так и множество композиций. Данная возможность использовалась, например, игрой System Shock для создания динамического музыкального сопровождения.

Разрабатывая XMI, Джон Майлс постарался использовать уже существующие форматы представления данных, благодаря чему XMI соответствует стандарту Electronic Arts Interchange File Format (EA IFF 85). Согласно этому стандарту, XMI является IFF "CAT " куском (chunk) формата XMID. Таким образом magic number файла является "CAT XMID". Внутри CAT-куска содержится по крайней мере одна XMIDI последовательность, которая заключена в куски "FORM" формата XMID. Кроме того, в файле может содержаться кусок XDIR, в котором содержится информация о коллекции последовательностей XMIDI. Этот кусок не обязателен и нужен только для удобства программ, использующих файл.

Проигрывать файлы стандарта XMI на современных системах можно с помощью плееров foobar2000 (требуется плагин foo_midi), Winamp и XMPlay. Для DOS существуют специализированные программы XPLAY, XP32, XMIPLAY (являющиеся частью SDK пакетов AIL 2.0, AIL/32 и Miles Sound System соответственно), а также MIDI-плеер PX. Есть также возможность конвертировать XMI в MID: для DOS - программой XMI2MID, для современных систем - Winamp или Awave Studio. Однако корректная конвертация не гарантируется, иногда результат может не совпадать с оригиналом.