AeonWave (3.5.6) stable; urgency=medium
- Fix a segmentation fault in case of a (intentionally) corrupt AAXS file.
Parse the socket or file reported size to the binary-format so the number
of samples (with pcm8u samples) matches the number of bytes it reports back.
- Add a few new instruments.
AeonWave (3.5.5) stable; urgency=low
- 3x to 8x speedup of batched RMS calculation.
- Speed up of about 25% for frequency filters.
- Massive speedup for audio-frames with no active sound emitters.
- Allow Bessel filters with orders other than 12dB/Oct in AAXS files.
AeonWave (3.5.4) stable; urgency=high
- Add support for the fma3 and fma4 instructions.
- Fix a bug where data of filters or effects could be accessed when it
was freed already.
This was a leftover of the data swapping change.
- Improve the way filters and effects swap their data structures.
AeonWave (3.5.3) stable; urgency=high
- Implement after-touch using pitch in the Instrument class.
- Fix a number of memory related issues as reported by valgrind.
- Switch from swapping data structure-pointers to copying the contents of the
data structure when assigning filters and effects. This prevents that the
filter or effect destroy-function will destroy a data structure which might
still be in use by a thread.
AeonWave (3.5.2) stable; urgency=low
- Improve various instrument configurations.
- Speed and accuracy improvements for volume ramps (also used by the timed-gain filter).
- Fix an audible glitch when resetting (re-initializing) emitters while playing. Most noticeable for MIDI file playback.
AeonWave (3.5.1) stable; urgency=low
- Improve various instrument configurations.
- Fix another issue with delay effects.
- Remove a debugging statement.
AeonWave (3.5.0) stable; urgency=medium
- Add the option to set the location of the shared-data directory at runtime
using the new aaxDriverSetSetup function.
- Add a C++ instrument header file which can be used to simulate a single,
complete, musical instrument. And use it for the MIDI playback code.
- Re-initialize the emitter after it is set to suspended. This makes the
emitter ready for the next playing state.
- Fix a possible race condition when using tied properties.
- Fix some issues with the timed gain filter and timed pitch effect.
- Fix an issue when two registered audio-frames both use a delay effect.
- Add the option to define the loop staring point and loop end point in AAXS
files that include a file in the sound section.
- Allow AAXS defined filters and effects to be set as optional, in which case
they will be omitted on systems which are low on resources (CPU and memory).
- AAXS generated buffers will now use mipmapping to extend the pitch range
beyond a pitch level of 32.
AeonWave (3.4.0) stable; urgency=low
- Add support for the ISO9613-1 specified distance attenuation model.
- If the ISO9613-1 distance model is applied, and the velocity effect was
not yet set, then the corresponding speed of sound will be set automatically.
- Add a RingModulator effect, mainly to be able to simulate atmospheric
anomalies for wireless communications. But useful for other purposes too.
- If the source has stopped then finish the current time envelope and stop,
otherwise an evelope with repeat set to max will never stop until the
emitter is set to processed.
- Remove debugging output from ogg streaming code.
AeonWave (3.3.0) stable; urgency=low
- Automatically convert an effect name like "effects/nature/birds" to a full
path name using APP_DATA_DIR when it is parsed to the buffer retrieving
function of the AeonWave class.
- Add a Param class which encapsulates a float variable and which can
be tied to a DSP parameter. Every time the param gets a new value
assigned the DSP parameter will be updated too.
- Fix a small problem with stopping an emitter which has a timed-gain
envelope defined with one of the time settings to "inf". They should now
finish properly after the emitter is requested to stop playing.
- Overhaul of the C++ classes to make them C++11 compliant.
- Remove support for an ancient way of handling config files.
- Prevent a crash when the state of the timed-gain filter or timed-pitch
effect is not set before it is registered the the sensor, audioframe or
AeonWave (3.2.3-1) stable; urgency=low
- Fix AAX_SHARED_DATA_DIR support for Linux.
- Add and improve the shared instruments and effects.
- There where no code changes.
AeonWave (3.2.3) stable; urgency=low
- Fix a missing offset(enum aaxType) error for the AeonWave class.
- Fix a problem with AAX_SHARED_DATA_DIR support for Windows.
AeonWave (3.2.2) stable; urgency=medium
- Add the AAX_PCM24S_PACKED format for 3-byte packed 24-bit samples.
AAX_PCM24S is used for 32-bit encoded 24-bit samples.
- Fix 24-bit packed PCM data handling.
- Fix a possible stream synchronization problem at the start of streams
that support ICY metadata song information.
AeonWave (3.2.1) stable; urgency=low
- Improve timing for some backends by using a regular interval method
instead of waiting just a number of milliseconds from the time of calling.
This moslty affected OSS and SDL backends.
- Move the mixing code from the callback to the backend-thread for the SDL
backend reducing the time spent in the callers code to a mere memcopy.
- Enable the SDL directsound backend for Windows XP.
- Rename the angular filter (which was lost in translation) to directional
filter. For backwards compatibility the angular name is still being
recognized internally and the library is binary compatible with previous
AeonWave (3.2.0) stable; urgency=high
- Add SDL audio support for backends AeonWave does not support natively.
This potentially opens up the option to use AeonWave on MacOS and BSD.
SDL 2.0.5 or later is required.
- Allow retrieving the data directory which AeonWave uses to store shared data
like preset files by calling aaxDriverGetSetup(cfg, AAX_SHARED_DATA_DIR)
- Allow defining AAX_ENVELOPE_FOLLOW or AAX_INVERSE_ENVELOPE_FOLLOW alongside
the waveform type to control the noise behavior when setting the state for
the bitcrusher filter. The default behavior is still a constant noise level.
- Fix a number of potential buffer overflows when enumerating the available
- Fix a number of one-off memory leaks.
AeonWave (3.1.2) stable; urgency=low
- Deliver on the promise that one can add a named, but empty, buffer in
case aaxBufferReadFromStream fails when calling buffer() from the
- Add the bitcrusher filter to simulate (communication line) sound degradation.
AeonWave (3.1.1) stable; urgency=medium
- Add the aaxPlaySoundLogo() function to play back the official sound
logo at the requested device.
- Add the option to mark an LFO based filter or effect 'stereo' for
- Fix volume glitches for dynamic-gain and timed-gain filters
- Account for the fact that pink-noise and brownian-noise both have a lowest
cut-off frequency of 100Hz. Which can be used to create continuous noise
instead of noise with possible volume glitches.
- Fix a case where LFO filters and/or effects could be initialized improperly
for use with audio-frames.
AeonWave (3.1.0) stable; urgency=high
- Explicitly allow GPL version 2 and GPL version 3 applications to use
- Add distance filter frequency response.
- Speed up waveform generation quite a bit.
- Turn the reverb effect into a true 3d effect.
- Add the option to register the reverb effect to audio-frames.
- Due to memory considerations they only support up to large room sizes,
any reflections with a larger delay will be ignored.
- Add the option to define audio-frames as indoor by setting AAX_POSITION
to AAX_INDOOR when calling aaxAudioFrameSetMode. It is possible to combine
AAX_INDOOR with AAX_RELATIVE or AAX_ABSOLUTE (the default when omitted).
This allows for indoor sound propagation where every audio-frame represents
a room or a section of a room. Reverb and frequency filters can be used
to simulate the properties of the room section defined by the audio-frame.
By specifying the audio-frame indoor, sound will not become directional until
it arrives at the scene of the listener.
- Add the option to define occlusion object parameters to the volume-filter
and reverb-effect, which will influence the sound properties of the direct
path of the sound.
- Harden the matrix multiplication code so it will be more correct in more
situations. A smaller update-rate than the refresh-rate could cause emitter
and parent-frame data to be out of sync. Also absolute positions are handled
- Fix a mistake in 32-bit matrix calculations caused by copying just one
row instead of all rows.
- Add support for a static parametric-equalizer within the <sound/> section
of AAXS files.
- Increase the http stream timeout value. The default was too low.
- Protect against de-registering an unregistered audio-frame or emitter.
AeonWave (3.0.11) stable; urgency=medium
- Fix a speed regression for matrix multiplications.
- Add the 'auto-sustain' option for filters and effects which calculates the sustain time by subtracting the logarithmic frequency value multiplied by the auto-sustain value from the original value.
AeonWave (3.0.10) stable; urgency=medium
- Considerably speed up envelope following calculation.
- Add the option to define the duration of the waveform generated by the sound section of an AAXS file. The minimum duration is 1 second.
- Allow pitch to be set as an attribute for frequency related parameters in filters and effects of AAXS files. The frequency then becomes pitch multiplied by the frequency defined in the sound section.
- Protect against unrecognized filter or effect type definitions in AAXS files.
- Fix audio device detection on Linux if Pulse Audio is inactive.
- Fix the case where filters in the sound section of AAXS files could only be 12db/oct.
AeonWave (3.0.9) stable; urgency=low
- Prevent an endless loop for mangled wav files.
- Waveforms, filters and effects in the sound section of an AAXS file now are processed in the order of appearance.
- Fix static frequency filter anomalies at the loop points of AAXS defined
AeonWave (3.0.8) stable; urgency=low
- Fix a problem for AAXS buffers added to AudioFrames.
- Fix detecting directories with a dot in the name as not being a remote host. e.g.: sound.dir/file.mp3
AeonWave (3.0.7) stable; urgency=low
- Fix a problem where large AAXS files where truncated.
- Reorganize the filter and effect cleanup for emitters, audio-frames and the
- Add support for a static frequency filter and a static distortion effect
within the <sound/> section.
AeonWave (3.0.6) stable; urgency=low
- Postpone initialization of AAXS filter and effect code for emitters to
make sure they will be set after initializing the mixer which could change
parameters like the refresh rate. As a bonus it is now possible to stream
different AAXS buffers one after the other.
- Reduce getaddrinfo timeout considerably by specifying ai_family = AF_INET
- Fix a bug where a suspended configuration could not be resumed.
AeonWave (3.0.5) stable; urgency=medium
- Add the aaxGetFrequencyFilterTypeByName function.
- Restructure the filter and effects code a bit to make it easier to remove
- Add function to the C++ support class to get the type, waveform_type,
frequency_filter_type and distance_model by name
AeonWave (3.0.4) stable; urgency=medium
- Add the option to repeat the timed-gain filter for a specified number of
times. This could be useful for repeating sounds like alarm and clock sounds.
If a timed-pitch effect is present for the same emitter then it will repeat
at the same moment the timed-gain filter restarts.
- Fix the buffer length when a file is specified for the sound section of an
AeonWave (3.0.3) stable; urgency=medium
- Fix playback support to mp3 files.
- Support WAV files with LIST ADTL, BEXT, CUE and SMPL tags
- Allow specifying a file attribute in the sound section of AAXS files.
- Allow processing, pitch, ratio and staticiy to be attributes instead of
sub-nodes of the XML waveform node for a shorter notation of the sound
- Fix a possible segmentation fault when a requested WAV file was not found.
AeonWave (3.0.2) stable; urgency=medium
- Add a function to add a buffer to the dsp class.
- Fix a bug in the matrix code which could create a segmentation fault.
AeonWave (3.0.1) stable; urgency=medium
AeonWave (3.0.0) stable; urgency=low
- Add a function to get the distance model by name.
- Use the proper distance model if type is DISTANCE for AAXS defined filters.
- Add functions to add a buffer object to the AeonWave and Frame classes.
- Add the option to retrieve the original AAXS file when calling
aaxBufferGetData when the buffer format is AAX_AAXS16S or AAX_AAXS24S.
- Fix a few bugs for unusual situations in the new streaming code.