OpenAL

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
OpenAL
Image illustrative de l'article OpenAL
Logo

Développeur Creative Technology
Dernière version 2.1.0.0 (février 2010) [+/-]
Environnements Unix, Windows, Mac OS, Xbox
Type API
Licence LGPL pour Unix et Mac OS, Freeware pour Windows[1]
Site web (en) Site officiel

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éo mais aussi d'autres applications audio. Elle a été principalement développée par Loki Software et Creative Labs. D'autres bibliothèques similaires existent comme DirectSound 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.

Historique[modifier | modifier le code]

L'API est à l'origine distribuée selon les termes de la licence publique générale limitée GNU pour la plupart des plates-formes, malgré l'utilisation de certains drivers propriétaire, notamment ceux de la Xbox, Xbox 360, ou ceux spécifiques aux cartes son Creative Labs sous Windows.

Principale utilisation[modifier | modifier le code]

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 ceux 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.

Principe[modifier | modifier le code]

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 ce 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 lesquelles seront maintenues dans les versions futures de la bibliothèque.

Comparaison technique[modifier | modifier le code]

La version 1.0 de OpenAL publiée par Loki Software en juin 2000 met en application la majeure partie des fonctionnalité de DirectSound (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éfinies dans I3DL2 (Interactive 3D Audio Level 2) et mises en application par exemple dans EAX ne font pas encore partie des spécifications, mais sont censées être supportées par 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évus actuellement.

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

Notes et références[modifier | modifier le code]

Liens externes[modifier | modifier le code]