AL_SOFT_direct_channels
openalext edited this page Dec 19, 2015
·
1 revision
AL_SOFT_direct_channels
Chris Robinson
Chris Robinson (chris.kcat 'at' gmail.com)
Complete
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 or other virtualization 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 place.
None.
Accepted by the <paramName> parameter of alSourcei, alSourceiv, alGetSourcei, and alGetSourceiv: AL_DIRECT_CHANNELS_SOFT 0x1033
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 Description: 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 buffers.