SAF
Loading...
Searching...
No Matches
spreader_data Struct Reference

Main structure for spreader. More...

#include <spreader_internal.h>

Data Fields

float ** inputFrameTD
 time-domain input frame; MAX_NUM_INPUTS x SPREADER_FRAME_SIZE
 
float ** outframeTD
 time-domain output frame; MAX_NUM_OUTPUTS x SPREADER_FRAME_SIZE
 
float_complex *** inputframeTF
 time-frequency domain input frame; HYBRID_BANDS x MAX_NUM_INPUTS x TIME_SLOTS
 
float_complex *** protoframeTF
 time-frequency domain prototype frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS
 
float_complex *** decorframeTF
 time-frequency domain decorrelated frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS
 
float_complex *** spreadframeTF
 time-frequency domain spread frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS
 
float_complex *** outputframeTF
 time-frequency domain output frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS
 
int fs
 Host sampling rate, in Hz.
 
float freqVector [HYBRID_BANDS]
 Frequency vector (filterbank centre frequencies)
 
void * hSTFT
 afSTFT handle
 
int Q
 Number of channels in the target playback setup; for example: 2 for binaural.
 
int nGrid
 Number of directions/measurements/HRTFs etc.
 
int h_len
 Length of time-domain filters, in samples.
 
float h_fs
 Sample rate used to measure the filters.
 
float * h_grid
 FLAT: nGrid x Q x h_len.
 
float_complex * H_grid
 FLAT: HYBRID_BANDS x Q x nGrid.
 
float_complex ** HHH [HYBRID_BANDS]
 Pre-computed array outer-products; HYBRID_BANDS x nGrid x FLAT: (Q x Q)
 
float * grid_dirs_deg
 Grid directions, in degrees; FLAT: nGrid x 2.
 
float * grid_dirs_xyz
 Grid directions as unit-length Cartesian coordinates; FLAT: nGrid x 3.
 
float * weights
 Integration weights; nGrid x 1.
 
void * hDecor [SPREADER_MAX_NUM_SOURCES]
 handles for decorrelators
 
float * angles
 angles; nGrid x 1
 
float_complex ** Cproto [SPREADER_MAX_NUM_SOURCES]
 Current prototype covariance matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float_complex ** Cy [SPREADER_MAX_NUM_SOURCES]
 Target covariance matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float_complex ** prev_M [SPREADER_MAX_NUM_SOURCES]
 previous mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float ** prev_Mr [SPREADER_MAX_NUM_SOURCES]
 previous residual mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float_complex ** new_M
 mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float ** new_Mr
 residual mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)
 
float_complex * interp_M
 Interpolated mixing matrix; FLAT:(Q x Q)
 
float * interp_Mr
 Interpolated residual mixing matrix; FLAT:(Q x Q)
 
float_complex * interp_Mr_cmplx
 Complex variant of interp_Mr.
 
float interpolatorFadeIn [TIME_SLOTS]
 Linear Interpolator - Fade in.
 
float interpolatorFadeOut [TIME_SLOTS]
 Linear Interpolator - Fade out.
 
int * dirActive [SPREADER_MAX_NUM_SOURCES]
 1: IR direction currently used for spreading, 0: not
 
void * hCdf
 covariance domain framework handle
 
void * hCdf_res
 covariance domain framework handle for the residual
 
float * Qmix
 Identity; FLAT: Q x Q.
 
float_complex * Qmix_cmplx
 Identity; FLAT: Q x Q.
 
float * Cr
 Residual covariance; FLAT: Q x Q.
 
float_complex * Cr_cmplx
 Residual covariance; FLAT: Q x Q.
 
float_complex * _tmpFrame
 
float_complex * _H_tmp
 
float_complex * _Cy
 
float_complex * _E_dir
 
float_complex * _V
 
float_complex * _D
 
float_complex * _Cproto
 
CODEC_STATUS codecStatus
 see CODEC_STATUS
 
float progressBar0_1
 Current (re)initialisation progress, between [0..1].
 
char * progressBarText
 Current (re)initialisation step, string.
 
PROC_STATUS procStatus
 see PROC_STATUS
 
int new_nSources
 New number of input signals (current value will be replaced by this after next re-init)
 
SPREADER_PROC_MODES new_procMode
 See SPREADER_PROC_MODES (current value will be replaced by this after next re-init)
 
SPREADER_PROC_MODES procMode
 See SPREADER_PROC_MODES.
 
char * sofa_filepath
 SOFA file path.
 
int nSources
 Current number of input signals.
 
float src_spread [SPREADER_MAX_NUM_SOURCES]
 Source spreading, in degrees.
 
float src_dirs_deg [SPREADER_MAX_NUM_SOURCES][2]
 Source directions, in degrees.
 
int useDefaultHRIRsFLAG
 1: use default HRIRs in database, 0: use the measurements from SOFA file (can be anything, not just HRTFs)
 
float covAvgCoeff
 Covariance matrix averaging coefficient, [0..1].
 

Detailed Description

Main structure for spreader.

Contains variables for audio buffers, afSTFT, HRTFs, internal variables, flags, user parameters

Definition at line 72 of file spreader_internal.h.

Field Documentation

◆ _Cproto

float_complex* spreader_data::_Cproto

Definition at line 125 of file spreader_internal.h.

◆ _Cy

float_complex * spreader_data::_Cy

Definition at line 123 of file spreader_internal.h.

◆ _D

float_complex * spreader_data::_D

Definition at line 124 of file spreader_internal.h.

◆ _E_dir

float_complex* spreader_data::_E_dir

Definition at line 124 of file spreader_internal.h.

◆ _H_tmp

float_complex * spreader_data::_H_tmp

Definition at line 123 of file spreader_internal.h.

◆ _tmpFrame

float_complex* spreader_data::_tmpFrame

Definition at line 123 of file spreader_internal.h.

◆ _V

float_complex * spreader_data::_V

Definition at line 124 of file spreader_internal.h.

◆ angles

float* spreader_data::angles

angles; nGrid x 1

Definition at line 98 of file spreader_internal.h.

◆ codecStatus

CODEC_STATUS spreader_data::codecStatus

see CODEC_STATUS

Definition at line 128 of file spreader_internal.h.

◆ covAvgCoeff

float spreader_data::covAvgCoeff

Covariance matrix averaging coefficient, [0..1].

Definition at line 142 of file spreader_internal.h.

◆ Cproto

float_complex** spreader_data::Cproto[SPREADER_MAX_NUM_SOURCES]

Current prototype covariance matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 99 of file spreader_internal.h.

◆ Cr

float* spreader_data::Cr

Residual covariance; FLAT: Q x Q.

Definition at line 119 of file spreader_internal.h.

◆ Cr_cmplx

float_complex* spreader_data::Cr_cmplx

Residual covariance; FLAT: Q x Q.

Definition at line 120 of file spreader_internal.h.

◆ Cy

float_complex** spreader_data::Cy[SPREADER_MAX_NUM_SOURCES]

Target covariance matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 100 of file spreader_internal.h.

◆ decorframeTF

float_complex*** spreader_data::decorframeTF

time-frequency domain decorrelated frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS

Definition at line 79 of file spreader_internal.h.

◆ dirActive

int* spreader_data::dirActive[SPREADER_MAX_NUM_SOURCES]

1: IR direction currently used for spreading, 0: not

Definition at line 112 of file spreader_internal.h.

◆ freqVector

float spreader_data::freqVector[HYBRID_BANDS]

Frequency vector (filterbank centre frequencies)

Definition at line 83 of file spreader_internal.h.

◆ fs

int spreader_data::fs

Host sampling rate, in Hz.

Definition at line 82 of file spreader_internal.h.

◆ grid_dirs_deg

float* spreader_data::grid_dirs_deg

Grid directions, in degrees; FLAT: nGrid x 2.

Definition at line 94 of file spreader_internal.h.

◆ grid_dirs_xyz

float* spreader_data::grid_dirs_xyz

Grid directions as unit-length Cartesian coordinates; FLAT: nGrid x 3.

Definition at line 95 of file spreader_internal.h.

◆ h_fs

float spreader_data::h_fs

Sample rate used to measure the filters.

Definition at line 90 of file spreader_internal.h.

◆ H_grid

float_complex* spreader_data::H_grid

FLAT: HYBRID_BANDS x Q x nGrid.

Definition at line 92 of file spreader_internal.h.

◆ h_grid

float* spreader_data::h_grid

FLAT: nGrid x Q x h_len.

Definition at line 91 of file spreader_internal.h.

◆ h_len

int spreader_data::h_len

Length of time-domain filters, in samples.

Definition at line 89 of file spreader_internal.h.

◆ hCdf

void* spreader_data::hCdf

covariance domain framework handle

Definition at line 115 of file spreader_internal.h.

◆ hCdf_res

void* spreader_data::hCdf_res

covariance domain framework handle for the residual

Definition at line 116 of file spreader_internal.h.

◆ hDecor

void* spreader_data::hDecor[SPREADER_MAX_NUM_SOURCES]

handles for decorrelators

Definition at line 97 of file spreader_internal.h.

◆ HHH

float_complex** spreader_data::HHH[HYBRID_BANDS]

Pre-computed array outer-products; HYBRID_BANDS x nGrid x FLAT: (Q x Q)

Definition at line 93 of file spreader_internal.h.

◆ hSTFT

void* spreader_data::hSTFT

afSTFT handle

Definition at line 84 of file spreader_internal.h.

◆ inputFrameTD

float** spreader_data::inputFrameTD

time-domain input frame; MAX_NUM_INPUTS x SPREADER_FRAME_SIZE

Definition at line 75 of file spreader_internal.h.

◆ inputframeTF

float_complex*** spreader_data::inputframeTF

time-frequency domain input frame; HYBRID_BANDS x MAX_NUM_INPUTS x TIME_SLOTS

Definition at line 77 of file spreader_internal.h.

◆ interp_M

float_complex* spreader_data::interp_M

Interpolated mixing matrix; FLAT:(Q x Q)

Definition at line 105 of file spreader_internal.h.

◆ interp_Mr

float* spreader_data::interp_Mr

Interpolated residual mixing matrix; FLAT:(Q x Q)

Definition at line 106 of file spreader_internal.h.

◆ interp_Mr_cmplx

float_complex* spreader_data::interp_Mr_cmplx

Complex variant of interp_Mr.

Definition at line 107 of file spreader_internal.h.

◆ interpolatorFadeIn

float spreader_data::interpolatorFadeIn[TIME_SLOTS]

Linear Interpolator - Fade in.

Definition at line 108 of file spreader_internal.h.

◆ interpolatorFadeOut

float spreader_data::interpolatorFadeOut[TIME_SLOTS]

Linear Interpolator - Fade out.

Definition at line 109 of file spreader_internal.h.

◆ new_M

float_complex** spreader_data::new_M

mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 103 of file spreader_internal.h.

◆ new_Mr

float** spreader_data::new_Mr

residual mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 104 of file spreader_internal.h.

◆ new_nSources

int spreader_data::new_nSources

New number of input signals (current value will be replaced by this after next re-init)

Definition at line 132 of file spreader_internal.h.

◆ new_procMode

SPREADER_PROC_MODES spreader_data::new_procMode

See SPREADER_PROC_MODES (current value will be replaced by this after next re-init)

Definition at line 133 of file spreader_internal.h.

◆ nGrid

int spreader_data::nGrid

Number of directions/measurements/HRTFs etc.

Definition at line 88 of file spreader_internal.h.

◆ nSources

int spreader_data::nSources

Current number of input signals.

Definition at line 138 of file spreader_internal.h.

◆ outframeTD

float** spreader_data::outframeTD

time-domain output frame; MAX_NUM_OUTPUTS x SPREADER_FRAME_SIZE

Definition at line 76 of file spreader_internal.h.

◆ outputframeTF

float_complex*** spreader_data::outputframeTF

time-frequency domain output frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS

Definition at line 81 of file spreader_internal.h.

◆ prev_M

float_complex** spreader_data::prev_M[SPREADER_MAX_NUM_SOURCES]

previous mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 101 of file spreader_internal.h.

◆ prev_Mr

float** spreader_data::prev_Mr[SPREADER_MAX_NUM_SOURCES]

previous residual mixing matrices; HYBRID_BANDS x FLAT:(Q x Q)

Definition at line 102 of file spreader_internal.h.

◆ procMode

SPREADER_PROC_MODES spreader_data::procMode

See SPREADER_PROC_MODES.

Definition at line 136 of file spreader_internal.h.

◆ procStatus

PROC_STATUS spreader_data::procStatus

see PROC_STATUS

Definition at line 131 of file spreader_internal.h.

◆ progressBar0_1

float spreader_data::progressBar0_1

Current (re)initialisation progress, between [0..1].

Definition at line 129 of file spreader_internal.h.

◆ progressBarText

char* spreader_data::progressBarText

Current (re)initialisation step, string.

Definition at line 130 of file spreader_internal.h.

◆ protoframeTF

float_complex*** spreader_data::protoframeTF

time-frequency domain prototype frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS

Definition at line 78 of file spreader_internal.h.

◆ Q

int spreader_data::Q

Number of channels in the target playback setup; for example: 2 for binaural.

Definition at line 87 of file spreader_internal.h.

◆ Qmix

float* spreader_data::Qmix

Identity; FLAT: Q x Q.

Definition at line 117 of file spreader_internal.h.

◆ Qmix_cmplx

float_complex* spreader_data::Qmix_cmplx

Identity; FLAT: Q x Q.

Definition at line 118 of file spreader_internal.h.

◆ sofa_filepath

char* spreader_data::sofa_filepath

SOFA file path.

Definition at line 137 of file spreader_internal.h.

◆ spreadframeTF

float_complex*** spreader_data::spreadframeTF

time-frequency domain spread frame; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS

Definition at line 80 of file spreader_internal.h.

◆ src_dirs_deg

float spreader_data::src_dirs_deg[SPREADER_MAX_NUM_SOURCES][2]

Source directions, in degrees.

Definition at line 140 of file spreader_internal.h.

◆ src_spread

float spreader_data::src_spread[SPREADER_MAX_NUM_SOURCES]

Source spreading, in degrees.

Definition at line 139 of file spreader_internal.h.

◆ useDefaultHRIRsFLAG

int spreader_data::useDefaultHRIRsFLAG

1: use default HRIRs in database, 0: use the measurements from SOFA file (can be anything, not just HRTFs)

Definition at line 141 of file spreader_internal.h.

◆ weights

float* spreader_data::weights

Integration weights; nGrid x 1.

Definition at line 96 of file spreader_internal.h.


The documentation for this struct was generated from the following file: