[openal] Some questions about this mailing list and OpenAL Soft, and an EFX effects problem with hardware OpenAL

Chris Robinson chris.kcat at gmail.com
Wed Sep 16 08:27:24 EDT 2015

On 09/13/2015 08:42 AM, Luís Felipe Safady wrote:
> Hello everyone,
> I am new here so I would like to ask some questions first. Is list just for
> OpenAL Soft or for anything related to OpenAL? I am having some problems
> using the EFX extension with hardware based cards, and it would be good if
> I could ask it here.

This is for OpenAL in general. I don't know if anyone from Creative 
actively reads this list (maybe Ian?), so it may not be good for direct 
support of Creative's drivers, but perhaps someone can still give some 

> Is there any plan on adding other EFX effects to OpenAL Soft, like the
> pitch shifter?

It is planned, although there's no ETA. It's up to either someone 
contributing code for it, or me finding the time to learn how to do it.

> When using OpenAL Soft, wrap_oal and Sens_oal everything works perfectly
> (obviously I could only test with other effects other than the pitch
> shifter, and Sens_oal pitch shifter is very bad), but with ct_oal (for
> hardware based OpenAL cards) the effect just doesn't work.

Does trying to set the effect generate an error, either with the effect 
object or the auxiliary effect slot? Maybe the effect is only supported 
on certain hardware with the hardware drivers.

> When I compile the samples from the SDK it works, when I use OpenTK's
> OpenAL it works (I know a lot more about C# than I know about C/C++).
> At first I was generating the function pointers before setting current the
> context, with OpenAL Soft it worked fine but it crashed with a read to an
> invalid address with hardware OpenAL cards, so it seems there may be a
> sequence to follow when using them.

You should use alGetProcAddress to get al* function pointers, which 
requires an active context, and alcGetProcAddress for alc* function 
pointers. Same for alGetEnumValue for AL_* enums and alcGetEnumValue for 
ALC_* enums.

OpenAL Soft, and a couple other implementations I believe, use a single 
list for the al* and alc* function pointers, which is why it may work 
anyway, but perhaps the hardware driver doesn't do this.

> I can post the edited files here if anyone want, they are GPL'd anyway.
> (they are just two, a .h and a .cpp)

By the sounds of it, your code seems to be okay (since you say the 
effect works, if poorly, with sens_oal, and other effects work in place 
of it with other drivers), but it wouldn't hurt to let us take a look at it.

More information about the openal mailing list