[Openal-devel] AL_SOFT_direct_channels

Chris Robinson 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.


Name

    AL_SOFT_direct_channels

Contributors

    Chris Robinson

Contact

    Chris Robinson (chris.kcat 'at' gmail.com)

Status

    In-progress

Dependancies

    This extension is written against the OpenAL 1.1 specification.

Overview

    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.

Issues

    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.

New Procedures and Functions

    None.

New Tokens

    Accepted by the <paramName> parameter of alSourcei, alSourceiv,
    alGetSourcei, and alGetSourceiv:

        AL_DIRECT_CHANNELS_SOFT                  0x1033

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

    Description:
    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 mailing list