44#ifndef __PANNER_INTERNAL_H_INCLUDED__
45#define __PANNER_INTERNAL_H_INCLUDED__
59#define FORCE_3D_LAYOUT
60#if !defined(PANNER_FRAME_SIZE)
61# if defined(FRAME_SIZE)
62# define PANNER_FRAME_SIZE ( FRAME_SIZE )
64# define PANNER_FRAME_SIZE ( 128 )
67#define HOP_SIZE ( 128 )
68#define HYBRID_BANDS ( HOP_SIZE + 5 )
69#define TIME_SLOTS ( PANNER_FRAME_SIZE / HOP_SIZE )
72#if (PANNER_FRAME_SIZE % HOP_SIZE != 0)
73# error "PANNER_FRAME_SIZE must be an integer multiple of HOP_SIZE"
LOUDSPEAKER_ARRAY_PRESETS
Available loudspeaker array presets.
#define MAX_NUM_INPUTS
Maximum number of input channels supported.
#define MAX_NUM_OUTPUTS
Maximum number of output channels supported.
SOURCE_CONFIG_PRESETS
Available source configurations presets to use for encoding/panning.
PROC_STATUS
Current status of the processing loop.
CODEC_STATUS
Current status of the codec.
#define HYBRID_BANDS
Number of frequency bands.
A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method [1],...
void panner_initGainTables(void *const hPan)
Intialises the VBAP gain table used for panning.
void panner_setCodecStatus(void *const hPan, CODEC_STATUS newStatus)
Sets codec status (see CODEC_STATUS enum)
void panner_loadLoudspeakerPreset(LOUDSPEAKER_ARRAY_PRESETS preset, float dirs_deg[MAX_NUM_INPUTS][2], int *newNCH, int *nDims)
Loads source/loudspeaker directions from preset.
void panner_initTFT(void *const hPan)
Initialise the filterbank used by panner.
void panner_loadSourcePreset(SOURCE_CONFIG_PRESETS preset, float dirs_deg[MAX_NUM_INPUTS][2], int *newNCH, int *nDims)
Loads source directions from preset.
Main include header for the Spatial_Audio_Framework (SAF)
Include header for SAF externals.
Main structure for panner.
float roll
roll (Euler) rotation angle, in degrees
float DTT
Room coefficient [3].
float ** inputFrameTD
Input signals, in the time-domain; MAX_NUM_INPUTS x PANNER_FRAME_SIZE.
int N_vbap_gtable
Number of directions in the VBAP gain table.
CODEC_STATUS codecStatus
see CODEC_STATUS
int nSources
Current number of inputs/sources.
float_complex *** inputframeTF
Input signals, in the time-frequency domain; HYBRID_BANDS x MAX_NUM_INPUTS x TIME_SLOTS.
int nTriangles
Number of loudspeaker triangles.
float_complex *** outputframeTF
Output signals, in the time-frequency domain; HYBRID_BANDS x MAX_NUM_OUTPUTS x TIME_SLOTS.
int recalc_M_rotFLAG
1: recalculate the rotation matrix, 0: do not
int output_nDims
Dimensionality of the loudspeaker array, 2: 2-D, 3: 3-D.
int new_nSources
New number of inputs/sources.
int nLoudpkrs
Current number of loudspeakers in the array.
float spread_deg
Source spread/MDAP [2].
float yaw
yaw (Euler) rotation angle, in degrees
char * progressBarText
Current (re)initialisation step, string.
float * vbap_gtable
Current VBAP gains; FLAT: N_hrtf_vbap_gtable x nLoudpkrs.
PROC_STATUS procStatus
see PROC_STATUS
float ** outputFrameTD
Output signals, in the time-domain; MAX_NUM_OUTPUTS x PANNER_FRAME_SIZE.
float pitch
pitch (Euler) rotation angle, in degrees
int bFlipRoll
flag to flip the sign of the roll rotation angle
int new_nLoudpkrs
New number of loudspeakers in the array.
void * hSTFT
afSTFT handle
int fs
Host sampling rate.
float progressBar0_1
Current (re)initialisation progress, between [0..1].
int reInitGainTables
1: reinitialise the VBAP gain table, 0: do not
int bFlipPitch
flag to flip the sign of the pitch rotation angle
int bFlipYaw
flag to flip the sign of the yaw rotation angle