chris.kcat at gmail.com
Fri Mar 2 07:12:38 PST 2012
This and the loopback extension are what I'm hoping to have done before
releasing OpenAL Soft 1.14.
OpenAL Soft somewhat recently got support for HRTF filters for when using
headphones, however some stereo audio tracks may already be designed to play
with headphones which makes it not sound as good when fed through HRTF
filters. Something like this was requested as a way to let such audio pass
through to the output without going through spatialization.
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 spatialization 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 spatialization
methods 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 do not
go through virtualization or spatialization and plays directly on the
matching output channel if it exists, otherwise it is dropped. Applies
only when playing non-mono buffers.
More information about the Openal-devel