Audio Interface Library

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

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-х годов. Некоторые известные названия: