Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
OpenAL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|API for rendering audio}} {{Distinguish|OpenAI}} {{more citations needed|date=September 2015}} {{Infobox software |name = OpenAL |logo = OpenAL logo.svg |logo size = 200px |logo caption = |screenshot = |caption = |author = [[Loki Software]] |developer = [[Creative Technology]] |latest release version = 1.1 (installer 2.1.0.0)<ref>{{cite web |title=OpenAL: Cross Platform 3D Audio |url=https://openal.org/downloads/ |website=openal.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 = * 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'''<ref>{{cite book |last=Hall |first=John |date=2001 |title=Programming Linux Games |url=https://books.google.com/books?id=7eAPUdU3hRUC&pg=PA63 |publisher=No Starch Press |page=63}}</ref><ref>{{cite book |last=Wilde |first=Martin |date=2004 |title=Audio Programming for Interactive Games |url=https://books.google.com/books?id=uKLTM4xAQ-oC&pg=PA11 |publisher=Taylor & Francis |page=11}}</ref>) 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=http://opensource.creative.com/pipermail/openal%2Ddevel/%2A |access-date=25 April 2023}}{{webarchive |url=https://web.archive.org/web/*/http://opensource.creative.com/pipermail/openal-devel/* |date=* }}</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== The general functionality of OpenAL is encoded in ''source objects'', ''audio buffers'' and a single ''listener''. A source object contains a pointer to a buffer, the velocity, position and direction of the sound, and the intensity of the sound. The listener object contains the velocity, position and direction of the listener, and the general gain applied to all sound. Buffers contain audio data in [[Pulse-code modulation|PCM]] format, either 8- or [[16-bit]], in either [[monaural]] or [[stereo]] format. The rendering engine performs all necessary calculations for distance attenuation, [[Doppler effect]], etc. The net result of all of this for the end user is that in a properly written OpenAL application, sounds behave quite naturally as the user moves through the three-dimensional space of the virtual world. From a programmer's perspective, very little additional work is required to make this happen in an existing OpenGL-based 3D graphical application. Unlike the OpenGL specification, the OpenAL specification includes two subsections of the [[Application programming interface|API]]: the core consisting of the actual OpenAL function calls, and the ALC (Audio Library Context) API which is used to manage rendering contexts, resource usage and locking in a cross platform manner. There is also an 'ALUT' (Audio Library Utility Toolkit) library that provides higher level 'convenience' functions — exactly analogous to OpenGL's '[[OpenGL Utility Toolkit|GLUT]]'. In order to provide additional functionality in the future, OpenAL utilizes an extension mechanism. Individual vendors are thereby able to include their own extensions into distributions of OpenAL, commonly for the purpose of exposing additional functionality on their proprietary hardware. Extensions can be promoted to ARB (Architecture Review Board) status, indicating a standard extension which will be maintained for backwards compatibility. ARB extensions have the prospect of being added to the core API after a period of time. For advanced digital signal processing and hardware-accelerated sound effects, the EFX (Effects Extension) or [[environmental audio extensions]] (EAX) can be used. ==Limitations== The ''single listener'' model in OpenAL is tailored to a single human user and is not fit for artificial intelligence or robotic simulations or multiple human participants as in collaborative musical performances.<ref>{{cite conference|author1=Wozniewski, Mike |author2=Settel, Zack |author3=Cooperstock, Jeremy |title=User-specific audio rendering and steerable sound for distributed virtual environments|book-title=Proceedings of International conference on auditory displays (ICAD)|year=2007|url=http://sheefa.net/zack/publications/audioscape_ICAD2007.pdf|access-date=August 5, 2012}}</ref> In these cases a multiple listener model is required. OpenAL also fails to take into account ''sound propagation delays'' (the [[speed of sound]] is used for the [[Doppler effect]] only). The distance to a sound source only translates into an amplitude effect (attenuation) and not a delay. Hence OpenAL cannot be used for [[time difference of arrival]] calculations unless that functionality is added in separately.<ref>[https://games.slashdot.org/comments.pl?sid=1276489&cid=28412367 Open Source FPS Game Alien Arena 2009 Released #28412367]</ref> In order to take [[Hardware acceleration|full speed advantage]] of OpenAL, a vendor/hardware specific implementation is needed and these are seldom released as open source. Many supported platforms in fact implement OpenAL as a [[Wrapper library|wrapper]] which simply translates calls to the platform's native, and often proprietary, audio API. On Windows, if a vendor specific implementation is not detected it will fall back to the wrap_oal.dll wrapper library that translates OpenAL into DirectSound (Generic Software) or DirectSound3D (Generic Hardware); the removal of the latter from [[Windows Vista]] onward has effectively broken generic hardware acceleration on modern versions of Windows.<ref>[https://web.archive.org/web/20070118174547/http://www.openal.org/windows_enumeration.html Enumeration with OpenAL on Windows]</ref><ref>[https://web.archive.org/web/20130606032320/http://connect.creativelabs.com/openal/OpenAL%20Wiki/OpenAL%C2%AE%20and%20Windows%20Vista%E2%84%A2.aspx OpenAL® and Windows Vista™]</ref> ==Supported platforms== The API is available on the following [[computing platform|platforms]] and [[operating 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 (operating system)|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=usurped}}</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]]. ==Applications== ===Games=== The following video games are known to use OpenAL: {{div col|colwidth=20em}} * ''[[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.org |url=http://openal.org/games/}}{{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|date=11 May 2010 |access-date=November 20, 2012}}</ref> *''[[Armed Assault]]''{{r|openalwiki}} *''[[Baldur's Gate: Enhanced Edition]]''<ref>{{cite web|url=http://beamdog.zendesk.com/entries/31177538-Troubleshooting-Reinstall-OpenAL|title=Troubleshooting: Reinstall OpenAL : Beamdog|access-date=May 29, 2014}}</ref> *''[[Battlefield 2]]''{{r|openalwiki}} *''[[Battlefield 2142]]''{{r|openalwiki}} *''[[BioShock]]''{{r|openalwiki}} *''[[Bit.Trip]]''<ref>{{cite web|url=https://www.pcgamingwiki.com/wiki/Bit.Trip_Runner#Middleware|title=Bit.Trip Runner - PCGamingWiki|access-date=October 8, 2022}}</ref> *''[[Colin McRae: Dirt|Colin McRae: DiRT]]''{{r|openalwiki}} *''[[Doom 3]]''{{r|openalwiki}} *''[[Euro Truck Simulator 2]]''{{r|scsforum}} *''[[FlightGear]]''{{r|openalwiki}} *''[[ioquake3]]''<ref>{{cite web|url=http://ioquake3.org/|title=ioquake3 website}}</ref> *''[[Jedi Knight II: Jedi Outcast]]''{{r|openalwiki}} *''[[Jedi Knight: Jedi Academy]]''{{r|openalwiki}} *''[[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}} *''[[Penumbra: Overture]]''{{r|openalwiki}} *''[[Postal 2]]''{{r|openalwiki}} *''[[Prey (2006 video game)|Prey]]''{{r|openalwiki}} *''[[Psychonauts]]''{{r|openalwiki}} *''[[Quake 4]]''{{r|openalwiki}} *''[[Race Driver: Grid]]''<ref>{{cite web|url=http://www.blueripplesound.com/compatible-games |title=Blue Ripple Sound | access-date=September 23, 2017}}</ref> *''[[Regnum Online]]''{{r|openalwiki}} *''[[Running With Rifles]]''<ref>{{cite web|url=http://www.modulaatio.com/runningwithrifles/?page_id=14#comment-128 |title=Modulaatio Games |archive-date=September 6, 2012 |archive-url=https://web.archive.org/web/20120906033450/http://www.modulaatio.com/runningwithrifles/?page_id=14 |url-status=dead }}</ref> *''[[S.T.A.L.K.E.R.]]''{{r|openalwiki}} *''[[System Shock 2]]''<ref>{{cite web|url=http://www.blueripplesound.com/compatible-games|title=Compatible OpenAL Games|website=Blue Ripple Sound}}</ref> *''[[The Dark Mod]]''{{r|openalwiki}} *''[[Tremulous]]''{{r|openalwiki}} *''[[Unreal II: The Awakening]]''{{r|openalwiki}} *''[[Unreal Tournament 2003]]''{{r|openalwiki}} *''[[Unreal Tournament 2004]]''{{r|openalwiki}} *''[[Unreal Tournament 3]]''{{r|openalwiki}} *''[[War§ow]]''{{r|openalwiki}} *''[[Wurm Online]]''{{r|openalwiki}} {{div col end}} ===Other applications=== *[[Blender (software)|Blender]] – 3D modelling and rendering tool uses OpenAL for its built-in game engine{{Update inline|?=yes|date=June 2020|reason=The game engine was removed in 2019. Is this still relevant, or true?}} *[[3DMark06]] – Gamer's benchmarking tool *[[Dolphin (emulator)]] – GameCube and Wii emulator *Vanda Engine<ref>{{cite web|url=http://vandaengine.org/features/|title=Vanda Engine|access-date=2017-05-18|archive-date=2017-05-09|archive-url=https://web.archive.org/web/20170509084747/http://vandaengine.org/features/|url-status=dead}}</ref> – uses OpenAL 1.1 to simulate 2D and 3D sounds *[[Croquet Project]]<ref>{{Cite book|title=Jam Tomorrow: Collaborative Music Generation in Croquet Using OpenAL - IEEE Conference Publication|pages=73–78|doi=10.1109/C5.2006.22|chapter=Jam Tomorrow: Collaborative Music Generation in Croquet Using OpenAL|year=2006|last1=Thalmann|first1=Florian|last2=Gaelli|first2=Markus|isbn=978-0-7695-2563-1|citeseerx=10.1.1.67.8139|s2cid=5577203}}</ref> * Bino<ref>{{cite web|url=http://bino3d.org/|title=Bino: free 3D video player - About|first=Martin|last=Lambers|website=bino3d.org}}</ref> - Video player software that has support for stereoscopic 3D video and multi-display video ==Implementations== ;OpenAL SI : 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. ;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. :* 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== {{Reflist|30em}} ==External links== * [https://openal.org OpenAL official website] Implementations: * [https://github.com/kcat/openal-soft OpenAL Soft] * [https://www.adalin.com/index.html?frame2=product_aeonwave.html AeonWave-OpenAL] * [https://www.blueripplesound.com/index.php?target=technology Rapture3D] advanced OpenAL 1.1 driver 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) * [https://conan.io/center/openal/ OpenAL package] in Conan, a C++ package manager {{Creative Technology}} [[Category:Application programming interfaces]] [[Category:Audio libraries]] [[Category:Computer libraries]] [[Category:Cross-platform software]] [[Category:Formerly open-source or free software]] [[Category:Linux APIs]] [[Category:Video game engines]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite press release
(
edit
)
Template:Cite web
(
edit
)
Template:Cn
(
edit
)
Template:Creative Technology
(
edit
)
Template:Distinguish
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:More citations needed
(
edit
)
Template:Portal
(
edit
)
Template:R
(
edit
)
Template:Reflist
(
edit
)
Template:Self-published inline
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Update inline
(
edit
)
Template:Webarchive
(
edit
)