34#ifndef __SAF_HOA_H_INCLUDED__
35#define __SAF_HOA_H_INCLUDED__
448 float_complex* hrtfs,
449 float* hrtf_dirs_deg,
460 float_complex* decMtx);
485 float_complex* hrtfs,
486 float* hrtf_dirs_deg,
521 float_complex* hrtfs,
522 float* hrtf_dirs_deg,
528 float_complex* decMtx);
void applyDiffCovMatching(float_complex *hrtfs, float *hrtf_dirs_deg, int N_dirs, int N_bands, int order, float *weights, float_complex *decMtx)
Imposes a diffuse-field covariance constraint on a given binaural decoding matrix,...
void getBinauralAmbiDecoderMtx(float_complex *hrtfs, float *hrtf_dirs_deg, int N_dirs, int N_bands, BINAURAL_AMBI_DECODER_METHODS method, int order, float *freqVector, float *itd_s, float *weights, int enableDiffCM, int enableMaxrE, float_complex *decMtx)
Computes binaural ambisonic decoding matrices (one per frequency) at a specific order,...
void convertHOAChannelConvention(float *insig, int order, int signalLength, HOA_CH_ORDER inConvention, HOA_CH_ORDER outConvention)
Converts an Ambisonic signal from one channel ordering convention to another.
HOA_CH_ORDER
Available Ambisonic channel ordering conventions.
void getLoudspeakerDecoderMtx(float *ls_dirs_deg, int nLS, LOUDSPEAKER_AMBI_DECODER_METHODS method, int order, int enableMaxrE, float *decMtx)
Computes an ambisonic decoding matrix of a specific order, for a given loudspeaker layout.
void getBinauralAmbiDecoderFilters(float_complex *hrtfs, float *hrtf_dirs_deg, int N_dirs, int fftSize, float fs, BINAURAL_AMBI_DECODER_METHODS method, int order, float *itd_s, float *weights, int enableDiffCM, int enableMaxrE, float *decFilters)
Computes binaural ambisonic decoding filters for a given HRTF set.
LOUDSPEAKER_AMBI_DECODER_METHODS
Ambisonic decoding options for loudspeaker playback.
void getRSH(int order, float *dirs_deg, int nDirs, float *Y)
Computes real-valued spherical harmonics [1] for each given direction on the unit sphere.
HOA_NORM
Available Ambisonic normalisation conventions.
void convertHOANormConvention(float *insig, int order, int signalLength, HOA_NORM inConvention, HOA_NORM outConvention)
Converts an Ambisonic signal from one normalisation convention to another.
BINAURAL_AMBI_DECODER_METHODS
Ambisonic decoding options for binaural/headphone playback.
void getRSH_recur(int order, float *dirs_deg, int nDirs, float *Y)
Computes real-valued spherical harmonics [1] for each given direction on the unit sphere.
void getMaxREweights(int order, int diagMtxFlag, float *a_n)
Computes the weights required to manipulate a hyper-cardioid beam-pattern, such that it has maximum e...
void truncationEQ(float *w_n, int order_truncated, int order_target, double *kr, int nBands, float softThreshold, float *gain)
Filter that equalises the high frequency roll-off due to SH truncation and tapering; as described in ...
@ HOA_CH_ORDER_FUMA
Furse-Malham (FuMa) convention, often used by older recordings.
@ HOA_CH_ORDER_ACN
Ambisonic Channel numbering (ACN) convention, which is employed by all spherical harmonic related fun...
@ LOUDSPEAKER_DECODER_ALLRAD
All-Round Ambisonic Decoder (AllRAD): SAD decoding to a t-design, panned for the target loudspeaker d...
@ LOUDSPEAKER_DECODER_SAD
Sampling Ambisonic Decoder (SAD): transpose of the loudspeaker spherical harmonic matrix,...
@ LOUDSPEAKER_DECODER_DEFAULT
The default decoder is LOUDSPEAKER_DECODER_SAD.
@ LOUDSPEAKER_DECODER_EPAD
Energy-Preserving Ambisonic Decoder (EPAD) [1].
@ LOUDSPEAKER_DECODER_MMD
Mode-Matching Decoder (MMD): pseudo-inverse of the loudspeaker spherical harmonic matrix.
@ HOA_NORM_FUMA
Furse-Malham (FuMa) convention.
@ HOA_NORM_SN3D
Schmidt semi-normalisation (SN3D) convention, as used by the AmbiX standard.
@ HOA_NORM_N3D
Orthonormalised (N3D) convention, which is the default convention used by SAF.
@ BINAURAL_DECODER_MAGLS
Magnitude least-squares decoder [3].
@ BINAURAL_DECODER_LS
Least-squares (LS) decoder.
@ BINAURAL_DECODER_SPR
Spatial resampling decoder (on the same lines as the virtual loudspeaker approach) [4].
@ BINAURAL_DECODER_DEFAULT
The default decoder is BINAURAL_DECODER_LS.
@ BINAURAL_DECODER_TA
Time-alignment decoder [2].
@ BINAURAL_DECODER_LSDIFFEQ
Least-squares (LS) decoder with diffuse-field spectral equalisation [1].
Contains wrappers for handling complex numbers across both C99-compliant compilers and Microsoft Visu...