OpenAL Soft with Android support



Build with cmake using a toolchain file made for the Android NDK.
For example, this one works:
options as needed to build for the various configurations.

The OpenSL backend will be built if configured for API Level 9 (2.3) or later,
otherwise the JNI backend will be used. It's recommended that you compile
OpenAL Soft as a shared library (the default) when using the JNI backend.

You may also try setting ANDROID_LOW_LATENCY to build the untested JNI
backend performance patch.

Precompiled binaries are offered in the downloads tab of this repo. Not
necessarily up to date or configured to your liking.

Source Install

To install OpenAL Soft, use your favorite shell to go into the build/
directory, and run:

cmake ..

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).

Please Note: Double check that the appropriate backends were detected. Often,
complaints of no sound, crashing, and missing devices can be solved by making
sure the correct backends are being used. CMake's output will identify which
backends were enabled.

For most systems, you will likely want to make sure ALSA, OSS, and PulseAudio
were detected (if your target system uses them). For Windows, make sure
DirectSound was detected.


The source package comes with an informational utility, openal-info, and is
built by default. It prints out information provided by the ALC and AL sub-
systems, including discovered devices, version information, and extensions.


OpenAL Soft can be configured on a per-user and per-system basis. This allows
users and sysadmins to control information provided to applications, as well
as application-agnostic behavior of the library. See alsoftrc.sample for
available settings.


Special thanks go to:

Creative Labs for the original source code this is based off of.

Christopher Fitzgerald for the current reverb effect implementation, and
helping with the low-pass filter.

Christian Borss for the 3D panning code the current implementation is heavilly
based on.

Ben Davis for the idea behind the current click-removal code.