Spatial Audio Framework Versions Save

A cross-platform framework for developing spatial audio algorithms and software in C/C++

v1.3.2

4 months ago

v1.3.2

  • Improved CMake build CI, including support for Windows (thank you @chris-hld)
  • Reverted a change made to the magLS implementation in saf_hoa. It now behaves the same as it did in v1.3.0.

v1.3.1

4 months ago

v1.3.1

  • 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

2 years ago

v1.3.0

  • Added saf_hades module (thank you @jananifernandez)
  • Added binauraliser_nf and tvconv examples (thank you @mtmccrea, @rapolasd, @nmkahlen, and Thomas McKenzie)
  • 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

2 years ago

v1.2.4

  • 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

2 years ago

v1.2.3

  • 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

2 years ago

v1.2.2

  • 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

2 years ago

v1.2.1

  • 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

2 years ago

v1.2.0

  • 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 overriding" variants, which allows some accuracy to be traded for faster computations
  • Added some SIMD (SSE) optimised function alternatives, 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 resampler.

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

3 years ago

v1.1.7

  • 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, thenyou 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/simplersaf_print_warning, saf_print_error, and saf_assert macros.

v1.1.6

3 years ago

v1.1.6

  • 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.