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

Luís Felipe Safady lagonauta at gmail.com
Wed Sep 16 14:06:40 EDT 2015


Thank you for your answer.


1. "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."

Good to know :)


2. "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."

There is no error, none at all. This is why it is very strange.


3. "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."

That explains why it was crashing before, thanks :)


4. "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."

Thanks, I attached the files to this message but one can also get them on
GitHub: (OpenALStream.cpp and OpenALStream.h)

https://github.com/LAGonauta/dolphin/tree/x-fi-EFX-timestretch

Besides adding EFX time-stretching support I am also adding support to
32-bit fixed point to X-Fi cards. The effect is not working on 16-bit and
32-bit.

I have a hunch that it has something to do with how samples are buffered on
Dolphin, but I don't know where to look...

Anyway, any help would be appreciated :)

2015-09-16 9:27 GMT-03:00 Chris Robinson <chris.kcat at gmail.com>:

> 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
> advice.
>
> 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.
> _______________________________________________
> openal mailing list
> openal at openal.org
> http://openal.org/mailman/listinfo/openal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openal.org/pipermail/openal/attachments/20150916/8a916244/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenALStream.cpp
Type: text/x-c++src
Size: 22368 bytes
Desc: not available
URL: <http://openal.org/pipermail/openal/attachments/20150916/8a916244/attachment-0001.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenALStream.h
Type: text/x-chdr
Size: 4272 bytes
Desc: not available
URL: <http://openal.org/pipermail/openal/attachments/20150916/8a916244/attachment-0001.h>


More information about the openal mailing list