Audio Interface Library
Audio Interface Library - крайне популярный в первой половине 90-х пакет промежуточных драйверов (middleware) звуковых карт для DOS. Первоначально разрабатывался Джоном Майлсом (John Miles) для IBM, позже для Miles Design; впоследствии пакет был передан компании RAD Game Tools и переименован в Miles Sound System, под этим именем продается и поддерживается до сих пор.
Пакет представляет собой набор PCM и MIDI-драйверов разных звуковых карт, а также файлы с патчами для воспроизведения MIDI, так называемые GTL (Global Timbre Library). Собственной утилиты для определения и настройки звуковых карт пакет не включает, данный процесс оставлен на усмотрение разработчика игр. Сперва поддерживались лишь несколько звуковых карт, но в процессе развития пакета список оборудования существенно вырос.
Существуют принципиальные версии для реального режима (драйверы имеют расширение ADV) и защищенного режима (расширение DLL). Пакет для защищенного режима называется AIL/32 и поддерживает сокращенный по сравнению с AIL список оборудования. Более поздний пакет 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
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 - Omni Labs Audio Master / ASC Media 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 и совместимые
Настройка оборудования
Драйверы AIL поддерживают произвольные значения адреса, IRQ и DMA для любой карты. Однако из-за отсутствия в пакете утилиты для настройки наличие возможности менять эти параметры остается на усмотрение разработчика конкретной игры.
Форматы файлов
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 - используются специфические утилиты MSNDUP и PRESETS с управляющими банками формата MPP.
Gravis Ultrasound - несмотря на наличие механизма загрузки патчей через GTL, чаще всего используется специфическая утилита LOADPATS и патчи в формате PAT.