OpenAL
This article needs additional citations for verification. (September 2015) |
Loki Software | |
Developer(s) | Creative Technology |
---|---|
Stable release | 1.1 (installer 2.1.0.0)[1]
/ November 2009 |
Written in | Application programming interface |
License |
|
Website | www |
OpenAL (Open Audio Library) is a
OpenAL aimed to originally be an open standard and open-source replacement for 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 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 OpenAL Soft available.
History
OpenAL was originally developed in 2000 by
Since 1.1 (2009), the sample implementation by Creative has turned proprietary,[
While the OpenAL charter says that there will be an "Architecture Review Board" (ARB) modeled on the OpenGL ARB,[citation needed] 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.[4] 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.[5] 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
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
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
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.[6] In these cases a multiple listener model is required. OpenAL also fails to take into account sound propagation delays (the
In order to take 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 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.[8][9]
Supported platforms
The API is available on the following
Supported gaming devices are for instance: GameCube, PlayStation 2, PlayStation 3, Xbox, Xbox 360, Wii, and PlayStation Portable.
Applications
Games
The following video games are known to use OpenAL:
- 0 A.D.[15]
- Alpha Protocol
- America's Army: Operations[16]
- American Truck Simulator[17]
- Amnesia: The Dark Descent[18]
- Armed Assault[16]
- Baldur's Gate: Enhanced Edition[19]
- Battlefield 2[16]
- Battlefield 2142[16]
- BioShock[16]
- Bit.Trip[20]
- Colin McRae: DiRT[16]
- Doom 3[16]
- Euro Truck Simulator 2[17]
- FlightGear[16]
- ioquake3[21]
- Jedi Knight II: Jedi Outcast[16]
- Jedi Knight: Jedi Academy[16]
- Mari0[16]
- Mass Effect (video game)[22]
- Minecraft (through LWJGL)
- OpenArena[16]
- Orbz[16]
- Penumbra: Overture[16]
- Postal 2[16]
- Prey[16]
- Psychonauts[16]
- Quake 4[16]
- Race Driver: Grid[23]
- Regnum Online[16]
- Running With Rifles[24]
- S.T.A.L.K.E.R.[16]
- System Shock 2[25]
- The Dark Mod[16]
- Tremulous[16]
- Unreal II: The Awakening[16]
- Unreal Tournament 2003[16]
- Unreal Tournament 2004[16]
- Unreal Tournament 3[16]
- War§ow[16]
- Wurm Online[16]
Other applications
- Blender – 3D modelling and rendering tool uses OpenAL for its built-in game engine[needs update?]
- 3DMark06– Gamer's benchmarking tool
- Dolphin (emulator) – GameCube and Wii emulator
- Vanda Engine[26] – uses OpenAL 1.1 to simulate 2D and 3D sounds
- Croquet Project[27]
- Bino[28] - 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.[29][30]
- AeonWave-OpenAL
- AeonWave-OpenAL is an LGPL-licensed OpenAL emulation layer that takes advantage of the hardware acceleration provided by the AMD Athlon 64 X2) to seven (on an Intel Atom N270) times faster than either OpenAL SI or OpenAL Soft under the same conditions.[31] By using the AeonWavelibrary this implementation supports HRTF as well as spatialised surround sound for up to eight speakers.
- Rapture3D OpenAL Driver
- The Rapture3D OpenAL Driver is a 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:[32]
- 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.
- Higher-order Ambisonics (HOA) bus running at up to fourth order.
- Apple OpenAL[33]
- 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.[34]
- MojoAL
- Tiny (single-file), full OpenAL 1.1 implementation built on top of SDL2 by Ryan C. Gordon.[35]
See also
- OpenCL
- OpenML
- OpenMAX AL
- FMOD
- Java OpenAL
- irrKlang
- Lightweight Java Game Library
- Web Audio– defines an API similar in some ways to OpenAL
References
- ^ "OpenAL: Cross Platform 3D Audio". openal.org.
- ^ "OpenAL License". Archived from the original on December 30, 2012. Retrieved November 10, 2012.
- ^ "Press release with regards to OpenAL" (Press release). Archived from the original on 2016-03-06. Retrieved 2011-07-18.
- ^ "Wayback Machine prefix query: openal-devel archive". Retrieved 25 April 2023.
- ^ "The openal January 2014 Archive by thread". openal.org.
- ^ Wozniewski, Mike; Settel, Zack; Cooperstock, Jeremy (2007). "User-specific audio rendering and steerable sound for distributed virtual environments" (PDF). Proceedings of International conference on auditory displays (ICAD). Retrieved August 5, 2012.
- ^ Open Source FPS Game Alien Arena 2009 Released #28412367
- ^ Enumeration with OpenAL on Windows
- ^ OpenAL® and Windows Vista™
- ^ "OpenAL – Platforms". Retrieved May 10, 2012.
- ^ "Archived copy". se.aminet.net. Archived from the original on 16 March 2018. Retrieved 6 June 2022.
{{cite web}}
: CS1 maint: archived copy as title (link) - ^ "blackberry/OpenAL 路 GitHub". Github.com. Retrieved January 14, 2013.
- ^ "OpenAL for OpenBSD". Archived from the original on 2012-03-18. Retrieved 2011-07-18.
- ^ "OpenAL/alut/ogg/vorbis [Forum – Development (General)". AROS-Exec. Archived from the original on May 26, 2013. Retrieved June 16, 2013.
- ^ "Overview". 0 A.D. Game Info. Wildfire Games. Archived from the original on September 26, 2013. Retrieved December 5, 2012.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab "Games". OpenAL.org.[self-published source?]
- ^ a b "SCS Software forum". Archived from the original on June 5, 2019. Retrieved June 5, 2019.
- ^ "HPL Engine – Mod DB". Retrieved November 20, 2012.
- ^ "Troubleshooting: Reinstall OpenAL : Beamdog". Retrieved May 29, 2014.
- ^ "Bit.Trip Runner - PCGamingWiki". Retrieved October 8, 2022.
- ^ "ioquake3 website".
- ^ "Blue Ripple Sound". Retrieved September 23, 2017.
- ^ "Blue Ripple Sound". Retrieved September 23, 2017.
- ^ "Modulaatio Games". Archived from the original on September 6, 2012.
- ^ "Compatible OpenAL Games". Blue Ripple Sound.
- ^ "Vanda Engine".
- S2CID 5577203.
- ^ Lambers, Martin. "Bino: free 3D video player - About". bino3d.org.
- ^ "OpenAL Soft – Software 3D Audio". openal-soft.org. Retrieved January 4, 2014.
- ^ "OpenAL Soft Git repository". Retrieved December 26, 2013.
- ^ Hofman, Erik (May 9, 2012). "[Openal-devel] Announcement: AeonWave-OpenAL 1.1.7 released". Archived from the original on January 19, 2013. Retrieved December 9, 2012.
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.
- ^ "Developers". Blue Ripple Sound Limited. 2009. Retrieved January 24, 2011.
- ^ "Source Browser".
- ^ "An OpenAL implementation for MacOS X". icculus.org.
- ^ "MojoAL". icculus.org.
External links
Implementations:
- OpenAL Soft
- AeonWave-OpenAL
- Rapture3D advanced OpenAL 1.1 driver
Developer resources:
- DevMaster.net OpenAL Tutorials (Note: these tutorials are showing their age slightly by, for instance, using deprecated functions such as alutLoadWAVFile)
- OpenAL extension repository (maintained by Raulshc as of 2023; with table of supported extensions per implementation)
- OpenAL package in Conan, a C++ package manager