Наши партнеры ArtmMisto
OpenAL (Open Audio Library) - вільний багатоплатформовий інтерфейс програмування додатків (API) для роботи з аудіоданими. Ключовою особливістю є робота зі звуком в 3D-просторі та використання ефектів Environmental Audio Extensions (EAX). підтримується компанією Creative .
OpenAL створений фірмою Loki Software як інструмент для їх бізнесу - портирование ігор з Microsoft Windows на GNU / Linux. Після закриття компанії проект деякий час розроблявся співтовариством вільного програмного забезпечення - воно додало функціональність звукового чіпсета, вбудованого в NVIDIA nForce. Сьогодні проект розміщений на сервері компанії Creative, і здебільшого розробляється їй.
Після виходу специфікації версії 1.1 оригінальна реалізація OpenAL була закрита, замість неї пропонується використовувати пропрієтарних реалізацію, що розвивається компанією Creative. У відповідь на це спільнота вільного програмного забезпечення створило власну реалізацію, засновану на збережених вихідних кодах вихідної реалізації.
Хоча хартія OpenAL говорить, що у проекту повинен бути «Наглядова рада за архітектурою» (ARB), аналогічний проекту OpenGL Architecture Review Board (ARB), до сих пір жодна організація не взяла на себе обов'язок сформувати стандарт технічних специфікацій OpenAL. Специфікації OpenAL існують в чорновому варіанті, обговорюються розробниками по електронній пошті і в загальнодоступних списках розсилки.
Основні функції бібліотеки OpenAL - вихідні об'єкти, аудіобуфери, і єдиний слухач. Вихідні об'єкти включають в себе покажчик на буфер, швидкість, позицію, напрямок і інтенсивність звуку. Слухач містить швидкість, позицію, напрямок і загальне посилення звуку в цілому. Буфери містять звукові дані в форматі PCM в 8-ми або 16-бітному варіанті, а також в моно або стерео. Функція рендеринга звуку робить необхідні обчислення, такі як визначення відстані, ефекту Доплера, і так далі.
Для кінцевого користувача результат обробки цих компонентів OpenAL дає абсолютно природне звучання при переміщенні персонажів в тривимірному віртуальному світі. А програміст може легко задіяти OpenAL в своїй готової тривимірної OpenGL-програми.
На відміну від специфікацій OpenGL, специфікації OpenAL включають в себе два API: ядро, що включає в себе виклики функцій OpenAL, і ALC (Audio Library Context) - API, який використовується для управління контекстом рендеринга, контролем використання ресурсів і залучення блокувань в мультіпоточних обчисленнях. Також існує ALUT - бібліотека, що надає функції високого рівня для спрощення написання програми, вона аналогічна бібліотеці OpenGL Utility Toolkit (GLUT) у OpenGL.
OpenAL розширюємо: програмісти, або компанії, що не входять в число розробників OpenAL, можуть додавати в нього свої розширення. Наприклад, для того щоб «навчити» бібліотеку задіяти функції своїх пристроїв з закритими специфікаціями. Розширення можуть бути підвищені до рівня ARB, тобто увійти в специфікації OpenAL в її новій версії.
Для розширеної обробки цифрового сигналу або апаратного прискорення звуку можуть бути задіяні EFX (Effects Extension) або EAX.
посилання
сайт OpenAL
завантажити OpenAL