AeonWave-HD 64 is like Microsofts XAudio2 or Apples CoreAudio but multi-platform and more feature rich. It is a Freeware, GPL licensed, 3D and 4D audio library aimed at the professional audio, multimedia, game, simulation and virtual-reality market supporting Windows 7, Windows 8, Windows 10 and Linux operating systems (Intel and ARM).
Commercial users can acquire a selling exception which safeguards against the obligation to release the code under the GPL when linking against the library.
The adoption of the Simple DirectMedia Layer 2.0 as a fallback option for not directly supported audio drivers in AeonWave 3.2.0 opens the door to also easily support MacOS and BSD systems. The software renders audio considerably faster than competing products.
Starting with version 3.1 AeonWave not only supports large distance outdoor scenes but also has support for indoor sound propagation and sound occlusion.
The software provides a small, easy to use, fault tolerant and consistent API for the C language. In addition there is an even easier to use C++ API which exposes all the advantages C++ has to offer. The C++ API also comes with a buffer cache to minimize resources, and a simple way to stream background music without the need for the calling program to fill audio buffers on demand. This is done using the integrated audio streaming code which can also be used to read sound buffers, even from a remote location.
The library provides low latency support by taking optimal advantage of the users hardware. It, for instance, uses automatic load balancing threading when required and available (up top 16-cores can be utilized).
There is simultaneous support for stereo and 3D/4D audio. Stereo support is
useful for audio mixing and synthesizer applications while 3D/4D audio
support is targeted at simulation and augmented reality solutions.
AeonWave supports distance time delay if you need it, but only if you want it.
One thing that sets AeonWave apart is support for audio-frames with sub-mixing capabilities and 3D/4D emitter/audio-frame grouping support. Moving or rotating an audio-frame automatically reorientates all registered emitters and audio-frames along with it. There is no need to orientate them one by one. Audio-frames also adds the possibility to set filters or effects to a group of emitters: If an object with multiple sound emitters moves behind a building or a structure then a single frequency filter assigned to its audio-frame is sufficient. Audio-frames are also used to define sound obstructions and indoor room properties.
Buffers play a crucial role when using AeonWave. At first they were designed
to store audio data which could be played back anywhere in the scene by
attaching them to emitters. Later on support was added to reconstruct
sounds by synthesizing them using basic waveform shapes and adding, mixing
or ring-modulating them. This can dramatically reduce the package size since
sounds (like for instance a hazard alarm or telephone ring) don't need to be
shipped as binary files anymore. In the latest code buffers are also used to
set filters and effects. Now (almost) all of the sound experience can be
taken out of the hands of the developer and into the hands of the sound
AeonWave is designed for ease of development.
The way AeonWave defines all sound properties is using filters and effects.
Almost anything can be controlled either by a filter or by an effect: ranging
from pitch settings, envelope shape, frequency filter to distance
attenuation. New in version 3.0 is the option to define filters and effects
for any object (mixer, audio-frames or emitters) using AAXS encoded buffers.
This results in smaller, and easier to read, code.
AAXS files can be retrieved using the sound streaming code provided by the
library. This makes it is possible to store them on a remote host allowing
you to tweak sound properties for already installed software without the
need to recompile, and reinstall the software.
The only requirement is an internet connection.
Audio-frames are also utilized when the freely available supplemental MIDI file playback code is used to synthesize the complete GS MIDI instrument set. The builtin synthesizer is used to construct the timbre of the instrument and an audio-frame is used to apply all filters and effects required to properly simulate the instrument as a whole. This combination may surpass wave-table synthesis capabilities since it will allow interference between notes like with a real instrument. The timbre can be synthesized using a number of techniques and by applying static filters and effects. This combination allows creating convincing sounding instruments ranging from an acoustic piano, tubular bells, slap bass, string and brass sections, distorted guitars to all kinds of drums and percussion instruments as well as sound effects like hand clapping, breathing, dripping water, explosions and many more.