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.
