diff --git a/lib_ex3d/.DS_Store b/lib_ex3d/.DS_Store new file mode 100644 index 0000000..b706780 Binary files /dev/null and b/lib_ex3d/.DS_Store differ diff --git a/lib_ex3d/Makefile b/lib_ex3d/Makefile new file mode 100644 index 0000000..8b74c9a --- /dev/null +++ b/lib_ex3d/Makefile @@ -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 diff --git a/lib_ex3d/lib_ex3d/.DS_Store b/lib_ex3d/lib_ex3d/.DS_Store new file mode 100644 index 0000000..749b1e1 Binary files /dev/null and b/lib_ex3d/lib_ex3d/.DS_Store differ diff --git a/lib_ex3d/lib_ex3d/api/.DS_Store b/lib_ex3d/lib_ex3d/api/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/lib_ex3d/lib_ex3d/api/.DS_Store differ diff --git a/lib_ex3d/lib_ex3d/api/DSAudioDef.h b/lib_ex3d/lib_ex3d/api/DSAudioDef.h new file mode 100644 index 0000000..9abff52 --- /dev/null +++ b/lib_ex3d/lib_ex3d/api/DSAudioDef.h @@ -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__ \ No newline at end of file diff --git a/lib_ex3d/lib_ex3d/api/DSBuild.h b/lib_ex3d/lib_ex3d/api/DSBuild.h new file mode 100644 index 0000000..ffd34f2 --- /dev/null +++ b/lib_ex3d/lib_ex3d/api/DSBuild.h @@ -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__ diff --git a/lib_ex3d/lib_ex3d/api/IR.h b/lib_ex3d/lib_ex3d/api/IR.h new file mode 100644 index 0000000..ef9c0a1 --- /dev/null +++ b/lib_ex3d/lib_ex3d/api/IR.h @@ -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) diff --git a/lib_ex3d/lib_ex3d/api/audio_ex3d_control.h b/lib_ex3d/lib_ex3d/api/audio_ex3d_control.h new file mode 100644 index 0000000..3e236ec --- /dev/null +++ b/lib_ex3d/lib_ex3d/api/audio_ex3d_control.h @@ -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 값 + + diff --git a/lib_ex3d/lib_ex3d/api/filter.h b/lib_ex3d/lib_ex3d/api/filter.h new file mode 100644 index 0000000..9f8ed2b --- /dev/null +++ b/lib_ex3d/lib_ex3d/api/filter.h @@ -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); diff --git a/lib_ex3d/lib_ex3d/lib/.DS_Store b/lib_ex3d/lib_ex3d/lib/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/.DS_Store differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_drama.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_drama.a new file mode 100644 index 0000000..6b8d310 Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_drama.a differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_game.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_game.a new file mode 100644 index 0000000..e2479df Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_game.a differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_movie.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_movie.a new file mode 100644 index 0000000..2e1e46c Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_movie.a differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_music.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_music.a new file mode 100644 index 0000000..e790c0c Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_music.a differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_2k.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_2k.a new file mode 100644 index 0000000..700ff6c Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_2k.a differ diff --git a/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_8k.a b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_8k.a new file mode 100644 index 0000000..c330c32 Binary files /dev/null and b/lib_ex3d/lib_ex3d/lib/liblib_ex3d_stereo_8k.a differ