34#ifndef __ROTATOR_INTERNAL_H_INCLUDED__
35#define __ROTATOR_INTERNAL_H_INCLUDED__
49#if !defined(ROTATOR_FRAME_SIZE)
50# if defined(FRAME_SIZE)
51# define ROTATOR_FRAME_SIZE ( FRAME_SIZE )
53# define ROTATOR_FRAME_SIZE ( 64 )
69typedef struct _rotator
NORM_TYPES
Available Ambisonic normalisation conventions.
CH_ORDER
Available Ambisonic channel ordering conventions.
#define MAX_NUM_SH_SIGNALS
Maximum number of spherical harmonic components/signals supported.
SH_ORDERS
Available spherical harmonic (SH) input/output order options.
A basic spherical harmonic/ Ambisonic signals rotator, based on the recursive approach detailed in [1...
M_ROT_STATUS
Available Ambisonic channel ordering conventions.
@ M_ROT_READY
M_rot is ready.
@ M_ROT_RECOMPUTE_QUATERNION
Use Quaternions to recompute M_rot.
@ M_ROT_RECOMPUTE_EULER
Use Euler angles to recompute M_rot.
#define ROTATOR_FRAME_SIZE
Framesize, in time-domain samples.
Main include header for the Spatial_Audio_Framework (SAF)
Include header for SAF externals.
Quaternion data structure.
Main struct for the rotator.
float tempFrame_fadeOut[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Temporary frame with linear interpolation (fade-out) applied.
float pitch
pitch (Euler) rotation angle, in degrees
int bFlipRoll
flag to flip the sign of the roll rotation angle
float M_rot[MAX_NUM_SH_SIGNALS][MAX_NUM_SH_SIGNALS]
Current SH rotation matrix [1].
int useRollPitchYawFlag
rotation order flag, 1: r-p-y, 0: y-p-r
M_ROT_STATUS M_rot_status
see M_ROT_STATUS
NORM_TYPES norm
Ambisonic normalisation convention (see NORM_TYPES)
float outputFrameTD_fadeIn[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Output frame of SH signals with linear interpolation (fade-in) applied.
float prev_inputFrameTD[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Previous frame of signals.
float interpolator_fadeOut[ROTATOR_FRAME_SIZE]
Linear Interpolator (fade-out)
float inputFrameTD[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Input frame of signals.
float roll
roll (Euler) rotation angle, in degrees
SH_ORDERS inputOrder
current input/output SH order
int bFlipQuaternion
1: invert quaternion, 0: no inversion
float yaw
yaw (Euler) rotation angle, in degrees
int bFlipYaw
flag to flip the sign of the yaw rotation angle
int fs
Host sampling rate, in Hz.
quaternion_data Q
Quaternion used for rotation.
CH_ORDER chOrdering
Ambisonic channel order convention (see CH_ORDER)
float prev_M_rot[MAX_NUM_SH_SIGNALS][MAX_NUM_SH_SIGNALS]
Previous SH rotation matrix [1].
float interpolator_fadeIn[ROTATOR_FRAME_SIZE]
Linear Interpolator (fade-in)
float outputFrameTD[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Output frame of SH signals.
float tempFrame[MAX_NUM_SH_SIGNALS][ROTATOR_FRAME_SIZE]
Temporary frame.
int bFlipPitch
flag to flip the sign of the pitch rotation angle