[openal] AL_SOFT_source_spatialize proposal
Lubomir I. Ivanov
neolit123 at gmail.com
Sat May 6 18:20:02 EDT 2017
On 6 May 2017 at 23:18, Chris Robinson <chris.kcat at gmail.com> wrote:
> Here's one that's a little more involved with modifying existing spec
> behavior. The main intention of this is to allow apps to play a stereo sound
> localized when emanating from the listener, and play the same sound
> non-localized when emanating from elsewhere.
> Normally in that scenario, the app would be required to create two versions
> of the sound to handle this, the original stereo one to play when localized
> and a second mono one to play when non-local. This increases the amount of
> work the app has to do to generate and manage audio buffers, and increases
> the amount of memory used (about 50% more per stereo buffer used this way).
> To say nothing of the difficulty in dealing with a source that may move
> between being local and non-local while playing.
> The only thing I'm really unsure of, and would like feedback on, is what
> kind of attenuation (if any) should be applied to a down-mixed sound.
> Normally you see an attenuation of 1/channels or sqrt(1/channels) when
> down-mixing to mono, but there's a case to make for letting the app deal
> with it and not try to invisibly correct it.
automatic 1/channels attenuation when downmixing to mono is very
common on IRL consoles and DAWs.
it's user friendly and IMHO prevents a complication over giving more
> Also, I'm not too thrilled with the new name AL_AUTO_SOFT to indicate
> preexisting behavior (automatically allow spatialization or not depending if
> playing a mono buffer or not, respectively). The alternative I thought of is
> AL_DONT_CARE_SOFT, but to me that makes it seem like the lib is more free to
> select one than it really does.
AL_AUTO_SOFT seems good as long as it's documented.
> "Spatialization features include positional panning, distance attenuation, cone-related
> attenuation, and doppler effects"
does that mean that if play a stereo buffer with
AL_SOURCE_SPATIALIZE_SOFT set to AL_FALSE the left and right channel
correlation will not be touched?
More information about the openal