OpenAL

Un article de Wikipédia, l'encyclopédie libre.

Développeur Creative Technology
Dernière version 1.1 (le 1er juin 2005)
Environnements Multiplate-forme
Type API
Licence GNU LGPL
Site web OpenAL.org

OpenAL (Open Audio Library) est une bibliothèque logicielle multiplate-forme fournissant une interface de programmation (API) audio 3D appropriée principalement pour les jeux vidéos mais aussi d'autres applications audio. Elle a été principalement développée par Loki Entertainment et Creative Labs. D'autres bibliothèques similaires existent comme DirectSound3D de Microsoft, EAX de Creative Labs et A3D de Aureal, mais OpenAL a pour vocation de fournir une API plus standard quelles que soient les plates-formes, à l'instar d'OpenGL. Elle est distribuée selon les termes de la GNU LGPL pour la plupart des plates-formes, mais certains drivers sont propriétaires, entre autres ceux de la Xbox, Xbox 360, ou ceux spécifiques aux cartes son Creative Labs sous Windows.

Sommaire

[modifier] Principale utilisation

En 2005, la bibliothèque existe et fonctionne sous Mac OS 8 et Mac OS 9 (Sound Manager), Mac OS X (Core Audio), Linux (OSS, ALSA), BSD, Solaris, Irix, Windows (MMSYSTEM, DirectSound, DirectSound3D...), Xbox, Xbox 360. Les développeurs précisent qu'elle fonctionne sur d'autres plates-formes (comme BeOS) mais dans des versions qui ne sont pas publiées car en développement.

Des moteurs de jeu connus utilisent OpenAL comme celui de id Software (Doom 3, Jedi Knight 2, Jedi Knight: Jedi Academy, Quake 4) ou le Unreal engine (Unreal 2, Unreal Tournament 2003, Unreal Tournament 2004, Postal 2, America's Army: Operations, Hitman 2: Silent Assassin) ; ou d'autre comme Freedom Fighters ou Psychonauts. Ces utilisations professionnelles permettent de dire que son utilisation est largement acceptée par les développeurs de jeux vidéo.

[modifier] Principe

La bibliothèque permet de modéliser un ensemble de sources sonores se déplaçant dans un espace en 3D, et un auditeur dans ce même espace. Des modifications sur les sources peuvent être ajoutées comme de l'écho ou d'autres effets sonores. La bibliothèque peut alors calculer le rendu final, en tirant parti des accélérations des cartes audio récentes.

Les spécifications sont séparées en deux, d'une part le noyau de l'interface (core API) constitué des fonctions accessibles de OpenAL, d'autre part le ALC API (pour Audio Library contexts) qui fournit des fonctions bas niveau. L'ALC permet ainsi de séparer les fonctions de l'API du dispositif qui réalise le rendu final, que se soit une carte électronique, un démon, un driver, ou même un service. Il facilite l'utilisation de différents dispositifs coexistant sur un même système, en les énumérant et en se les attribuant, permet de connaître les extensions présentes sur le système, ainsi qu'un moyen d'accéder à l'entrée microphone si elle existe.

Une partie des sources est maintenue par le constructeur Creative Labs, mais la bibliothèque est prévue pour accueillir les spécificités propres de chacun des autres constructeurs et de leurs différentes cartes audio, par le biais d'extensions à l'API. Après un certain temps, ces fonctions peuvent même devenir des fonctions standard de l'API. Entre les deux les extensions peuvent être promue ARB (Architecture Review Board) qui permet de savoir qu'elles seront maintenues dans les versions futures de la bibliothèque.

[modifier] Comparaison technique

La version 1.0 de OpenAL publiée par Loki Entertainment en juin 2000 met en application la majeure partie des fonctionnalité de DirectSound3D (atténuation de distance, effet Doppler), mais dévie dans quelques détails (aucun MUTE ou CLAMP MAX_DISTANCE, une distance de référence à la place de MIN_DISTANCE, l'effet Doppler est calculé en indiquant la vitesse de référence et un facteur d'accélération initial). La réverbération et d'autres extensions comme l'occlusion et l'obstruction sonore définis dans I3DL2 (Interactive 3D Audio Level 2) et mis en application par exemple dans EAX ne font pas encore partie des spécifications, mais sont censés être supporté pour les prochaines versions. Les traitements du signal basé sur des formes géométriques comme le propose A3D ne sont pas inclus, et ne sont pas prévu actuellement.

La version 1.1 publiée en juin 2005 gomme les différences cités, qui existait avec DirectSound3D.

[modifier] Liens externes