| CARVIEW |
OpenAL Soft
Contents:
Overview
OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.
OpenAL provides capabilities for playing audio in a virtual 3D environment. Distance attenuation, doppler shift, and directional sound emitters are among the features handled by the API. More advanced effects, including air absorption, occlusion, and environmental reverb, are available through the EFX extension. It also facilitates streaming audio, multi-channel buffers, and audio capture.
If you wish to report a bug or make a feature request, please check issue tracker on the GitHub repository.
You can ask for help in IRC, #openal on irc.libera.chat (see https://libera.chat/ and https://libera.chat/guides for more information on libera.chat and connecting to it).
Features
This library is multi-platform, with support for Linux, Windows, Android, OS X, iOS, and more. Audio backends for PipeWire, PulseAudio, ALSA, WASAPI, OpenSL, CoreAudio, OSS, JACK, DirectSound, WinMM, Solaris, SoundIO, PortAudio, SDL2, SDL3, "Null" Output, and a .wav file writer are currently implemented. Loopback devices are also supported for playback to interface with other audio systems.
OpenAL Soft supports many extensions, including but not limited to AL_EXT_MCFORMATS and AL_EXT_FLOAT32 for multi-channel and floating-point formats, AL_EXT_BFORMAT for B-Format (ambisonic) soundfield audio buffers, and ALC_EXT_EFX for environmental audio effects such as reverb, occlusion, and obstruction. It supports mono, stereo, 4-channel, 5.1, 7.1, HRTF, UHJ, and B-Format output.
OpenAL Soft 1.25.1 is now available!
The changes from 1.25.0 include:- Fixed the OpenSL and JACK backends.
- Fixed WASAPI and CoreAudio capture.
- Fixed building the OSS backend with OSS v4.
- Fixed a debug assertion with HRTF enabled.
- Fixed an STL hardening assertion in the polyphase resampler with certain resampling ratios.
- Added a new stereo-encoding option for Tetraphonic Surround Matrix Encoding.
- Updated library codebase to C++20.
- Fixed alcIsExtensionPresent to do a case-insensitive compare.
- Fixed potential noise when switching reverbs.
- Fixed reverb panning with certain output modes.
- Fixed retrieving the alGetProcAddressDirect extension function.
- Fixed negative source offsets with a callback buffer.
- Fixed a memory issue that could occur in rare situations with looping sources.
- Fixed compiling for and running on older macOS versions.
- Fixed using unicode in environment variable values on Windows.
- Fixed memory alignment issues with 32-bit MinGW builds.
- Fixed a crash in sofa-info with SOFA files that have null strings.
- Updated alsoft-config to Qt6.
- Added build options for STL hardening.
Performant checks meant for production are enabled by default. - Added support for fourth-order ambisonics.
- Added support for CAF files to the Wave Writer backend.
- Added optional support for C++20 modules.
These are intended to be copied into projects wishing to use them, since modules depend on being built with compatible compile flags as the sources they're imported into. - Added a .note.dlopen section to ELF shared library builds to record dynamic dependencies for build maintainers.
- Converted the headers to XML files, which are used to generate the headers (and modules) with a script.
Other scripts can be made to generate bindings for various other languages. - Changed AL_PANNING_ENABLED_SOFT to allow being toggled on playing sources.
- Changed the default period size to 512 sample frames.
- Changed the default Super Stereo width to 0.46.
Download
Building OpenAL Soft needs CMake version 3.13 or newer (older versions may possibly work as well, but are untested). Autotools is not supported. It should build on most compilers supporting C++17.
The latest release is 1.25.1, and is available in source form.
openal-soft-1.25.1.tar.bz2
Win32 and Win64 binaries are also provided.
openal-soft-1.25.1-bin.zip
A more up-to-date Git repository is available at GitHub and repo.or.cz.
Note that you will need to install Git to download it.
Older releases can be found here, and older binaries can be found here.
Source Install
To install OpenAL Soft, first extract it. It will automatically extract itself into the openal-soft-1.25.1/ directory. Using your favorite shell, go into the build/ directory, and run:
cmake ..
Alternatively, you can use any available CMake front-end, like cmake-gui, ccmake, or your preferred IDE's CMake project parser.
Assuming configuration went well, you can then build it. The command
cmake --build .
will instruct CMake to build the project with the toolchain chosen during configuration (often GNU Make or NMake, although others are possible).