Skip to main content

Developer

Go Search
Home
ALchemy
Beta - Audigy [CLOSED]
Beta - Linux
Beta - Windows
Developer
E-MU
MarCom
OpenAL
Open Source
PR
  
Creative Labs: Connect > Developer > Wiki > Introduction to EFX  

Introduction to EFX

Although OpenAL provides a number of sophisticated 3D aural effects such as distance based roll-off, directivity and Doppler Shift, it lacks some very important environmental effects: reverberation, reflections, and sound occlusion or obstruction by intervening objects. Without these environmental effects, a listener can tell the direction of each sound source, but has a more difficult time pin-pointing how far away the sources are. Also, the listener has no idea of the environment where the sources are located.

This is where the concept of environmental audio comes in. Until now, EAX has been the standard way of adding environmental audio effects to OpenAL, but EFX provides a much more elegant solution.

EFX Vs EAX

The EAX API was designed around the DirectSound3D property set mechanism, and thus the EAX interface does not take full advantage of OpenAL's extension system, and EAX extensions all exist solely on PC.

The Effects Extension (EFX) on the other hand, was designed specifically 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.

Effects Extension Objects

The Effects Extensions introduce a number of new objects to OpenAL. In summary they are:

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 settings for the processor are determined by the attached Effect Object. In our 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 any settings such as filter amount, cut-off etc... 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. Source, Listener and Context Object Extensions The Effects Extension also adds a number of new properties to the existing OpenAL objects.

For full documentation including code examples, check out the OpenAL SDK.

Last modified at 5/29/2008 12:55 PM  by Administrator