[openal] Extensions and recommended way of installing OpenAL Soft

Chris Robinson chris.kcat at gmail.com
Wed Sep 2 15:19:22 EDT 2015

On 08/31/2015 10:18 AM, Cyril Drouet wrote:
 > I'm trying to use the "AL_SOFT_buffer_samples" extension so that I
 > can load surround data into buffers.


FWIW, you don't necessarily need AL_SOFT_buffer_samples to load surround 
sound data. That extension is mainly just an attempt to clean up the 
buffer loading API to be clearer and more flexible, namely by separating 
the sample type from the channel configuration, and supplying more 
user-facing sample types. But as long as you only need to worry about 
unsigned 8-bit, signed 16-bit, and/or 32-bit float sample types with the 
surround configurations, then you only need the AL_EXT_FLOAT32 and 
AL_EXT_MCFORMATS extensions.

> 1. If I rename "soft_oal.dll" into "openAL32.dll", then everything is
>     good: alIsExtensionPresent returns true
> 2. If I install OpenAL from Creative and install soft_oal.dll the
>     recommended way (I don't rename the dll, and just add it to System32
>     on Windows), then alIsExtensionPresent never returns true
> I would like to use the second method which is the recommended way of
> installing OpenAL Soft, and benefit from the OpenAL soft implementation
> as well, but it doesn't seem to be working. Am I doing something wrong?

For AL_SOFT_buffer_samples to be available, you need to open an OpenAL 
Soft device (and unfortunately it doesn't currently append "on OpenAL 
Soft" on the device names to differentiate them like it should). When 
its used as soft_oal.dll, other non-ALSoft devices can still be 
enumerated too and may be selected by default.

For your particular use-case, since you rely on OpenAL Soft's 
AL_SOFT_buffer_samples extension anyway, you could leave it named 
OpenAL32.dll and have it put next to the app's executable (or wherever 
the other local DLLs are put). It won't affect any system-installed 
OpenAL, but your app(s) will only see OpenAL Soft.

More information about the openal mailing list