46#ifndef __SLDOA_INTERNAL_H_INCLUDED__
47#define __SLDOA_INTERNAL_H_INCLUDED__
61#if !defined(SLDOA_FRAME_SIZE)
62# if defined(FRAME_SIZE)
63# define SLDOA_FRAME_SIZE ( FRAME_SIZE )
65# define SLDOA_FRAME_SIZE ( 512 )
68#define ORDER2NUMSECTORS(L) ( L*L )
69#define HOP_SIZE ( 128 )
70#define HYBRID_BANDS ( HOP_SIZE + 5 )
71#define TIME_SLOTS ( SLDOA_FRAME_SIZE / HOP_SIZE )
72#define MAX_NUM_SECTORS ( 64 )
73#define NUM_DISP_SLOTS ( 2 )
76#if (SLDOA_FRAME_SIZE % HOP_SIZE != 0)
77# error "SLDOA_FRAME_SIZE must be an integer multiple of HOP_SIZE"
195 float_complex* secCoeffs,
#define MAX_SH_ORDER
Maximum supported Ambisonic order.
PROC_STATUS
Current status of the processing loop.
NORM_TYPES
Available Ambisonic normalisation conventions.
CH_ORDER
Available Ambisonic channel ordering conventions.
CODEC_STATUS
Current status of the codec.
#define HYBRID_BANDS
Number of frequency bands.
#define NUM_DISP_SLOTS
Number of display slots.
Main include header for the Spatial_Audio_Framework (SAF)
Include header for SAF externals.
A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA)
#define TIME_SLOTS
Processing relies on fdHop = 16.
void sldoa_setCodecStatus(void *const hSld, CODEC_STATUS newStatus)
Sets codec status (see CODEC_STATUS enum)
#define MAX_NUM_SECTORS
maximum number of sectors, TODO: expand beyond 64 (which is the max possible in the spherecovering gr...
void sldoa_initAna(void *const hSld)
Intialises the codec variables, based on current global/user parameters.
void sldoa_initTFT(void *const hSld)
Initialise the filterbank used by sldoa.
void sldoa_estimateDoA(float_complex **SHframeTF, int anaOrder, float_complex *secCoeffs, float doa[MAX_NUM_SECTORS][TIME_SLOTS][2], float energy[MAX_NUM_SECTORS][TIME_SLOTS])
Estimates the DoA using the active intensity vectors derived from spatially localised sectors,...
int FIFO_idx
FIFO buffer index.
float maxFreq
Maximum display frequency, in Hz.
int new_masterOrder
New master/maximum analysis order (current value will be replaced by this after next re-init)
float fs
Host sampling rate, in Hz.
float progressBar0_1
Current (re)initialisation progress, between [0..1].
PROC_STATUS procStatus
see PROC_STATUS
float ** inFIFO
FIFO buffer.
void * hSTFT
afSTFT handle
CODEC_STATUS codecStatus
see CODEC_STATUS
float minFreq
Minimum display frequency, in Hz.
float ** grid_Y_dipoles_norm
SH basis.
char * progressBarText
Current (re)initialisation step, string.
NORM_TYPES norm
Ambisonic normalisation convention (see NORM_TYPES)
float_complex *** SHframeTF
time-frequency domain SH input frame; HYBRID_BANDS x MAX_NUM_SH_SIGNALS x TIME_SLOTS
float ** grid_dirs_deg
Grid directions, in degrees.
float ** SHframeTD
time-domain SH input frame; MAX_NUM_SH_SIGNALS x SLDOA_FRAME_SIZE
float avg_ms
Temporal averaging, in ms.
CH_ORDER chOrdering
Ambisonic channel order convention (see CH_ORDER)
int masterOrder
Current master/maximum analysis order.
int nGrid
Number of grid directions.
int current_disp_idx
Current display slot.