Audio Interface Library
Audio Interface Library (AIL) - популярный пакет промежуточных драйверов (middleware) звуковых карт для DOS. Первоначально разрабатывался Джоном Майлсом (John Miles) для его собственной компании Miles Design; впоследствии пакет был передан компании RAD Game Tools и переименован в Miles Sound System, под этим именем продается и поддерживается до сих пор.
Пакет представляет собой набор PCM и MIDI-драйверов разных звуковых карт, а также файлы с патчами для воспроизведения MIDI, так называемые GTL (Global Timbre Library). Собственной утилиты для определения и настройки звуковых карт пакет не включает, данный процесс оставлен на усмотрение разработчика игр. Сперва поддерживались лишь несколько звуковых карт, но в процессе развития пакета список оборудования существенно вырос.
Существуют принципиальные версии для реального режима (драйверы имеют расширение ADV) и защищенного режима (расширение DLL). Пакет для защищенного режима называется AIL/32 и поддерживает сокращенный по сравнению с AIL список оборудования. Также существует пакет AIL/16 для 16-битного защищенного режима, но на его базе известны всего несколько игр. Более поздний пакет Miles Sound System имеет несколько иную структуру и в данной статье не рассматривается.
Список драйверов для воспроизведения PCM:
- ALGDIG.ADV (A32ALGDG.DLL) - Adlib Gold
- ARIADIG.ADV (A32ARDG.DLL) - карты на базе процессора Sierra Semiconductor ARIA
- AUDDRVDG.ADV - ESS AudioDrive
- GF1DIGI.ADV (GUSDIG32.DLL) - карты Gravis Ultrasound на базе процессора GF1
- PASDIG.ADV (A32PASDG.DLL) - MediaVision Pro AudioSpectrum и совместимые (Plus, 16, Studio 16)
- SBDIG.ADV (A32SBDG.DLL) - Creative Sound Blaster 1.0, 1.5, 2.0; MediaVision Thunderboard
- SBPDIG.ADV (A32SBPDG.DLL) - Creative Sound Blaster Pro и совместимые
- VESADIG.ADV - оборудование, совместимое со стандартом VESA VBE/AI
Список драйверов для воспроизведения MIDI:
- ADLIB.ADV (A32ADLIB.DLL) - Adlib MSC
- ADLIBG.ADV (A32ALGFM.DLL) - Adlib Gold
- ARIATSR.ADV - карты на базе процессора Sierra Semiconductor ARIA (работает через резидентный драйвер карты MIDITSR)
- ARIAXMID.ADV (A32ARXM.DLL) - карты на базе процессора Sierra Semiconductor ARIA
- AUDDRVFM.ADV - ESS AudioDrive
- GENMIDI.ADV, GENMID.ADV - General MIDI
- GF1MIDI.ADV (GUSMID32.DLL) - карты Gravis Ultrasound на базе процессора GF1 (требуется утилита ULTRAMID)
- MMSYNTH.ADV - карты стандарта ASC Media Master, например Omni Labs Audio Master
- MT32MPU.ADV (A32MT32.DLL) - Roland MT-32, MT-100, RA-50, CM-32L, CM-64, CM-500, LAPC-I
- MT32SB.ADV (A32MT32S.DLL) - Roland MT-32, MT-100, RA-50, CM-32L, CM-64, CM-500 через MPU-порт Sound Blaster
- MULTISND.ADV - Turtle Beach Multisound Classic (на базе E-MU Proteus)
- PASFM.ADV (A32PASFM.DLL) - MediaVision Pro AudioSpectrum
- PASOPL.ADV (A32PASOP.DLL) - MediaVision Pro AudioSpectrum Plus, Pro AudioSpectrum 16, Pro Audio Studio 16
- PCSPKR.ADV (A32SPKR.DLL) - PC Speaker
- SBFM.ADV (A32SBFM.DLL) - Creative Sound Blaster 1.0, 1.5, 2.0; MediaVision Thunderboard
- SBAWE32.ADV (A32AWE32.DLL) - Creative Sound Blaster AWE32 и AWE64
- SBP1FM.ADV (A32SP1FM.DLL) - Creative Sound Blaster Pro
- SBP2FM.ADV (A32SP2FM.DLL) - Creative Sound Blaster Pro 2.0, Sound Blaster 16
- SC32MPU.ADV - Roland Sound Canvas (SCB-55, SCC-1 и другие)
- TANDY.ADV (A32TANDY.DLL) - трехголосный синтезатор Tandy 1000
- VESAMID.ADV - оборудование, совместимое со стандартом VESA VBE/AI
- WAVE.ADV - Creative Wave Blaster
- WSS.ADV, SENSAT.ADV - Microsoft Windows Sound System и совместимые, например Tandy Sensation
Настройка оборудования
Драйверы AIL поддерживают произвольные значения адреса, IRQ и DMA для любой карты. Однако из-за отсутствия в пакете утилиты для настройки наличие возможности менять эти параметры остается на усмотрение разработчика конкретной игры. В более позднем пакете Miles Sound System появилась утилита для настройки.
Форматы файлов
AIL поддерживает загрузку и проигрывание форматов VOC (PCM-звук) и XMI (MIDI-музыка). Для конвертации MIDI-файлов в формат XMI имеется утилита MIDIFORM.
Загрузка патчей
Для оборудования, поддерживающего управление патчами, предусмотрена загрузка последних из файлов GTL (Global Timbre Library). Необходимость в загрузке патчей из GTL определяется автоматически при загрузке XMI-файла, если последний использует тембры, отличные от стандартных для данного синтезатора. В случае OPL2 и OPL3 любой инструмент требует загрузки из GTL, поскольку OPL не имеют стандартных тембров.
Известные GTL:
- .AD - для OPL2-совместимых карт
- .OPL - для OPL3-совместимых карт
- .MT - для Roland MT-32 и Gravis Ultrasound
Для определенного оборудования вместо GTL используются иные механизмы управления патчами.
Sierra Semiconductor ARIA - драйвер ARIAXMID.ADV при старте загружает управляющую информацию из GM1.BNK или GM2.BNK, в зависимости от объема ROM (512K или 1024K).
Turtle Beach Multisound Classic - используются специфическая утилита PRESETS с банками формата MPP, которые на деле представляют из себя набор SYSEX-команд для имеющегося на карте синтезатора Proteus 1/XR.
Gravis Ultrasound - несмотря на наличие механизма загрузки патчей через GTL, чаще всего используется специфическая утилита LOADPATS и патчи в формате PAT.
Sound Blaster AWE32, AWE64 - механизма загрузки через GTL нет, альтернативные механизмы не поддерживаются. Поддержка загрузки банков SBK и SF2 появилась только в Miles Sound System.
Игры
Использующие AIL игры получили широкое распространение в начале-середине 90-х годов. Некоторые известные названия: