-
Notifications
You must be signed in to change notification settings - Fork 91
/
ChangeLog.txt
205 lines (169 loc) · 11.4 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
_____ _____ _____
( ____ ) ( ___ ) ( ____ )
| ( __ |/ | ( _ ) | | ( _ |/
(_____ ) | ___ | | __)
/|____) | | | | | | |
(_______) |_| |_| |_|
Major and/or breaking changes to the Spatial_Audio_Framework are listed here.
For descriptions of minor changes and bug fixes, please refer to the git log.
====================================================================================================
v1.3.2 (2nd February 2024)
- Reverted a change made to the getBinDecoder_MAGLS() function in the previous release
====================================================================================================
v1.3.1 (29th January 2024)
- Added support for up to 10th order (or 128 channels) input/output for all relevant examples
- Various bug fixes and minor optimisations all round
====================================================================================================
v1.3.0 (3rd April 2022)
- Added saf_hades module
- Added binauraliser_nf and tvconv examples
- Added saf_utility_dvf.h/.c to saf_utilities module
- All Bessel and Hankel functions now have two variants, with one having a "_ALL" suffix that
returns all orders from 0 to the specified order, and another returning only the specified order
- Added the ability to select which SOFA reader to use (libmysofa or the built-in netcdf one)
- Removed the "loadSofaFile()" function (marked as deprecated since October 2020).
Breaking changes:
All Bessel and Hankel functions to have a "_ALL" suffix, since they return all orders up to the
specified maximum order. Therefore, if you were using these functions prior to this version, then
you will also need to add this suffix to retain previous behaviour.
====================================================================================================
v1.2.4 (19th November 2021)
- Added libmysofa to the saf_sofa_reader module. The saf_sofa_open() function now uses libmysofa by
default, unless "SAF_ENABLE_NETCDF" is defined. The libmysofa interface may also be used directly
- Added zlib to framework/resources, therefore by default the saf_sofa_reader module may be enabled
without the need to link external dependencies
- The default interpolation mode for the binauraliser example is now "Triangular".
- The ambi_dec example no longer places +/-90degrees virtual loudspeakers for the 2D case, unless
the selected decoding mode is "AllRAD".
- Some optimisations for saf_tracker3d
Breaking changes:
Since saf_sofa_open() now uses libmysofa by default, netcdf is no longer a required dependency.
However, if you would like to revert to the previous behaviour (using netcd rather than using
libmysofa), then you can use the following pre-processing definition: SAF_ENABLE_NETCDF
====================================================================================================
v1.2.3 (20th August 2021)
- Bug fix in invertLsMtx2D() and invertLsMtx3D()
- Added install-safipp.bat script for building a custom Intel IPP dll for SAF for Windows
====================================================================================================
v1.2.2 (19th August 2021)
- General documentation improvements, and also switched to a more modern doxygen theme
- More Intel IPP functions are favoured and called if SAF_USE_INTEL_IPP is defined
- Added a solo/mute feature for the ambi_enc and binauraliser examples
- Some more minor optimisations
====================================================================================================
v1.2.1 (2nd July 2021)
- Added (optional) AVX and AVX-512 support, when using: SAF_ENABLE_SIMD
- Added (optional) FFTW support for saf_utility_fft, via the new flag: SAF_USE_FFTW
- If Intel IPP is enabled (SAF_USE_INTEL_IPP), then the IPP resampler is employed, instead of the
included SPEEX resampler, when calling resampleHRIRs()
Breaking changes:
The install-safipp.sh script now defaults to the new oneAPI install paths. However, an arbitrary
install path (e.g. the old one) may also now be specified as an input argument.
====================================================================================================
v1.2.0 (26th June 2021)
- All lapack-related saf_utility_veclib functions now include an option to pre-allocate the run-
time memory
- All saf_utility_veclib vector-vector operations, when using Apple Accelerate as the chosen
performance library, now call the appropriate optimised routines. The Intel MKL vector-vector
operations have been switched to the "mode overiding" variants, which allows some accuracy to be
traded for faster computations
- Added some SIMD (SSE) optimised functions, which may be enabled with "SAF_ENABLE_SIMD"
- A number of other minor and some significant optimisations throughout the framework
- Improved doxygen documentation for the examples
- Added resampleHRIRs() function to saf_hrir module, which employs the SPEEX algorithm.
Breaking changes:
Since the lapack-related saf_utility_veclib now allow a pre-allocated object to be passed to them,
the first input argument should either be set to "NULL", (in which case they revert to how they were
previously), or you can pass the pre-allocated object, (in which case no run-time malloc calls are
made).
The SAF_PRINT_VERSION_LICENSE_STRING macro has been removed; use the SAF_LICENSE_STRING instead.
====================================================================================================
v1.1.7 (5th June 2021)
- saf_utility_fft now uses vDSP's DFT implementation, rather than the scrict 2^x FFT
implementation, when the performance library is set to SAF_USE_APPLE_ACCELERATE
- Added the ability to select either the LP64 or ILP64 version of Intel MKL as the performance
library (the install script has been updated accordingly)
- Added support for building N-dimensional convexhulls and Delaunay meshes to saf_utility_geometry
- Added support for dynamically allocating 4d, 5d, and 6d arrays to md_malloc
- The examples that previously required the saf_sofa_reader module to be enabled in order to build
them, now no longer require it (instead they use only the default HRIR data)
- tracker_3d can now optionally return the tracked target variances
- Added saf_print_warning, saf_print_error, and saf_assert macros to saf_utilities.h
Breaking changes:
Due to the newly added ability to select between the LP64 and ILP64 variants of Intel MKL, the old
flag "SAF_USE_INTEL_MKL" (which was always LP64), should be replaced by "SAF_USE_INTEL_MKL_LP64" or
"SAF_USE_INTEL_MKL_ILP64". If you were linking your project with the "saf_mkl_custom" library, then
you will also need to create a new saf_mkl_custom_lp64, or saf_mkl_custom_ilp64 library using the
updated scripts/install-safmkl.sh/.bat script.
To avoid conflicts between non-define guarded "MIN" and "MAX" macros, they have now been changed to
"SAF_MIN" and "SAF_MAX", respectively, throughout the framework.
Removed saf_utility_error.h/.c files. Its functionality has been replaced by the cleaner/simpler
saf_print_warning, saf_print_error, and saf_assert macros.
====================================================================================================
v1.1.6 (21st April 2021)
- Added a "spreader" example which demonstrates coherent and incoherent source spreading (default
is binaural)
- Added truncationEQ to saf_hoa module
- Added Quaternion support to saf_utility_geometry.h/.c
- Improvements to the image-source simulator in saf_reverb module, and the ambi_room_sim example
- Improvements to the lattice decorrelator in saf_utility_decor.h/.c
- A number of bug fixes and improvements all round.
====================================================================================================
v1.1.5 (22nd October 2020)
- Bug fix in the ACN/FuMa conversion.
- Some minor Doxygen improvements.
- Linked repository with zenodo.org to generate DOI for it.
====================================================================================================
v1.1.4 (9th October 2020)
- Doxygen-Documentation is now generated via a github-action and hosted here:
https://leomccormack.github.io/Spatial_Audio_Framework/
- Added an improved SOFA reader, saf_sofa_open(), which fully conforms to the SOFA 1.0 FIR standard
- Added extras/matlab, which includes scripts to generate the default HRIR database, and the
saf_sofa_open matlab equivalent.
- Added Intel IPP support to the saf_utility_fft.h/c wrapper. Enable with: "SAF_USE_INTEL_IPP".
- Further optimised the multi-channel and matrix convolvers in saf_utility_matrixConv.h/.c
- A number of bug fixes and improvements all round.
====================================================================================================
v1.1.3beta (26th August 2020)
- Added an optional saf_tracker module (GPLv2) for tracking 3-D data points (e.g., direction-of-
arrival estimates as unit vectors, Cartesian coordinates [x,y,z] etc.).
- A number of improvements to the image-source simulator in the saf_reverb module.
- Added CMake support for the safmex wrappers.
====================================================================================================
v1.1.2 (7th August 2020)
- Decoupled SAF from its external dependencies
- Added a extras/safmex folder which contains Matlab MEX wrappers; currently for the: afSTFT, QMF,
IIR filterbank, VBAP gain tables, and getSHreal/complex SAF functions
- General bug fixes and improvements all round
Breaking changes:
Due to the decoupling of SAF from its external dependencies, no longer will you be able to use SAF's
dependencies within your own project by default; i.e. when including SAF via #include "saf.h", you
will no longer also inherit the cblas/lapack functions etc. Instead, these external dependencies are
included only internally within SAF by default. However, if you would like to retain access to these
external dependencies within your own project, then you may now optionally include them by adding:
#include "saf_externals.h" along with #include "saf.h".
====================================================================================================
v1.1.1 (21st July 2020)
- Reworked the afSTFT interface, and optimised its internals
- Added several more utility functions to saf_utilities, and added a resampler (based on
libsamplerate) to resources
- Added more unit tests
- General bug fixes and improvements all round
Breaking changes:
Due to the afSTFT interface rework, existing code that uses afSTFT will need to be modified. The
main difference is that complexVector has been replaced with the native "float_complex" data type.
It also no longer requires the input audio to be subdivided into chunks of "hopsize", as this is
now done internally. Users must now also specify if they want the 3-D frequency-domain data
permuted as: bands x channels x time, or time x channels x bands. The required changes should be
quite self-explanatory, however, one may also refer to the examples (e.g. ambi_bin), which have been
updated to use this new interface.
====================================================================================================
v1.1.0 (4th July 2020)
- Added comprehensive CMake support
- Documentation improvements
- Added more unit tests
- Added saf_utility_geometry.h/c (convexhull, spherical Delaunay + Voronoi functions etc.)
- General bug fixes and improvements all round
====================================================================================================
v1.0.0 (26th May 2020)
- First official release!