SAF
|
Header for the HADES synthesis (SAF_HADES_MODULE) More...
#include "saf_hades_analysis.h"
Go to the source code of this file.
Data Structures | |
struct | hades_binaural_config |
Binaural configuration struct. More... | |
Typedefs | |
typedef struct _hades_synthesis_data * | hades_synthesis_handle |
Handle for the hades synthesis data. | |
typedef struct _hades_radial_editor_data * | hades_radial_editor_handle |
Handle for the hades radial editor data. | |
Enumerations | |
enum | HADES_BEAMFORMER_TYPE { HADES_BEAMFORMER_NONE , HADES_BEAMFORMER_FILTER_AND_SUM , HADES_BEAMFORMER_BMVDR } |
Beamforming options for hades_synthesis. More... | |
enum | HADES_HRTF_INTERP_OPTIONS { HADES_HRTF_INTERP_NEAREST , HADES_HRTF_INTERP_TRIANGULAR } |
HRTF interpolation options for hades_synthesis. More... | |
Functions | |
void | hades_radial_editor_create (hades_radial_editor_handle *const phREd, hades_analysis_handle const hAna) |
Creates and returns a handle to an instance of a hades radial editor object, which allows for direction-dependent (360degree) manipulation of gains. | |
void | hades_radial_editor_destroy (hades_radial_editor_handle *const phREd) |
Destroys an instance of a hades radial editor object. | |
void | hades_radial_editor_apply (hades_radial_editor_handle const hREd, hades_param_container_handle const hPCon, float dirGain_dB[360]) |
Applies the radial (360 degree) parameter editing. | |
void | hades_synthesis_create (hades_synthesis_handle *const phSyn, hades_analysis_handle const hAna, HADES_BEAMFORMER_TYPE beamOption, int enableCM, int refIndices[2], hades_binaural_config *binConfig, HADES_HRTF_INTERP_OPTIONS interpOption) |
Creates and returns a handle to an instance of a hades synthesis object. | |
void | hades_synthesis_destroy (hades_synthesis_handle *const phSyn) |
Destroys an instance of hades synthesis. | |
void | hades_synthesis_reset (hades_synthesis_handle const hSyn) |
Flushes run-time buffers with zeros. | |
void | hades_synthesis_apply (hades_synthesis_handle const hSyn, hades_param_container_handle const hPCon, hades_signal_container_handle const hSCon, int nChannels, int blocksize, float **output) |
Performs hades synthesis. | |
float * | hades_synthesis_getEqPtr (hades_synthesis_handle const hSyn, int *nBands) |
Returns a pointer to the eq vector, which can be changed at run-time. | |
float * | hades_synthesis_getStreamBalancePtr (hades_synthesis_handle const hSyn, int *nBands) |
Returns a pointer to the stream balance vector [0..2], which can be changed at run-time. | |
float * | hades_synthesis_getSynthesisAveragingCoeffPtr (hades_synthesis_handle const hSyn) |
Returns a pointer to the synthesis averaging coefficient scalar [0..1], which can be changed at run-time. | |
int | hades_synthesis_getProcDelay (hades_synthesis_handle const hSyn) |
Returns the synthesiser processing delay, in samples. | |
Header for the HADES synthesis (SAF_HADES_MODULE)
The framework for binaural rendering of Hearing-Assistive/Augmented-reality Devices (HADES) is described further in [1].
Definition in file saf_hades_synthesis.h.
typedef struct _hades_radial_editor_data* hades_radial_editor_handle |
Handle for the hades radial editor data.
Definition at line 53 of file saf_hades_synthesis.h.
typedef struct _hades_synthesis_data* hades_synthesis_handle |
Handle for the hades synthesis data.
Definition at line 50 of file saf_hades_synthesis.h.
Beamforming options for hades_synthesis.
Definition at line 71 of file saf_hades_synthesis.h.
HRTF interpolation options for hades_synthesis.
Enumerator | |
---|---|
HADES_HRTF_INTERP_NEAREST | Quantise to nearest measurement. |
HADES_HRTF_INTERP_TRIANGULAR | Triangular interpolation. |
Definition at line 79 of file saf_hades_synthesis.h.
void hades_radial_editor_apply | ( | hades_radial_editor_handle const | hREd, |
hades_param_container_handle const | hPCon, | ||
float | dirGain_dB[360] ) |
Applies the radial (360 degree) parameter editing.
[in] | hREd | hades radial editor handle |
[in] | hPCon | hades parameter container handle |
[in] | dirGain_dB | Extra directional gains for the direct stream, in dB |
Definition at line 77 of file saf_hades_synthesis.c.
void hades_radial_editor_create | ( | hades_radial_editor_handle *const | phREd, |
hades_analysis_handle const | hAna ) |
Creates and returns a handle to an instance of a hades radial editor object, which allows for direction-dependent (360degree) manipulation of gains.
[in] | phREd | (&) address of hades radial editor handle |
[in] | hAna | hades analysis handle |
Definition at line 47 of file saf_hades_synthesis.c.
void hades_radial_editor_destroy | ( | hades_radial_editor_handle *const | phREd | ) |
Destroys an instance of a hades radial editor object.
[in] | phREd | (&) address of hades radial editor handle |
Definition at line 63 of file saf_hades_synthesis.c.
void hades_synthesis_apply | ( | hades_synthesis_handle const | hSyn, |
hades_param_container_handle const | hPCon, | ||
hades_signal_container_handle const | hSCon, | ||
int | nChannels, | ||
int | blocksize, | ||
float ** | output ) |
Performs hades synthesis.
[in] | hSyn | hades synthesis handle |
[in] | hPCon | hades parameter container handle |
[in] | hSCon | hades signal container handle |
[in] | nChannels | Number of channels in output buffer |
[in] | blocksize | Number of samples in output buffer |
[out] | output | Output buffer; nChannels x blocksize |
Definition at line 308 of file saf_hades_synthesis.c.
void hades_synthesis_create | ( | hades_synthesis_handle *const | phSyn, |
hades_analysis_handle const | hAna, | ||
HADES_BEAMFORMER_TYPE | beamOption, | ||
int | enableCM, | ||
int | refIndices[2], | ||
hades_binaural_config * | binConfig, | ||
HADES_HRTF_INTERP_OPTIONS | interpOption ) |
Creates and returns a handle to an instance of a hades synthesis object.
[in] | phSyn | (&) address of hades synthesis handle |
[in] | hAna | hades analysis handle |
[in] | beamOption | see HADES_BEAMFORMER_TYPE |
[in] | enableCM | 0: disabled, 1: enable covariance matching |
[in] | binConfig | Binaural configuration |
[in] | interpOption | see HADES_HRTF_INTERP_OPTIONS |
Definition at line 106 of file saf_hades_synthesis.c.
void hades_synthesis_destroy | ( | hades_synthesis_handle *const | phSyn | ) |
Destroys an instance of hades synthesis.
[in] | phSyn | (&) address of hades synthesis handle |
Definition at line 234 of file saf_hades_synthesis.c.
float * hades_synthesis_getEqPtr | ( | hades_synthesis_handle const | hSyn, |
int * | nBands ) |
Returns a pointer to the eq vector, which can be changed at run-time.
[in] | hSyn | hades synthesis handle |
[out] | nBands | (&) Number of bands (set to NULL if not needed) |
Definition at line 499 of file saf_hades_synthesis.c.
int hades_synthesis_getProcDelay | ( | hades_synthesis_handle const | hSyn | ) |
Returns the synthesiser processing delay, in samples.
Definition at line 546 of file saf_hades_synthesis.c.
float * hades_synthesis_getStreamBalancePtr | ( | hades_synthesis_handle const | hSyn, |
int * | nBands ) |
Returns a pointer to the stream balance vector [0..2], which can be changed at run-time.
[in] | hSyn | hades synthesis handle |
[out] | nBands | (&) Number of bands (set to NULL if not needed) |
Definition at line 517 of file saf_hades_synthesis.c.
float * hades_synthesis_getSynthesisAveragingCoeffPtr | ( | hades_synthesis_handle const | hSyn | ) |
Returns a pointer to the synthesis averaging coefficient scalar [0..1], which can be changed at run-time.
[in] | hSyn | hades synthesis handle |
Definition at line 535 of file saf_hades_synthesis.c.
void hades_synthesis_reset | ( | hades_synthesis_handle const | hSyn | ) |
Flushes run-time buffers with zeros.
Call this ONCE before calling hades_synthesis_apply()
[in] | hSyn | hades synthesis handle |
Definition at line 290 of file saf_hades_synthesis.c.