Introduction

AeonWave is a low-level, hardware accelerated 4D spatialized audio library aimed at the professional simulation market. The software currently runs on Windows and Linux for ARM and x86 and tests have shown that AeonWave renders 3D audio between 450% and 1400% faster than any competing product depending on the hardware configuration.

AeonWave started out as project Anaconda; a fast rendering new OpenAL implementation. After realizing this would not be good enough for spatialized 3D audio demands the library has been rewritten;

For project Barracuda the OpenAL code has been separated as thin layer on top of a new library which was named AeonWave Audio eXtensions library (AeonWave or AAX for short).

For the next step the internals of AeonWave were completely rewritten to be able to support filters, effects and sub-mixing capabilities resulting in AeonWave version 2.0 or project Cheetah. While working on the transformation the Application Programming Interface has also been reduced and cleaned up considerably and function defines have been added for easy porting to the new API.

In addition to this the function inputs have been hardened; improper input values should not effect the integrity of the software whenever possible. For instance when calling a functions floating point NaN values will be ignored and the calling software will be notified by returning a NULL-pointer or AAX_FALSE.

The library has been using matrices for positioning and orientation from the start which makes it fast and accurate without the possibility of glitches or temporary misalignment. Support functions are included to simplify matrix manipulation but it is also possible to provide a user defined matrix.

Several hardware backends are supported by the library and built-in support for improved Head Related Transfer Functions (HRTF) and virtualization (multiple speaker output) is available.

The AeonWave Audio eXtensions library defines a number of basic objects:

Object  

Type  

Description

Driver Stereo Select which hardware interface to use for audio input or output.
Mixer Stereo Controls the hardware audio format and frequency and supports global filters and effects.
A mixer is in essence pure stereo (multi-channel) and applied Filters and Effects affects the sound output.
Scenery 3D Influences the behavior of sounds surrounding the user.
Applied Filters and Effects affects all sound sources in the scene.
Virtual Sensor 3D Represents the position, orientation and velocity of the user.
Real Sensor Stereo Microphone, line-in or Stream input (file/http): automatically streams real-time audio from hardware.
Emitter 4D/Stereo Moves a sound source around with a user defined position, orientation and velocity.
Buffer Stereo Contains the audio data and configuration information.
Since buffers are static objects it is not a problem to share a single buffer amongst multiple emitters.
Audio-Frame 4D/Stereo Introduced in version 2.0: A container for a collection of emitters, sensors and/or other audio-frames. Audio-frames can move around with a user defined position, orientation and velocity. As a result all registered emitters, sensors and audio-frames also change position and orientation with just one update call.
Audio-frames also act as a stereo sub-mixer. Applied Filters and Effects affects all registered objects.
Filters 3D/Stereo Removes audio information from the sound source.
Effects 3D/Stereo Alters the audio information of a sound source, often in a non-reversible manner.