Цифровой звук

Интерфейсы и API


Теперь затронем тему выбора API для программирования звукового движка. Выбор на самом деле небольшой: Windows Multimedia, Direct Sound, OpenAL, Aureal A3D.

Начнём с последнего. К сожалению, Aureal A3D не успели доделать (довести до ума драйвера), поэтому на современных Windows 2000 и XP он работает плохо.

Далее, Windows Multimedia system ? базовая система вывода звука, унаследованная еще с ранних Windows 3.1. Для игр ее редко используют, так как у нее большая latency, обусловленная большим буфером. Cейчас роль WinMM для игр постепенно отмирает. Однако WinMM используется в некоторых полу-профессиональных карточках, где есть специально оптимизированные WDM-драйвера.

OpenAL, разработка Loki Entertaiment как кросс платформенный АПИ, аналог OpenGL. Активно продвигался Creative Labs в качестве альтернативы Direct Sound. Идея хорошая, но реализация оставляет желать лучшего. К тому же, Loki Entertaiment недавно обанкротились. Мы очень надеемся на появление в скором времени нового альтернативного АПИ для звука, потому что OpenAL ? это просто кошмар для программиста. Хотя, как не странно, совершенно недавно, NVIDIA выпустила аппаратный драйвер для OpenAL на своих чипсетах nForce.

Direct Sound и Direct Sound 3D на данный момент самый оптимальный АПИ. И реально альтернатив ему нет. Конечно, есть очень много претензий, но они настолько специфические, что в большинстве случаев просто незаметны, в конце концов, звук он выводит и этого достаточно.

Кроме этих аппаратных АПИ (то есть АПИ, в которых присутствуют аппаратные драйвера, а не эмуляция вывода через DirectSound или WinMM), существуют так называемы врапперы (программные интерфейсы, использующие уже готовый аппаратно-программный интерфейс для создания собственного интерфейса). Как правило, всегда для любой игры пишется wrapper-интерфейс.

Существует много таких API-wrappers (будем называть их так, но реально аппаратной поддержки у них нет): Miles Sound System, RenderWare Audio, GameCoda, FMOD, Galaxy, BASS, SEAL.

МilesSS наверно самый именитый ? 2700 игр используют именно этот враппер.
Они лицензировали технологию RSX от Intel и предлагают ее в качестве альтернативы софтварному 3D-звуку. Очень много доступных фич, но есть и недостатки ? только Win32 и Mac, и очень высокая цена лицензии.

Galaxy Audio разработана для Unreal и, соответственно, используется во всех играх на Unreal-engine. Но последний Unreal 2 выпущен на OpenAL, поэтому можно сказать, что Galaxy уже нет в живых.

Game Coda и  RenderWare Audio ? примерно одинаковые по весу АПИ от Sensaura и Renderware соответственно. Все поддерживают PC, PS2, GameCube и XBOX и много разных фич, но, опять таки ? цена лицензии довольно высокая.

И, наконец, FMOD. Недавно появившись на рынке, сейчас занимает одно из лидирующих позиций благодаря огромному количеству фич и технологий, поддерживаемых в АПИ.

Появившаяся 1995 году компания Firelight Multimedia (Мельбурн, Австралия) состоящая из одного человека ? Brett Paterson, уделяла больше внимания музыкальным трекерным форматам MOD, XM, IT, S3M и тогда же вышла первая версия этого АПИ (еще для ДОС). Тогда, это был бесплатный АПИ для некоммерческого использования в демках или других интерактивных приложений.

Так как технологии проигрывания трекерных форматов требуют очень быстрого кода софтварного микширования, FMOD занял лидирующее место среди АПИ, так как его микширующий код был и остается самым быстрым (провено!).

Потом, появились первые карточки с аппаратным 3D-звуком и встал вопрос о совмещения аппаратного и софтварного 3D-звука ? и тут началась гонка за технологиями: поддержка Aureal A3D, Creative Labs EAX 1, EAX 2, софтварный менеджер геометрии сцены ? для совместимости с А3D.

В 2000 году, компания называется Firelight Technologies и там работают уже 4 человека. В основном портируют код на консоли PS2 и XBOX.  Firelight Technologies была одна из первых компаний, которая предложила услуги audio middleware для консолей. Теперь стратегия компании нацелилась на охват как можно большего числа платформ и разработки единого интерфейса (то есть максимально совместимого и эмулирующего софтварно некоторые функции если они не доступны на какой-либо платформе).



Итак 2003 год, единственный АПИ, поддерживающий 7 (семь!) платформ PC (win32), PlayStation2, XBOX, GameCube, Linux, Mac OS (OSX) и PDA (winCE). Также единственный АПИ, поддерживающий технологию Multiple Listeners, 12 компиляторов под любой язык программирования от Visual Basic, до ассемблера, самые быстрые софтварный код микшера, быстрый декодер MP3 (к сожалению нужна дополнительная лицензия Thompson multimedia чтобы использовать MP3 для коммерческих приложений), но есть альтернатива ? OGG или WMA. Вот далеко не полный список всего что есть в FMOD. Рекомендую зайти на их сайт www.fmod.org, чтобы посмотреть все, что там есть, а также цены на лицензирование. По секрету, готовиться аппаратный драйвер FMOD на нескольких платформах windows и на мобильных телефонах (PDA) ? так что скоро это будет полноценный АПИ.  Возможно, FMOD постигнет участь Aureal ? его купит какая-нибудь большая компания, но пока FMOD уверенно завоёвывает позиции на рынке.

«Nice to see that a lot of the things I wanted our Engineers to develop into A3D actually got done by an outside company." David Gasior / Former Technology Evangelist at Aureal» Я особо доверяю David Gasior, и полностью согласен с его высказыванием относительно FMOD. К слову, это все не коммерческая презентация FMOD, а реальное положение вещей на рынке Audio API.


Содержание раздела