| ▼ examples | |
| ▼ include | |
| _common.h | A bunch of things that are common to many of the saf examples |
| ambi_bin.h | A binaural Ambisonic decoder for reproducing Ambisonic sound scenes over headphones |
| ambi_dec.h | A frequency-dependent Ambisonic decoder for reproducing Ambisonic sound scenes over loudspeakers |
| ambi_drc.h | A frequency-dependent Ambisonic sound scene dynamic range compressor (DRC) |
| ambi_enc.h | A basic Ambisonic encoder |
| ambi_roomsim.h | A simple shoebox room Ambisonic encoder |
| array2sh.h | Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters |
| beamformer.h | Generates beamformers/virtual microphones in arbitrary directions with several different beam patterns to choose from |
| binauraliser.h | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain |
| binauraliser_nf.h | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain, and applies optional near-field binaural filtering, as described in [1] |
| decorrelator.h | A multi-channel decorrelator |
| dirass.h | A sound-field visualiser based on the directional re-assignment of beamformer energy based on local DoA estimates [1,2] |
| matrixconv.h | A standard matrix convolver |
| multiconv.h | A multi-channel convolver |
| panner.h | A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method [1], with an optional spread control [2] |
| pitch_shifter.h | A very basic multichannel pitch shifter |
| powermap.h | A sound-field visualiser, which utilises spherical harmonic signals as input; note this code is a remnant from the work conducted in [1] |
| rotator.h | A basic spherical harmonic/ Ambisonic signals rotator, based on the recursive approach detailed in [1] |
| sldoa.h | A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA) |
| spreader.h | An arbitrary array panner (HRIRs, microphone array IRs, etc.) with coherent and incoherent spreading modes, as described in [1] |
| tvconv.h | A time-varying multi-channel convolver |
| ▼ src | |
| ► ambi_bin | |
| ambi_bin.c | A binaural Ambisonic decoder for reproducing Ambisonic sound scenes over headphones |
| ambi_bin_internal.c | A binaural Ambisonic decoder for reproducing Ambisonic sound scenes over headphones |
| ambi_bin_internal.h | A binaural Ambisonic decoder for reproducing Ambisonic sound scenes over headphones |
| ► ambi_dec | |
| ambi_dec.c | A frequency-dependent Ambisonic decoder for reproducing Ambisonic sound scenes over loudspeakers |
| ambi_dec_internal.c | A frequency-dependent Ambisonic decoder for reproducing Ambisonic sound scenes over loudspeakers |
| ambi_dec_internal.h | A frequency-dependent Ambisonic decoder for reproducing Ambisonic sound scenes over loudspeakers |
| ► ambi_drc | |
| ambi_drc.c | A frequency-dependent Ambisonic sound scene dynamic range compressor (DRC) |
| ambi_drc_internal.c | A frequency-dependent Ambisonic sound scene dynamic range compressor (DRC) |
| ambi_drc_internal.h | A frequency-dependent Ambisonic sound scene dynamic range compressor (DRC) |
| ► ambi_enc | |
| ambi_enc.c | A basic Ambisonic encoder |
| ambi_enc_internal.c | A basic Ambisonic encoder |
| ambi_enc_internal.h | A basic Ambisonic encoder |
| ► ambi_roomsim | |
| ambi_roomsim.c | A simple shoebox room Ambisonic encoder |
| ambi_roomsim_internal.c | A simple shoebox room Ambisonic encoder |
| ambi_roomsim_internal.h | A simple shoebox room Ambisonic encoder |
| ► array2sh | |
| array2sh.c | Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters |
| array2sh_internal.c | Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters |
| array2sh_internal.h | Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters |
| ► beamformer | |
| beamformer.c | Generates beamformers/virtual microphones in arbitrary directions with several different beam patterns to choose from |
| beamformer_internal.c | Generates beamformers/virtual microphones in arbitrary directions with several different beam patterns to choose from |
| beamformer_internal.h | Generates beamformers/virtual microphones in arbitrary directions with several different beam patterns to choose from |
| ► binauraliser | |
| binauraliser.c | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain |
| binauraliser_internal.c | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain |
| binauraliser_internal.h | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain |
| ► binauraliser_nf | |
| binauraliser_nf.c | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain, and applies optional near-field binaural filtering, as described in [1] |
| binauraliser_nf_internal.c | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain, and applies optional near-field binaural filtering, as described in [1] |
| binauraliser_nf_internal.h | Convolves input audio (up to 64 channels) with interpolated HRTFs in the time-frequency domain, and applies optional near-field binaural filtering, as described in [1] |
| ► decorrelator | |
| decorrelator.c | A multi-channel decorrelator |
| decorrelator_internal.c | A multi-channel decorrelator |
| decorrelator_internal.h | A multi-channel decorrelator |
| ► dirass | |
| dirass.c | A sound-field visualiser based on the directional re-assignment of beamformer energy based on local DoA estimates [1,2] |
| dirass_internal.c | A sound-field visualiser based on the directional re-assignment of beamformer energy based on local DoA estimates [1,2] |
| dirass_internal.h | A sound-field visualiser based on the directional re-assignment of beamformer energy based on local DoA estimates [1,2] |
| ► matrixconv | |
| matrixconv.c | A standard matrix convolver |
| matrixconv_internal.c | A standard matrix convolver |
| matrixconv_internal.h | A standard matrix convolver |
| ► multiconv | |
| multiconv.c | A multi-channel convolver |
| multiconv_internal.c | A multi-channel convolver |
| multiconv_internal.h | A multi-channel convolver |
| ► panner | |
| panner.c | A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method [1], with an optional spread control [2] |
| panner_internal.c | A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method [1], with an optional spread control [2] |
| panner_internal.h | A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method [1], with an optional spread control [2] |
| ► pitch_shifter | |
| pitch_shifter.c | A very basic multichannel pitch shifter |
| pitch_shifter_internal.c | A very basic multichannel pitch shifter |
| pitch_shifter_internal.h | A very basic multichannel pitch shifter |
| ► powermap | |
| powermap.c | A sound-field visualiser, which utilises spherical harmonic signals as input; note this code is a remnant from the work conducted in [1] |
| powermap_internal.c | A sound-field visualiser, which utilises spherical harmonic signals as input; note this code is a remnant from the work conducted in [1] |
| powermap_internal.h | A sound-field visualiser, which utilises spherical harmonic signals as input; note this code is a remnant from the work conducted in [1] |
| ► rotator | |
| rotator.c | A basic spherical harmonic/ Ambisonic signals rotator, based on the recursive approach detailed in [1] |
| rotator_internal.c | A basic spherical harmonic/ Ambisonic signals rotator, based on the recursive approach detailed in [1] |
| rotator_internal.h | A basic spherical harmonic/ Ambisonic signals rotator, based on the recursive approach detailed in [1] |
| ► sldoa | |
| sldoa.c | A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA) |
| sldoa_internal.c | A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA) |
| sldoa_internal.h | A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA) |
| ► spreader | |
| spreader.c | An arbitrary array panner (HRIRs, microphone array IRs, etc.) with coherent and incoherent spreading modes, as described in [1] |
| spreader_internal.c | An arbitrary array panner (HRIRs, microphone array IRs, etc.) with coherent and incoherent spreading modes, as described in [1] |
| spreader_internal.h | An arbitrary array panner (HRIRs, microphone array IRs, etc.) with coherent and incoherent spreading modes, as described in [1] |
| ► tvconv | |
| tvconv.c | A time-varying multi-channel convolver |
| tvconv_internal.c | A time-varying multi-channel convolver |
| tvconv_internal.h | A time-varying multi-channel convolver |
| ▼ extras | |
| ▼ safmex | |
| safmex.h | Main include header for safmex |
| safmex_afSTFT.c | MEX wrapper for afSTFT (see the .m file of the same name for documentation) |
| safmex_faf_IIRFilterbank.c | MEX wrapper for faf_IIRFilterbank (see the .m file of the same name for documentation) |
| safmex_generateVBAPgainTable3D.c | MEX wrapper for generateVBAPgainTable3D (see the .m file of the same name for documentation) |
| safmex_getSHcomplex.c | MEX wrapper for getSHcomplex (see the .m file of the same name for documentation) |
| safmex_getSHreal.c | MEX wrapper for getSHreal (see the .m file of the same name for documentation) |
| safmex_latticeDecorrelator.c | MEX wrapper for latticeDecorrelator (see the .m file of the same name for documentation) |
| safmex_qmf.c | MEX wrapper for qmf (see the .m file of the same name for documentation) |
| safmex_tracker3d.c | MEX wrapper for tracker3d (see the .m file of the same name for documentation) |
| ▼ framework | |
| ▼ include | |
| saf.h | Main include header for the Spatial_Audio_Framework (SAF) |
| saf_externals.h | Include header for SAF externals |
| ▼ modules | |
| ► saf_cdf4sap | |
| saf_cdf4sap.c | Public source for the Covariance Domain Framework module (SAF_CDF4SAP_MODULE) |
| saf_cdf4sap.h | Main header for the Covariance Domain Framework module (SAF_CDF4SAP_MODULE) |
| ► saf_hades | |
| saf_hades.h | Main header for the HADES module (SAF_HADES_MODULE) |
| saf_hades_analysis.c | Source file for the HADES analysis (SAF_HADES_MODULE) |
| saf_hades_analysis.h | Header for the HADES analysis (SAF_HADES_MODULE) |
| saf_hades_internal.c | Internal source for the HADES module (SAF_HADES_MODULE) |
| saf_hades_internal.h | Internal header for the HADES module (SAF_HADES_MODULE) |
| saf_hades_synthesis.c | Source file for the HADES synthesis (SAF_HADES_MODULE) |
| saf_hades_synthesis.h | Header for the HADES synthesis (SAF_HADES_MODULE) |
| ► saf_hoa | |
| saf_hoa.c | Public source for the higher-order Ambisonics module (SAF_HOA_MODULE) |
| saf_hoa.h | Main header for the higher-order Ambisonics module (SAF_HOA_MODULE) |
| saf_hoa_internal.c | Internal source for the higher-order Ambisonics module (SAF_HOA_MODULE) |
| saf_hoa_internal.h | Internal header for the higher-order Ambisonics module (SAF_HOA_MODULE) |
| ► saf_hrir | |
| saf_default_hrirs.c | Default HRIR data |
| saf_hrir.c | Public source for the HRIR/HRTF processing module (SAF_HRIR_MODULE) |
| saf_hrir.h | Main header for the HRIR/HRTF processing module (SAF_HRIR_MODULE) |
| ► saf_reverb | |
| saf_reverb.c | Public source for the reverb processing module (SAF_REVERB_MODULE) |
| saf_reverb.h | Main header for the reverb processing module (SAF_REVERB_MODULE) |
| saf_reverb_internal.c | Internal source for the reverb processing module (SAF_REVERB_MODULE) |
| saf_reverb_internal.h | Internal header for the reverb processing module (SAF_REVERB_MODULE) |
| ► saf_sh | |
| saf_sh.c | Public source for the Spherical Harmonic Transform and Spherical Array Processing module (SAF_SH_MODULE) |
| saf_sh.h | Main header for the Spherical Harmonic Transform and Spherical Array Processing module (SAF_SH_MODULE) |
| saf_sh_internal.c | Internal source for the Spherical Harmonic Transform and Spherical Array Processing module (SAF_SH_MODULE) |
| saf_sh_internal.h | Internal header for the Spherical Harmonic Transform and Spherical Array Processing module (SAF_SH_MODULE) |
| ► saf_sofa_reader | |
| saf_sofa_reader.c | Public source for the sofa reader module (SAF_SOFA_READER_MODULE) |
| saf_sofa_reader.h | Main header for the sofa reader module (SAF_SOFA_READER_MODULE) |
| ► saf_tracker | |
| saf_tracker.c | Particle filtering based 3D multi-target tracker (SAF_TRACKER_MODULE) |
| saf_tracker.h | Particle filtering based 3D multi-target tracker (SAF_TRACKER_MODULE) |
| saf_tracker_internal.c | Particle filtering based 3D multi-target tracker (SAF_TRACKER_MODULE) |
| saf_tracker_internal.h | Particle filtering based 3D multi-target tracker (SAF_TRACKER_MODULE) |
| ► saf_utilities | |
| saf_utilities.h | Main header for the utilities module (SAF_UTILITIES_MODULE) |
| saf_utility_bessel.c | A collection of routines for computing spherical and cylindrical Bessel and Hankel functions, including their derivatives |
| saf_utility_bessel.h | A collection of routines for computing spherical and cylindrical Bessel and Hankel functions, including their derivatives |
| saf_utility_complex.c | Contains wrappers for handling complex numbers across both C99-compliant compilers and Microsoft Visual Compiler (MSVC) |
| saf_utility_complex.h | Contains wrappers for handling complex numbers across both C99-compliant compilers and Microsoft Visual Compiler (MSVC) |
| saf_utility_decor.c | A collection of signal decorrelators |
| saf_utility_decor.h | A collection of signal decorrelators |
| saf_utility_dvf.c | Distance variation function filter coefficient data [1] |
| saf_utility_dvf.h | Distance variation function filter coefficient data [1] |
| saf_utility_fft.c | Wrappers for optimised discrete/fast Fourier transform (FFT) routines |
| saf_utility_fft.h | Wrappers for optimised discrete/fast Fourier transform (FFT) routines |
| saf_utility_filters.c | A collection of IIR/FIR filter and filterbank designs |
| saf_utility_filters.h | A collection of IIR/FIR filter and filterbank designs |
| saf_utility_geometry.c | A collection of computational geometry related functions |
| saf_utility_geometry.h | A collection of computational geometry related functions |
| saf_utility_latticeCoeffs.c | Lattice allpass coefficients which are useful for decorrelation |
| saf_utility_loudspeaker_presets.c | A collection of loudspeaker array directions and (nearly) uniform spherical grids |
| saf_utility_loudspeaker_presets.h | A collection of loudspeaker array directions and (nearly) uniform spherical grids |
| saf_utility_matrixConv.c | Matrix and multi-channel convolvers |
| saf_utility_matrixConv.h | Matrix and multi-channel convolvers |
| saf_utility_misc.c | A collection of miscellaneous functions |
| saf_utility_misc.h | A collection of miscellaneous functions |
| saf_utility_pitch.c | A collection of pitch shifting algorithms |
| saf_utility_pitch.h | A collection of pitch shifting algorithms |
| saf_utility_qmf.c | An implementation of the complex Quadrature Mirror Filterbank (QMF) described in [1] |
| saf_utility_qmf.h | An implementation of the complex Quadrature Mirror Filterbank (QMF) described in [1] |
| saf_utility_sensorarray_presets.c | A collection of microphone array sensor directions |
| saf_utility_sensorarray_presets.h | A collection of microphone array sensor directions |
| saf_utility_sort.c | A collection of useful sorting functions |
| saf_utility_sort.h | A collection of useful sorting functions |
| saf_utility_veclib.c | Wrappers for optimised linear algebra routines, utilising CBLAS and LAPACK, and/or SIMD intrinsics |
| saf_utility_veclib.h | Wrappers for optimised linear algebra routines, utilising CBLAS and LAPACK, and/or SIMD intrinsics |
| ► saf_vbap | |
| saf_vbap.c | Public source for the VBAP/MDAP module (SAF_VBAP_MODULE) |
| saf_vbap.h | Main header for the VBAP/MDAP module (SAF_VBAP_MODULE) |
| saf_vbap_internal.c | Internal source for the VBAP/MDAP module (SAF_VBAP_MODULE) |
| saf_vbap_internal.h | Internal header for the VBAP/MDAP module (SAF_VBAP_MODULE) |
| ▼ resources | |
| ► afSTFT | |
| afSTFT_internal.c | A modified version of afSTFTlib |
| afSTFT_internal.h | A modified version of afSTFTlib |
| afSTFT_protoFilter.h | Prototype filter used by afSTFTlib |
| afSTFTlib.c | A modified version of afSTFTlib |
| afSTFTlib.h | A modified version of afSTFTlib |
| ► convhull_3d | |
| convhull_3d.c | An implementation of the 3-D quickhull algorithm [1] |
| convhull_3d.h | An implementation of the 3-D quickhull algorithm [1] |
| ► kissFFT | |
| _kiss_fft_guts.h | KISS FFT internals, taken from: https://github.com/mborgerding/kissfft |
| kiss_fft.c | KISS FFT, taken from: https://github.com/mborgerding/kissfft |
| kiss_fft.h | The default complex <-> complex FFT |
| kiss_fftr.c | KISS real FFT, taken from: https://github.com/mborgerding/kissfft |
| kiss_fftr.h | The default real <-> half-complex FFT |
| ► md_malloc | |
| md_malloc.c | Contiguous memory allocation functions for multi-dimensional arrays |
| md_malloc.h | Contiguous memory allocation functions for multi-dimensional arrays |
| ► speex_resampler | |
| arch.h | Various architecture definitions Speex |
| os_support.h | Supported OSs for Speex resampler |
| resample.c | Main source file for the Speex resampler |
| resample_neon.h | Resampler functions (NEON version) |
| resample_sse.h | Resampler functions (SSE version) |
| speex_resampler.h | Main header file for the Speex resampler |
| speexdsp_types.h | Speex types |
| ▼ test | |
| ▼ include | |
| saf_test.h | Unit test program for the Spatial_Audio_Framework |
| timer.h | |
| unity.h | |
| unity_internals.h | |
| ▼ src | |
| saf_test.c | Unit test program for the Spatial_Audio_Framework |
| test__cdf4sap_module.c | Unit tests for the SAF cdf4sap module |
| test__examples.c | Unit tests for the SAF examples |
| test__hades_module.c | Unit tests for the SAF HADES module |
| test__hoa_module.c | Unit tests for the SAF hoa module |
| test__hrir_module.c | Unit tests for the SAF hrir module |
| test__resources.c | Unit tests for the SAF third-party resources |
| test__reverb_module.c | Unit tests for the SAF reverb module |
| test__sh_module.c | Unit tests for the SAF sh module |
| test__sofa_reader_module.c | Unit tests for the SAF sofa reader module |
| test__tracker_module.c | Unit tests for the SAF tracker module |
| test__utilities_module.c | Unit tests for the SAF utilities module |
| test__vbap_module.c | Unit tests for the SAF vbap module |