Audaspace 1.7

- Rewrite of the Synchronizer API.
- Unified backends with a mixing thread (Jack, Pulse, Pipewire, CoreAudio)
- Various fixes for CoreAudio.

Detailed list of changes:

46036fa Bugfix for MixingThreadDevice.
bdd4ba5 Reintroducing ThreadedDevice.
eabbeee CoreAudio: remove OpenCloseDevice functionality.
a746d92 CoreAudio fixes.
0cbd14e Fixes.
82585f8 CoreAudioDevice/OpenCloseDevice: base on MixingThreadDevice.
a6341e7 Adding MixingThreadDevice and refactor deriving classes.
d2de831 Refactor PipeWireDevice and use own RingBuffer class.
78291ef Jack: use own RingBuffer class.
cbf62c2 CoreAudio: compile fixes.
caafed6 Remove resumeOnSync API again since no device supports it properly.
22f9c8d Modifying Jack transport sync callback behavior.
8cf2429 Remove sync callbacks for own calls.
c070757 Add resumeOnSync method for precise synchronization with Jack.
ce417e5 Finish synchronizer refactor.
fbec554 First step towards handle independent synchronizer.

Audaspace 1.6

- Pipewire support (thanks Sebastian Parborg!)
- AAC container (ADTS stream).
- Update to C++17.
- Improvements for PulseAudio backend.
- Many (bug) fixes.

Detailed list of changes:

70b18a5 Port fix by Weizhen Huang from Blender.
ecaa71c CoreAudio: closing issue fixed from Apple for newer MacOS versions.
0035101 Port Blender changes to upstream.
dd419af Blender bug fix #129162: High idle CPU usage with PulseAudio in Linux
9220ab5 Set C++ version python plugin bulid to 17.
9db9578 Add AAC container You could already use Matroska container with AAC codec, but if someone wants raw .aac file ("ADTS stream"), there was no container option to pick.
d3b7471 Fix whitespace
d1f1704 Fix rendering audio to Matroska container
5aabc89 Pipewire support  (#43)
f5e8ccc Audaspace: Update PulseAudio sync functions to be more accurate (#42)
f4611c0 Porting ffmpeg compatibility back from Blender.
6afeab2 Update to C++17.
81b0d76 PulseAudio: try to play as much as possible of buffered data on playback stop.
426dab5 Fix Sound.filter a argument default not a sequence
d701d0b loadRight documented as duplicate of loadLeft
4326b24 Fix for building python module without fftw.
901f14e Bugfix for MacOS from Blender.
ee59832 Fix a typo
27bc641 Update AUTHORS.
689d645 Windows: Use COM smart pointers in WASAPI plugin
5efc5c4 Update FFmpeg code to avoid direct assignation of ch_layout
56edbe4 Making the OpenCloseDevice thread safe.

Audaspace 1.5

- Performance improvements and two more quality presets for the JOS resampler.
- Bugfixes for PulseAudio.
- CoreAudio device is only opened on demand.
- FFMPEG 7 support and dropped support for FFMPEG older than 6.
- Various minor fixes and improvements.

Detailed list of changes:

3566597 FFMPEG Update
c158a27 Porting bugfix from Blender.
edb388b Bugfix for PulseAudio: buffers not cleared after pause.
6affec8 Port fix from Blender.
a99262e Load CoreAudio device on demand
ae29ce2 Adding default quality parameter also to JOSResample.
dae2044 Renaming resample quality enum values in the C API.
8c810b5 Add resampling quality parameter to various mixdown functions, and to PySound resample
1b9b7f9 Add ResampleQuality enum and APIs to control resampling quality
4bfd596 Avoid std::string copies by value
0d18fe7 JOSResampleReader performance and faster quality settings (#18)
2a300d9 Filter design python script.
5f745ff Bugfix for reading an animated property with a negative time value.
04eeb56 Fix python documentation.
631850b Update AUTHORS.
db2ff58 Improve seeking for animated sequences

Audaspace 1.4

- Support for OS specific/native audio devices/backends has been added, that is PulseAudio (Linux), WASAPI (Windows) and CoreAudio (MacOS).
- New sound effects have been added, namely Modulator and Equalizer. Thanks to Marcos Perez for contributing the Equalizer.
- File stream info: if an audio file contains multiple streams you can choose which one to process instead of taking the first one (this feature is only supported by ffmpeg, not libsndfile).
- API Change: double instead of float for time values for more precise timing control.
- There have been lots of bugfixes, which are basically the majority of all changes.
- And some other minor improvements were implemented as well.

Detailed list of changes:

d4042d9 Port changes in Blender to upstream.
b60fb45 Equalizer
ab04e84 Fixes
8f0c305 Fix build error with MSVC 17.4+ ported from Blender.
ce44342 Minor documentation update.
cdcb3f4 Migrate from distuils to setuptools for python module.
21eccef Fix FindFFTW to find the float version fftw3f.
ab15e2f Bugfix: API change in new ffmpeg version.
a097be8 Clang format file added, valid from now on.
2fc9fb7 Porting bugfix from Blender upstream.
bb655b7 Bugfix: wrong sample size computation for PulseAudio.
a150495 Bugfix: Buffer did not support buffers > 2 GB.
034645c Update for ffmpeg 5.
932739c Bugfix: WASAPI hangs.
4fcd47c WASAPI: fix bug when switching the default device while there is no playback.
a16fbd2 Python API: fix to get convolution in the python API.
27ac5c1 WASAPI: always switch to default audio device.
1b03e6c Bugfix: catch exception if file cannot be read.
369ff6e PulseAudio: remove unused underflow callback.
2d8bf3a PulseAudio: improve synchronization accuracy.
4868e14 Revert PulseAudioDevice back from ThreadedDevice to threaded mainloop.
6a04446 Adding a jack style mixing thread with a ring buffer for pulseaudio.
5d4b57b Implement RingBuffer class.
e02d3aa FFMPEG: fix seeking and duration calculation.
07b9fa0 Adding file stream functionality.
5a8ad27 Porting changes from Blender.
fa47258 Bugfix: PulseAudio writing to little data on request.
ca3edb5 PulseAudio: increase buffersize.
6d36f3e Pulseaudio: may fix crackling playback start bug.
dbeac4b WASAPI: reinitialize device when lost.
0cba4d3 Bugfix Pulseaudio: might hang.
b73dc6d Bugfix: ffmpeg 4.4 requires channels to be set.
f1ecbe0 Fixed typo.
09e4f27 Rewrite PulseAudioDevice to use ThreadedDevice.
9516924 WASAPI: refactor to simplify and use ThreadedDevice.
749c974 Add ThreadedDevice.
e68b355 Fix some locks in SoftwareDevice.
44b57af Bugfix for deadlock in WASAPIDevice.
8c4b266 CMake: fix ERROR to FATAL_ERROR in MESSAGE.
5a17338 Rename NullDevice's reported name to None.
cd138d7 PulseAudio: add dynamic loading and threading fixes.
6e0250f CoreAudio: add CoreAudioClock as synchronizer.
43aff35 Fix leakage in CoreAudioDevice.cpp
7f6f059 Remove unnecessary cmake code.
a5c1a02 Add CoreAudio device for Apple.
af96f67 Indentation fix.
eec8fd5 WASAPI: use padding also for first buffer submission.
c63bd9b WASAPI: deal with IsFormatSupported case.
079cccb Hide WITH_PULSEAUDIO when not on Linux.
67b5013 Add mingw64 cross compilation toolchain on Linux.
a7bfa58 Add WASAPI backend for Windows.
be1cb25 Allow AUD_init with nullptr to use default device.
fc68868 Compilation fix for mingw.
bb79d25 Add a PulseAudio output device.
a11f593 Bugfix for unwanted volume fading at the beginning of sounds.
8510acf Bugfix: more accurate positioning of sequences.
cb816c1 Fix API docs for python playback manager play function
d125fa2 Add callback for mixing down audio.
789832e Fix numpy import.
9a6a802 Bugfix: JOS resampling type bugfix caused integer underflow.
ece0842 Fix corrupted document in python bindings
28b2ea2 SDL 2: support more audio formats.
a39b7e3 Trying to fix Travis CI build for OS X.
c924007 Some more changes of times from flaot to double.
659afd4 Porting fixes from blender.
8e5e2e6 Fix documentation warnings.
7a6054f API: All times are now double instead of float.
452a724 Mixer sample buffer added channels twice
8ddb6c1 Docs: Cleanup Line Wrapping for python examples
a0c37b2 Docs: Use class methods for api docs
2f8b2e3 Bugfix for invalid offsets provided by ffmpeg's seeking code.
20a7a28 Bug fixes for files with more than 8 channels.
94dc527 Bugfix: Fading from full volume.
2fb9862 Fix: Missing include in FileManager.h.
afadb94 Minor CMakeLists.txt formatting fixes.
734ef03 Add sample rate parameter to silence generation.
ed50f3b Bugfix: Return correct length for modulator and superpose.
cb7a314 Adding a modulator sound effect.
101c714 Bugfix: don't add non-existing devices to the device manager.
7ad99df OpenAL: recreate device if disconnected.
a2ff4e8 Bugfix: memory leak in python API.
5fb21bb Silence some warnings.
9b38605 Some fixes backported from Blender.
40a0a34 Udpate for travis.ci.
212b4b6 Support newer ffmpeg versions.
d27746c Build option: configure whether to build versioned plugins.
19c8d9f Make fftw3 optional.
aa11968 Bugfix for building with gcc7.
10413c5 Fix for seeking with modified pitch.

Audaspace 1.3
=============

- New features:
 - linear interpolation for volume changes in the software mixer
 - dynamic Loading for JACK
- Bug fixes:
 - renamed Jack to JACK
 - C API was not working
 - filter python API parameter check
 - finding ffmpeg with pkgconfig

 Detailed list of changes:

64884a7 Windows fixes.
53ba3e6 Implemented JACK dynamic loading.
5ee0ee1 Continues last commit.
c24b384 Trying to fix travis-ci python versioning once and for all (at least for python3).
1fbf3bf Rename Jack => JACK where possible.
6e4b31f Implemented linear interpolation for volume changes in the software mixer.
817043c Fixing C API not working.
c384daf Maybe travis-ci works now.
aa7ddd7 Fix (hopefully) for previous commit.
57c5dd7 Configure MACOSX_DEPLOYMENT_TARGET for travis-ci.
7ae6ff9 Fix travis-ci python path.
552fea4 Added posibillity to use math constants on MinGW
c18ed59 Bugfix: incorrect parameter check in python API.
6f048c3 CMake: fix finding ffmpeg with pkgconfig.

Audaspace 1.2
=============

- New features:
 - sound list
 - random sounds
 - dynamic music playing
 - playback manager
 - convolution/reverbation
 - multi-threading
 - binaural audio
- API changes:
 - changing default sample rate from 44.1 to 48 kHz
- Bug fixes:
 - several standard library fixes.
- Bindings API:
 - mixdown C API refactored
- CMake/Building:
 - assuring numpy is installed
 - building the Python module on Mac OS X with CMake

 Detailed list of changes:

a6b6e70 Changing default sample rate from 44.1 to 48 kHz.
20f0164 Bugfix: CMake custom command for python module on OS X.
98679a2 Bugfix: using standard library (s)rand.
5ab4fe7 Bugfix: first step in fixing the vector of array problem.
e83f01d FFTW: trying to use complex to circumvent vector of array problem.
093ebc0 Bugfix: abs -> std::fabs.
328d7cc Bugfix: standard library include and call fixes.
f78e330 Bugfix: using correct includes.
64d7825 Behavior change: C API Mixdown
749896b Merge pull request #3 from DethonUSAL/master
6e9491c CMake: finding NumPy.

Audaspace 1.1
=============

- Bug fixes:
 - pkgconfig uses cmake configured library directory
 - FFMPEG file writing crashed, also corrected pts for encoding
 - silenced Doxygen warnings about undefined defines
- C++ API:
 - ResampleReader uses specs instead of sample rate
- Bindings API:
 - writing sounds to files
 - reading sound data, specs and length
 - resampling sounds
- CMake/Building:
 - first steps towards building for Mac
 - windows builds copy dlls automatically
- Python module:
 - using distutils instead of setuptools
 - added numpy as dependency
- Documentation:
 - added windows building and plugin documentation
 - disabled html timestamps in doxygen
 - updated sphinx template
 - build binding documentation without installing the python module

Detailed list of changes:

326a300 Documentation: windows, dll copying now done automatically.
54cac4f Windows: install dlls.
65c2d78 Bindings: Sound length and specs properties.
c38da70 Bindings API: adding resampling.
374822f Documentation: Added windows and plugin documentation.
a9dc5b9 Python module: add numpy as dependency.
c933a02 C API: implement new API based on the python API.
ac54c52 Python API: silence numpy warnings.
c9491bb Python API: checking for a positive sample rate.
4eb1fa8 Python API: reorder functions.
ec7c00b Sphinx update and fixes.
e16d979 FFMPEG: correct pts during encoding.
7ab3935 Documentation: git path fix.
28d77bb Python: use distutils directly instead of setuptools.
1f43284 Silence doxygen warning about undefined defines.
0d52458 CMake: improvements and fixes for building on Mac.
37daedf FFMPEG: bugfixes for file writing.
780ca2a ResampleReader API change
4d9863d Python API: Optimization for cached sounds' data access.
ea04fee Python API: read sound data and create sound buffers as well as getting the specs of a sound.
335b293 Python sound writing API.
36a7252 Pkgconfig: use cmake configured library directory.
5503908 Doxygen: disable html timestamps.

Initial Release of Audaspace 1.0 
================================

Audaspace has been the internal audio library of blender since blender 2.5. It is now released as a standalone library to be used in other projects as well.
