A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method, with an optional spread control.
A frequency-dependent 3D panner based on the Vector-base Amplitude Panning (VBAP) method, with an optional spread control
#ifndef __PANNER_H_INCLUDED__
#define __PANNER_H_INCLUDED__
#ifdef __cplusplus
extern "C" {
#endif
#define PANNER_SPREAD_MIN_VALUE ( 0.0f )
#define PANNER_SPREAD_MAX_VALUE ( 90.0f )
int samplerate);
const float *const * inputs,
float* const* outputs,
int nInputs,
int nOutputs,
int nSamples);
#ifdef __cplusplus
}
#endif
#endif
A bunch of things that are common to many of the saf examples.
CODEC_STATUS
Current status of the codec.
void panner_setNumSources(void *const hPan, int new_nSources)
Sets the number of inputs/sources to pan.
void panner_setLoudspeakerElev_deg(void *const hPan, int index, float newElev_deg)
Sets the elevation of a specific loudspeaker index, in DEGREES.
float panner_getSourceAzi_deg(void *const hPan, int index)
Returns the input/source azimuth for a given index, in DEGREES.
int panner_getMaxNumSources(void)
Returns the maximum number of inputs/sources permitted by panner.
int panner_getNumLoudspeakers(void *const hPan)
Returns the number of loudspeakers in the current layout.
void panner_setFlipRoll(void *const hPan, int newState)
Sets a flag as to whether to "flip" the sign of the current 'roll' angle (0: do not flip sign,...
float panner_getLoudspeakerAzi_deg(void *const hPan, int index)
Returns the loudspeaker azimuth for a given index, in DEGREES.
float panner_getProgressBar0_1(void *const hPan)
(Optional) Returns current intialisation/processing progress, between 0..1
int panner_getDAWsamplerate(void *const hPan)
Returns the DAW/Host sample rate.
void panner_create(void **const phPan)
Creates an instance of the panner.
float panner_getDTT(void *const hPan)
Returns the room coefficient value 0..1.
void panner_setSpread(void *const hPan, float newValue)
Sets the degree of spread, in DEGREES.
float panner_getYaw(void *const hPan)
Returns the 'yaw' rotation angle, in DEGREES.
void panner_setSourceAzi_deg(void *const hPan, int index, float newAzi_deg)
Sets the azimuth of a specific input/source index, in DEGREES.
void panner_process(void *const hPan, const float *const *inputs, float *const *outputs, int nInputs, int nOutputs, int nSamples)
Pans the input signals/sources to the loudspeaker channels using VBAP [1], and optional spreading [2]...
void panner_setFlipYaw(void *const hPan, int newState)
Sets a flag as to whether to "flip" the sign of the current 'yaw' angle (0: do not flip sign,...
void panner_setLoudspeakerAzi_deg(void *const hPan, int index, float newAzi_deg)
Sets the azimuth of a specific loudspeaker index, in DEGREES.
int panner_getFlipYaw(void *const hPan)
Returns a flag as to whether to "flip" the sign of the current 'yaw' angle (0: do not flip sign,...
float panner_getRoll(void *const hPan)
Returns the 'roll' rotation angle, in DEGREES.
void panner_init(void *const hPan, int samplerate)
Initialises an instance of panner with default settings.
void panner_setOutputConfigPreset(void *const hPan, int newPresetID)
Sets a preset for the output configuration (see LOUDSPEAKER_ARRAY_PRESETS enum)
void panner_setRoll(void *const hPan, float newRoll)
Sets the 'roll' rotation angle, in DEGREES.
int panner_getFlipRoll(void *const hPan)
Returns a flag as to whether to "flip" the sign of the current 'roll' angle (0: do not flip sign,...
float panner_getLoudspeakerElev_deg(void *const hPan, int index)
Returns the loudspeaker elevation for a given index, in DEGREES.
int panner_getFrameSize(void)
Returns the processing framesize (i.e., number of samples processed with every _process() call )
void panner_setDTT(void *const hPan, float newValue)
Sets the room coefficient value 0..1 [1]; 0: normal room, 0.5: dry listening room,...
void panner_destroy(void **const phPan)
Destroys an instance of the panner.
float panner_getPitch(void *const hPan)
Returns the 'pitch' rotation angle, in DEGREES.
void panner_setInputConfigPreset(void *const hPan, int newPresetID)
Sets a preset for the input configuration (see SOURCE_CONFIG_PRESETS enum)
CODEC_STATUS panner_getCodecStatus(void *const hPan)
Returns current codec status (see CODEC_STATUS enum)
int panner_getProcessingDelay(void)
Returns the processing delay in samples (may be used for delay compensation features)
void panner_getProgressBarText(void *const hPan, char *text)
(Optional) Returns current intialisation/processing progress text
int panner_getFlipPitch(void *const hPan)
Returns a flag as to whether to "flip" the sign of the current 'pitch' angle (0: do not flip sign,...
int panner_getMaxNumLoudspeakers(void)
Returns the maximum number of loudspeakers permitted.
void panner_setPitch(void *const hPan, float newPitch)
Sets the 'pitch' rotation angle, in DEGREES.
float panner_getSourceElev_deg(void *const hPan, int index)
Returns the input/source elevation for a given index, in DEGREES.
void panner_initCodec(void *const hPan)
Intialises the codec variables, based on current global/user parameters.
void panner_setSourceElev_deg(void *const hPan, int index, float newElev_deg)
Sets the elevation of a specific input/source index, in DEGREES.
void panner_refreshSettings(void *const hPan)
Sets all intialisation flags to 1; re-initialising all settings/variables as panner is currently conf...
float panner_getSpread(void *const hPan)
Returns the spread value, in DEGREES.
void panner_setNumLoudspeakers(void *const hPan, int new_nLoudspeakers)
Sets the number of loudspeakers to pan to.
int panner_getNumSources(void *const hPan)
Returns the number of inputs/sources in the current layout.
void panner_setYaw(void *const hPan, float newYaw)
Sets the 'yaw' rotation angle, in DEGREES.
void panner_setFlipPitch(void *const hPan, int newState)
Sets a flag as to whether to "flip" the sign of the current 'pitch' angle (0: do not flip sign,...