(Audio) Buffers

Buffers are in essence containers of audio data and sample information. Because of the static nature of audio buffers they can be shared among multiple registered emitters at the same time.

Sample data can be supplied in any of the 29 formats but will be converted to the most appropriate native format before use. Supplying data in one of the native formats will therefore be fastest. Retrieving data from an audio buffer can also be in one of the supports formats which makes it possible to use audio buffers for converting sample data to a different format.

Buffers support arbitrary loop-points within the sample data and for 3D purposes it is possible to select on of the tracks of a multi-track buffer for playback (3D positional playback only supports mono channel audio).

Waveform and Noise generator

An internal waveform generator is available to fill audio buffers on-demand. It supports 5 waveform types and 3 noise types (including static noise). Different types of waveforms can be mixed in, added to or ring-modulated with the sample data that is already available in the buffer. It is possible to predefine the mixing factor and frequency before processing. The waveform generator will always try to create seamless looping sample data by slightly adjusting the playback duration or frequency setting.

AeonWave basically turns into a virtual synthesizer by combining multiple waveform and noise types, using different frequencies, mixing factors and processing types, in combination with the time filter and time effect and/or tremolo filter and vibrato effect.

Starting with AeonWave version 3.0 buffers can also hold filters and effects specifications for any object (mixer, audio-frames or emitters) using AAXS encoded buffers.

AAXS encoded buffers

AAXS files are XML encoded configuration files which can be used to define synthesized waveforms and to assign filters and effects to the mixer object, emitters and to audio-frames. The idea started with the desire to assign all elements of a synthesized instrument with one single configuration file but this turned out to be very useful for all aspects of the sound engine. Since almost all aspect of audio manipulation is defined either as a filter or an effect. This includes 3D sound behavioral effects like Doppler and distance attenuation. As a bonus the format allows setting the looping behavior of emitters.