OpenAL: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted Visual edit Mobile edit Mobile web edit
m Reverted edit by 2409:4051:2E19:71B7:E100:B428:61B3:2B5D (talk) to last version by Comp.arch
 
(28 intermediate revisions by 8 users not shown)
Line 1:
{{Short description|API for rendering audio}}
{{distinguishDistinguish|OpenAI}}
 
{{more citations needed|date=September 2015}}
 
{{Infobox software
|name = OpenAL
Line 13 ⟶ 11:
|author = [[Loki Software]]
|developer = [[Creative Technology]]
|latest release version = 1.1 (installer 2.1.0.0)<ref>{{cite web |title=PCGamingWiki downloads|url=httpsOpenAL://community.pcgamingwiki.com/files/download/10-openal/|work=OpenAL|publisher=Creative Labs|access-date=DecemberCross 7,Platform 3D Audio 2017|archive-url=https://web.archiveopenal.org/webdownloads/20171208070732/https://community.pcgamingwiki.com/files/download/10-openal/|archive-date=December 8, 2017|url-statuswebsite=deadopenal.org}}</ref>
|latest release date = {{Start date and age|2009|11}}
|programming language = [[C (programming language)|C]]
|operating system = {{No wrap|15 operating systems<br />See: [[#Supported platforms|Supported platforms]]}}
|genre = [[Application programming interface]]
|license =
|license* Sample =Implementation: [[proprietary software|Proprietary]] since v1.1, [[GNU Lesser General Public License|LGPL]] before v1.1, [[BSD licenses|BSD]] in early versions<ref>{{cite web|url=http://connect.creativelabs.com/openal/Documentation/The%20OpenAL%20Utility%20Toolkit.htm|title=OpenAL License|access-date=November 10, 2012|url-status=dead|archive-url=https://web.archive.org/web/20121230175931/http://connect.creativelabs.com/openal/Documentation/The%20OpenAL%20Utility%20Toolkit.htm|archive-date=December 30, 2012}}</ref>
* "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, there are open source implementations such as [[#Implementations|OpenAL Soft]] available.
 
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.
==Ashok smrat==
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}}</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 is now hosted (and largely developed) by [[Creative Technology]] with on-going support from [[Apple Computer|Apple]],<ref>{{Cite web|url=https://opensource.apple.com/tarballs/OpenAL/|title=Source Browser}}</ref> Blue Ripple Sound via their Rapture3D OpenAL Driver,<ref>{{Cite web|url=http://www.blueripplesound.com/gaming|title = Gaming and VR}}</ref> and individual open-source developers.
 
==History==
While the OpenAL charter says that there will be an "Architecture Review Board" (ARB) modeled on the OpenGL ARB, no such organization has ever been formed and the OpenAL specification is generally handled and discussed via email on its public mailing list.
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 is nowwas hosted (and largely developed) by [[Creative Technology]] withuntil on-goingcirca support from [[Apple Computer|Apple]],<ref>{{Cite web|url=https://opensource2012.apple.com/tarballs/OpenAL/|title=Source Browser}}</ref> Blue Ripple Sound via their Rapture3D OpenAL Driver,<ref>{{Cite web|url=http://www.blueripplesound.com/gaming|title = Gaming and VR}}</ref> and individual open-source developers.
 
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/* |access-date=25 April 2023}}</ref> Ryan C. Gordon, a Loki veteran who went on to develop [[Simple DirectMedia Layer]], started a new mailing list and website at OpenAL.org in January 2014.<ref>{{cite web |title=The openal January 2014 Archive by thread |url=https://openal.org/pipermail/openal/2014-January/thread.html |website=openal.org}}</ref> As of February 2023, the list remains in use.
 
==API structure and functionality==
Line 47 ⟶ 51:
 
==Supported platforms==
The API is available on the following [[computing platform (computing)|platforms]] and [[Operatingoperating system]]s:<ref>{{cite web|url=http://www.adalin.com/index.html?frame2=product_aeonwave.html|title=OpenAL – Platforms|access-date=May 10, 2012}}</ref> [[Android (operating system)|Android]] (supports [[OpenSL ES]]), [[AmigaOS]] 3.x and 4.x,<ref>{{cite web |url=http://se.aminet.net/dev/lib/openal-soft.readme |title=Archived copy |website=se.aminet.net |access-date=6 June 2022 |archive-url=https://web.archive.org/web/20180316151848/http://se.aminet.net/dev/lib/openal-soft.readme |archive-date=16 March 2018 |url-status=dead}}</ref> [[Bada]], [[BlackBerry 10]],<ref>{{cite web|url=https://github.com/blackberry/OpenAL|title=blackberry/OpenAL 路 GitHub|website=Github.com|access-date=January 14, 2013}}</ref> [[BlackBerry PlayBook]], [[BSD]], [[iOS]] (supports [[Core Audio]]), [[IRIX]], [[Linux]] (supports [[ALSA (Linux)|ALSA]], [[Open Sound System|OSS]], [[PortAudio]] and [[PulseAudio]]), [[Mac OS 8]], [[Mac OS 9]] and [[macOS|Mac OS X]] ([[Core Audio]]), [[Microsoft Windows]] (supports [[DirectSound]], [[Windows Multimedia API]] and Windows Multimedia Device (MMDevice) API), [[MorphOS]], [[OpenBSD]],<ref>{{cite web|url=http://openports.se/audio/openal|title=OpenAL for OpenBSD|access-date=2011-07-18|archive-date=2012-03-18|archive-url=https://web.archive.org/web/20120318180218/http://openports.se/audio/openal|url-status=dead}}</ref> [[Solaris (operating system)|Solaris]], [[QNX]], and [[AROS]].<ref>{{cite web|url=http://aros-exec.org/modules/newbb/viewtopic.php?post_id=33758|title=OpenAL/alut/ogg/vorbis [Forum – Development (General)|publisher=AROS-Exec|access-date=June 16, 2013|archive-date=May 26, 2013|archive-url=https://web.archive.org/web/20130526135417/http://aros-exec.org/modules/newbb/viewtopic.php?post_id=33758|url-status=dead}}</ref>
 
Supported gaming devices are for instance: [[GameCube]], [[PlayStation 2]], [[PlayStation 3]], [[Xbox (console)|Xbox]], [[Xbox 360]], [[Wii]], and [[PlayStation Portable]].
Line 58 ⟶ 62:
* ''[[0 A.D. (video game)|0 A.D.]]''<ref>{{cite web|title=Overview |url=http://www.play0ad.com/page.php?c=46 |work=0 A.D. Game Info |publisher=Wildfire Games |access-date=December 5, 2012 |archive-url=https://web.archive.org/web/20130926184253/http://play0ad.com/2012/12/ |archive-date=September 26, 2013 |url-status=dead }}</ref>
* ''[[Alpha Protocol]]''
* ''[[America's Army: Operations]]''<ref name="openalwiki">{{cite web|title=Games |website=OpenAL Wiki.org |url=http://connect.creativelabs.com/openal/OpenAL%20Wiki/Games.aspx |archive-url=https://web.archive.org/webgames/20130410134445/http://connect.creativelabs.com/openal/OpenAL%20Wiki/Games.aspx |publisher=Creative Labs |archive-date=April 10, 2013 |url-status=dead }}{{self-published inline|date=September 2015}}</ref>
*''[[American Truck Simulator]]''<ref name="scsforum">{{cite web|url=https://forum.scssoft.com/viewtopic.php?t=273087#p1160746|title=SCS Software forum|access-date=June 5, 2019|archive-url=https://web.archive.org/web/20190605144436/https://forum.scssoft.com/viewtopic.php?t=273087|archive-date=June 5, 2019|url-status=live}}</ref>
*''[[Amnesia: The Dark Descent]]''<ref>{{cite web|url=http://www.moddb.com/engines/hpl|title=HPL Engine – Mod DB|access-date=November 20, 2012}}</ref>
Line 76 ⟶ 80:
*''[[Mari0]]''{{r|openalwiki}}
*''[[Mass Effect (video game)]]''<ref>{{cite web|url=http://www.blueripplesound.com/compatible-games |title=Blue Ripple Sound | access-date=September 23, 2017}}</ref>
*''[[Minecraft]]'' (through [[LWJGL]])
*''[[OpenArena]]''{{r|openalwiki}}
*''[[Orbz]]''{{r|openalwiki}}
Line 108 ⟶ 112:
 
==Implementations==
;OpenAL SI
;OpenAL SI: The OpenAL Sample Implementation is the original implementation, from Loki, and is not currently maintained.
 
;OpenAL Soft
;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, as well as a free alternative to the now-proprietary OpenAL. OpenAL Soft supports mono, stereo (including HRTF and UHJ), 4-channel, 5.1, 6.1, 7.1, HRTF, UHJ, 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: 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=&#91;Openal-devel&#93; 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.
 
;Rapture3D OpenAL Driver
;Rapture3D OpenAL Driver: The Rapture3D OpenAL Driver is a [[Proprietary software|non-free]], commercial, Windows only, software implementation made by [[Blue Ripple Sound]]. The library is intended as a high performance drop-in replacement for other implementations. It features:<ref>{{cite web|url=http://www.blueripplesound.com/index.php?target=developers|title=Developers|year=2009|publisher=Blue Ripple Sound Limited|access-date=January 24, 2011}}</ref>
:* 32bit floating point audio path.
:* High quality sample rate conversion (used for various purposes including Doppler shift).
:* High quality effects and filters.
:* Directional sound sources.
:* 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]] &ndash; defines an API similar in some ways to OpenAL
 
==References==
Line 137 ⟶ 146:
 
==External links==
* [https://openal.org/games/ OpenAL official website]
 
* [http://www.openal-soft.org/ OpenAL Soft]
Implementations:
* [http://www.adalin.com/index.html?frame2=product_aeonwave.html AeonWave-OpenAL]
* [httphttps://wwwgithub.com/kcat/openal-soft.org/ OpenAL Soft]
* [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}}
* [httphttps://www.blueripplesoundadalin.com/index.phphtml?targetframe2=technologyproduct_aeonwave.html Rapture3DAeonWave-OpenAL] advanced OpenAL 1.1 driver
* [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) {{Dead link|date=January 2016}}
* [https://github.com/Raulshc/OpenAL-EXT-Repository OpenAL extension repository] (maintained by Raulshc as of 2023; with table of supported extensions per implementation)
* [https://conan.io/center/openal/1.19.1/ OpenAL package] forin Conan, a C++] package manager
 
{{Creative Technology}}
Line 150 ⟶ 164:
[[Category:Computer libraries]]
[[Category:Cross-platform software]]
[[Category:Formerly open-source or free software]]
[[Category:Linux APIs]]
[[Category:Video game engines]]