Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

OpenAL

From Wikipedia, the free encyclopedia
API for rendering audio
Not to be confused withOpenAI.
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "OpenAL" – news ·newspapers ·books ·scholar ·JSTOR
(September 2015) (Learn how and when to remove this message)
OpenAL
Original authorLoki Software
DeveloperCreative Technology
Stable release
1.1 (installer 2.1.0.0)[1] / November 2009; 16 years ago (2009-11)
Written inC
Operating system15 operating systems
See:Supported platforms
TypeApplication programming interface
License
  • Sample Implementation:Proprietary since v1.1,LGPL before v1.1,BSD in early versions[2]
  • "OpenAL" trademark: unclear, held by Creative Labs, Inc.
Websitewww.openal.org Edit this on Wikidata

OpenAL (Open Audio Library[3][4]) is across-platform audioapplication programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those ofOpenGL. OpenAL is an environmental3D audio library, which can add realism to a game by simulatingattenuation (degradation of sound over distance), theDoppler effect (change in frequency as a result of motion), and material densities.

OpenAL aimed to originally be anopen standard andopen-source replacement forproprietary (and generally incompatible with one another) 3D audio APIs such asDirectSound andCore Audio, though in practice has largely been implemented on various platforms as awrapper around said proprietary APIs or as a proprietary and vendor-specific fork. While thereference implementation later became proprietary and unmaintained, there are open source implementations such asOpenAL Soft available.

History

[edit]

OpenAL was originally developed in 2000 byLoki Software to help them in their business ofportingWindows games toLinux.[5] After the demise of Loki, the project was maintained for a time by thefree software/open source community, and implemented onNVIDIA nForce sound cards and motherboards. It was hosted (and largely developed) byCreative Technology until circa 2012.

Since 1.1 (2009), the sample implementation by Creative has turned proprietary,[citation needed] with the last releases in free licenses still accessible through the project'sSubversionsource code repository. However,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,[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.[6] Ryan C. Gordon, a Loki veteran who went on to developSimple DirectMedia Layer, started a new mailing list and website at OpenAL.org in January 2014.[7] As of February 2023, the list remains in use.

API structure and functionality

[edit]

The general functionality of OpenAL is encoded insource objects,audio buffers and a singlelistener. 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 inPCM format, either 8- or16-bit, in eithermonaural orstereo 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 theAPI: 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) orenvironmental audio extensions (EAX) can be used.

Limitations

[edit]

Thesingle 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.[8]In these cases a multiple listener model is required. OpenAL also fails to take into accountsound propagation delays (thespeed of sound is used for theDoppler effect only). The distance to a sound source only translates into an amplitude effect (attenuation) and not a delay. Hence OpenAL cannot be used fortime difference of arrival calculations unless that functionality is added in separately.[9]

In order to takefull 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 awrapper 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 fromWindows Vista onward has effectively broken generic hardware acceleration on modern versions of Windows.[10][11]

Supported platforms

[edit]

The API is available on the followingplatforms andoperating systems:[12]Android (supportsOpenSL ES),AmigaOS 3.x and 4.x,[13]Bada,BlackBerry 10,[14]BlackBerry PlayBook,BSD,iOS (supportsCore Audio),IRIX,Linux (supportsALSA,OSS,PortAudio andPulseAudio),Mac OS 8,Mac OS 9 andMac OS X (Core Audio),Microsoft Windows (supportsDirectSound,Windows Multimedia API and Windows Multimedia Device (MMDevice) API),MorphOS,OpenBSD,[15]Solaris,QNX, andAROS.[16]

Supported gaming devices are for instance:GameCube,PlayStation 2,PlayStation 3,Xbox,Xbox 360,Wii, andPlayStation Portable.

Applications

[edit]

Games

[edit]

The following video games are known to use OpenAL:

Other applications

[edit]
  • Blender – Uses OpenAL for its video editor
  • 3DMark06 – Gamer's benchmarking tool
  • Dolphin (emulator) – GameCube and Wii emulator
  • Vanda Engine[28] – uses OpenAL 1.1 to simulate 2D and 3D sounds
  • Croquet Project[29]
  • Bino[30] - Video player software that has support for stereoscopic 3D video and multi-display video

Implementations

[edit]
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.[31][32]
AeonWave-OpenAL
AeonWave-OpenAL is an LGPL-licensed OpenAL emulation layer that takes advantage of the hardware acceleration provided by thenon-free but low cost AeonWave 4D-audio library for Linux and Windows made byAdalin B.V. The author claims that AeonWave-OpenAL implementation renders 3D audio five (on anAMD Athlon 64 X2) to seven (on anIntel Atom N270) times faster than eitherOpenAL SI orOpenAL Soft under the same conditions.[33] By using theAeonWave library this implementation supports HRTF as well as spatialised surround sound for up to eight speakers.
Rapture3D OpenAL Driver
The Rapture3D OpenAL Driver is anon-free, commercial, Windows only, software implementation made byBlue Ripple Sound. The library is intended as a high performance drop-in replacement for other implementations. It features:[34]
  • 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 usingAmbisonics).
  • 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[35]
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.[36]
MojoAL
Tiny (single-file), full OpenAL 1.1 implementation built on top ofSDL2 by Ryan C. Gordon.[37]

See also

[edit]

References

[edit]
  1. ^"OpenAL: Cross Platform 3D Audio".openal.org.
  2. ^"OpenAL License". Archived fromthe original on December 30, 2012. RetrievedNovember 10, 2012.
  3. ^Hall, John (2001).Programming Linux Games. No Starch Press. p. 63.ISBN 978-1-886411-49-4.
  4. ^Wilde, Martin (2004).Audio Programming for Interactive Games. Taylor & Francis. p. 11.ISBN 978-1-136-12581-2.
  5. ^"Press release with regards to OpenAL" (Press release). Archived fromthe original on 2016-03-06. Retrieved2011-07-18.
  6. ^"Wayback Machine prefix query: openal-devel archive". Retrieved25 April 2023.Archive index at theWayback Machine
  7. ^"The openal January 2014 Archive by thread".openal.org.
  8. ^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). RetrievedAugust 5, 2012.
  9. ^Open Source FPS Game Alien Arena 2009 Released #28412367
  10. ^Enumeration with OpenAL on Windows
  11. ^OpenAL® and Windows Vista™
  12. ^"OpenAL – Platforms". RetrievedMay 10, 2012.
  13. ^"Archived copy".se.aminet.net. Archived fromthe original on 16 March 2018. Retrieved6 June 2022.{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^"blackberry/OpenAL 路 GitHub".Github.com. RetrievedJanuary 14, 2013.
  15. ^"OpenAL for OpenBSD". Archived from the original on 2012-03-18. Retrieved2011-07-18.
  16. ^"OpenAL/alut/ogg/vorbis [Forum – Development (General)". AROS-Exec. Archived fromthe original on May 26, 2013. RetrievedJune 16, 2013.
  17. ^"Overview".0 A.D. Game Info. Wildfire Games. Archived fromthe original on September 26, 2013. RetrievedDecember 5, 2012.
  18. ^abcdefghijklmnopqrstuvwxyzaa"Games".OpenAL.org.[self-published source?]
  19. ^ab"SCS Software forum".Archived from the original on June 5, 2019. RetrievedJune 5, 2019.
  20. ^"HPL Engine – Mod DB". 11 May 2010. RetrievedNovember 20, 2012.
  21. ^"Troubleshooting: Reinstall OpenAL : Beamdog". RetrievedMay 29, 2014.
  22. ^"Bit.Trip Runner - PCGamingWiki". RetrievedOctober 8, 2022.
  23. ^"ioquake3 website".
  24. ^"Blue Ripple Sound". RetrievedSeptember 23, 2017.
  25. ^"Blue Ripple Sound". RetrievedSeptember 23, 2017.
  26. ^"Modulaatio Games". Archived fromthe original on September 6, 2012.
  27. ^"Compatible OpenAL Games".Blue Ripple Sound.
  28. ^"Vanda Engine". Archived fromthe original on 2017-05-09. Retrieved2017-05-18.
  29. ^Thalmann, Florian; Gaelli, Markus (2006). "Jam Tomorrow: Collaborative Music Generation in Croquet Using OpenAL".Jam Tomorrow: Collaborative Music Generation in Croquet Using OpenAL - IEEE Conference Publication. pp. 73–78.CiteSeerX 10.1.1.67.8139.doi:10.1109/C5.2006.22.ISBN 978-0-7695-2563-1.S2CID 5577203.
  30. ^Lambers, Martin."Bino: free 3D video player - About".bino3d.org.
  31. ^"OpenAL Soft – Software 3D Audio". openal-soft.org. RetrievedJanuary 4, 2014.
  32. ^"OpenAL Soft Git repository". RetrievedDecember 26, 2013.
  33. ^Hofman, Erik (May 9, 2012)."[Openal-devel] Announcement: AeonWave-OpenAL 1.1.7 released". Archived fromthe original on January 19, 2013. RetrievedDecember 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.
  34. ^"Developers". Blue Ripple Sound Limited. 2009. RetrievedJanuary 24, 2011.
  35. ^"Source Browser".
  36. ^"An OpenAL implementation for MacOS X".icculus.org.
  37. ^"MojoAL".icculus.org.

External links

[edit]

Implementations:

Developer resources:

DSPs
Sound Blaster
Ensoniq
Software
Divisions and brands
Divisions
Brands
Retrieved from "https://en.wikipedia.org/w/index.php?title=OpenAL&oldid=1315280455"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp