chris.kcat at gmail.com
Fri Mar 2 23:09:24 PST 2012
On Saturday, March 03, 2012 1:51:00 AM Jason Daly wrote:
> OK, I get it now. Subtle difference in terminology :-)
How's this version?
Chris Robinson (chris.kcat 'at' gmail.com)
This extension is written against the OpenAL 1.1 specification.
This extension allows a multi-channel source to play without virtualized
output speakers. By default, OpenAL requires buffer channels to be down-
mixed to the output channel configuration, possibly using HRTF techniques
to give a sense of speakers that may not be physically present. Sometimes
audio tracks are authored with their own spatialization effects, where the
AL's virtualization methods can cause a notable decrease in audio quality.
This extension provides a mechanism for applications to specify whether
audio should be filtered according to the AL's channel virtualization
rules for multi-channel buffers.
Q: Should this be a buffer property or source property?
A: Source property. This gives more flexibility to the app to decide
whether some piece of audio should be filtered or not.
Q: Should this work on mono (3D) sources?
A: No. Besides most people not having a mono speaker, or possibly even a
front-center speaker, its main intent is for stereo tracks that have
spatialization effects pre-applied.
Q: Are environmental effects, provided by EFX for example, still applied?
A: Yes. There's no compelling reason to disable them, particularly when
the application has to enable them on a per-source basis in the first
New Procedures and Functions
Accepted by the <paramName> parameter of alSourcei, alSourceiv,
alGetSourcei, and alGetSourceiv:
Additions to Specification
Append to Section 4.3.2, Source Attributes
Table 4.x Channel Virtualization
Name Signature Values Default
------------------------- --------- ------------------- ----------
AL_DIRECT_CHANNELS_SOFT i, iv AL_TRUE, AL_FALSE AL_FALSE
AL_DIRECT_CHANNELS_SOFT set to AL_TRUE indicates the audio channels are
not virtualized and play directly on the matching output channels if they
exist, otherwise they are dropped. Applies only when playing non-mono
More information about the Openal-devel