SAF
Loading...
Searching...
No Matches
saf_hoa.h File Reference

Main header for the higher-order Ambisonics module (SAF_HOA_MODULE) More...

Go to the source code of this file.

Enumerations

enum  LOUDSPEAKER_AMBI_DECODER_METHODS {
  LOUDSPEAKER_DECODER_DEFAULT , LOUDSPEAKER_DECODER_SAD , LOUDSPEAKER_DECODER_MMD , LOUDSPEAKER_DECODER_EPAD ,
  LOUDSPEAKER_DECODER_ALLRAD
}
 Ambisonic decoding options for loudspeaker playback. More...
 
enum  BINAURAL_AMBI_DECODER_METHODS {
  BINAURAL_DECODER_DEFAULT , BINAURAL_DECODER_LS , BINAURAL_DECODER_LSDIFFEQ , BINAURAL_DECODER_SPR ,
  BINAURAL_DECODER_TA , BINAURAL_DECODER_MAGLS
}
 Ambisonic decoding options for binaural/headphone playback. More...
 
enum  HOA_CH_ORDER { HOA_CH_ORDER_ACN , HOA_CH_ORDER_FUMA }
 Available Ambisonic channel ordering conventions. More...
 
enum  HOA_NORM { HOA_NORM_N3D , HOA_NORM_SN3D , HOA_NORM_FUMA }
 Available Ambisonic normalisation conventions. More...
 

Functions

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.
 
void convertHOANormConvention (float *insig, int order, int signalLength, HOA_NORM inConvention, HOA_NORM outConvention)
 Converts an Ambisonic signal from one normalisation convention to another.
 
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.
 
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 energy in the given look-direction.
 
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 [1].
 
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 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, for a given HRTF set.
 
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.
 
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, as described in [1].
 

Detailed Description

Main header for the higher-order Ambisonics module (SAF_HOA_MODULE)

A collection of Ambisonics related functions. Many of which are derived from the MATLAB library found in [1].

See also
[1] https://github.com/polarch/Higher-Order-Ambisonics Copyright (c) 2015, Archontis Politis, BSD-3-Clause License
Author
Leo McCormack
Date
19.03.2018
License
ISC

Definition in file saf_hoa.h.