Newsflash!The Summer 2007 OpenAL SDK is now available. The SDK includes the X-RAM Extension, the Effect Extension (EFX), Multi-Channel Buffer playback extension, and a new Device Enumeration extension that allows AL to be rendered on any installed soundcard / audio end-point.
The SDK also includes updated documentation, and a new OpenAL Deployment Guide.
OpenAL is a cross-platform 3D audio API designed for use with games and other types of multimedia applications. The OpenAL SDK includes documentation, sample code, demo applications, and a re-distributable run-time installer for OpenAL.
OpenAL features an extension mechanism allowing OpenAL vendors to add new features to the library. Creative Labs has added a number of extensions to OpenAL including EAX and X-RAM. This new release of OpenAL introduces the "Effects Extension" to OpenAL.
The Effects Extension is designed to provide a generic, cross-platform framework for adding advanced DSP effects to OpenAL. This framework offers the OpenAL programmer two new ways to process audio. Firstly, Sources can be processed through filters. Secondly, Auxiliary Effect Sends are introduced, so that effects processing can be applied to groups of Sources. The output of the Auxiliary Effects is fed into the final mix. It is also possible to filter Sources as they are fed into each Auxiliary Effect.
A good analogy here is with a traditional studio mixing desk. OpenAL on its own would map to a very simple mixing desk. Each channel strip will have minimal controls : volume, 3D or stereo pan, plus pitch (frequency). There are no auxiliary buses. In contrast, the equivalent mixer for OpenAL with Effects Extension has an arbitrary number of auxiliary effects buses, into which you can patch a variety of effects processors with adjustable parameters. On the channel strip, a filter control is added. There are also adjustable sends to each auxiliary bus, each with a filter control as well.
The Effects Extensions introduce a number of new objects to OpenAL:
Auxiliary Effect Slot
An Auxiliary Effect Slot object represents an effect that can be fed with a mix of audio from selected Sources. The effect type and parameter settings are determined by the attached Effect Object. In the mixing console analogy, this is the rack-mount slot where an effects processor can be patched into the mixer�s auxiliary send.
Effect Objects
Effects objects consist of the parameters required to define an Auxiliary Effect, i.e. effect type (reverb, chorus, etc�), plus values for each of the parameters that control the effect.
Filter Objects
A filter object contains the information needed to set up a filter, i.e. the filter type (low-pass, high-pass, etc�), and values for each of the parameters that control the filter. Filter objects can be used to filter the direct path (dry signal) of a Source, or used to filter the send path (wet signal) to any of the Auxiliary Effect Slots.
Different OpenAL devices may support different effect types. Creative Labs have defined an enhanced environmental reverb effect, which is only available on Creative soundcards. The Creative Effects SDK includes details about this effect type, and shows how the effect can be used with the Effects Extension framework.
Download the SDK from http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip