OpenAL Soft is a cross-platform software implementation of the OpenAL 3D audio API. It's built off of the open-sourced Windows version available originally from the SVN repository at openal.org.
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, low-pass filters, and reverb, are available through the EFX extension. It also facilitates streaming audio, multi-channel buffers, and audio capture.
OpenAL Soft is meant as a compatible update/replacement to the OpenAL Sample Implementation (the SI). The SI has been unmaintained for quite a while, and would require a lot of work to clean up. After attempting to work on the SI for a bit, I became overwhelmed with the amount of work needed, and I eventually decided to fork the old Windows version to attempt an accelerated ALSA version. The accelerated ALSA idea quickly fell through, but I ended up porting the software mixing code to be cross-platform, with multiple output backends: ALSA, OSS, DirectSound, and a .wav writer are currently implemented.
OpenAL Soft supports mono, stereo, 4-channel, 5.1, 6.1, and 7.1 output, as opposed to the SI's 4-channel max (though it did have some provisions for 6 channel, this was not 5.1, and was seemingly a "late" addition). OpenAL Soft does not support the Vorbis and MP3 extensions, however those were considered deprecated even in the SI. It does, though, support some of the newer extensions like AL_EXT_FLOAT32 and AL_EXT_MCFORMATS for multi-channel and floating-point formats, as well as ALC_EXT_EFX for environmental audio effects, and others.
· CMake version 2.4 or newer
To install OpenAL Soft, first extract it. It will automatically extract itself into the openal-soft-/ directory. Using your favorite shell, go into the CMakeConf/ directory, and run:
Assuming configuration went well, you can then build it, typically using GNU Make (KDevelop, MSVC, and others are possible depending on your system setup and CMake configuration).
What's New in This Release:
· Fixed a DirectSound buffer lock issue present on some cards
· DirectSound output now uses the reported speaker setup for selecting the output format
· DirectSound devices are enumerated with the ALC_ENUMERATE_ALL_EXT extension
· ALSA playback cards with no devices are no longer enumerated
· Added a new, more practical alext.h header for using extensions
· Note that this doesn't yet include the EFX types.
· New option to duplicate stereo sounds on the rear channels (stereodup)
· Default is off since it drasticly increases the loudness of stereo sounds compared to local mono sounds
· More initialization and unexpected shutdown fixes
· OSS capture now uses the correct buffer size
· All ALSA capture devices are now enumerated
· Now using a better wait method for ALSA in mmap mode, to reduce unnecessary thread wakeups