OpenAL
   HOME

TheInfoList



OR:

OpenAL (Open Audio Library) is a
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
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 library, which can add realism to a game by simulating
attenuation In physics, attenuation (in some contexts, extinction) is the gradual loss of flux intensity through a medium. For instance, dark glasses attenuate sunlight, lead attenuates X-rays, and water and air attenuate both light and sound at variabl ...
(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 replacement for proprietary (and generally incompatible with one another) 3D audio APIs such as DirectSound and
Core Audio Core Audio is a low-level API for dealing with sound in Apple's macOS and iOS operating systems. It includes an implementation of the cross-platform OpenAL. Apple's Core Audio documentation states that "in creating this new architecture on ...
, 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 In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation o ...
later became proprietary, there are open source implementations such as OpenAL Soft available.


History

OpenAL was originally developed in 2000 by Loki Software to help them in their business of
porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desi ...
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
games to
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
. After the demise of Loki, the project was maintained for a time by the
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
/
open source community The open-source-software movement is a movement that supports the use of open-source licenses for some or all software, as part of the broader notion of open collaboration. The open-source movement was started to spread the concept/idea of open ...
, and implemented on
NVIDIA Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
nForce sound cards and motherboards. It is now hosted (and largely developed) by
Creative Technology Creative Technology Ltd. is a Singaporean multinational technology company headquartered with overseas offices in Shanghai, Tokyo, Dublin, and Silicon Valley (where in the US it is known as Creative Labs). The principal activities of the compa ...
with on-going support from
Apple An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, where its wild ancestor, ' ...
, Blue Ripple Sound via their Rapture3D OpenAL Driver, and individual open-source developers. 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. Since 1.1, the implementation by Creative has turned proprietary , with the last releases in free licenses still accessible through the project's Subversion
source code repository In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subve ...
. However, OpenAL Soft is a widely used open source alternative.


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 PCM format, either 8- or
16-bit 16-bit microcomputers are microcomputers that use 16-bit microprocessors. A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mo ...
, in either
monaural Monaural or monophonic sound reproduction (often shortened to mono) is sound intended to be heard as if it were emanating from one position. This contrasts with stereophonic sound or ''stereo'', which uses two separate audio channels to reproduc ...
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
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
: 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 ' 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. 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. 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 Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
onward has effectively broken generic hardware acceleration on modern versions of Windows.


Supported platforms

The API is available on the following platforms and
Operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s: Android (supports OpenSL ES),
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
3.x and 4.x,
Bada Bada (stylized as bada; Korean: ) is a discontinued mobile operating system developed by Samsung Electronics for devices such as mid- to high-end smartphones and tablet computers. The name is derived from " (bada)", meaning "ocean" or "sea" in ...
,
BlackBerry 10 BlackBerry 10 is a discontinued proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly Research In Motion). BlackBerry 10 is based on QNX, a Unix-like operating system that was ...
,
BlackBerry PlayBook The BlackBerry PlayBook is a Tablet computer#Mini tablets, mini tablet computer developed by BlackBerry (company), BlackBerry and made by Quanta Computer, an original design manufacturer (ODM).
, BSD,
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
(supports
Core Audio Core Audio is a low-level API for dealing with sound in Apple's macOS and iOS operating systems. It includes an implementation of the cross-platform OpenAL. Apple's Core Audio documentation states that "in creating this new architecture on ...
), IRIX,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
(supports ALSA, OSS, PortAudio and
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris operat ...
),
Mac OS 8 Mac OS 8 is an operating system that was released by Apple Computer on July 26, 1997. It includes the largest overhaul of the classic Mac OS experience since the release of System 7, approximately six years before. It places a greater emphasis o ...
, Mac OS 9 and
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
(
Core Audio Core Audio is a low-level API for dealing with sound in Apple's macOS and iOS operating systems. It includes an implementation of the cross-platform OpenAL. Apple's Core Audio documentation states that "in creating this new architecture on ...
), Microsoft Windows (supports DirectSound, Windows Multimedia API and Windows Multimedia Device (MMDevice) API),
MorphOS MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale dev ...
, OpenBSD, Solaris,
QNX QNX ( or ) is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems. The product was originally developed in the early ...
, and AROS. Supported gaming devices are for instance: GameCube, PlayStation 2,
PlayStation 3 The PlayStation 3 (PS3) is a home video game console developed by Sony Computer Entertainment. The successor to the PlayStation 2, it is part of the PlayStation brand of consoles. It was first released on November 11, 2006, in Japan, November ...
,
Xbox Xbox is a video gaming brand created and owned by Microsoft. The brand consists of five video game consoles, as well as applications (games), streaming services, an online service by the name of Xbox network, and the development arm by the ...
,
Xbox 360 The Xbox 360 is a home video game console developed by Microsoft. As the successor to the original Xbox, it is the second console in the Xbox series. It competed with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generati ...
, Wii, and PlayStation Portable.


Applications


Games

The following video games are known to use OpenAL: * '' 0 A.D.'' * ''
Alpha Protocol ''Alpha Protocol'' is a 2010 action role-playing game developed by Obsidian Entertainment and published by Sega. The player assumes control of agent Michael Thorton, a new recruit at a clandestine United States agency called Alpha Protocol, whic ...
'' * '' America's Army: Operations'' *''
American Truck Simulator ''American Truck Simulator'' is a Vehicle simulation game#Trucking simulator, truck simulator game developed and published by SCS Software. It was announced as being in development in September 2013 and unveiled at the Electronic Entertainment Exp ...
'' *'' Amnesia: The Dark Descent'' *'' Armed Assault'' *'' Baldur's Gate: Enhanced Edition'' *'' Battlefield 2'' *'' Battlefield 2142'' *''
BioShock ''BioShock'' is a 2007 first-person shooter, first-person shooter game developed by 2K Boston (later Irrational Games) and 2K Australia, and published by 2K Games. The first game in the BioShock (series), ''BioShock'' series, it was released f ...
'' *'' Bit.Trip'' *'' Colin McRae: DiRT'' *''
Doom 3 ''Doom 3'' is a 2004 survival horror first-person shooter video game developed by id Software and published by Activision. ''Doom 3'' was originally released for Microsoft Windows on August 3, 2004, adapted for Linux later that year, and ported ...
'' *'' Euro Truck Simulator 2'' *''
FlightGear ''FlightGear Flight Simulator'' (often shortened to ''FlightGear'' or ''FGFS'') is a free, open source multi-platform flight simulator developed by the project since 1997. David Murr started the project on April 8, 1996. The project had i ...
'' *'' ioquake3'' *'' Jedi Knight II: Jedi Outcast'' *'' Jedi Knight: Jedi Academy'' *''
Mari0 ''Mari0'' (pronounced "mari-zero" or "Mario") is a 2012 side-scrolling platform video game developed by German indie developer Maurice Guégan and released onto his website Stabyourself.net. It combines gameplay elements from Nintendo's ''Super M ...
'' *''
Mass Effect (video game) ''Mass Effect'' is an action role-playing game developed by BioWare and originally released for the Xbox 360 in 2007. It is the first game in the '' Mass Effect'' series, and takes place within the Milky Way galaxy in the year 2183, where ci ...
'' *''
OpenArena ''OpenArena'' is a free and open-source video game. It is a first-person shooter, and a video game clone of '' Quake III Arena''. Development The ''OpenArena'' project was established on August 19, 2005, one day after the id Tech 3 source ...
'' *'' Orbz'' *'' Penumbra: Overture'' *'' Postal 2'' *''
Prey Predation is a biological interaction where one organism, the predator, kills and eats another organism, its prey. It is one of a family of common feeding behaviours that includes parasitism and micropredation (which usually do not kill ...
'' *''
Psychonauts ''Psychonauts'' is a 2005 platform video game developed by Double Fine Productions. The game was initially published by Majesco Entertainment and THQ for Microsoft Windows, Xbox and PlayStation 2. In 2011, Double Fine acquired the rights for t ...
'' *''
Quake 4 ''Quake 4'' is a 2005 military science fiction first-person shooter video game developed by Raven Software and published by Activision. It is the fourth title in the ''Quake'' series, after the multiplayer ''Quake III Arena'', and a sequel to ' ...
'' *'' Race Driver: Grid'' *'' Regnum Online'' *'' Running With Rifles'' *'' S.T.A.L.K.E.R.'' *'' System Shock 2'' *''
The Dark Mod ''The Dark Mod'' is a free and open-source software first-person stealth video game, inspired by the ''Thief'' series by Looking Glass Studios. The game provides the basic framework and tools (engine, assets, models, and editor) for more than 1 ...
'' *'' Tremulous'' *'' Unreal II: The Awakening'' *''
Unreal Tournament 2003 ''Unreal Tournament 2003'' is a first-person arena shooter video game developed by Epic Games and Digital Extremes, and published by Infogrames under the Atari brand name. The game is part of the ''Unreal'' franchise, and is a sequel to 1999's ...
'' *''
Unreal Tournament 2004 ''Unreal Tournament 2004'' is a first-person arena shooter video game developed by Epic Games and Digital Extremes. Part of the ''Unreal'' franchise, it is the third game in the '' Unreal Tournament'' series and the sequel to '' Unreal Tournam ...
'' *'' Unreal Tournament 3'' *'' War§ow'' *''
Wurm Online The Wurm (; nl, Worm ) is a river in the state of North Rhine-Westphalia in western Germany. It rises in the Eifel mountains and flows for 57 kilometres before discharging into the Rur. Geography The Wurm is a left (western) tributary of th ...
''


Other applications

*
Blender A blender (sometimes called a mixer or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary blender consists of a blender container with a rotating me ...
– 3D modelling and rendering tool uses OpenAL for its built-in game engine * 3DMark06 – Gamer's benchmarking tool *
Dolphin (emulator) Dolphin is a free and open-source video game console emulator for GameCube and Wii that runs on Windows, Linux, MacOS, Android, Xbox One, Xbox Series X and Series S. It had its inaugural release in 2003 as freeware for Windows. Dolphin was ...
– GameCube and Wii emulator *Vanda Engine – uses OpenAL 1.1 to simulate 2D and 3D sounds *
Croquet Project Croquet OS is a web-based operating system for creating three-dimensional apps with multi-user functionalities that run simultaneously on any device. Croquet can be used for communication, online gaming environments such as massively multipl ...
* Bino - 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 compatible update/replacement to the deprecated OpenAL Sample Implementation, as well as a free alternative to the now-proprietary OpenAL. OpenAL Soft supports mono, stereo, 4-channel, 5.1, 6.1, 7.1, HRTF, UHJ, and B-Format output. ;AeonWave-OpenAL: AeonWave-OpenAL is an LGPL-licensed OpenAL emulation layer that takes advantage of the hardware acceleration provided by the 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 N270) times faster than either OpenAL SI or OpenAL Soft under the same conditions. 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 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: :* 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 Ambisonics is a ''full-sphere'' surround sound format: in addition to the horizontal plane, it covers sound sources above and below the listener. Unlike some other multichannel surround formats, its transmission channels do not carry speaker si ...
). :* 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.


See also

*
OpenCL OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-progra ...
* OpenML * OpenMAX AL * FMOD * Java OpenAL * irrKlang *
Lightweight Java Game Library The Lightweight Java Game Library (LWJGL) is an open-source software library that provides bindings to a variety of C libraries for video game developers to Java. It exposes cross-platform libraries commonly used in developing video games a ...


References


External links


OpenAL official website

OpenAL Soft



DevMaster.net OpenAL Tutorials
(Note: these tutorials are showing their age slightly by, for instance, using deprecated functions such as alutLoadWAVFile)
Rapture3D
advanced OpenAL 1.1 driver
OpenAL package for C++
{{Creative Technology Application programming interfaces Audio libraries Computer libraries Cross-platform software Formerly free software Linux APIs Video game engines