Content deleted Content added
Artoria2e5 (talk | contribs) No edit summary |
Mindmatrix (talk | contribs) m Reverted edit by 2409:4051:2E19:71B7:E100:B428:61B3:2B5D (talk) to last version by Comp.arch |
||
(17 intermediate revisions by 7 users not shown) | |||
Line 1:
{{Short description|API for rendering audio}}
{{
{{more citations needed|date=September 2015}}
{{Infobox software
|name = OpenAL
Line 22 ⟶ 20:
* "OpenAL" trademark: unclear, held by Creative Labs, Inc.
}}
'''OpenAL''' ('''Open Audio Library''') is a [[cross-platform]] audio [[application programming interface]] (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those of [[OpenGL]]. OpenAL is an environmental [[3D audio effect|3D audio]] library, which can add realism to a game by simulating [[Acoustic attenuation|attenuation]] (degradation of sound over distance), the [[Doppler effect]] (change in frequency as a result of motion), and material densities.
OpenAL aimed to originally be an [[open standard]] and [[open-source software|open-source]] replacement for [[proprietary software|proprietary]] (and generally incompatible with one another) 3D audio APIs such as [[DirectSound]] and [[Core Audio]], though in practice has largely been implemented on various platforms as a [[Wrapper library|wrapper]] around said proprietary APIs or as a proprietary and vendor-specific fork. While the [[reference implementation]] later became proprietary and unmaintained, there are open source implementations such as [[#Implementations|OpenAL Soft]] available. ==History==
OpenAL was originally developed in 2000 by [[Loki Software]] to help them in their business of [[porting]] [[Microsoft Windows|Windows]] games to [[Linux]].<ref>{{cite press release |url=http://linux.omnipotent.net/article.php?article_id=7626 |title=Press release with regards to OpenAL |access-date=2011-07-18 |archive-date=2016-03-06 |archive-url=https://web.archive.org/web/20160306095132/http://linux.omnipotent.net/article.php?article_id=7626 |url-status=dead }}</ref> After the demise of Loki, the project was maintained for a time by the [[free software community|free software]]/[[open source community]], and implemented on [[NVIDIA]] nForce sound cards and motherboards. It was hosted (and largely developed) by [[Creative Technology]] until circa 2012.
Since 1.1 (2009), the sample implementation by Creative has turned proprietary,{{Citation needed|reason=Creative's SVN OpenAL source files dated from 2006 are marked with LGPL.|date=November 2021}} with the last releases in free licenses still accessible through the project's [[Apache Subversion|Subversion]] [[source code repository]]. However, [[#Implementations|OpenAL Soft]] is a widely used open source alternative and remains actively maintained and extended.
While the OpenAL charter says that there will be an "Architecture Review Board" (ARB) modeled on the OpenGL ARB,{{cn|date=April 2023}} no such organization has ever been formed and the OpenAL specification is generally handled and discussed via email on its public mailing list.
The original mailing list, openal-devel hosted by Creative, ran from March 2003 to circa August 2012.<ref>{{cite web |title=Wayback Machine prefix query: openal-devel archive |url=https://web.archive.org/web/*/http://opensource.creative.com/pipermail/openal-devel/*
==API structure and functionality==
Line 51:
==Supported platforms==
The API is available on the following [[computing platform
Supported gaming devices are for instance: [[GameCube]], [[PlayStation 2]], [[PlayStation 3]], [[Xbox (console)|Xbox]], [[Xbox 360]], [[Wii]], and [[PlayStation Portable]].
Line 115:
: The OpenAL Sample Implementation is the original implementation, from Loki, and is not currently maintained.
;OpenAL Soft
: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation. The library is meant as a free compatible update/replacement to the now-deprecated and proprietary OpenAL Sample Implementation. OpenAL Soft supports mono, stereo (including HRTF and UHJ), 4-channel, 5.1, 6.1, 7.1, and B-Format output. Ambisonic assets are supported.<ref>{{cite web|url=http://openal-soft.org/|title=OpenAL Soft – Software 3D Audio |publisher=openal-soft.org|access-date=January 4, 2014}}</ref><ref>{{cite web|title=OpenAL Soft Git repository|url=http://repo.or.cz/w/openal-soft.git|access-date=December 26, 2013}}</ref>
;AeonWave-OpenAL
: AeonWave-OpenAL is an LGPL-licensed OpenAL emulation layer that takes advantage of the hardware acceleration provided by the [[Proprietary software|non-free]] but low cost AeonWave 4D-audio library for Linux and Windows made by [[Adalin B.V.]] The author claims that AeonWave-OpenAL implementation renders 3D audio five (on an [[AMD Athlon 64 X2]]) to seven (on an [[Intel Atom#Performance|Intel Atom N270]]) times faster than either [[#Implementations|OpenAL SI]] or [[#Implementations|OpenAL Soft]] under the same conditions.<ref>{{cite web|url=http://opensource.creative.com/pipermail/openal-devel/2012-May/005903.html|title=[Openal-devel] Announcement: AeonWave-OpenAL 1.1.7 released|date=May 9, 2012|author=Hofman, Erik|access-date=December 9, 2012|quote=Test have shown that AeonWave-OpenAL renders audio five times faster (on an AMD Athlon-64 X2 processor) and up to seven times faster (on an Intel Atom-N270 processor) than both OpenAL-Soft and OpenAL-Sample. Rendering 32 sounds on the Atom-N270 (the maximum for OpenAL-Soft) saves 1 Watt of continuous power consumption according to powertop.|url-status=dead|archive-url=https://archive.today/20130119200045/http://opensource.creative.com/pipermail/openal-devel/2012-May/005903.html|archive-date=January 19, 2013}}</ref> By using the [[AeonWave]] library this implementation supports HRTF as well as spatialised surround sound for up to eight speakers.
Line 123:
:* High quality sample rate conversion (used for various purposes including Doppler shift).
:* High quality effects and filters.
:* Support for multi-channel sound sources (including assets encoded using [[Ambisonics]]).
:* The only limit on the number of sources or effects is CPU power, can render hundreds of sound sources and multiple effects on relatively old hardware.
:* [[Ambisonics#Higher-order Ambisonics|Higher-order Ambisonics]] (HOA) bus running at up to fourth order.
;Apple OpenAL<ref name=apple-oss>{{Cite web|url=https://opensource.apple.com/tarballs/OpenAL/|title=Source Browser}}</ref>
:Apple ships an implementation of OpenAL in macOS and iOS. It is a very thin layer over the 3D Mixer (kAudioUnitSubType_3DMixer) feature in the operating system. This implementation was originally written by Ryan C. Gordon for Altivec Mac OS X systems.<ref>{{cite web |title=An OpenAL implementation for MacOS X |url=https://icculus.org/al_osx/ |website=icculus.org}}</ref>
;MojoAL
:Tiny (single-file), full OpenAL 1.1 implementation built on top of [[Simple DirectMedia Layer|SDL2]] by Ryan C. Gordon.<ref>{{cite web |title=MojoAL |url=https://icculus.org/mojoAL/ |website=icculus.org}}</ref>
==See also==
{{Portal|Free and open-source software}}
* [[OpenCL]]
* [[Khronos Group|OpenML]]
* [[OpenMAX AL]]
* [[FMOD]]
* [[Java OpenAL]]
* [[Irrlicht engine extensions#irrKlang|irrKlang]]
* [[Lightweight Java Game Library]]
* [[Web Audio]] – defines an API similar in some ways to OpenAL
==References==
Line 144 ⟶ 146:
==External links==
* [https://openal.org
* [http://www.openal-soft.org/ OpenAL Soft]▼
Implementations:
* [https://web.archive.org/web/20040803034419/http://www.devmaster.net/articles.php?catID=6 DevMaster.net OpenAL Tutorials] (Note: these tutorials are showing their age slightly by, for instance, using deprecated functions such as alutLoadWAVFile) {{Dead link|date=January 2016}}▼
* [
* [https://www.blueripplesound.com/index.php?target=technology Rapture3D] advanced OpenAL 1.1 driver
* [https://conan.io/center/openal/1.19.1/ OpenAL package for C++]▼
Developer resources:
▲* [https://web.archive.org/web/20040803034419/http://www.devmaster.net/articles.php?catID=6 DevMaster.net OpenAL Tutorials] (Note: these tutorials are showing their age slightly by, for instance, using deprecated functions such as alutLoadWAVFile)
* [https://github.com/Raulshc/OpenAL-EXT-Repository OpenAL extension repository] (maintained by Raulshc as of 2023; with table of supported extensions per implementation)
{{Creative Technology}}
Line 157 ⟶ 164:
[[Category:Computer libraries]]
[[Category:Cross-platform software]]
[[Category:Formerly open-source or free software]]
[[Category:Linux APIs]]
[[Category:Video game engines]]
|