This commit is contained in:
Steven Dan
2025-12-11 10:13:58 +08:00
parent d8b2974133
commit b3a2e22dc9
16 changed files with 920 additions and 0 deletions

BIN
lib_ex3d/.DS_Store vendored Normal file

Binary file not shown.

10
lib_ex3d/Makefile Normal file
View File

@@ -0,0 +1,10 @@
# This variable should contain a space separated list of all
# the directories containing buildable applications (usually
# prefixed with the app_ prefix)
#
# If the variable is set to "all" then all directories that start with app_
# are built.
BUILD_SUBDIRS = all
XMOS_MAKE_PATH ?= ..
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.toplevel

BIN
lib_ex3d/lib_ex3d/.DS_Store vendored Normal file

Binary file not shown.

BIN
lib_ex3d/lib_ex3d/api/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,52 @@
#ifndef __DSAUDIODEF_H__
#define __DSAUDIODEF_H__
#include "DSmath.h"
#define INT20_MIN -524288
#define INT20_MAX 524287
#define INT24_MIN -8388608
#define INT24_MAX 8388607
#define DSLIMITER_ATAN_THRESH 0.95f
#define DSLIMITER_ATAN_RANGE (1.0f - DSLIMITER_ATAN_THRESH)
#define DSLIMITER_ATAN(_x_) (DSLIMITER_ATAN_THRESH < _x_ ? \
(DS_ATAN((_x_ - DSLIMITER_ATAN_THRESH)/DSLIMITER_ATAN_RANGE)/M_PI_2)*DSLIMITER_ATAN_RANGE + DSLIMITER_ATAN_THRESH : \
(_x_ < -DSLIMITER_ATAN_THRESH ? -((DS_ATAN(-(_x_ + DSLIMITER_ATAN_THRESH)/DSLIMITER_ATAN_RANGE)/M_PI_2)*DSLIMITER_ATAN_RANGE + DSLIMITER_ATAN_THRESH) : _x_))
#define DS_DOUBLE_TO_PCM16_ATAN(_pi16PCM_, _pdbOffset_) *_pi16PCM_++ = (INT16)(DSLIMITER_ATAN( *_pdbOffset_ ) * INT16_MAX); \
_pdbOffset_++
#define DS_DOUBLE_TO_PCM24_ATAN(_i32V_, _p24PCM_, _pdbOffset_) _i32V_ = (INT32)(DSLIMITER_ATAN( *_pdbOffset_ ) * INT24_MAX); \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_; _pdbOffset_++
#define DS_DOUBLE_TO_FLOAT_ATAN(_pfAData_, _pdbOffset_) *_pfAData_++ = (float)DSLIMITER_ATAN( *_pdbOffset_ ); \
_pdbOffset_++
#define DS_DOUBLE_TO_PCM16_CLIPPING(_pi16PCM_, _pdbOffset_) *_pi16PCM_++ = (INT16)((*_pdbOffset_ > 1.0 ? 1.0 : (*_pdbOffset_ < -1.0 ? -1.0 : *_pdbOffset_)) * INT16_MAX); \
_pdbOffset_++
#define DS_DOUBLE_TO_PCM24_CLIPPING(_i32V_, _p24PCM_, _pdbOffset_) _i32V_ = (INT32)((*_pdbOffset_ > 1.0 ? 1.0 : (*_pdbOffset_ < -1.0 ? -1.0 : *_pdbOffset_)) * INT24_MAX); \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_; _pdbOffset_++
#define DS_DOUBLE_TO_FLOAT_CLIPPING(_pfAData_, _pdbOffset_) *_pfAData_++ = (float)(*_pdbOffset_ > 1.0 ? 1.0 : (*_pdbOffset_ < -1.0 ? -1.0 : *_pdbOffset_)); \
_pdbOffset_++
#define DS_DOUBLE_TO_PCM16(_pi16PCM_, _pdbOffset_) *_pi16PCM_++ = (INT16)(*_pdbOffset_++ * INT16_MAX)
#define DS_DOUBLE_TO_PCM24(_i32V_, _p24PCM_, _pdbOffset_) _i32V_ = (INT32)(*_pdbOffset_++ * INT24_MAX); \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_; _i32V_ >>= 8; \
*_p24PCM_++ = (BYTE)_i32V_
#define DS_DOUBLE_TO_FLOAT(_pfAData_, _pdbOffset_) *_pfAData_++ = (float)*_pdbOffset_++
#define DS_PCM16_TO_DOUBLE(_pdbOffset_, _pi16PCM_) *_pdbOffset_++ = *_pi16PCM_++ / (float)INT16_MAX
#endif // __DSAUDIODEF_H__

View File

@@ -0,0 +1,51 @@
#ifndef __DS_BUILD_H__
#define __DS_BUILD_H__
//#define _DEBUG
#define XMOS_SDK
#define USE_OS // Thread, Event, Lock 등의 외부 OS API 사용
#define USE_FIXED_POINT // 내부 연산 고정소수점 사용
#define USE_PLANAR_ARRAY_INPUT // Audio Input Data Planar 배열 사용
#if (NUM_USB_CHAN_OUT > 5)
#define USE_LFE_UNIT // LFE 채널 Convolution 사용
#endif
// #define USE_UPMIX // Upmix 기능 사용
#if (NUM_USB_CHAN_OUT <= 8)
#if (NUM_USB_CHAN_OUT == 2)
#define USE_ONLY_STEREO
#endif
#define USE_ONLY_HORIZONTALITY // 수평 방향(Vertical 90도)만 사용
#elif (NUM_USB_CHAN_OUT == 12)
#define USE_7_1_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
#elif (NUM_USB_CHAN_OUT == 16)
#define USE_7_1_4_4_IR_ARRARY // top: 1st~4th (45/135/225/315 ==> TFL/TFR/TBL/TBR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (45/135/225/315 ==> BFL/BFR/BBL/BBR)
#elif (NUM_USB_CHAN_OUT == 24)
#define USE_7_1_8_8_IR_ARRARY // top: 1st~4th (0/45/90/135/180/225/270/315 ==> TFL/TFR/TFC/TBC/TBL/TBR/TSL/TSR)
// middle: 5th~12th (0/45/90/135/180/225/270/315 ==> FL/FR/C/LFE/BL/BR/SL/SR)
// bottom: 13th~16th (0/45/90/135/180/225/270/315 ==> BFL/BFR/BFC/BBC/BBL/BBR/BSL/BSR)
#endif
#if NUM_USB_CHAN_OUT == 8
//#define SHOOTING_GAME
#define DSP_WORKER_COUNT 4//3 //the count of workers
#define DSP_WORKER_DATA_CH_COUNT 2 //3 //the number of channels each one handles
#define DSP_WORKER_FILTER_PER_DATA_CH 2 //the number of channels each one handles
// #define IR_AUDIO
// #define IR_VIDEO
#else
#define IR_PS5
#define DSP_WORKER_COUNT 4 //the count of workers
#define DSP_WORKER_DATA_CH_COUNT 1 //the number of channels each one handles
#define DSP_WORKER_FILTER_PER_DATA_CH 2 //the number of channels each one handles
#endif
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif //__DS_BUILD_H__

720
lib_ex3d/lib_ex3d/api/IR.h Normal file
View File

@@ -0,0 +1,720 @@
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_DRAMA_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_DRAMA_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_DRAMA_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_DRAMA_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_DRAMA_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_DRAMA_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_DRAMA_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_GAME_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_GAME_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_GAME_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_GAME_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_GAME_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_GAME_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_GAME_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MOVIE_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MOVIE_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MOVIE_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MOVIE_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MOVIE_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_MOVIE_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MOVIE_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_lfe_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_lfe_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_lfe_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_lfe_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_lfe_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_lfe_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_lfe_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_lfe_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_lfe_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_lfe_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_lfe_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_lfe_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_lfe_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_lfe_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h000_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h000_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h000_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h000_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h000_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h000_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h000_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h000_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h000_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h000_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h000_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h000_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h000_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h045_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h045_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h045_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h045_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h045_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h045_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h045_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h045_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h045_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h045_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h045_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h045_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h045_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h090_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h090_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h090_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h090_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h135_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h135_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h135_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h135_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h135_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h135_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h135_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h135_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h135_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h135_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h135_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h135_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h135_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h225_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h225_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h225_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h225_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h225_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h225_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h225_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h225_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h225_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h225_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h225_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h225_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h225_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h270_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h270_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h270_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h270_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h315_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h315_left_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h315_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h315_left_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h315_left_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h315_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_71_MUSIC_v090h315_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_71_MUSIC_v090h315_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_71_MUSIC_v090h315_right_DATA_BUFFER_ELEMENTS (2520)
#define SPATIAL_71_MUSIC_v090h315_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_71_MUSIC_v090h315_right_BLOCK_COUNT (313)
#define SPATIAL_71_MUSIC_v090h315_right_FRAME_ADVANCE (8)
#define SPATIAL_71_MUSIC_v090h315_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_2K_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_2K_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_2K_v090h090_left_DATA_BUFFER_ELEMENTS (2064)
#define SPATIAL_STEREO_2K_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_2K_v090h090_left_BLOCK_COUNT (256)
#define SPATIAL_STEREO_2K_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_2K_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_2K_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_2K_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_2K_v090h090_right_DATA_BUFFER_ELEMENTS (2064)
#define SPATIAL_STEREO_2K_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_2K_v090h090_right_BLOCK_COUNT (256)
#define SPATIAL_STEREO_2K_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_2K_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_2K_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_2K_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_2K_v090h270_left_DATA_BUFFER_ELEMENTS (2064)
#define SPATIAL_STEREO_2K_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_2K_v090h270_left_BLOCK_COUNT (256)
#define SPATIAL_STEREO_2K_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_2K_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_2K_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_2K_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_2K_v090h270_right_DATA_BUFFER_ELEMENTS (2064)
#define SPATIAL_STEREO_2K_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_2K_v090h270_right_BLOCK_COUNT (256)
#define SPATIAL_STEREO_2K_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_2K_v090h270_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_8K_v090h090_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_8K_v090h090_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_8K_v090h090_left_DATA_BUFFER_ELEMENTS (8208)
#define SPATIAL_STEREO_8K_v090h090_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_8K_v090h090_left_BLOCK_COUNT (1024)
#define SPATIAL_STEREO_8K_v090h090_left_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_8K_v090h090_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_8K_v090h090_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_8K_v090h090_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_8K_v090h090_right_DATA_BUFFER_ELEMENTS (8208)
#define SPATIAL_STEREO_8K_v090h090_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_8K_v090h090_right_BLOCK_COUNT (1024)
#define SPATIAL_STEREO_8K_v090h090_right_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_8K_v090h090_right_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_8K_v090h270_left;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_8K_v090h270_left_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_8K_v090h270_left_DATA_BUFFER_ELEMENTS (8208)
#define SPATIAL_STEREO_8K_v090h270_left_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_8K_v090h270_left_BLOCK_COUNT (1024)
#define SPATIAL_STEREO_8K_v090h270_left_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_8K_v090h270_left_FRAME_OVERLAP (0)
EXTERN td_block_fir_filter_t td_block_fir_filter_SPATIAL_STEREO_8K_v090h270_right;
//This is the count of int32_t words to allocate for one data channel.
//i.e. int32_t channel_data[SPATIAL_STEREO_8K_v090h270_right_DATA_BUFFER_ELEMENTS] = { 0 };
#define SPATIAL_STEREO_8K_v090h270_right_DATA_BUFFER_ELEMENTS (8208)
#define SPATIAL_STEREO_8K_v090h270_right_TD_BLOCK_LENGTH (8)
#define SPATIAL_STEREO_8K_v090h270_right_BLOCK_COUNT (1024)
#define SPATIAL_STEREO_8K_v090h270_right_FRAME_ADVANCE (8)
#define SPATIAL_STEREO_8K_v090h270_right_FRAME_OVERLAP (0)

View File

@@ -0,0 +1,72 @@
#if defined(EXTERN)
#undef EXTERN
#endif
#if defined(_AUDIO_EX3D_CONTROL_C_)
#define EXTERN
#else
#define EXTERN extern
#endif
#define NO_ERR 0
#ifndef TRUE
#define TRUE 1
#endif
#ifndef true
#define true 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef false
#define false 0
#endif
#ifndef DS_BOOL
typedef int DS_BOOL;
#endif
#define EX3D_SET_CH_NUM NUM_USB_CHAN_OUT
#define EX3D_SF_NUM 1
EXTERN void audio_ex3d_load_key(chanend_t c);
EXTERN int audio_ex3d_activate_key(chanend_t c);
EXTERN int audio_ex3d_init(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN int audio_ex3d_conv_init(uint32_t dwTileNum, uint32_t dwChannels);
EXTERN int audio_ex3d_deinit(void);
EXTERN int audio_ex3d_change_parameter(uint32_t dwChannels, uint32_t dwSampleSize, uint32_t dwSRHz, uint32_t dwAudioDataSize);
EXTERN void audio_ex3d_set_onoff(DS_BOOL onoff);
EXTERN void audio_ex3d_set_sf(uint32_t SF_Idx);
#if 1
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle);
#else
EXTERN void audio_ex3d_set_angle(uint32_t dwCh1Angle, uint32_t dwCh2Angle,
uint32_t dwCh3Angle, uint32_t dwCh4Angle,
uint32_t dwCh5Angle, uint32_t dwCh6Angle,
uint32_t dwCh7Angle, uint32_t dwCh8Angle);
#endif
EXTERN void audio_ex3d_set_upmix(DS_BOOL onoff);
EXTERN void audio_ex3d_upmix_toggle(void);
EXTERN void audio_ex3d_toggle(void);
EXTERN void audio_ex3d_task(void);
EXTERN uint32_t EX3D_HAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수평각
EXTERN uint32_t EX3D_VAngle[EX3D_SET_CH_NUM]; // EX3D Channel 수직각
EXTERN DS_BOOL EX3D_Mute[EX3D_SET_CH_NUM]; // EX3D Channel Mute
EXTERN uint8_t bEX3D_Open; // EX3D Open 유무 저장
EXTERN uint8_t bEX3D_On; // EX3D On 유무 저장
EXTERN int32_t Ex3dOnGain; // EX3D On Gain 값
EXTERN int32_t Ex3dOffGain; // EX3D Off Gain 값
EXTERN int32_t Ex3dLfeGain; // EX3D Lfe Gain 값
EXTERN uint8_t bEX3D_Upmix; // EX3D Upmix 유무 저장
EXTERN float Ex3dLimiterThreshold; // EX3D Limiter threshold 값
EXTERN int32_t Ex3dLimiterAttackTime; // EX3D Limiter Attack Time 값
EXTERN int32_t Ex3dLimiterReleaseTime; // EX3D Limiter Release Time 값

View File

@@ -0,0 +1,15 @@
#if defined(EXTERN)
#undef EXTERN
#endif
#if defined(_AUDIO_EX3D_CONTROL_C_)
#define EXTERN
#else
#define EXTERN extern
#endif
#include "dsp/td_block_fir.h"
#include "../api/IR.h"
void user_buffer_init(int ch_cnt, int block_cnt, unsigned frame_index, unsigned sampsFromUsbToAudio[], unsigned sampsFromAudioToUsb[], int32_t *ubm_egress, int32_t *ubm_ingress);
void filter_init(td_block_fir_filter_t *filter);

BIN
lib_ex3d/lib_ex3d/lib/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.