diff --git a/CODEOWNERS b/CODEOWNERS index 8bd0e9648957..cc1a753efbd1 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -27,6 +27,7 @@ src/audio/kpb.c @mrajwa src/audio/mux/* @akloniex src/audio/dcblock* @cujomalainey @dgreid src/audio/crossover* @cujomalainey @dgreid +src/audio/tdfb* @singalsu # platforms src/platform/baytrail/* @xiulipan diff --git a/src/arch/xtensa/configs/baytrail_defconfig b/src/arch/xtensa/configs/baytrail_defconfig index fda748abfbc7..d1aafe8ab98f 100644 --- a/src/arch/xtensa/configs/baytrail_defconfig +++ b/src/arch/xtensa/configs/baytrail_defconfig @@ -8,5 +8,6 @@ CONFIG_COMP_IIR=n CONFIG_COMP_DCBLOCK=n CONFIG_COMP_SRC=n CONFIG_COMP_ASRC=n +CONFIG_COMP_TDFB=n CONFIG_OPTIMIZE_FOR_SIZE=y CONFIG_HAVE_AGENT=n diff --git a/src/arch/xtensa/configs/baytrail_gcc_defconfig b/src/arch/xtensa/configs/baytrail_gcc_defconfig index 98a74bac6e80..1d71c1e7e0a6 100644 --- a/src/arch/xtensa/configs/baytrail_gcc_defconfig +++ b/src/arch/xtensa/configs/baytrail_gcc_defconfig @@ -8,4 +8,5 @@ CONFIG_COMP_IIR=n CONFIG_COMP_DCBLOCK=n CONFIG_COMP_SRC=n CONFIG_COMP_ASRC=n +CONFIG_COMP_TDFB=n CONFIG_HAVE_AGENT=n diff --git a/src/arch/xtensa/configs/cherrytrail_defconfig b/src/arch/xtensa/configs/cherrytrail_defconfig index c13a426a469f..4db2949984cb 100644 --- a/src/arch/xtensa/configs/cherrytrail_defconfig +++ b/src/arch/xtensa/configs/cherrytrail_defconfig @@ -8,5 +8,6 @@ CONFIG_COMP_IIR=n CONFIG_COMP_DCBLOCK=n CONFIG_COMP_ASRC=n CONFIG_COMP_SRC=n +CONFIG_COMP_TDFB=n CONFIG_OPTIMIZE_FOR_SIZE=y CONFIG_HAVE_AGENT=n diff --git a/src/arch/xtensa/configs/cherrytrail_gcc_defconfig b/src/arch/xtensa/configs/cherrytrail_gcc_defconfig index 58c579a08f67..e6255bb01a79 100644 --- a/src/arch/xtensa/configs/cherrytrail_gcc_defconfig +++ b/src/arch/xtensa/configs/cherrytrail_gcc_defconfig @@ -8,4 +8,5 @@ CONFIG_COMP_IIR=n CONFIG_COMP_DCBLOCK=n CONFIG_COMP_SRC=n CONFIG_COMP_ASRC=n +CONFIG_COMP_TDFB=n CONFIG_HAVE_AGENT=n diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index c5de90c3a1e9..0e640f22ec35 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -27,6 +27,9 @@ if(NOT CONFIG_LIBRARY) if(CONFIG_COMP_CROSSOVER) add_subdirectory(crossover) endif() + if(CONFIG_COMP_TDFB) + add_subdirectory(tdfb) + endif() if(CONFIG_COMP_TONE) add_local_sources(sof tone.c @@ -119,16 +122,17 @@ check_optimization(fma -mfma -DOPS_FMA) check_optimization(hifi2ep -mhifi2ep -DOPS_HIFI2EP) check_optimization(hifi3 -mhifi3 -DOPS_HIFI3) -set(sof_audio_modules volume src asrc eq-fir eq-iir dcblock crossover) +set(sof_audio_modules volume src asrc eq-fir eq-iir dcblock crossover tdfb) # sources for each module set(volume_sources volume/volume.c volume/volume_generic.c) set(src_sources src/src.c src/src_generic.c) set(asrc_sources asrc/asrc.c asrc/asrc_farrow.c asrc/asrc_farrow_generic.c) -set(eq-fir_sources eq_fir/eq_fir.c eq_fir/fir.c) +set(eq-fir_sources eq_fir/eq_fir.c eq_fir/eq_fir_generic.c) set(eq-iir_sources eq_iir/eq_iir.c eq_iir/iir.c) set(dcblock_sources dcblock/dcblock.c dcblock/dcblock_generic.c) set(crossover_sources crossover/crossover.c crossover/crossover_generic.c) +set(tdfb_sources tdfb/tdfb.c tdfb/tdfb_generic.c) foreach(audio_module ${sof_audio_modules}) # first compile with no optimizations diff --git a/src/audio/Kconfig b/src/audio/Kconfig index aa255382d4ca..f3b04e893afb 100644 --- a/src/audio/Kconfig +++ b/src/audio/Kconfig @@ -62,8 +62,19 @@ endchoice endif # SRC +config MATH_FIR + bool "FIR filter library" + default n + help + This option builds FIR (Finite Impulse Response) filter library. It + is selected by components for their digital signal processing. A FIR + filter calculates a convolution of input PCM sample and a configurable + impulse response. + + config COMP_FIR bool "FIR component" + select MATH_FIR default y help Select for FIR component. FIR performance can differ between DSP @@ -289,6 +300,20 @@ endmenu # "Downsampling ratios" endif # COMP_ASRC +config COMP_TDFB + bool "TDFB component" + select MATH_FIR + default y + help + Select for time domain fixed beamformer (TDFB) component. The + beamformer component enhances microphone capture by spatial + suppression of noise and improvement of signal-to-noise ratio of + capture from beam direction. The component is essentially a generic + single rate FIR filter bank that performs microphone array + directivity enhancement when programmed with suitable configuration + for channels selection, channel filter coefficients, and output + streams mixing. + endmenu # "Audio components" menu "Data formats" diff --git a/src/audio/eq_fir/CMakeLists.txt b/src/audio/eq_fir/CMakeLists.txt index 2ca5290528ca..2d6e0b5eb834 100644 --- a/src/audio/eq_fir/CMakeLists.txt +++ b/src/audio/eq_fir/CMakeLists.txt @@ -1,3 +1,3 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof eq_fir.c fir_hifi2ep.c fir_hifi3.c fir.c) +add_local_sources(sof eq_fir.c eq_fir_generic.c eq_fir_hifi2ep.c eq_fir_hifi3.c) diff --git a/src/audio/eq_fir/eq_fir.c b/src/audio/eq_fir/eq_fir.c index fd4f7d9b9f51..8a8908dc4a40 100644 --- a/src/audio/eq_fir/eq_fir.c +++ b/src/audio/eq_fir/eq_fir.c @@ -6,9 +6,9 @@ // Liam Girdwood // Keyon Jie +#include #include #include -#include #include #include #include @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -26,23 +27,12 @@ #include #include #include +#include #include #include #include #include -#if FIR_GENERIC -#include -#endif - -#if FIR_HIFIEP -#include -#endif - -#if FIR_HIFI3 -#include -#endif - static const struct comp_driver comp_eq_fir; /* 43a90ce7-f3a5-41df-ac06-ba98651ae6a3 */ @@ -71,45 +61,26 @@ struct comp_data { * set_fir_func. */ -#if FIR_HIFI3 +#if FIR_HIFI3 || FIR_HIFIEP #if CONFIG_FORMAT_S16LE static inline void set_s16_fir(struct comp_data *cd) { - cd->eq_fir_func = eq_fir_2x_s16_hifi3; + cd->eq_fir_func = eq_fir_2x_s16; } #endif /* CONFIG_FORMAT_S16LE */ #if CONFIG_FORMAT_S24LE static inline void set_s24_fir(struct comp_data *cd) { - cd->eq_fir_func = eq_fir_2x_s24_hifi3; + cd->eq_fir_func = eq_fir_2x_s24; } #endif /* CONFIG_FORMAT_S24LE */ #if CONFIG_FORMAT_S32LE static inline void set_s32_fir(struct comp_data *cd) { - cd->eq_fir_func = eq_fir_2x_s32_hifi3; + cd->eq_fir_func = eq_fir_2x_s32; } #endif /* CONFIG_FORMAT_S32LE */ -#elif FIR_HIFIEP -#if CONFIG_FORMAT_S16LE -static inline void set_s16_fir(struct comp_data *cd) -{ - cd->eq_fir_func = eq_fir_2x_s16_hifiep; -} -#endif /* CONFIG_FORMAT_S16LE */ -#if CONFIG_FORMAT_S24LE -static inline void set_s24_fir(struct comp_data *cd) -{ - cd->eq_fir_func = eq_fir_2x_s24_hifiep; -} -#endif /* CONFIG_FORMAT_S24LE */ -#if CONFIG_FORMAT_S32LE -static inline void set_s32_fir(struct comp_data *cd) -{ - cd->eq_fir_func = eq_fir_2x_s32_hifiep; -} -#endif /* CONFIG_FORMAT_S32LE */ #else /* FIR_GENERIC */ #if CONFIG_FORMAT_S16LE @@ -196,8 +167,8 @@ static void eq_fir_free_delaylines(struct comp_data *cd) static int eq_fir_init_coef(struct sof_eq_fir_config *config, struct fir_state_32x16 *fir, int nch) { - struct sof_eq_fir_coef_data *lookup[SOF_EQ_FIR_MAX_RESPONSES]; - struct sof_eq_fir_coef_data *eq; + struct sof_fir_coef_data *lookup[SOF_EQ_FIR_MAX_RESPONSES]; + struct sof_fir_coef_data *eq; int16_t *assign_response; int16_t *coef_data; size_t size_sum = 0; @@ -229,9 +200,9 @@ static int eq_fir_init_coef(struct sof_eq_fir_config *config, 4); for (i = 0; i < SOF_EQ_FIR_MAX_RESPONSES; i++) { if (i < config->number_of_responses) { - eq = (struct sof_eq_fir_coef_data *)&coef_data[j]; + eq = (struct sof_fir_coef_data *)&coef_data[j]; lookup[i] = eq; - j += SOF_EQ_FIR_COEF_NHEADER + coef_data[j]; + j += SOF_FIR_COEF_NHEADER + coef_data[j]; } else { lookup[i] = NULL; } diff --git a/src/audio/eq_fir/fir.c b/src/audio/eq_fir/eq_fir_generic.c similarity index 62% rename from src/audio/eq_fir/fir.c rename to src/audio/eq_fir/eq_fir_generic.c index 449021ffd621..94110f2d7be6 100644 --- a/src/audio/eq_fir/fir.c +++ b/src/audio/eq_fir/eq_fir_generic.c @@ -6,62 +6,16 @@ // Liam Girdwood // Keyon Jie -#include +#include #if FIR_GENERIC -#include -#include -#include -#include -#include +#include +#include #include #include #include -/* - * EQ FIR algorithm code - */ - -void fir_reset(struct fir_state_32x16 *fir) -{ - fir->rwi = 0; - fir->length = 0; - fir->out_shift = 0; - fir->coef = NULL; - /* There may need to know the beginning of dynamic allocation after - * reset so omitting setting also fir->delay to NULL. - */ -} - -int fir_delay_size(struct sof_eq_fir_coef_data *config) -{ - /* Check for sane FIR length. The generic version does not - * have other constraints. - */ - if (config->length > SOF_EQ_FIR_MAX_LENGTH || config->length < 1) - return -EINVAL; - - return config->length * sizeof(int32_t); -} - -int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config) -{ - fir->rwi = 0; - fir->length = (int)config->length; - fir->taps = fir->length; /* The same for generic C version */ - fir->out_shift = (int)config->out_shift; - fir->coef = ASSUME_ALIGNED(&config->coef[0], 4); - return 0; -} - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) -{ - fir->delay = *data; - *data += fir->length; /* Point to next delay line start */ -} - #if CONFIG_FORMAT_S16LE void eq_fir_s16(struct fir_state_32x16 fir[], const struct audio_stream *source, struct audio_stream *sink, int frames, int nch) @@ -138,4 +92,4 @@ void eq_fir_s32(struct fir_state_32x16 fir[], const struct audio_stream *source, } #endif /* CONFIG_FORMAT_S32LE */ -#endif +#endif /* FIR_GENERIC */ diff --git a/src/audio/eq_fir/fir_hifi2ep.c b/src/audio/eq_fir/eq_fir_hifi2ep.c similarity index 65% rename from src/audio/eq_fir/fir_hifi2ep.c rename to src/audio/eq_fir/eq_fir_hifi2ep.c index ab6473b319c0..ac365acfd4e6 100644 --- a/src/audio/eq_fir/fir_hifi2ep.c +++ b/src/audio/eq_fir/eq_fir_hifi2ep.c @@ -4,88 +4,26 @@ // // Author: Seppo Ingalsuo -#include +#include #if FIR_HIFIEP +#include #include -#include #include -#include +#include #include #include #include #include #include -/* - * EQ FIR algorithm code - */ - -void fir_reset(struct fir_state_32x16 *fir) -{ - fir->taps = 0; - fir->length = 0; - fir->out_shift = 0; - fir->coef = NULL; - /* There may need to know the beginning of dynamic allocation after - * reset so omitting setting also fir->delay to NULL. - */ -} - -int fir_delay_size(struct sof_eq_fir_coef_data *config) -{ - /* Check FIR tap count for implementation specific constraints */ - if (config->length > SOF_EQ_FIR_MAX_LENGTH || config->length < 4) - return -EINVAL; - - if (config->length & 0x3) - return -EINVAL; - - /* The dual sample version needs one more delay entry. To preserve - * align for 64 bits need to add two. - */ - return (config->length + 2) * sizeof(int32_t); -} - -int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config) -{ - /* The length is taps plus two since the filter computes two - * samples per call. Length plus one would be minimum but the add - * must be even. The even length is needed for 64 bit loads from delay - * lines with 32 bit samples. - */ - fir->taps = (int)config->length; - fir->length = fir->taps + 2; - fir->out_shift = (int)config->out_shift; - fir->coef = (ae_p16x2s *)&config->coef[0]; - return 0; -} - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) -{ - fir->delay = (ae_p24f *) *data; - fir->delay_end = fir->delay + fir->length; - fir->rwp = (ae_p24x2f *)(fir->delay + fir->length - 1); - *data += fir->length; /* Point to next delay line start */ -} - -void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, - int *rshift) -{ - *lshift = (fir->out_shift < 0) ? -fir->out_shift : 0; - *rshift = (fir->out_shift > 0) ? fir->out_shift : 0; -} - #if CONFIG_FORMAT_S32LE /* For even frame lengths use FIR filter that processes two sequential * sample per call. */ -void eq_fir_2x_s32_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, - int frames, int nch) +void eq_fir_2x_s32(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int32_t *src = (int32_t *)source->r_ptr; @@ -124,9 +62,8 @@ void eq_fir_2x_s32_hifiep(struct fir_state_32x16 fir[], } /* FIR for any number of frames */ -void eq_fir_s32_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s32(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int32_t *src = (int32_t *)source->r_ptr; @@ -160,9 +97,8 @@ void eq_fir_s32_hifiep(struct fir_state_32x16 fir[], #endif /* CONFIG_FORMAT_S32LE */ #if CONFIG_FORMAT_S24LE -void eq_fir_2x_s24_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_2x_s24(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int32_t *src = (int32_t *)source->r_ptr; @@ -205,9 +141,8 @@ void eq_fir_2x_s24_hifiep(struct fir_state_32x16 fir[], } /* FIR for any number of frames */ -void eq_fir_s24_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s24(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int32_t *src = (int32_t *)source->r_ptr; @@ -243,9 +178,8 @@ void eq_fir_s24_hifiep(struct fir_state_32x16 fir[], #endif /* CONFIG_FORMAT_S24LE */ #if CONFIG_FORMAT_S16LE -void eq_fir_2x_s16_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_2x_s16(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int16_t *src = (int16_t *)source->r_ptr; @@ -288,9 +222,8 @@ void eq_fir_2x_s16_hifiep(struct fir_state_32x16 fir[], } /* FIR for any number of frames */ -void eq_fir_s16_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s16(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; int16_t *src = (int16_t *)source->r_ptr; @@ -325,4 +258,4 @@ void eq_fir_s16_hifiep(struct fir_state_32x16 fir[], } #endif /* CONFIG_FORMAT_S16LE */ -#endif +#endif /* FIR_HIFIEP */ diff --git a/src/audio/eq_fir/fir_hifi3.c b/src/audio/eq_fir/eq_fir_hifi3.c similarity index 75% rename from src/audio/eq_fir/fir_hifi3.c rename to src/audio/eq_fir/eq_fir_hifi3.c index 88170ea2ce5a..8f975cb7e209 100644 --- a/src/audio/eq_fir/fir_hifi3.c +++ b/src/audio/eq_fir/eq_fir_hifi3.c @@ -4,87 +4,25 @@ // // Author: Seppo Ingalsuo -#include +#include #if FIR_HIFI3 -#include -#include -#include +#include +#include +#include #include #include #include #include #include -/* - * EQ FIR algorithm code - */ - -void fir_reset(struct fir_state_32x16 *fir) -{ - fir->taps = 0; - fir->length = 0; - fir->out_shift = 0; - fir->coef = NULL; - /* There may need to know the beginning of dynamic allocation after - * reset so omitting setting also fir->delay to NULL. - */ -} - -int fir_delay_size(struct sof_eq_fir_coef_data *config) -{ - /* Check FIR tap count for implementation specific constraints */ - if (config->length > SOF_EQ_FIR_MAX_LENGTH || config->length < 4) - return -EINVAL; - - /* The optimization requires the tap count to be multiple of four */ - if (config->length & 0x3) - return -EINVAL; - - /* The dual sample version needs one more delay entry. To preserve - * align for 64 bits need to add two. - */ - return (config->length + 2) * sizeof(int32_t); -} - -int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config) -{ - /* The length is taps plus two since the filter computes two - * samples per call. Length plus one would be minimum but the add - * must be even. The even length is needed for 64 bit loads from delay - * lines with 32 bit samples. - */ - fir->taps = (int)config->length; - fir->length = fir->taps + 2; - fir->out_shift = (int)config->out_shift; - fir->coef = (ae_f16x4 *)&config->coef[0]; - return 0; -} - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) -{ - fir->delay = (ae_int32 *) *data; - fir->delay_end = fir->delay + fir->length; - fir->rwp = (ae_int32 *)(fir->delay + fir->length - 1); - *data += fir->length; /* Point to next delay line start */ -} - -void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, - int *rshift) -{ - *lshift = (fir->out_shift < 0) ? -fir->out_shift : 0; - *rshift = (fir->out_shift > 0) ? fir->out_shift : 0; -} - #if CONFIG_FORMAT_S32LE /* For even frame lengths use FIR filter that processes two sequential * sample per call. */ -void eq_fir_2x_s32_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_2x_s32(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_int32x2 d0 = 0; @@ -142,9 +80,8 @@ void eq_fir_2x_s32_hifi3(struct fir_state_32x16 fir[], } /* FIR for any number of frames */ -void eq_fir_s32_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s32(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_int32x2 in = 0; @@ -200,9 +137,8 @@ void eq_fir_s32_hifi3(struct fir_state_32x16 fir[], #endif /* CONFIG_FORMAT_S32LE */ #if CONFIG_FORMAT_S24LE -void eq_fir_2x_s24_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_2x_s24(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_int32x2 d0 = 0; @@ -265,9 +201,8 @@ void eq_fir_2x_s24_hifi3(struct fir_state_32x16 fir[], } } -void eq_fir_s24_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s24(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_int32 in; @@ -328,9 +263,8 @@ void eq_fir_s24_hifi3(struct fir_state_32x16 fir[], #endif /* CONFIG_FORMAT_S24LE */ #if CONFIG_FORMAT_S16LE -void eq_fir_2x_s16_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_2x_s16(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_int16x4 d0 = AE_ZERO16(); @@ -397,9 +331,8 @@ void eq_fir_2x_s16_hifi3(struct fir_state_32x16 fir[], } } -void eq_fir_s16_hifi3(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch) +void eq_fir_s16(struct fir_state_32x16 fir[], const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch) { struct fir_state_32x16 *f; ae_f16x4 d = AE_ZERO16(); @@ -456,4 +389,5 @@ void eq_fir_s16_hifi3(struct fir_state_32x16 fir[], } } #endif /* CONFIG_FORMAT_S16LE */ -#endif + +#endif /* FIR_HIFI3 */ diff --git a/src/audio/tdfb/CMakeLists.txt b/src/audio/tdfb/CMakeLists.txt new file mode 100644 index 000000000000..98e48dbfc018 --- /dev/null +++ b/src/audio/tdfb/CMakeLists.txt @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: BSD-3-Clause + +add_local_sources(sof tdfb.c tdfb_generic.c tdfb_hifiep.c tdfb_hifi3.c) diff --git a/src/audio/tdfb/tdfb.c b/src/audio/tdfb/tdfb.c new file mode 100644 index 000000000000..8d3de569642b --- /dev/null +++ b/src/audio/tdfb/tdfb.c @@ -0,0 +1,549 @@ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2020 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const struct comp_driver comp_tdfb; + +/* dd511749-d9fa-455c-b3a7-13585693f1af */ +DECLARE_SOF_RT_UUID("tdfb", tdfb_uuid, 0xdd511749, 0xd9fa, 0x455c, 0xb3, 0xa7, + 0x13, 0x58, 0x56, 0x93, 0xf1, 0xaf); + +DECLARE_TR_CTX(tdfb_tr, SOF_UUID(tdfb_uuid), LOG_LEVEL_INFO); + +/* + * The optimized FIR functions variants need to be updated into function + * set_func. + */ + +#if CONFIG_FORMAT_S16LE +static inline void set_s16_fir(struct tdfb_comp_data *cd) +{ + cd->tdfb_func = tdfb_fir_s16; +} +#endif /* CONFIG_FORMAT_S16LE */ +#if CONFIG_FORMAT_S24LE +static inline void set_s24_fir(struct tdfb_comp_data *cd) +{ + cd->tdfb_func = tdfb_fir_s24; +} +#endif /* CONFIG_FORMAT_S24LE */ +#if CONFIG_FORMAT_S32LE +static inline void set_s32_fir(struct tdfb_comp_data *cd) +{ + cd->tdfb_func = tdfb_fir_s32; +} +#endif /* CONFIG_FORMAT_S32LE */ + +static inline int set_func(struct comp_dev *dev) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + struct comp_buffer *sourceb; + + sourceb = list_first_item(&dev->bsource_list, struct comp_buffer, + sink_list); + + switch (sourceb->stream.frame_fmt) { +#if CONFIG_FORMAT_S16LE + case SOF_IPC_FRAME_S16_LE: + comp_info(dev, "set_func(), SOF_IPC_FRAME_S16_LE"); + set_s16_fir(cd); + break; +#endif /* CONFIG_FORMAT_S16LE */ +#if CONFIG_FORMAT_S24LE + case SOF_IPC_FRAME_S24_4LE: + comp_info(dev, "set_func(), SOF_IPC_FRAME_S24_4LE"); + set_s24_fir(cd); + break; +#endif /* CONFIG_FORMAT_S24LE */ +#if CONFIG_FORMAT_S32LE + case SOF_IPC_FRAME_S32_LE: + comp_info(dev, "set_func(), SOF_IPC_FRAME_S32_LE"); + set_s32_fir(cd); + break; +#endif /* CONFIG_FORMAT_S32LE */ + default: + comp_err(dev, "set_func(), invalid frame_fmt"); + return -EINVAL; + } + return 0; +} + +/* + * Control code functions next. The processing is in fir_ C modules. + */ + +static void tdfb_free_delaylines(struct tdfb_comp_data *cd) +{ + struct fir_state_32x16 *fir = cd->fir; + int i = 0; + + /* Free the common buffer for all EQs and point then + * each FIR channel delay line to NULL. + */ + rfree(cd->fir_delay); + cd->fir_delay = NULL; + cd->fir_delay_size = 0; + for (i = 0; i < PLATFORM_MAX_CHANNELS; i++) + fir[i].delay = NULL; +} + +static int tdfb_init_coef(struct tdfb_comp_data *cd, int source_nch, + int sink_nch) +{ + struct sof_fir_coef_data *coef_data; + struct sof_tdfb_config *config = cd->config; + int16_t *coefp; + int size_sum = 0; + int max_ch; + int s; + int i; + + /* Sanity checks */ + if (config->num_output_channels > PLATFORM_MAX_CHANNELS || + !config->num_output_channels) { + comp_cl_err(&comp_tdfb, "tdfb_init_coef(), invalid num_output_channels %d", + config->num_output_channels); + return -EINVAL; + } + + if (config->num_output_channels != sink_nch) { + comp_cl_err(&comp_tdfb, "tdfb_init_coef(), stream output channels count %d does not match configuration %d", + sink_nch, config->num_output_channels); + return -EINVAL; + } + + if (config->num_filters > SOF_TDFB_FIR_MAX_COUNT) { + comp_cl_err(&comp_tdfb, "tdfb_init_coef(), invalid num_filters %d", + config->num_filters); + return -EINVAL; + } + + coefp = ASSUME_ALIGNED(&config->data[0], 2); + for (i = 0; i < config->num_filters; i++) { + /* Get delay line size */ + coef_data = (struct sof_fir_coef_data *)coefp; + s = fir_delay_size(coef_data); + if (s > 0) { + size_sum += s; + } else { + comp_cl_info(&comp_tdfb, "tdfb_init_coef(), FIR length %d is invalid", + coef_data->length); + return -EINVAL; + } + + /* Initialize coefficients for FIR filter and find next + * filter. + */ + fir_init_coef(&cd->fir[i], coef_data); + coefp += SOF_FIR_COEF_NHEADER + coef_data->length; + } + + /* Get shortcuts to input and output configuration */ + cd->input_channel_select = coefp; + cd->output_channel_mix = coefp + config->num_filters; + cd->output_stream_mix = coefp + 2 * config->num_filters; + + /* Find max used input channel */ + max_ch = 0; + for (i = 0; i < config->num_filters; i++) { + if (cd->input_channel_select[i] > max_ch) + max_ch = cd->input_channel_select[i]; + } + + /* The stream must contain at least the number of channels that is + * used for filters input. + */ + if (max_ch + 1 > source_nch) { + comp_cl_err(&comp_tdfb, "tdfb_init_coef(), stream input channels count %d is not sufficient for configuration %d", + source_nch, max_ch + 1); + return -EINVAL; + } + + return size_sum; +} + +static void tdfb_init_delay(struct tdfb_comp_data *cd) +{ + int32_t *fir_delay = cd->fir_delay; + int i; + + /* Initialize second phase to set delay lines pointers */ + for (i = 0; i < cd->config->num_filters; i++) { + if (cd->fir[i].length > 0) + fir_init_delay(&cd->fir[i], &fir_delay); + } +} + +static int tdfb_setup(struct tdfb_comp_data *cd, int source_nch, int sink_nch) +{ + int delay_size; + + /* Free existing FIR channels data if it was allocated */ + tdfb_free_delaylines(cd); + + /* Set coefficients for each channel from coefficient blob */ + delay_size = tdfb_init_coef(cd, source_nch, sink_nch); + if (delay_size < 0) + return delay_size; /* Contains error code */ + + /* If all channels were set to bypass there's no need to + * allocate delay. Just return with success. + */ + if (!delay_size) + return 0; + + /* Allocate all FIR channels data in a big chunk and clear it */ + cd->fir_delay = rballoc(0, SOF_MEM_CAPS_RAM, delay_size); + if (!cd->fir_delay) { + comp_cl_err(&comp_tdfb, "tdfb_setup(), delay allocation failed for size %d", + delay_size); + return -ENOMEM; + } + + memset(cd->fir_delay, 0, delay_size); + cd->fir_delay_size = delay_size; + + /* Assign delay line to all channel filters */ + tdfb_init_delay(cd); + return 0; +} + +/* + * End of algorithm code. Next the standard component methods. + */ + +static struct comp_dev *tdfb_new(const struct comp_driver *drv, + struct sof_ipc_comp *comp) +{ + struct sof_ipc_comp_process *ipc_tdfb = + (struct sof_ipc_comp_process *)comp; + struct comp_dev *dev; + struct tdfb_comp_data *cd; + size_t bs = ipc_tdfb->size; + int ret; + int i; + + comp_cl_info(&comp_tdfb, "tdfb_new()"); + + /* Check first that configuration blob size is sane */ + if (bs > SOF_TDFB_MAX_SIZE) { + comp_cl_err(&comp_tdfb, "tdfb_new() error: configuration blob size = %u > %d", + bs, SOF_TDFB_MAX_SIZE); + return NULL; + } + + dev = comp_alloc(drv, COMP_SIZE(struct sof_ipc_comp_process)); + if (!dev) + return NULL; + + memcpy_s(COMP_GET_IPC(dev, sof_ipc_comp_process), + sizeof(struct sof_ipc_comp_process), ipc_tdfb, + sizeof(struct sof_ipc_comp_process)); + + dev->state = COMP_STATE_INIT; + + cd = rzalloc(SOF_MEM_ZONE_RUNTIME, 0, SOF_MEM_CAPS_RAM, sizeof(*cd)); + if (!cd) { + rfree(dev); + return NULL; + } + + comp_set_drvdata(dev, cd); + + cd->tdfb_func = NULL; + cd->fir_delay = NULL; + cd->fir_delay_size = 0; + + /* Handler for configuration data */ + cd->model_handler = comp_data_blob_handler_new(dev); + if (!cd->model_handler) { + comp_cl_err(&comp_tdfb, "tdfb_new(): comp_data_blob_handler_new() failed."); + rfree(dev); + rfree(cd); + return NULL; + } + + /* Get configuration data and reset FIR filters */ + ret = comp_init_data_blob(cd->model_handler, bs, ipc_tdfb->data); + if (ret < 0) { + comp_cl_err(&comp_tdfb, "tdfb_new(): comp_init_data_blob() failed."); + rfree(dev); + rfree(cd); + return NULL; + } + + for (i = 0; i < PLATFORM_MAX_CHANNELS; i++) + fir_reset(&cd->fir[i]); + + dev->state = COMP_STATE_READY; + return dev; +} + +static void tdfb_free(struct comp_dev *dev) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + + comp_info(dev, "tdfb_free()"); + + tdfb_free_delaylines(cd); + comp_data_blob_handler_free(cd->model_handler); + + rfree(cd); + rfree(dev); +} + +static int tdfb_cmd_get_data(struct comp_dev *dev, + struct sof_ipc_ctrl_data *cdata, int max_size) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + int ret = 0; + + switch (cdata->cmd) { + case SOF_CTRL_CMD_BINARY: + comp_info(dev, "tdfb_cmd_get_data(), SOF_CTRL_CMD_BINARY"); + ret = comp_data_blob_get_cmd(cd->model_handler, cdata, max_size); + break; + default: + comp_err(dev, "tdfb_cmd_get_data() error: invalid cdata->cmd"); + ret = -EINVAL; + break; + } + return ret; +} + +static int tdfb_cmd_set_data(struct comp_dev *dev, + struct sof_ipc_ctrl_data *cdata) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + int ret = 0; + + switch (cdata->cmd) { + case SOF_CTRL_CMD_BINARY: + comp_info(dev, "tdfb_cmd_set_data(), SOF_CTRL_CMD_BINARY"); + ret = comp_data_blob_set_cmd(cd->model_handler, cdata); + break; + default: + comp_err(dev, "tdfb_cmd_set_data() error: invalid cdata->cmd"); + ret = -EINVAL; + break; + } + + return ret; +} + +/* used to pass standard and bespoke commands (with data) to component */ +static int tdfb_cmd(struct comp_dev *dev, int cmd, void *data, + int max_data_size) +{ + struct sof_ipc_ctrl_data *cdata = data; + int ret = 0; + + comp_info(dev, "tdfb_cmd()"); + + switch (cmd) { + case COMP_CMD_SET_DATA: + ret = tdfb_cmd_set_data(dev, cdata); + break; + case COMP_CMD_GET_DATA: + ret = tdfb_cmd_get_data(dev, cdata, max_data_size); + break; + default: + comp_err(dev, "tdfb_cmd() error: invalid command"); + ret = -EINVAL; + } + + return ret; +} + +static void tdfb_process(struct comp_dev *dev, struct comp_buffer *source, + struct comp_buffer *sink, int frames, + uint32_t source_bytes, uint32_t sink_bytes) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + + buffer_invalidate(source, source_bytes); + + cd->tdfb_func(cd, &source->stream, &sink->stream, frames); + + buffer_writeback(sink, sink_bytes); + + /* calc new free and available */ + comp_update_buffer_consume(source, source_bytes); + comp_update_buffer_produce(sink, sink_bytes); +} + +/* copy and process stream data from source to sink buffers */ +static int tdfb_copy(struct comp_dev *dev) +{ + struct comp_copy_limits cl; + struct comp_buffer *sourceb; + struct comp_buffer *sinkb; + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + int ret; + int n; + + comp_dbg(dev, "tdfb_copy()"); + + sourceb = list_first_item(&dev->bsource_list, struct comp_buffer, + sink_list); + sinkb = list_first_item(&dev->bsink_list, struct comp_buffer, + source_list); + + /* Check for changed configuration */ + if (comp_is_new_data_blob_available(cd->model_handler)) { + cd->config = comp_get_data_blob(cd->model_handler, NULL, NULL); + ret = tdfb_setup(cd, sourceb->stream.channels, sinkb->stream.channels); + if (ret < 0) { + comp_err(dev, "tdfb_copy(), failed FIR setup"); + return ret; + } + } + + /* Get source, sink, number of frames etc. to process. */ + comp_get_copy_limits(sourceb, sinkb, &cl); + + /* + * Process only even number of frames with the FIR function. The + * optimized filter function loads the successive input samples from + * internal delay line with a 64 bit load operation. + */ + if (cl.frames >= 2) { + n = (cl.frames >> 1) << 1; + + /* Run the process function */ + tdfb_process(dev, sourceb, sinkb, n, + n * cl.source_frame_bytes, + n * cl.sink_frame_bytes); + } + + return 0; +} + +static int tdfb_prepare(struct comp_dev *dev) +{ + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + struct comp_buffer *sourceb; + struct comp_buffer *sinkb; + int ret; + + comp_info(dev, "tdfb_prepare()"); + + ret = comp_set_state(dev, COMP_TRIGGER_PREPARE); + if (ret < 0) + return ret; + + if (ret == COMP_STATUS_STATE_ALREADY_SET) + return PPL_STATUS_PATH_STOP; + + /* Find source and sink buffers */ + sourceb = list_first_item(&dev->bsource_list, + struct comp_buffer, sink_list); + sinkb = list_first_item(&dev->bsink_list, + struct comp_buffer, source_list); + + /* Initialize filter */ + cd->config = comp_get_data_blob(cd->model_handler, NULL, NULL); + if (cd->config) { + ret = tdfb_setup(cd, sourceb->stream.channels, sinkb->stream.channels); + if (ret < 0) { + comp_err(dev, "tdfb_prepare() error: tdfb_setup failed."); + goto err; + } + + /* Clear in/out buffers */ + memset(cd->in, 0, TDFB_IN_BUF_LENGTH * sizeof(int32_t)); + memset(cd->out, 0, TDFB_IN_BUF_LENGTH * sizeof(int32_t)); + + ret = set_func(dev); + return ret; + } + +err: + comp_set_state(dev, COMP_TRIGGER_RESET); + return ret; +} + +static int tdfb_reset(struct comp_dev *dev) +{ + int i; + struct tdfb_comp_data *cd = comp_get_drvdata(dev); + + comp_info(dev, "tdfb_reset()"); + + tdfb_free_delaylines(cd); + + cd->tdfb_func = NULL; + for (i = 0; i < PLATFORM_MAX_CHANNELS; i++) + fir_reset(&cd->fir[i]); + + comp_set_state(dev, COMP_TRIGGER_RESET); + return 0; +} + +static int tdfb_trigger(struct comp_dev *dev, int cmd) +{ + int ret = 0; + + comp_info(dev, "tdfb_trigger(), command = %u", cmd); + + ret = comp_set_state(dev, cmd); + if (ret == COMP_STATUS_STATE_ALREADY_SET) + ret = PPL_STATUS_PATH_STOP; + + return ret; +} + +static const struct comp_driver comp_tdfb = { + .uid = SOF_RT_UUID(tdfb_uuid), + .tctx = &tdfb_tr, + .ops = { + .create = tdfb_new, + .free = tdfb_free, + .cmd = tdfb_cmd, + .copy = tdfb_copy, + .prepare = tdfb_prepare, + .reset = tdfb_reset, + .trigger = tdfb_trigger, + }, +}; + +static SHARED_DATA struct comp_driver_info comp_tdfb_info = { + .drv = &comp_tdfb, +}; + +UT_STATIC void sys_comp_tdfb_init(void) +{ + comp_register(platform_shared_get(&comp_tdfb_info, + sizeof(comp_tdfb_info))); +} + +DECLARE_MODULE(sys_comp_tdfb_init); diff --git a/src/audio/tdfb/tdfb_generic.c b/src/audio/tdfb/tdfb_generic.c new file mode 100644 index 000000000000..055bf72d44b5 --- /dev/null +++ b/src/audio/tdfb/tdfb_generic.c @@ -0,0 +1,209 @@ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2020 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo + +#include +#include +#include +#include +#include + +#if TDFB_GENERIC + +#include + +#if CONFIG_FORMAT_S16LE +void tdfb_fir_s16(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *filter; + int32_t y0; + int32_t y1; + int16_t *x; + int16_t *y; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s16(source, idx_in++); + cd->in[i] = *x << 16; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + filter = &cd->fir[i]; + /* Process sample and successive sample. This follows + * optimized FIR version implementation that processes + * two samples per call. The output is stored as Q5.27 + * to fit max. 16 filters sum to a channel. + */ + y0 = fir_32x16(filter, cd->in[is]) >> 4; + y1 = fir_32x16(filter, cd->in[is2]) >> 4; + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0; + cd->out[k + out_nch] += y1; + } + om = om >> 1; + } + } + + /* Write two frames of output */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s16(sink, idx_out++); + *y = sat_int16(Q_SHIFT_RND(cd->out[i], 27, 15)); + } + } +} +#endif + +#if CONFIG_FORMAT_S24LE +void tdfb_fir_s24(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *filter; + int32_t y0; + int32_t y1; + int32_t *x; + int32_t *y; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s32(source, idx_in++); + cd->in[i] = *x << 8; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + filter = &cd->fir[i]; + /* Process sample and successive sample. This follows + * optimized FIR version implementation that processes + * two samples per call. The output is stored as Q5.27 + * to fit max. 16 filters sum to a channel. + */ + y0 = fir_32x16(filter, cd->in[is]) >> 4; + y1 = fir_32x16(filter, cd->in[is2]) >> 4; + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0; + cd->out[k + out_nch] += y1; + } + om = om >> 1; + } + } + + /* Write two frames of output */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s32(sink, idx_out++); + *y = sat_int24(Q_SHIFT_RND(cd->out[i], 27, 23)); + } + } +} +#endif + +#if CONFIG_FORMAT_S32LE +void tdfb_fir_s32(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *filter; + int32_t y0; + int32_t y1; + int32_t *x; + int32_t *y; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s32(source, idx_in++); + cd->in[i] = *x; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + filter = &cd->fir[i]; + /* Process sample and successive sample. This follows + * optimized FIR version implementation that processes + * two samples per call. The output is stored as Q5.27 + * to fit max. 16 filters sum to a channel. + */ + y0 = fir_32x16(filter, cd->in[is]) >> 4; + y1 = fir_32x16(filter, cd->in[is2]) >> 4; + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0; + cd->out[k + out_nch] += y1; + } + om = om >> 1; + } + } + + /* Write two frames of output. In Q5.27 to Q1.31 conversion + * rounding is not applicable so just shift left by 4. + */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s32(sink, idx_out++); + *y = sat_int32((int64_t)cd->out[i] << 4); + } + } +} +#endif + +#endif /* TDFB_GENERIC */ + diff --git a/src/audio/tdfb/tdfb_hifi3.c b/src/audio/tdfb/tdfb_hifi3.c new file mode 100644 index 000000000000..b8e80121fefd --- /dev/null +++ b/src/audio/tdfb/tdfb_hifi3.c @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2020 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo + +#include +#include +#include +#include +#include +#include + +#if TDFB_HIFI3 + +#include + +#if CONFIG_FORMAT_S16LE +void tdfb_fir_s16(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + ae_int16x4 d; + ae_int32 y0; + ae_int32 y1; + ae_int16 *x = (ae_int16 *)source->r_ptr; + ae_int16 *y = (ae_int16 *)sink->w_ptr; + int shift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + fir_comp_setup_circular(source); + for (i = 0; i < 2 * in_nch; i++) { + AE_L16_XC(d, x, sizeof(int16_t)); + cd->in[i] = (ae_int32)AE_CVT32X2F16_32(d); + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + + /* Get filter instance */ + f = &cd->fir[i]; + shift = -f->out_shift; + + /* Compute FIR and mix as Q5.27*/ + fir_core_setup_circular(f); + fir_32x16_2x_hifi3(f, cd->in[is], cd->in[is2], &y0, &y1, + shift); + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += (int32_t)y0 >> 4; + cd->out[k + out_nch] += + (int32_t)y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output. The values in out[] are shifted + * left and saturated to convert to Q1.27. The the values + * are then rounded to 16 bit and converted to Q1.15 for + * sink buffer. TODO: Could saturate four samples with + * one AE_ROUND16X4F32SSYM() instruction. + */ + fir_comp_setup_circular(sink); + for (i = 0; i < 2 * out_nch; i++) { + d = AE_ROUND16X4F32SSYM(0, AE_SLAI32S(cd->out[i], 4)); + AE_S16_0_XC(d, y, sizeof(int16_t)); + } + } +} +#endif + +#if CONFIG_FORMAT_S24LE +void tdfb_fir_s24(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + ae_int32x2 d; + ae_int32 y0; + ae_int32 y1; + ae_int32 *x = (ae_int32 *)source->r_ptr; + ae_int32 *y = (ae_int32 *)sink->w_ptr; + int shift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + fir_comp_setup_circular(source); + for (i = 0; i < 2 * in_nch; i++) { + AE_L32_XC(d, x, sizeof(int32_t)); + cd->in[i] = AE_SLAI32(d, 8); + } + + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + + /* Get filter instance */ + f = &cd->fir[i]; + shift = -f->out_shift; + + /* Compute FIR and mix as Q5.27*/ + fir_core_setup_circular(f); + fir_32x16_2x_hifi3(f, cd->in[is], cd->in[is2], &y0, &y1, + shift); + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += (int32_t)y0 >> 4; + cd->out[k + out_nch] += + (int32_t)y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output. The values from out[] are first + * rounded to Q5.23 format, then saturated to Q1.23, and + * shifted by 8 to LSB side of the word before storing to sink. + * TODO: Could shift etc. two samples simultaneously. + */ + fir_comp_setup_circular(sink); + for (i = 0; i < 2 * out_nch; i++) { + d = AE_SRAI32(AE_SLAI32S(AE_SRAI32R(cd->out[i], 4), 8), + 8); + AE_S32_L_XC(d, y, sizeof(int32_t)); + } + } +} +#endif + +#if CONFIG_FORMAT_S32LE +void tdfb_fir_s32(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + ae_int32x2 d; + ae_int32 y0; + ae_int32 y1; + ae_int32 *x = (ae_int32 *)source->r_ptr; + ae_int32 *y = (ae_int32 *)sink->w_ptr; + int shift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + fir_comp_setup_circular(source); + for (i = 0; i < 2 * in_nch; i++) { + AE_L32_XC(d, x, sizeof(int32_t)); + cd->in[i] = d; + } + + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + + /* Get filter instance */ + f = &cd->fir[i]; + shift = -f->out_shift; + + /* Compute FIR and mix as Q5.27*/ + fir_core_setup_circular(f); + fir_32x16_2x_hifi3(f, cd->in[is], cd->in[is2], &y0, &y1, + shift); + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += (int32_t)y0 >> 4; + cd->out[k + out_nch] += + (int32_t)y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output. In Q5.27 to Q1.31 conversion + * rounding is not applicable so just shift left by 4 and + * saturate. TODO: Could shift two samples with one + * instruction. + */ + fir_comp_setup_circular(sink); + for (i = 0; i < 2 * out_nch; i++) { + d = AE_SLAI32S(cd->out[i], 4); + AE_S32_L_XC(d, y, sizeof(int32_t)); + } + } +} +#endif + +#endif /* TDFB_HIFI3 */ + diff --git a/src/audio/tdfb/tdfb_hifiep.c b/src/audio/tdfb/tdfb_hifiep.c new file mode 100644 index 000000000000..fb55a776044c --- /dev/null +++ b/src/audio/tdfb/tdfb_hifiep.c @@ -0,0 +1,216 @@ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2020 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo + +#include +#include +#include +#include +#include +#include + +#if TDFB_HIFIEP + +#include + +#if CONFIG_FORMAT_S16LE +void tdfb_fir_s16(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + int32_t y0; + int32_t y1; + int16_t *x; + int16_t *y; + int rshift; + int lshift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s16(source, idx_in++); + cd->in[i] = *x << 16; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + /* Prepare FIR */ + f = &cd->fir[i]; + fir_hifiep_setup_circular(f); + fir_get_lrshifts(f, &lshift, &rshift); + /* Process two samples */ + fir_32x16_2x_hifiep(f, cd->in[is], cd->in[is2], + &y0, &y1, lshift, rshift); + /* Mix as Q5.27 */ + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0 >> 4; + cd->out[k + out_nch] += y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s16(sink, idx_out++); + *y = sat_int16(Q_SHIFT_RND(cd->out[i], 27, 15)); + } + } +} +#endif + +#if CONFIG_FORMAT_S24LE +void tdfb_fir_s24(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + int32_t y0; + int32_t y1; + int32_t *x; + int32_t *y; + int rshift; + int lshift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s32(source, idx_in++); + cd->in[i] = *x << 8; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + /* Prepare FIR */ + f = &cd->fir[i]; + fir_hifiep_setup_circular(f); + fir_get_lrshifts(f, &lshift, &rshift); + /* Process two samples */ + fir_32x16_2x_hifiep(f, cd->in[is], cd->in[is2], + &y0, &y1, lshift, rshift); + /* Mix as Q5.27 */ + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0 >> 4; + cd->out[k + out_nch] += y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s32(sink, idx_out++); + *y = sat_int24(Q_SHIFT_RND(cd->out[i], 27, 23)); + } + } +} +#endif + +#if CONFIG_FORMAT_S32LE +void tdfb_fir_s32(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames) +{ + struct sof_tdfb_config *cfg = cd->config; + struct fir_state_32x16 *f; + int32_t y0; + int32_t y1; + int32_t *x; + int32_t *y; + int lshift; + int rshift; + int is2; + int is; + int om; + int i; + int j; + int k; + int in_nch = source->channels; + int out_nch = sink->channels; + int idx_in = 0; + int idx_out = 0; + + for (j = 0; j < (frames >> 1); j++) { + /* Clear output mix*/ + memset(cd->out, 0, 2 * out_nch * sizeof(int32_t)); + + /* Read two frames from all input channels */ + for (i = 0; i < 2 * in_nch; i++) { + x = audio_stream_read_frag_s32(source, idx_in++); + cd->in[i] = *x; + } + + /* Run and mix all filters to their output channel */ + for (i = 0; i < cfg->num_filters; i++) { + is = cd->input_channel_select[i]; + is2 = is + in_nch; + om = cd->output_channel_mix[i]; + /* Prepare FIR */ + f = &cd->fir[i]; + fir_hifiep_setup_circular(f); + fir_get_lrshifts(f, &lshift, &rshift); + /* Process two samples */ + fir_32x16_2x_hifiep(f, cd->in[is], cd->in[is2], + &y0, &y1, lshift, rshift); + /* Mix as Q5.27 */ + for (k = 0; k < out_nch; k++) { + if (om & 1) { + cd->out[k] += y0 >> 4; + cd->out[k + out_nch] += y1 >> 4; + } + om = om >> 1; + } + } + + /* Write two frames of output. In Q5.27 to Q1.31 conversion + * rounding is not applicable so just shift left by 4. + */ + for (i = 0; i < 2 * out_nch; i++) { + y = audio_stream_write_frag_s32(sink, idx_out++); + *y = sat_int32((int64_t)cd->out[i] << 4); + } + } +} +#endif + +#endif /* TDFB_HIFIEP */ + diff --git a/src/include/sof/audio/eq_fir/eq_fir.h b/src/include/sof/audio/eq_fir/eq_fir.h new file mode 100644 index 000000000000..bb91d707e2c7 --- /dev/null +++ b/src/include/sof/audio/eq_fir/eq_fir.h @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2017 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __SOF_AUDIO_EQ_FIR_EQ_FIR_H__ +#define __SOF_AUDIO_EQ_FIR_EQ_FIR_H__ + +#include +#include +#include +#if FIR_GENERIC +#include +#endif +#if FIR_HIFIEP +#include +#endif +#if FIR_HIFI3 +#include +#endif +#include +#include + +#if CONFIG_FORMAT_S16LE +void eq_fir_s16(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); + +void eq_fir_2x_s16(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); +#endif /* CONFIG_FORMAT_S16LE */ + +#if CONFIG_FORMAT_S24LE +void eq_fir_s24(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); + +void eq_fir_2x_s24(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); +#endif /* CONFIG_FORMAT_S24LE */ + +#if CONFIG_FORMAT_S32LE +void eq_fir_s32(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); + +void eq_fir_2x_s32(struct fir_state_32x16 *fir, const struct audio_stream *source, + struct audio_stream *sink, int frames, int nch); +#endif /* CONFIG_FORMAT_S32LE */ + +#endif /* __SOF_AUDIO_EQ_FIR_EQ_FIR_H__ */ diff --git a/src/include/sof/audio/eq_fir/fir.h b/src/include/sof/audio/eq_fir/fir.h deleted file mode 100644 index fdf9abcf0fdd..000000000000 --- a/src/include/sof/audio/eq_fir/fir.h +++ /dev/null @@ -1,115 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * - * Copyright(c) 2017 Intel Corporation. All rights reserved. - * - * Author: Seppo Ingalsuo - * Liam Girdwood - * Keyon Jie - */ - -#ifndef __SOF_AUDIO_EQ_FIR_FIR_H__ -#define __SOF_AUDIO_EQ_FIR_FIR_H__ - -#include - -#if FIR_GENERIC - -#include -#include - -struct comp_buffer; -struct sof_eq_fir_coef_data; - -struct fir_state_32x16 { - int rwi; /* Circular read and write index */ - int taps; /* Number of FIR taps */ - int length; /* Number of FIR taps */ - int out_shift; /* Amount of right shifts at output */ - int16_t *coef; /* Pointer to FIR coefficients */ - int32_t *delay; /* Pointer to FIR delay line */ -}; - -void fir_reset(struct fir_state_32x16 *fir); - -int fir_delay_size(struct sof_eq_fir_coef_data *config); - -int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config); - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); - -#if CONFIG_FORMAT_S16LE -void eq_fir_s16(struct fir_state_32x16 *fir, const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S16LE */ - -#if CONFIG_FORMAT_S24LE -void eq_fir_s24(struct fir_state_32x16 *fir, const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S24LE */ - -#if CONFIG_FORMAT_S32LE -void eq_fir_s32(struct fir_state_32x16 *fir, const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S32LE */ - -/* The next functions are inlined to optmize execution speed */ - -static inline int32_t fir_32x16(struct fir_state_32x16 *fir, int32_t x) -{ - int64_t y = 0; - int32_t *data = &fir->delay[fir->rwi]; - int16_t *coef = &fir->coef[0]; - int n1; - int n2; - int n; - - /* Bypass is set with length set to zero. */ - if (!fir->length) - return x; - - /* Write sample to delay */ - *data = x; - - /* Advance write pointer and calculate into n1 max. number of taps - * to process before circular wrap. - */ - n1 = ++fir->rwi; - if (fir->rwi == fir->length) - fir->rwi = 0; - - /* Check if no need to un-wrap FIR data. */ - if (n1 > fir->length) { - /* Data is Q1.31, coef is Q1.15, product is Q2.46 */ - for (n = 0; n < fir->length; n++) { - y += (int64_t)(*coef) * (*data); - coef++; - data--; - } - - /* Q2.46 -> Q2.31, saturate to Q1.31 */ - return sat_int32(y >> (15 + fir->out_shift)); - } - - /* Part 1, loop n1 times */ - for (n = 0; n < n1; n++) { - y += (int64_t)(*coef) * (*data); - coef++; - data--; - } - - /* Part 2, un-wrap data, continue n2 times */ - n2 = fir->length - n1; - data = &fir->delay[fir->length - 1]; - for (n = 0; n < n2; n++) { - y += (int64_t)(*coef) * (*data); - coef++; - data--; - } - - /* Q2.46 -> Q2.31, saturate to Q1.31 */ - return sat_int32(y >> (15 + fir->out_shift)); -} - -#endif -#endif /* __SOF_AUDIO_EQ_FIR_FIR_H__ */ diff --git a/src/include/sof/audio/tdfb/tdfb_comp.h b/src/include/sof/audio/tdfb/tdfb_comp.h new file mode 100644 index 000000000000..5e86e66062c5 --- /dev/null +++ b/src/include/sof/audio/tdfb/tdfb_comp.h @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2020 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __SOF_AUDIO_TDFB_CONFIG_H__ +#define __SOF_AUDIO_TDFB_CONFIG_H__ + +#include +#include +#include +#include +#include +#include + +/* Select optimized code variant when xt-xcc compiler is used */ +#if defined __XCC__ +#include +#if XCHAL_HAVE_HIFI2EP == 1 +#define TDFB_GENERIC 0 +#define TDFB_HIFIEP 1 +#define TDFB_HIFI3 0 +#elif XCHAL_HAVE_HIFI3 == 1 +#define TDFB_HIFI3 1 +#define TDFB_HIFIEP 0 +#define TDFB_GENERIC 0 +#else +#error "No HIFIEP or HIFI3 found. Cannot build TDFB module." +#endif +#else +/* GCC */ +#define TDFB_GENERIC 1 +#define TDFB_HIFIEP 0 +#define TDFB_HIFI3 0 +#endif + +#define TDFB_IN_BUF_LENGTH (2 * PLATFORM_MAX_CHANNELS) +#define TDFB_OUT_BUF_LENGTH (2 * PLATFORM_MAX_CHANNELS) + +/* TDFB component private data */ + +struct tdfb_comp_data { + struct fir_state_32x16 fir[SOF_TDFB_FIR_MAX_COUNT]; /**< FIR state */ + struct comp_data_blob_handler *model_handler; + struct sof_tdfb_config *config; /**< pointer to setup blob */ + int32_t in[TDFB_IN_BUF_LENGTH]; /**< input samples buffer */ + int32_t out[TDFB_IN_BUF_LENGTH]; /**< output samples mix buffer */ + int32_t *fir_delay; /**< pointer to allocated RAM */ + int16_t *input_channel_select; /**< For each FIR define in ch */ + int16_t *output_channel_mix; /**< For each FIR define out ch */ + int16_t *output_stream_mix; /**< for each FIR define stream */ + size_t fir_delay_size; /**< allocated size */ + bool config_ready; /**< set when fully received */ + void (*tdfb_func)(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, + int frames); +}; + +#if CONFIG_FORMAT_S16LE +void tdfb_fir_s16(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames); +#endif + +#if CONFIG_FORMAT_S24LE +void tdfb_fir_s24(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames); +#endif + +#if CONFIG_FORMAT_S32LE +void tdfb_fir_s32(struct tdfb_comp_data *cd, + const struct audio_stream *source, + struct audio_stream *sink, int frames); +#endif + +#endif /* __SOF_AUDIO_EQ_FIR_FIR_CONFIG_H__ */ diff --git a/src/include/sof/audio/eq_fir/fir_config.h b/src/include/sof/math/fir_config.h similarity index 100% rename from src/include/sof/audio/eq_fir/fir_config.h rename to src/include/sof/math/fir_config.h diff --git a/src/include/sof/math/fir_generic.h b/src/include/sof/math/fir_generic.h new file mode 100644 index 000000000000..464ffd5d244d --- /dev/null +++ b/src/include/sof/math/fir_generic.h @@ -0,0 +1,46 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2017 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + * Liam Girdwood + * Keyon Jie + */ + +#ifndef __SOF_MATH_FIR_GENERIC_H__ +#define __SOF_MATH_FIR_GENERIC_H__ + +#include + +#if FIR_GENERIC + +#include +#include +#include +#include + +struct comp_buffer; +struct sof_eq_fir_coef_data; + +struct fir_state_32x16 { + int rwi; /* Circular read and write index */ + int taps; /* Number of FIR taps */ + int length; /* Number of FIR taps */ + int out_shift; /* Amount of right shifts at output */ + int16_t *coef; /* Pointer to FIR coefficients */ + int32_t *delay; /* Pointer to FIR delay line */ +}; + +void fir_reset(struct fir_state_32x16 *fir); + +int fir_delay_size(struct sof_fir_coef_data *config); + +int fir_init_coef(struct fir_state_32x16 *fir, + struct sof_fir_coef_data *config); + +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); + +int32_t fir_32x16(struct fir_state_32x16 *fir, int32_t x); + +#endif +#endif /* __SOF_MATH_FIR_GENERIC_H__ */ diff --git a/src/include/sof/math/fir_hifi2ep.h b/src/include/sof/math/fir_hifi2ep.h new file mode 100644 index 000000000000..c84e647d6de3 --- /dev/null +++ b/src/include/sof/math/fir_hifi2ep.h @@ -0,0 +1,61 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2017 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __SOF_MATH_FIR_HIFI2EP_H__ +#define __SOF_MATH_FIR_HIFI2EP_H__ + +#include + +#if FIR_HIFIEP + +#include +#include +#include +#include +#include +#include + +struct comp_buffer; +struct sof_eq_fir_coef_data; + +struct fir_state_32x16 { + ae_p24x2f *rwp; /* Circular read and write pointer */ + ae_p24f *delay; /* Pointer to FIR delay line */ + ae_p24f *delay_end; /* Pointer to FIR delay line end */ + ae_p16x2s *coef; /* Pointer to FIR coefficients */ + int taps; /* Number of FIR taps */ + int length; /* Number of FIR taps plus input length (even) */ + int in_shift; /* Amount of right shifts at input */ + int out_shift; /* Amount of right shifts at output */ +}; + +void fir_reset(struct fir_state_32x16 *fir); + +int fir_delay_size(struct sof_fir_coef_data *config); + +int fir_init_coef(struct fir_state_32x16 *fir, + struct sof_fir_coef_data *config); + +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); + +/* Setup circular buffer for FIR input data delay */ +static inline void fir_hifiep_setup_circular(struct fir_state_32x16 *fir) +{ + AE_SETCBEGIN0(fir->delay); + AE_SETCEND0(fir->delay_end); +} + +void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, + int *rshift); + +void fir_32x16_hifiep(struct fir_state_32x16 *fir, int32_t x, int32_t *y, int lshift, int rshift); + +void fir_32x16_2x_hifiep(struct fir_state_32x16 *fir, int32_t x0, int32_t x1, + int32_t *y0, int32_t *y1, int lshift, int rshift); + +#endif +#endif /* __SOF_MATH_FIR_HIFI2EP_H__ */ diff --git a/src/include/sof/math/fir_hifi3.h b/src/include/sof/math/fir_hifi3.h new file mode 100644 index 000000000000..9a933e0ebee2 --- /dev/null +++ b/src/include/sof/math/fir_hifi3.h @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2017 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __SOF_MATH_FIR_HIFI3_H__ +#define __SOF_MATH_FIR_HIFI3_H__ + +#include + +#if FIR_HIFI3 + +#include +#include +#include +#include +#include + +struct sof_eq_fir_coef_data; + +struct fir_state_32x16 { + ae_int32 *rwp; /* Circular read and write pointer */ + ae_int32 *delay; /* Pointer to FIR delay line */ + ae_int32 *delay_end; /* Pointer to FIR delay line end */ + ae_f16x4 *coef; /* Pointer to FIR coefficients */ + int taps; /* Number of FIR taps */ + int length; /* Number of FIR taps plus input length (even) */ + int in_shift; /* Amount of right shifts at input */ + int out_shift; /* Amount of right shifts at output */ +}; + +void fir_reset(struct fir_state_32x16 *fir); + +int fir_delay_size(struct sof_fir_coef_data *config); + +int fir_init_coef(struct fir_state_32x16 *fir, + struct sof_fir_coef_data *config); + +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); + +/* Setup circular buffer for FIR input data delay */ +static inline void fir_core_setup_circular(struct fir_state_32x16 *fir) +{ + AE_SETCBEGIN0(fir->delay); + AE_SETCEND0(fir->delay_end); +} + +/* Setup circular for component buffer */ +static inline void fir_comp_setup_circular(const struct audio_stream *buffer) +{ + AE_SETCBEGIN0(buffer->addr); + AE_SETCEND0(buffer->end_addr); +} + +void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, + int *rshift); + +void fir_32x16_hifi3(struct fir_state_32x16 *fir, ae_int32 x, ae_int32 *y, + int shift); + +void fir_32x16_2x_hifi3(struct fir_state_32x16 *fir, ae_int32 x0, ae_int32 x1, + ae_int32 *y0, ae_int32 *y1, int shift); + +#endif +#endif /* __SOF_MATH_FIR_HIFI3_H__ */ diff --git a/src/include/user/eq.h b/src/include/user/eq.h index 57c45fcc1730..4a0ff6fd1945 100644 --- a/src/include/user/eq.h +++ b/src/include/user/eq.h @@ -16,8 +16,6 @@ #define SOF_EQ_FIR_MAX_SIZE 4096 /* Max size allowed for coef data in bytes */ -#define SOF_EQ_FIR_MAX_LENGTH 192 /* Max length for individual filter */ - #define SOF_EQ_FIR_MAX_RESPONSES 8 /* A blob can define max 8 FIR EQs */ /* @@ -62,23 +60,6 @@ struct sof_eq_fir_config { int16_t data[]; } __attribute__((packed)); -struct sof_eq_fir_coef_data { - int16_t length; /* Number of FIR taps */ - int16_t out_shift; /* Amount of right shifts at output */ - - /* reserved */ - uint32_t reserved[4]; - - int16_t coef[]; /* FIR coefficients */ -} __attribute__((packed)); - -/* In the struct above there's two 16 bit words (length, shift) and four - * reserved 32 bit words before the actual FIR coefficients. This information - * is used in parsing of the configuration blob. - */ -#define SOF_EQ_FIR_COEF_NHEADER \ - (sizeof(struct sof_eq_fir_coef_data) / sizeof(int16_t)) - /* IIR EQ type */ #define SOF_EQ_IIR_IDX_SWITCH 0 diff --git a/src/include/user/fir.h b/src/include/user/fir.h new file mode 100644 index 000000000000..4536a469eee0 --- /dev/null +++ b/src/include/user/fir.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2017 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __USER_FIR_H__ +#define __USER_FIR_H__ + +#include + +#define SOF_FIR_MAX_LENGTH 256 /* Max length for individual filter */ + +struct sof_fir_coef_data { + int16_t length; /* Number of FIR taps */ + int16_t out_shift; /* Amount of right shifts at output */ + + /* reserved */ + uint32_t reserved[4]; + + int16_t coef[]; /* FIR coefficients */ +} __attribute__((packed)); + +/* In the struct above there's two 16 bit words (length, shift) and four + * reserved 32 bit words before the actual FIR coefficients. This information + * is used in parsing of the configuration blob. + */ +#define SOF_FIR_COEF_NHEADER \ + (sizeof(struct sof_fir_coef_data) / sizeof(int16_t)) + +#endif /* __USER_FIR_H__ */ diff --git a/src/include/user/tdfb.h b/src/include/user/tdfb.h new file mode 100644 index 000000000000..4dc07643cde5 --- /dev/null +++ b/src/include/user/tdfb.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2020 Intel Corporation. All rights reserved. + * + * Author: Seppo Ingalsuo + */ + +#ifndef __USER_TDFB_H__ +#define __USER_TDFB_H__ + +#include + +#define SOF_TDFB_MAX_SIZE 4096 /* Max size for coef data in bytes */ +#define SOF_TDFB_FIR_MAX_LENGTH 256 /* Max length for individual filter */ +#define SOF_TDFB_FIR_MAX_COUNT 16 /* A blob can define max 8 FIR EQs */ +#define SOF_TDFB_MAX_STREAMS 8 /* Support 1..8 sinks */ + +/* + * sof_tdfb_config data[] + + * int16_t fir_filter1[length_filter1]; Multiple of 4 taps and 32 bit align + * int16_t fir_filter2[length_filter2]; Multiple of 4 taps and 32 bit align + * ... + * int16_t fir_filterN[length_filterN]; Multiple of 4 taps and 32 bit align + * int16_t input_channel_select[num_filters]; 0 = ch0, 1 = 1ch1, .. + * int16_t output_channel_mix[num_filters]; + * int16_t output_stream_mix[num_filters]; + * + */ + +struct sof_tdfb_config { + uint32_t size; /* Size of entire struct */ + uint16_t num_filters; /* Total number of filters */ + uint16_t num_output_channels; /* Total number of output channels */ + uint16_t num_output_streams; /* one source, N output sinks */ + uint16_t reserved16; /* To keep data 32 bit aligned */ + + /* reserved */ + uint32_t reserved32[4]; /* For future */ + + int16_t data[]; +} __attribute__((packed)); + +#endif /* __USER_TDFB_H__ */ diff --git a/src/math/CMakeLists.txt b/src/math/CMakeLists.txt index de36aaccc95a..f0ee8d2c4993 100644 --- a/src/math/CMakeLists.txt +++ b/src/math/CMakeLists.txt @@ -1,9 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause -add_local_sources(sof numbers.c trig.c decibels.c iir_df2t_generic.c iir_df2t_hifi3.c) - if(BUILD_LIBRARY) return() endif() -add_local_sources(sof trig.c decibels.c iir_df2t_generic.c iir_df2t_hifi3.c) +add_local_sources(sof numbers.c trig.c decibels.c iir_df2t_generic.c iir_df2t_hifi3.c) + +if(CONFIG_MATH_FIR) + add_local_sources(sof fir_generic.c fir_hifi2ep.c fir_hifi3.c) +endif() diff --git a/src/math/fir_generic.c b/src/math/fir_generic.c new file mode 100644 index 000000000000..21ddcb277fa1 --- /dev/null +++ b/src/math/fir_generic.c @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2017 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo +// Liam Girdwood +// Keyon Jie + +#include + +#if FIR_GENERIC + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * EQ FIR algorithm code + */ + +void fir_reset(struct fir_state_32x16 *fir) +{ + fir->rwi = 0; + fir->length = 0; + fir->out_shift = 0; + fir->coef = NULL; + /* There may need to know the beginning of dynamic allocation after + * reset so omitting setting also fir->delay to NULL. + */ +} + +int fir_delay_size(struct sof_fir_coef_data *config) +{ + /* Check for sane FIR length. The generic version does not + * have other constraints. + */ + if (config->length > SOF_FIR_MAX_LENGTH || config->length < 1) + return -EINVAL; + + return config->length * sizeof(int32_t); +} + +int fir_init_coef(struct fir_state_32x16 *fir, + struct sof_fir_coef_data *config) +{ + fir->rwi = 0; + fir->length = (int)config->length; + fir->taps = fir->length; /* The same for generic C version */ + fir->out_shift = (int)config->out_shift; + fir->coef = ASSUME_ALIGNED(&config->coef[0], 4); + return 0; +} + +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) +{ + fir->delay = *data; + *data += fir->length; /* Point to next delay line start */ +} + +int32_t fir_32x16(struct fir_state_32x16 *fir, int32_t x) +{ + int64_t y = 0; + int32_t *data = &fir->delay[fir->rwi]; + int16_t *coef = &fir->coef[0]; + int n1; + int n2; + int n; + + /* Bypass is set with length set to zero. */ + if (!fir->length) + return x; + + /* Write sample to delay */ + *data = x; + + /* Advance write pointer and calculate into n1 max. number of taps + * to process before circular wrap. + */ + n1 = ++fir->rwi; + if (fir->rwi == fir->length) + fir->rwi = 0; + + /* Check if no need to un-wrap FIR data. */ + if (n1 > fir->length) { + /* Data is Q1.31, coef is Q1.15, product is Q2.46 */ + for (n = 0; n < fir->length; n++) { + y += (int64_t)(*coef) * (*data); + coef++; + data--; + } + + /* Q2.46 -> Q2.31, saturate to Q1.31 */ + return sat_int32(y >> (15 + fir->out_shift)); + } + + /* Part 1, loop n1 times */ + for (n = 0; n < n1; n++) { + y += (int64_t)(*coef) * (*data); + coef++; + data--; + } + + /* Part 2, un-wrap data, continue n2 times */ + n2 = fir->length - n1; + data = &fir->delay[fir->length - 1]; + for (n = 0; n < n2; n++) { + y += (int64_t)(*coef) * (*data); + coef++; + data--; + } + + /* Q2.46 -> Q2.31, saturate to Q1.31 */ + return sat_int32(y >> (15 + fir->out_shift)); +} + +#endif diff --git a/src/include/sof/audio/eq_fir/fir_hifi2ep.h b/src/math/fir_hifi2ep.c similarity index 64% rename from src/include/sof/audio/eq_fir/fir_hifi2ep.h rename to src/math/fir_hifi2ep.c index ba78f133ca36..a1566fb5c5d5 100644 --- a/src/include/sof/audio/eq_fir/fir_hifi2ep.h +++ b/src/math/fir_hifi2ep.c @@ -1,90 +1,88 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * - * Copyright(c) 2017 Intel Corporation. All rights reserved. - * - * Author: Seppo Ingalsuo - */ - -#ifndef __SOF_AUDIO_EQ_FIR_FIR_HIFI2EP_H__ -#define __SOF_AUDIO_EQ_FIR_FIR_HIFI2EP_H__ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2017 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo -#include +#include #if FIR_HIFIEP +#include +#include +#include #include #include +#include +#include #include -struct comp_buffer; -struct sof_eq_fir_coef_data; - -struct fir_state_32x16 { - ae_p24x2f *rwp; /* Circular read and write pointer */ - ae_p24f *delay; /* Pointer to FIR delay line */ - ae_p24f *delay_end; /* Pointer to FIR delay line end */ - ae_p16x2s *coef; /* Pointer to FIR coefficients */ - int taps; /* Number of FIR taps */ - int length; /* Number of FIR taps plus input length (even) */ - int in_shift; /* Amount of right shifts at input */ - int out_shift; /* Amount of right shifts at output */ -}; - -void fir_reset(struct fir_state_32x16 *fir); - -int fir_delay_size(struct sof_eq_fir_coef_data *config); - -int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config); - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); - -void eq_fir_s16_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); +/* + * EQ FIR algorithm code + */ -void eq_fir_2x_s16_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, - int frames, int nch); +void fir_reset(struct fir_state_32x16 *fir) +{ + fir->taps = 0; + fir->length = 0; + fir->out_shift = 0; + fir->coef = NULL; + /* There may need to know the beginning of dynamic allocation after + * reset so omitting setting also fir->delay to NULL. + */ +} -void eq_fir_s24_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); +int fir_delay_size(struct sof_fir_coef_data *config) +{ + /* Check FIR tap count for implementation specific constraints */ + if (config->length > SOF_FIR_MAX_LENGTH || config->length < 4) + return -EINVAL; -void eq_fir_2x_s24_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, - int frames, int nch); + if (config->length & 0x3) + return -EINVAL; -void eq_fir_s32_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); + /* The dual sample version needs one more delay entry. To preserve + * align for 64 bits need to add two. + */ + return (config->length + 2) * sizeof(int32_t); +} -void eq_fir_2x_s32_hifiep(struct fir_state_32x16 fir[], - const struct audio_stream *source, - struct audio_stream *sink, - int frames, int nch); +int fir_init_coef(struct fir_state_32x16 *fir, + struct sof_fir_coef_data *config) +{ + /* The length is taps plus two since the filter computes two + * samples per call. Length plus one would be minimum but the add + * must be even. The even length is needed for 64 bit loads from delay + * lines with 32 bit samples. + */ + fir->taps = (int)config->length; + fir->length = fir->taps + 2; + fir->out_shift = (int)config->out_shift; + fir->coef = (ae_p16x2s *)&config->coef[0]; + return 0; +} -/* Setup circular buffer for FIR input data delay */ -static inline void fir_hifiep_setup_circular(struct fir_state_32x16 *fir) +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) { - AE_SETCBEGIN0(fir->delay); - AE_SETCEND0(fir->delay_end); + fir->delay = (ae_p24f *)*data; + fir->delay_end = fir->delay + fir->length; + fir->rwp = (ae_p24x2f *)(fir->delay + fir->length - 1); + *data += fir->length; /* Point to next delay line start */ } void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, - int *rshift); - -/* The next functions are inlined to optmize execution speed */ + int *rshift) +{ + *lshift = (fir->out_shift < 0) ? -fir->out_shift : 0; + *rshift = (fir->out_shift > 0) ? fir->out_shift : 0; +} /* HiFi EP has the follow number of reqisters that should not be exceeded * 4x 56 bit registers in register file Q * 8x 48 bit registers in register file P */ -static inline void fir_32x16_hifiep(struct fir_state_32x16 *fir, int32_t x, - int32_t *y, int lshift, int rshift) +void fir_32x16_hifiep(struct fir_state_32x16 *fir, int32_t x, int32_t *y, int lshift, int rshift) { /* This function uses * 1x 56 bit registers Q, @@ -157,9 +155,8 @@ static inline void fir_32x16_hifiep(struct fir_state_32x16 *fir, int32_t x, * 8x 48 bit registers in register file P */ -static inline void fir_32x16_2x_hifiep(struct fir_state_32x16 *fir, int32_t x0, - int32_t x1, int32_t *y0, int32_t *y1, - int lshift, int rshift) +void fir_32x16_2x_hifiep(struct fir_state_32x16 *fir, int32_t x0, int32_t x1, + int32_t *y0, int32_t *y1, int lshift, int rshift) { /* This function uses * 2x 56 bit registers Q, @@ -247,4 +244,3 @@ static inline void fir_32x16_2x_hifiep(struct fir_state_32x16 *fir, int32_t x0, } #endif -#endif /* __SOF_AUDIO_EQ_FIR_FIR_HIFI2EP_H__ */ diff --git a/src/include/sof/audio/eq_fir/fir_hifi3.h b/src/math/fir_hifi3.c similarity index 61% rename from src/include/sof/audio/eq_fir/fir_hifi3.h rename to src/math/fir_hifi3.c index c584272a2ea5..149d19b0d0bc 100644 --- a/src/include/sof/audio/eq_fir/fir_hifi3.h +++ b/src/math/fir_hifi3.c @@ -1,99 +1,90 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * - * Copyright(c) 2017 Intel Corporation. All rights reserved. - * - * Author: Seppo Ingalsuo - */ - -#ifndef __SOF_AUDIO_EQ_FIR_FIR_HIFI3_H__ -#define __SOF_AUDIO_EQ_FIR_FIR_HIFI3_H__ +// SPDX-License-Identifier: BSD-3-Clause +// +// Copyright(c) 2017 Intel Corporation. All rights reserved. +// +// Author: Seppo Ingalsuo -#include +#include #if FIR_HIFI3 #include +#include +#include #include #include +#include +#include +#include + +/* + * EQ FIR algorithm code + */ -struct sof_eq_fir_coef_data; +void fir_reset(struct fir_state_32x16 *fir) +{ + fir->taps = 0; + fir->length = 0; + fir->out_shift = 0; + fir->coef = NULL; + /* There may need to know the beginning of dynamic allocation after + * reset so omitting setting also fir->delay to NULL. + */ +} -struct fir_state_32x16 { - ae_int32 *rwp; /* Circular read and write pointer */ - ae_int32 *delay; /* Pointer to FIR delay line */ - ae_int32 *delay_end; /* Pointer to FIR delay line end */ - ae_f16x4 *coef; /* Pointer to FIR coefficients */ - int taps; /* Number of FIR taps */ - int length; /* Number of FIR taps plus input length (even) */ - int in_shift; /* Amount of right shifts at input */ - int out_shift; /* Amount of right shifts at output */ -}; +int fir_delay_size(struct sof_fir_coef_data *config) +{ + /* Check FIR tap count for implementation specific constraints */ + if (config->length > SOF_FIR_MAX_LENGTH || config->length < 4) + return -EINVAL; -void fir_reset(struct fir_state_32x16 *fir); + /* The optimization requires the tap count to be multiple of four */ + if (config->length & 0x3) + return -EINVAL; -int fir_delay_size(struct sof_eq_fir_coef_data *config); + /* The dual sample version needs one more delay entry. To preserve + * align for 64 bits need to add two. + */ + return (config->length + 2) * sizeof(int32_t); +} int fir_init_coef(struct fir_state_32x16 *fir, - struct sof_eq_fir_coef_data *config); - -void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data); - -#if CONFIG_FORMAT_S16LE -void eq_fir_s16_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); - -void eq_fir_2x_s16_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S16LE */ - -#if CONFIG_FORMAT_S24LE -void eq_fir_s24_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); - -void eq_fir_2x_s24_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S24LE */ - -#if CONFIG_FORMAT_S32LE -void eq_fir_s32_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); - -void eq_fir_2x_s32_hifi3(struct fir_state_32x16 *fir, - const struct audio_stream *source, - struct audio_stream *sink, int frames, int nch); -#endif /* CONFIG_FORMAT_S32LE */ - -/* Setup circular buffer for FIR input data delay */ -static inline void fir_core_setup_circular(struct fir_state_32x16 *fir) + struct sof_fir_coef_data *config) { - AE_SETCBEGIN0(fir->delay); - AE_SETCEND0(fir->delay_end); + /* The length is taps plus two since the filter computes two + * samples per call. Length plus one would be minimum but the add + * must be even. The even length is needed for 64 bit loads from delay + * lines with 32 bit samples. + */ + fir->taps = (int)config->length; + fir->length = fir->taps + 2; + fir->out_shift = (int)config->out_shift; + fir->coef = (ae_f16x4 *)&config->coef[0]; + return 0; } -/* Setup circular for component buffer */ -static inline void fir_comp_setup_circular(const struct audio_stream *buffer) +void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data) { - AE_SETCBEGIN0(buffer->addr); - AE_SETCEND0(buffer->end_addr); + fir->delay = (ae_int32 *)*data; + fir->delay_end = fir->delay + fir->length; + fir->rwp = (ae_int32 *)(fir->delay + fir->length - 1); + *data += fir->length; /* Point to next delay line start */ } void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift, - int *rshift); - -/* The next functions are inlined to optmize execution speed */ + int *rshift) +{ + *lshift = (fir->out_shift < 0) ? -fir->out_shift : 0; + *rshift = (fir->out_shift > 0) ? fir->out_shift : 0; +} /* HiFi EP has the follow number of reqisters that should not be exceeded * 4x 56 bit registers in register file Q * 8x 48 bit registers in register file P */ -static inline void fir_32x16_hifi3(struct fir_state_32x16 *fir, ae_int32 x, - ae_int32 *y, int shift) +void fir_32x16_hifi3(struct fir_state_32x16 *fir, ae_int32 x, ae_int32 *y, + int shift) { /* This function uses * 1x 56 bit registers Q, @@ -170,9 +161,8 @@ static inline void fir_32x16_hifi3(struct fir_state_32x16 *fir, ae_int32 x, * 8x 48 bit registers in register file P */ -static inline void fir_32x16_2x_hifi3(struct fir_state_32x16 *fir, ae_int32 x0, - ae_int32 x1, ae_int32 *y0, ae_int32 *y1, - int shift) +void fir_32x16_2x_hifi3(struct fir_state_32x16 *fir, ae_int32 x0, ae_int32 x1, + ae_int32 *y0, ae_int32 *y1, int shift) { /* This function uses * 2x 56 bit registers Q, @@ -256,4 +246,3 @@ static inline void fir_32x16_2x_hifi3(struct fir_state_32x16 *fir, ae_int32 x0, } #endif -#endif /* __SOF_AUDIO_EQ_FIR_FIR_HIFI3_H__ */ diff --git a/tools/test/audio/process_test.m b/tools/test/audio/process_test.m index b96ef098c0cd..fd9055cae5fe 100644 --- a/tools/test/audio/process_test.m +++ b/tools/test/audio/process_test.m @@ -373,16 +373,10 @@ function test = test_run_process(test, t) switch lower(test.comp) - case 'eqiir' - test.ex = './eqiir_run.sh'; - case 'eqfir' - test.ex = './eqfir_run.sh'; - case 'dcblock' - test.ex = './dcblock_run.sh'; - case 'volume' - test.ex = './volume_run.sh'; - otherwise - error('Unknown component'); + case {'eqiir', 'eqfir', 'dcblock', 'volume', 'tdfb'} + test.ex = sprintf('./%s_run.sh', lower(test.comp)); + otherwise + error('Unknown component'); end test.arg = { num2str(test.bits_in) num2str(test.bits_out) ... diff --git a/tools/test/audio/tdfb_run.sh b/tools/test/audio/tdfb_run.sh new file mode 100755 index 000000000000..ad0e1174d38a --- /dev/null +++ b/tools/test/audio/tdfb_run.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2020 Intel Corporation. All rights reserved. + +usage () +{ + echo "Usage: $0 " + echo "Example: $0 16 16 48000 input.raw output.raw" +} + +main () +{ + local COMP DIRECTION + + if [ $# -ne 5 ]; then + usage "$0" + exit + fi + + COMP=tdfb + DIRECTION=playback + + ./comp_run.sh $COMP $DIRECTION "$1" "$2" "$3" "$3" "$4" "$5" +} + +main "$@" diff --git a/tools/test/audio/tdfb_test.m b/tools/test/audio/tdfb_test.m new file mode 100644 index 000000000000..73dfbab3bf0f --- /dev/null +++ b/tools/test/audio/tdfb_test.m @@ -0,0 +1,190 @@ +function tdfb_test() + +% General settings +cfg.delete_files = 1; +cfg.do_plots = 1; +cfg.tunepath = '../../tune/tdfb/data'; + +%% Prepare +addpath('std_utils'); +addpath('test_utils'); +addpath('../../tune/tdfb'); + +%% Beam pattern test 16 kHz +% Get configuration, this needs to match topology +config_fn = 'tdfb_coef_line2_50mm_az0el0deg_48khz.mat' +simcap_fn = 'simcap_sinerot_line2_50mm_az0el0deg_48khz.raw'; +test_beampattern(cfg, config_fn, simcap_fn); + +%% Diffuse noise test + +config_fn = 'tdfb_coef_line2_50mm_az0el0deg_48khz.mat' +simcap_fn = 'simcap_diffuse_line2_50mm_az0el0deg_48khz.raw'; +desc = 'Diffuse field noise'; +[dfin_dbfs, dfout_dbfs, dfd_db] = test_noise_suppression(cfg, config_fn, simcap_fn, desc); + +%% Random noise + +config_fn = 'tdfb_coef_line2_50mm_az0el0deg_48khz.mat' +simcap_fn = 'simcap_random_line2_50mm_az0el0deg_48khz.raw'; +desc = 'Random noise'; +[rnin_dbfs, rnout_dbfs, drn_db] = test_noise_suppression(cfg, config_fn, simcap_fn, desc); + +%% Results +fprintf(1, '\n'); +print_result('Diffuse field input level ', 'dBFS', dfin_dbfs); +print_result('Diffuse field output level', 'dBFS', dfout_dbfs); +print_result('Diffuse field level delta ', 'dB', dfd_db); +print_result('Random noise input level ', 'dBFS', rnin_dbfs); +print_result('Random noise output level ', 'dBFS', rnout_dbfs); +print_result('Random noise level delta ', 'dB', drn_db); + +end + +function test = test_defaults(bf) + +test.comp = 'tdfb'; +test.bits_in = 16; +test.bits_out = 16; +test.fs = bf.fs; +test.fmt = 'raw'; +test.nch = bf.num_output_channels; +test.ch = 1:test.nch; + +end + +function test = test_run_comp(test) + +switch lower(test.comp) + case {'tdfb'} + test.ex = sprintf('./%s_run.sh', lower(test.comp)); + otherwise + error('Illegal component'); +end + +test.arg = { num2str(test.bits_in) num2str(test.bits_out) ... + num2str(test.fs), test.fn_in, test.fn_out }; +delete_check(1, test.fn_out); +test = test_run(test); + +end + +function [ldb, az] = sinerot_dbfs(x, bf) + +az = bf.sinerot_az_start:bf.sinerot_az_step:bf.sinerot_az_stop; +nt = length(az); +tn = floor(bf.sinerot_t * bf.fs); +ldb = zeros(nt, bf.num_output_channels); +for i = 1:nt + ts = (i - 1) * bf.sinerot_t; + i1 = floor(ts * bf.fs + 1); + i2 = i1 + tn - 1; + ldb(i, :) = level_dbfs(x(i1:i2, :)); +end + +end + +%% Beam pattern test + +function test_beampattern(cfg, config_fn, simcap_fn); + +load(fullfile(cfg.tunepath, config_fn)); + +% Create input file +test = test_defaults(bf); +test.fn_in = fullfile(cfg.tunepath, simcap_fn); +test.fn_out = 'sinerot.raw'; + +% Run test +test = test_run_comp(test); + +% Load simulation output data +x = load_test_input(test); +y = load_test_output(test); +delete_check(cfg.delete_files, test.fn_out); +[rotx_dbfs, az] = sinerot_dbfs(x, bf); +[roty_dbfs, az] = sinerot_dbfs(y, bf); + +% Do plots +if cfg.do_plots + figure + plot(az, rotx_dbfs, '--', az, roty_dbfs, '-'); + grid on + xlabel('Azimuth angle (deg)'); + ylabel('Magnitude (dB)'); + legend('ch1 in','ch2 in', 'ch1 out', 'ch2 out'); + tstr = sprintf('Beam pattern %d Hz %s', bf.sinerot_f, bf.array_id); + title(tstr, 'Interpreter','none'); + + figure + ldb = roty_dbfs - 20*log10(bf.sinerot_a); + llin = 10.^(ldb/20); + az_rad = az * pi/180; + if exist('OCTAVE_VERSION', 'builtin') + polar(az_rad, llin); + else + polarplot(az_rad, llin); + end + legend('ch1','ch2'); + title(tstr, 'Interpreter','none'); +end + +end + +%% Noise suppression test + +function [x_dbfs, y_dbfs, delta_db] = test_noise_suppression(cfg, config_fn, simcap_fn, desc) + +load(fullfile(cfg.tunepath, config_fn)); + +% Create input file +test = test_defaults(bf); +fn_in = fullfile(cfg.tunepath, simcap_fn); +fn_out = 'noise_out.raw'; + +% Run test +test.fn_in = fn_in; +test.fn_out = fn_out; +test = test_run_comp(test); + +% Load simulation input data +x = load_test_input(test); +y = load_test_output(test); +delete_check(cfg.delete_files, test.fn_out); +x_dbfs = level_dbfs(x); +y_dbfs = level_dbfs(y); +delta_db = x_dbfs - y_dbfs; + +if cfg.do_plots + tstr = sprintf('%s %s', desc, bf.array_id); + figure; + subplot(2, 1, 1) + plot(x(:,1)); + hold on + plot(y(:,1)); + hold off + grid on; + legend('ch1 in','ch1 out'); + title(tstr, 'Interpreter','none'); + subplot(2, 1, 2); + plot(x(:,2)); + hold on + plot(y(:,2)); + hold off; + grid on; + legend('ch2 in','ch2 out'); +end + +end + +%% Print results table line + +function print_result(desc, unit, values) + +fprintf(1, "%s,", desc); +for v = values + fprintf(1, '%6.1f, ', v); +end +fprintf(1, "%s\n", unit); + +end diff --git a/tools/test/topology/test-capture.m4 b/tools/test/topology/test-capture.m4 index 068629f0d881..528f9a8562b5 100644 --- a/tools/test/topology/test-capture.m4 +++ b/tools/test/topology/test-capture.m4 @@ -20,6 +20,12 @@ include(`platform/intel/bxt.m4') DEBUG_START +# Apply a non-trivial filter blob IIR and FIR tests. TODO: Note that the +# PIPELINE_FILTERx notation will be updated in future for better flexibility. +ifelse(TEST_PIPE_NAME, `eq-iir', `define(PIPELINE_FILTER1, `eq_iir_coef_loudness.m4')') +ifelse(TEST_PIPE_NAME, `eq-fir', `define(PIPELINE_FILTER2, `eq_fir_coef_loudness.m4')') +ifelse(TEST_PIPE_NAME, `tdfb', `define(PIPELINE_FILTER1, `tdfb/coef_line2_50mm_pm90deg_48khz.m4')') + # # Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !! # diff --git a/tools/test/topology/test-playback.m4 b/tools/test/topology/test-playback.m4 index cb1b6f69a6b2..dbf426f60cd1 100644 --- a/tools/test/topology/test-playback.m4 +++ b/tools/test/topology/test-playback.m4 @@ -40,8 +40,9 @@ define(`upcase', `translit(`$*', `a-z', `A-Z')') # Apply a non-trivial filter blob IIR and FIR tests. TODO: Note that the # PIPELINE_FILTERx notation will be updated in future for better flexibility. -define(PIPELINE_FILTER1, ifelse(TEST_PIPE_NAME, `eq-iir', `eq_iir_coef_loudness.m4')) -define(PIPELINE_FILTER2, ifelse(TEST_PIPE_NAME, `eq-fir', `eq_fir_coef_loudness.m4')) +ifelse(TEST_PIPE_NAME, `eq-iir', `define(PIPELINE_FILTER1, `eq_iir_coef_loudness.m4')') +ifelse(TEST_PIPE_NAME, `eq-fir', `define(PIPELINE_FILTER2, `eq_fir_coef_loudness.m4')') +ifelse(TEST_PIPE_NAME, `tdfb', `define(PIPELINE_FILTER1, `tdfb/coef_line2_50mm_pm90deg_48khz.m4')') # Define TEST_HAS_PIPEn flags according to TEST_PIPE_AMOUNT. Those flags will be # used to determine whether PIPELINE_n should be added. diff --git a/tools/test/topology/tplg-build.sh b/tools/test/topology/tplg-build.sh index 3b45c751fcec..5c9dcb02b07a 100755 --- a/tools/test/topology/tplg-build.sh +++ b/tools/test/topology/tplg-build.sh @@ -227,7 +227,7 @@ done # for processing algorithms -ALG_SINGLE_MODE_TESTS=(asrc eq-fir eq-iir src dcblock) +ALG_SINGLE_MODE_TESTS=(asrc eq-fir eq-iir src dcblock tdfb) ALG_SINGLE_SIMPLE_TESTS=(test-capture test-playback) ALG_MULTI_MODE_TESTS=(crossover) ALG_MULTI_SIMPLE_TESTS=(test-playback) diff --git a/tools/testbench/include/testbench/common_test.h b/tools/testbench/include/testbench/common_test.h index 16dd24af6848..5744a84cb0a3 100644 --- a/tools/testbench/include/testbench/common_test.h +++ b/tools/testbench/include/testbench/common_test.h @@ -23,7 +23,7 @@ #define MAX_OUTPUT_FILE_NUM 4 /* number of widgets types supported in testbench */ -#define NUM_WIDGETS_SUPPORTED 8 +#define NUM_WIDGETS_SUPPORTED 9 struct testbench_prm { char *tplg_file; /* topology file to use */ diff --git a/tools/testbench/testbench.c b/tools/testbench/testbench.c index 6d04515eb548..9d3c79438ab2 100644 --- a/tools/testbench/testbench.c +++ b/tools/testbench/testbench.c @@ -27,6 +27,9 @@ DECLARE_SOF_TB_UUID("crossover", crossover_uuid, 0x948c9ad1, 0x806a, 0x4131, 0xad, 0x6c, 0xb2, 0xbd, 0xa9, 0xe3, 0x5a, 0x9f); +DECLARE_SOF_TB_UUID("tdfb", tdfb_uuid, 0xdd511749, 0xd9fa, 0x455c, + 0xb3, 0xa7, 0x13, 0x58, 0x56, 0x93, 0xf1, 0xaf); + #define TESTBENCH_NCH 2 /* Stereo */ /* shared library look up table */ @@ -38,7 +41,8 @@ struct shared_lib_table lib_table[NUM_WIDGETS_SUPPORTED] = { {"eq-fir", "libsof_eq-fir.so", SOF_COMP_EQ_FIR, NULL, 0, NULL}, {"eq-iir", "libsof_eq-iir.so", SOF_COMP_EQ_IIR, NULL, 0, NULL}, {"dcblock", "libsof_dcblock.so", SOF_COMP_DCBLOCK, NULL, 0, NULL}, - {"crossover", "libsof_crossover.so", SOF_COMP_NONE, SOF_TB_UUID(crossover_uuid), 0, NULL} + {"crossover", "libsof_crossover.so", SOF_COMP_NONE, SOF_TB_UUID(crossover_uuid), 0, NULL}, + {"tdfb", "libsof_tdfb.so", SOF_COMP_NONE, SOF_TB_UUID(tdfb_uuid), 0, NULL}, }; /* main firmware context */ diff --git a/tools/testbench/topology.c b/tools/testbench/topology.c index fd08b18a12f5..63574564d436 100644 --- a/tools/testbench/topology.c +++ b/tools/testbench/topology.c @@ -64,7 +64,7 @@ void register_comp(int comp_type, struct sof_ipc_comp_ext *comp_ext) /* get index of comp in shared library table */ index = get_index_by_type(comp_type, lib_table); - if (index == SOF_COMP_NONE && comp_ext) { + if (comp_type == SOF_COMP_NONE && comp_ext) { index = get_index_by_uuid(comp_ext, lib_table); if (index < 0) return; diff --git a/tools/topology/CMakeLists.txt b/tools/topology/CMakeLists.txt index 5a341e5a7e7f..530f477ebc9d 100644 --- a/tools/topology/CMakeLists.txt +++ b/tools/topology/CMakeLists.txt @@ -27,6 +27,7 @@ set(TPLGS "sof-hda-generic\;sof-hda-generic-4ch\;-DCHANNELS=4\;-DPPROC=volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" "sof-hda-generic\;sof-hda-generic-eq-2ch\;-DCHANNELS=2\;-DPPROC=eq-iir-eq-fir-volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" "sof-hda-generic\;sof-hda-generic-eq-4ch\;-DCHANNELS=4\;-DPPROC=eq-iir-eq-fir-volume\;-DDMICPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER1=eq_iir_coef_highpass_40hz_20db_16khz.m4" + "sof-hda-generic\;sof-hda-generic-tdfb_50mm-2ch\;-DCHANNELS=2\;-DPPROC=volume\;-DDMIC16KPROC=tdfb-eq-iir-volume\;-DDMIC16KPROC_FILTER1=tdfb/coef_line2_50mm_pm10deg_16khz.m4\;-DDMICPROC=tdfb-eq-iir-volume\;-DDMICPROC_FILTER1=tdfb/coef_line2_50mm_pm10deg_48khz.m4\;-DDMICPROC_FILTER2=eq_iir_coef_highpass_40hz_20db_48khz.m4\;-DDMIC16KPROC_FILTER2=eq_iir_coef_highpass_40hz_20db_16khz.m4" "sof-hda-generic-kwd\;sof-hda-generic-2ch-kwd\;-DCHANNELS=2" "sof-hda-generic-kwd\;sof-hda-generic-4ch-kwd\;-DCHANNELS=4" "sof-hda-generic-idisp\;sof-hda-generic-idisp\;-DCHANNELS=0" @@ -68,6 +69,7 @@ set(TPLGS "sof-apl-pcm512x\;sof-apl-pcm512x\;-DFSYNC=48000" "sof-apl-pcm512x\;sof-apl-pcm512x-master\;-DCODEC_MASTER\;-DFSYNC=48000" "sof-apl-pcm512x\;sof-apl-pcm512x-master-44100\;-DCODEC_MASTER\;-DFSYNC=44100" + "sof-apl-pcm512x\;sof-apl-pcm512x-tdfb_28mm-4ch\;-DFSYNC=48000\;-DCHANNELS=4\;-DDMIC16KPROC=tdfb-eq-iir-volume\;-DDMIC16KPROC_FILTER1=tdfb/coef_line4_28mm_pm10deg_16khz.m4\;-DDMICPROC=tdfb-eq-iir-volume\;-DDMICPROC_FILTER1=tdfb/coef_line4_28mm_pm10deg_48khz.m4" "sof-apl-pcm512x-nohdmi\;sof-apl-pcm512x-nohdmi\;-DPPROC=volume" "sof-apl-demux-pcm512x\;sof-apl-demux-pcm512x" "sof-apl-rt298\;sof-apl-rt298" @@ -103,12 +105,12 @@ set(TPLGS "sof-apl-asrc-wm8804\;sof-apl-asrc-wm8804" "sof-apl-asrc-pcm512x\;sof-apl-asrc-pcm512x" "sof-apl-src-pcm512x\;sof-apl-src-pcm512x" - "sof-cml-rt5682\;sof-cml-rt5682\;-DPLATFORM=cml" - "sof-cml-rt5682\;sof-cml-eq-fir-rt5682\;-DPLATFORM=cml\;-DHSMICPROC=eq-fir-volume" - "sof-cml-rt5682\;sof-cml-eq-fir-loud-rt5682\;-DPLATFORM=cml\;-DHSEARPROC=eq-iir-volume\;-DPIPELINE_FILTER1=eq_iir_coef_loudness.m4\;-DHSMICPROC=eq-fir-volume\;-DPIPELINE_FILTER2=eq_fir_coef_loudness.m4" - "sof-cml-rt5682\;sof-cml-eq-iir-rt5682\;-DPLATFORM=cml\;-DHSEARPROC=eq-iir-volume" - "sof-cml-rt5682\;sof-whl-rt5682\;-DPLATFORM=whl" - "sof-cml-rt5682\;sof-icl-rt5682\;-DPLATFORM=icl" + "sof-cml-rt5682\;sof-cml-rt5682\;-DPLATFORM=cml\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-cml-eq-fir-rt5682\;-DPLATFORM=cml\;-DHSMICPROC=eq-fir-volume\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-cml-eq-fir-loud-rt5682\;-DPLATFORM=cml\;-DHSEARPROC=eq-iir-volume\;-DPIPELINE_FILTER1=eq_iir_coef_loudness.m4\;-DHSMICPROC=eq-fir-volume\;-DPIPELINE_FILTER2=eq_fir_coef_loudness.m4\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-cml-eq-iir-rt5682\;-DPLATFORM=cml\;-DHSEARPROC=eq-iir-volume\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-whl-rt5682\;-DPLATFORM=whl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" + "sof-cml-rt5682\;sof-icl-rt5682\;-DPLATFORM=icl\;-DDMICPROC=eq-iir-volume\;-DDMIC16KPROC=eq-iir-volume" "sof-cml-rt5682-kwd\;sof-cml-rt5682-kwd\;-DPLATFORM=cml" "sof-cml-rt5682-kwd\;sof-whl-rt5682-kwd\;-DPLATFORM=whl" "sof-cml-rt5682-kwd\;sof-icl-rt5682-kwd\;-DPLATFORM=icl" @@ -204,4 +206,4 @@ foreach(tplg ${TPLGS}) add_dependencies(topologies topology_${output}) endforeach() -add_subdirectory(development) \ No newline at end of file +add_subdirectory(development) diff --git a/tools/topology/m4/tdfb.m4 b/tools/topology/m4/tdfb.m4 new file mode 100644 index 000000000000..8a375083fb12 --- /dev/null +++ b/tools/topology/m4/tdfb.m4 @@ -0,0 +1,65 @@ +divert(-1) + +dnl Define macro for TDFB (time domain fixed beamformer) widget +DECLARE_SOF_RT_UUID("tdfb", tdfb_uuid, 0xdd511749, 0xd9fa, 0x455c, + 0xb3, 0xa7, 0x13, 0x58, 0x56, 0x93, 0xf1, 0xaf) + +dnl TDFB(name) +define(`N_TDFB', `TDFB'PIPELINE_ID`.'$1) + +dnl W_TDFB(name, format, periods_sink, periods_source, core, kcontrols_list) +define(`W_TDFB', +`SectionVendorTuples."'N_TDFB($1)`_tuples_uuid" {' +` tokens "sof_comp_tokens"' +` tuples."uuid" {' +` SOF_TKN_COMP_UUID' STR(tdfb_uuid) +` }' +`}' +`SectionData."'N_TDFB($1)`_data_uuid" {' +` tuples "'N_TDFB($1)`_tuples_uuid"' +`}' +`SectionVendorTuples."'N_TDFB($1)`_tuples_w" {' +` tokens "sof_comp_tokens"' +` tuples."word" {' +` SOF_TKN_COMP_PERIOD_SINK_COUNT' STR($3) +` SOF_TKN_COMP_PERIOD_SOURCE_COUNT' STR($4) +` SOF_TKN_COMP_CORE_ID' STR($5) +` }' +`}' +`SectionData."'N_TDFB($1)`_data_w" {' +` tuples "'N_TDFB($1)`_tuples_w"' +`}' +`SectionVendorTuples."'N_TDFB($1)`_tuples_str" {' +` tokens "sof_comp_tokens"' +` tuples."string" {' +` SOF_TKN_COMP_FORMAT' STR($2) +` }' +`}' +`SectionData."'N_TDFB($1)`_data_str" {' +` tuples "'N_TDFB($1)`_tuples_str"' +`}' +`SectionVendorTuples."'N_TDFB($1)`_tuples_str_type" {' +` tokens "sof_process_tokens"' +` tuples."string" {' +` SOF_TKN_PROCESS_TYPE' "TDFB" +` }' +`}' +`SectionData."'N_TDFB($1)`_data_str_type" {' +` tuples "'N_TDFB($1)`_tuples_str_type"' +`}' +`SectionWidget."'N_TDFB($1)`" {' +` index "'PIPELINE_ID`"' +` type "effect"' +` no_pm "true"' +` data [' +` "'N_TDFB($1)`_data_uuid"' +` "'N_TDFB($1)`_data_w"' +` "'N_TDFB($1)`_data_str"' +` "'N_TDFB($1)`_data_str_type"' +` ]' +` bytes [' + $6 +` ]' +`}') + +divert(0)dnl diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_16khz.m4 new file mode 100644 index 000000000000..b742a2d5613e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xd9,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xd9,0x7f,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_48khz.m4 new file mode 100644 index 000000000000..b742a2d5613e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xd9,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xd9,0x7f,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_16khz.m4 new file mode 100644 index 000000000000..0f9c0792ebc1 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfc,0xff,0xfa,0xff,0xf6,0xff,0xf2,0xff,' +` 0xeb,0xff,0xe4,0xff,0xd8,0xff,0xce,0xff,' +` 0xba,0xff,0xae,0xff,0x90,0xff,0x83,0xff,' +` 0x5a,0xff,0x4b,0xff,0x04,0xff,0x02,0xff,' +` 0xb6,0xfe,0xd8,0xfe,0x67,0xfe,0xe8,0xfe,' +` 0x62,0xfd,0x56,0xfc,0xfb,0xfe,0x7c,0xfe,' +` 0x00,0xff,0xf4,0xfe,0x54,0xff,0x7c,0xff,' +` 0xd9,0x7f,0x83,0x00,0xa9,0x00,0x04,0x01,' +` 0xf7,0x00,0x72,0x01,0xf6,0x00,0x6c,0x03,' +` 0x6c,0x02,0x00,0x01,0x72,0x01,0x09,0x01,' +` 0x23,0x01,0xdd,0x00,0xd9,0x00,0x9a,0x00,' +` 0x8b,0x00,0x67,0x00,0x5b,0x00,0x42,0x00,' +` 0x37,0x00,0x26,0x00,0x1e,0x00,0x14,0x00,' +` 0x0f,0x00,0x09,0x00,0x07,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x04,0x00,0x01,0x00,0x0b,0x00,' +` 0x02,0x00,0x1b,0x00,0x03,0x00,0x36,0x00,' +` 0x03,0x00,0x65,0x00,0x02,0x00,0xad,0x00,' +` 0xfb,0xff,0x14,0x01,0xe8,0xff,0xab,0x01,' +` 0xd3,0xff,0x6e,0x02,0x80,0xff,0x51,0x03,' +` 0xeb,0xfe,0x50,0x04,0xbd,0xff,0x37,0x07,' +` 0xf7,0xfa,0x25,0x09,0xa9,0xf6,0x93,0x0f,' +` 0x5a,0xe8,0xd1,0x41,0xb2,0x5f,0x18,0xe4,' +` 0xcb,0x0e,0x51,0xf4,0xb6,0x06,0xa3,0xf8,' +` 0x29,0x03,0x2a,0xf8,0xda,0x01,0xf8,0xfb,' +` 0xe9,0x00,0x0d,0xfd,0x63,0x00,0xe7,0xfd,' +` 0x26,0x00,0xa3,0xfe,0x11,0x00,0x20,0xff,' +` 0x03,0x00,0x79,0xff,0xfe,0xff,0xb4,0xff,' +` 0xfd,0xff,0xd9,0xff,0xfe,0xff,0xee,0xff,' +` 0xff,0xff,0xf9,0xff,0x00,0x00,0xfe,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_48khz.m4 new file mode 100644 index 000000000000..ba317f594014 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,' +` 0xfa,0xff,0xe8,0xff,0xd2,0xff,0xd6,0xff,' +` 0xee,0xff,0xe8,0xff,0xe5,0xff,0xdf,0xff,' +` 0xdb,0xff,0xd6,0xff,0xd2,0xff,0xce,0xff,' +` 0xcb,0xff,0xc8,0xff,0xc7,0xff,0xc6,0xff,' +` 0xc6,0xff,0xc7,0xff,0xca,0xff,0xcd,0xff,' +` 0xd2,0xff,0xd7,0xff,0xe1,0xff,0xf1,0xff,' +` 0xd9,0x7f,0x0f,0x00,0x1e,0x00,0x28,0x00,' +` 0x2c,0x00,0x30,0x00,0x33,0x00,0x35,0x00,' +` 0x35,0x00,0x35,0x00,0x34,0x00,0x32,0x00,' +` 0x2f,0x00,0x2c,0x00,0x27,0x00,0x24,0x00,' +` 0x1f,0x00,0x1b,0x00,0x16,0x00,0x14,0x00,' +` 0x0e,0x00,0x20,0x00,0x23,0x00,0x12,0x00,' +` 0x05,0x00,0x04,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x00,0x00,0x04,0x00,0xff,0xff,' +` 0x09,0x00,0xfd,0xff,0x21,0x00,0x10,0x00,' +` 0x34,0x00,0xea,0xff,0x43,0x00,0xd8,0xff,' +` 0x6b,0x00,0xb7,0xff,0xa6,0x00,0x82,0xff,' +` 0xf9,0x00,0x2e,0xff,0x6d,0x01,0xae,0xfe,' +` 0x13,0x02,0xe5,0xfd,0x11,0x03,0x99,0xfc,' +` 0xcb,0x04,0x0d,0xfa,0xc8,0x08,0x40,0xf2,' +` 0x27,0x20,0x54,0x76,0x00,0xeb,0x3c,0x0b,' +` 0x28,0xf8,0x81,0x05,0x61,0xfb,0x51,0x03,' +` 0xe8,0xfc,0x1f,0x02,0xd6,0xfd,0x5e,0x01,' +` 0x78,0xfe,0xde,0x00,0xed,0xfe,0x88,0x00,' +` 0x44,0xff,0x4f,0x00,0x84,0xff,0x2b,0x00,' +` 0xb2,0xff,0x14,0x00,0xb0,0xff,0xea,0xff,' +` 0xdb,0xff,0x06,0x00,0xf2,0xff,0x02,0x00,' +` 0xfa,0xff,0x01,0x00,0xfe,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_16khz.m4 new file mode 100644 index 000000000000..6f9c06eb9fc6 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfd,0xff,0xfb,0xff,' +` 0xf7,0xff,0xf1,0xff,0xe9,0xff,0xde,0xff,' +` 0xd0,0xff,0xbd,0xff,0xa5,0xff,0x87,0xff,' +` 0x62,0xff,0x38,0xff,0x05,0xff,0xce,0xfe,' +` 0x88,0xfe,0x39,0xfe,0xe1,0xfd,0x89,0xfd,' +` 0x36,0xfd,0xfd,0xfc,0xb8,0xfc,0xa9,0xfc,' +` 0xf4,0xf9,0xc2,0xf8,0x24,0xfc,0x12,0xfd,' +` 0x48,0xfd,0xc9,0xfd,0x4a,0xfe,0x1f,0xff,' +` 0xd9,0x7f,0xde,0x00,0xad,0x01,0x27,0x02,' +` 0x9e,0x02,0xca,0x02,0xa4,0x03,0xc3,0x06,' +` 0x96,0x05,0x0e,0x03,0xf8,0x02,0xb1,0x02,' +` 0x77,0x02,0x27,0x02,0xd4,0x01,0x83,0x01,' +` 0x3b,0x01,0xfd,0x00,0xcc,0x00,0xa0,0x00,' +` 0x7c,0x00,0x5d,0x00,0x45,0x00,0x31,0x00,' +` 0x22,0x00,0x17,0x00,0x0f,0x00,0x09,0x00,' +` 0x05,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x05,0x00,0x09,0x00,0x0f,0x00,' +` 0x17,0x00,0x23,0x00,0x30,0x00,0x46,0x00,' +` 0x5b,0x00,0x7e,0x00,0x9d,0x00,0xd0,0x00,' +` 0xf7,0x00,0x42,0x01,0x7a,0x01,0xe0,0x01,' +` 0x18,0x02,0x8a,0x02,0x9b,0x02,0x14,0x03,' +` 0xea,0x02,0xb5,0x05,0x99,0x06,0xef,0x03,' +` 0x79,0x02,0x0b,0x03,0x95,0x01,0x93,0x02,' +` 0x16,0xff,0xd1,0x7f,0xff,0x00,0x63,0xfd,' +` 0x63,0xfe,0xdc,0xfc,0x67,0xfd,0xeb,0xfb,' +` 0x02,0xf9,0xbc,0xf9,0xcb,0xfc,0x9b,0xfc,' +` 0x16,0xfd,0x22,0xfd,0x9a,0xfd,0xd3,0xfd,' +` 0x44,0xfe,0x7f,0xfe,0xd4,0xfe,0x00,0xff,' +` 0x3c,0xff,0x5f,0xff,0x89,0xff,0xa3,0xff,' +` 0xbe,0xff,0xcf,0xff,0xdf,0xff,0xe9,0xff,' +` 0xf2,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_48khz.m4 new file mode 100644 index 000000000000..f85abb44b77d --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfa,0xff,0xf8,0xff,0xef,0xff,' +` 0xdd,0xff,0xd5,0xff,0xc4,0xff,0xb8,0xff,' +` 0x9c,0xff,0xad,0xff,0xc5,0xff,0xb1,0xff,' +` 0xac,0xff,0x9d,0xff,0x96,0xff,0x8a,0xff,' +` 0x85,0xff,0x7d,0xff,0x7b,0xff,0x77,0xff,' +` 0x79,0xff,0x7b,0xff,0x82,0xff,0x90,0xff,' +` 0xa3,0xff,0xb8,0xff,0xcf,0xff,0xe7,0xff,' +` 0xd9,0x7f,0x19,0x00,0x30,0x00,0x46,0x00,' +` 0x59,0x00,0x6b,0x00,0x77,0x00,0x7c,0x00,' +` 0x7d,0x00,0x7d,0x00,0x79,0x00,0x75,0x00,' +` 0x6d,0x00,0x67,0x00,0x5b,0x00,0x54,0x00,' +` 0x47,0x00,0x41,0x00,0x30,0x00,0x42,0x00,' +` 0x4e,0x00,0x38,0x00,0x2d,0x00,0x1f,0x00,' +` 0x19,0x00,0x0c,0x00,0x05,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x01,0x00,0x02,0x00,0x04,0x00,0x0c,0x00,' +` 0x0e,0x00,0x19,0x00,0x1c,0x00,0x31,0x00,' +` 0x23,0x00,0x26,0x00,0x20,0x00,0x3e,0x00,' +` 0x27,0x00,0x5a,0x00,0x2c,0x00,0x7a,0x00,' +` 0x28,0x00,0xa0,0x00,0x15,0x00,0xcd,0x00,' +` 0xe9,0xff,0x0b,0x01,0x8b,0xff,0x6d,0x01,' +` 0xb1,0xfe,0x9f,0x02,0x20,0xfb,0xda,0x7b,' +` 0x98,0x05,0x01,0xfd,0x92,0x01,0x40,0xfe,' +` 0x9d,0x00,0x99,0xfe,0x24,0x00,0xce,0xfe,' +` 0xe2,0xff,0xf7,0xfe,0xbc,0xff,0x1d,0xff,' +` 0xab,0xff,0x43,0xff,0xa8,0xff,0x6a,0xff,' +` 0xae,0xff,0x93,0xff,0x9b,0xff,0x58,0xff,' +` 0x98,0xff,0x93,0xff,0xbc,0xff,0xbc,0xff,' +` 0xe2,0xff,0xee,0xff,0xf5,0xff,0xf6,0xff,' +` 0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_16khz.m4 new file mode 100644 index 000000000000..25138ae61b40 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfb,0xff,0xf6,0xff,' +` 0xee,0xff,0xe3,0xff,0xd2,0xff,0xbd,0xff,' +` 0x9f,0xff,0x7b,0xff,0x49,0xff,0x11,0xff,' +` 0xc7,0xfe,0x78,0xfe,0x08,0xfe,0x9d,0xfd,' +` 0x0c,0xfd,0x8f,0xfc,0xe0,0xfb,0x69,0xfb,' +` 0xa7,0xfa,0x67,0xfa,0x2f,0xf9,0x7b,0xf6,' +` 0x02,0xf6,0x14,0xf6,0xa0,0xf5,0x32,0xf8,' +` 0x53,0xfb,0xeb,0xfb,0x63,0xfd,0x96,0xfe,' +` 0xd9,0x7f,0x67,0x01,0x90,0x02,0xf8,0x03,' +` 0x80,0x04,0x70,0x07,0xc9,0x09,0x44,0x09,' +` 0x3c,0x09,0xb4,0x08,0x2a,0x06,0x01,0x05,' +` 0xba,0x04,0x02,0x04,0x8e,0x03,0xed,0x02,' +` 0x7a,0x02,0xf9,0x01,0x99,0x01,0x39,0x01,' +` 0xf5,0x00,0xb7,0x00,0x89,0x00,0x61,0x00,' +` 0x45,0x00,0x2e,0x00,0x1e,0x00,0x12,0x00,' +` 0x0a,0x00,0x05,0x00,0x02,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,' +` 0x05,0x00,0x0c,0x00,0x10,0x00,0x23,0x00,' +` 0x27,0x00,0x52,0x00,0x53,0x00,0xa4,0x00,' +` 0x99,0x00,0x2a,0x01,0x06,0x01,0xf7,0x01,' +` 0x99,0x01,0x0e,0x03,0x45,0x02,0x68,0x04,' +` 0xeb,0x02,0xdb,0x05,0x37,0x04,0x5b,0x0a,' +` 0x33,0x05,0x47,0x0c,0xeb,0x03,0xde,0x0b,' +` 0xb1,0xfb,0x69,0x0f,0x1f,0xee,0x30,0x34,' +` 0x50,0x68,0xd4,0xe3,0xe0,0x0b,0x25,0xf1,' +` 0x55,0x02,0x30,0xf0,0xfb,0xf9,0x32,0xf1,' +` 0x66,0xf8,0x5c,0xf3,0x89,0xfb,0x91,0xf7,' +` 0xc7,0xfb,0x5a,0xf9,0x78,0xfc,0x10,0xfb,' +` 0x52,0xfd,0x8e,0xfc,0x21,0xfe,0xbf,0xfd,' +` 0xc5,0xfe,0x98,0xfe,0x3e,0xff,0x30,0xff,' +` 0x92,0xff,0x92,0xff,0xc9,0xff,0xcd,0xff,' +` 0xe8,0xff,0xec,0xff,0xf7,0xff,0xfa,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_48khz.m4 new file mode 100644 index 000000000000..b21da7587ae6 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfb,0xff,' +` 0xf6,0xff,0xf0,0xff,0xe8,0xff,0xde,0xff,' +` 0xd0,0xff,0xc0,0xff,0xab,0xff,0x95,0xff,' +` 0x77,0xff,0x5d,0xff,0x36,0xff,0x1a,0xff,' +` 0xe3,0xfe,0x05,0xff,0x3f,0xff,0x1d,0xff,' +` 0x1e,0xff,0x0e,0xff,0x13,0xff,0x0f,0xff,' +` 0x1c,0xff,0x26,0xff,0x3c,0xff,0x52,0xff,' +` 0x71,0xff,0x8f,0xff,0xb4,0xff,0xd9,0xff,' +` 0xd9,0x7f,0x26,0x00,0x4a,0x00,0x6d,0x00,' +` 0x8a,0x00,0xa6,0x00,0xb9,0x00,0xcc,0x00,' +` 0xd2,0x00,0xdc,0x00,0xd7,0x00,0xd8,0x00,' +` 0xc8,0x00,0xc6,0x00,0xa6,0x00,0xd5,0x00,' +` 0xef,0x00,0xbe,0x00,0xa5,0x00,0x82,0x00,' +` 0x6b,0x00,0x52,0x00,0x40,0x00,0x2f,0x00,' +` 0x22,0x00,0x17,0x00,0x10,0x00,0x0a,0x00,' +` 0x06,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x05,0x00,0x09,0x00,0x0e,0x00,' +` 0x15,0x00,0x1f,0x00,0x29,0x00,0x3a,0x00,' +` 0x39,0x00,0x33,0x00,0x40,0x00,0x49,0x00,' +` 0x53,0x00,0x5d,0x00,0x62,0x00,0x6c,0x00,' +` 0x66,0x00,0x6f,0x00,0x5a,0x00,0x66,0x00,' +` 0x36,0x00,0x57,0x00,0xd5,0xff,0x60,0x68,' +` 0x31,0x00,0x8f,0xff,0xb1,0xff,0x55,0xff,' +` 0x55,0xff,0x0e,0xff,0x03,0xff,0xcd,0xfe,' +` 0xbf,0xfe,0x9b,0xfe,0x8f,0xfe,0x82,0xfe,' +` 0x74,0xfe,0x8d,0xfe,0x07,0xfe,0x8d,0xfd,' +` 0xe4,0xfd,0xf9,0xfd,0x3d,0xfe,0x60,0xfe,' +` 0x9e,0xfe,0xc4,0xfe,0xfa,0xfe,0x1e,0xff,' +` 0x4b,0xff,0x69,0xff,0x8c,0xff,0xa1,0xff,' +` 0xc6,0xff,0xde,0xff,0xe6,0xff,0xef,0xff,' +` 0xf4,0xff,0xf9,0xff,0xfc,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_16khz.m4 new file mode 100644 index 000000000000..c6f9b9acb2bc --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,' +` 0x01,0x00,0x0b,0x00,0x02,0x00,0x1b,0x00,' +` 0x03,0x00,0x36,0x00,0x03,0x00,0x65,0x00,' +` 0x02,0x00,0xad,0x00,0xfb,0xff,0x14,0x01,' +` 0xe8,0xff,0xab,0x01,0xd3,0xff,0x6e,0x02,' +` 0x80,0xff,0x51,0x03,0xeb,0xfe,0x50,0x04,' +` 0xbd,0xff,0x37,0x07,0xf7,0xfa,0x25,0x09,' +` 0xa9,0xf6,0x93,0x0f,0x5a,0xe8,0xd1,0x41,' +` 0xb2,0x5f,0x18,0xe4,0xcb,0x0e,0x51,0xf4,' +` 0xb6,0x06,0xa3,0xf8,0x29,0x03,0x2a,0xf8,' +` 0xda,0x01,0xf8,0xfb,0xe9,0x00,0x0d,0xfd,' +` 0x63,0x00,0xe7,0xfd,0x26,0x00,0xa3,0xfe,' +` 0x11,0x00,0x20,0xff,0x03,0x00,0x79,0xff,' +` 0xfe,0xff,0xb4,0xff,0xfd,0xff,0xd9,0xff,' +` 0xfe,0xff,0xee,0xff,0xff,0xff,0xf9,0xff,' +` 0x00,0x00,0xfe,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,' +` 0xf6,0xff,0xf2,0xff,0xeb,0xff,0xe4,0xff,' +` 0xd8,0xff,0xce,0xff,0xba,0xff,0xae,0xff,' +` 0x90,0xff,0x83,0xff,0x5a,0xff,0x4b,0xff,' +` 0x04,0xff,0x02,0xff,0xb6,0xfe,0xd8,0xfe,' +` 0x67,0xfe,0xe8,0xfe,0x62,0xfd,0x56,0xfc,' +` 0xfb,0xfe,0x7c,0xfe,0x00,0xff,0xf4,0xfe,' +` 0x54,0xff,0x7c,0xff,0xd9,0x7f,0x83,0x00,' +` 0xa9,0x00,0x04,0x01,0xf7,0x00,0x72,0x01,' +` 0xf6,0x00,0x6c,0x03,0x6c,0x02,0x00,0x01,' +` 0x72,0x01,0x09,0x01,0x23,0x01,0xdd,0x00,' +` 0xd9,0x00,0x9a,0x00,0x8b,0x00,0x67,0x00,' +` 0x5b,0x00,0x42,0x00,0x37,0x00,0x26,0x00,' +` 0x1e,0x00,0x14,0x00,0x0f,0x00,0x09,0x00,' +` 0x07,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_48khz.m4 new file mode 100644 index 000000000000..2bd1309130c9 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,' +` 0x04,0x00,0xff,0xff,0x09,0x00,0xfd,0xff,' +` 0x21,0x00,0x10,0x00,0x34,0x00,0xea,0xff,' +` 0x43,0x00,0xd8,0xff,0x6b,0x00,0xb7,0xff,' +` 0xa6,0x00,0x82,0xff,0xf9,0x00,0x2e,0xff,' +` 0x6d,0x01,0xae,0xfe,0x13,0x02,0xe5,0xfd,' +` 0x11,0x03,0x99,0xfc,0xcb,0x04,0x0d,0xfa,' +` 0xc8,0x08,0x40,0xf2,0x27,0x20,0x54,0x76,' +` 0x00,0xeb,0x3c,0x0b,0x28,0xf8,0x81,0x05,' +` 0x61,0xfb,0x51,0x03,0xe8,0xfc,0x1f,0x02,' +` 0xd6,0xfd,0x5e,0x01,0x78,0xfe,0xde,0x00,' +` 0xed,0xfe,0x88,0x00,0x44,0xff,0x4f,0x00,' +` 0x84,0xff,0x2b,0x00,0xb2,0xff,0x14,0x00,' +` 0xb0,0xff,0xea,0xff,0xdb,0xff,0x06,0x00,' +` 0xf2,0xff,0x02,0x00,0xfa,0xff,0x01,0x00,' +` 0xfe,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfe,0xff,' +` 0xfc,0xff,0xfb,0xff,0xfa,0xff,0xe8,0xff,' +` 0xd2,0xff,0xd6,0xff,0xee,0xff,0xe8,0xff,' +` 0xe5,0xff,0xdf,0xff,0xdb,0xff,0xd6,0xff,' +` 0xd2,0xff,0xce,0xff,0xcb,0xff,0xc8,0xff,' +` 0xc7,0xff,0xc6,0xff,0xc6,0xff,0xc7,0xff,' +` 0xca,0xff,0xcd,0xff,0xd2,0xff,0xd7,0xff,' +` 0xe1,0xff,0xf1,0xff,0xd9,0x7f,0x0f,0x00,' +` 0x1e,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,' +` 0x33,0x00,0x35,0x00,0x35,0x00,0x35,0x00,' +` 0x34,0x00,0x32,0x00,0x2f,0x00,0x2c,0x00,' +` 0x27,0x00,0x24,0x00,0x1f,0x00,0x1b,0x00,' +` 0x16,0x00,0x14,0x00,0x0e,0x00,0x20,0x00,' +` 0x23,0x00,0x12,0x00,0x05,0x00,0x04,0x00,' +` 0x02,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_16khz.m4 new file mode 100644 index 000000000000..4f2240708734 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,' +` 0x09,0x00,0x0f,0x00,0x17,0x00,0x23,0x00,' +` 0x30,0x00,0x46,0x00,0x5b,0x00,0x7e,0x00,' +` 0x9d,0x00,0xd0,0x00,0xf7,0x00,0x42,0x01,' +` 0x7a,0x01,0xe0,0x01,0x18,0x02,0x8a,0x02,' +` 0x9b,0x02,0x14,0x03,0xea,0x02,0xb5,0x05,' +` 0x99,0x06,0xef,0x03,0x79,0x02,0x0b,0x03,' +` 0x95,0x01,0x93,0x02,0x16,0xff,0xd1,0x7f,' +` 0xff,0x00,0x63,0xfd,0x63,0xfe,0xdc,0xfc,' +` 0x67,0xfd,0xeb,0xfb,0x02,0xf9,0xbc,0xf9,' +` 0xcb,0xfc,0x9b,0xfc,0x16,0xfd,0x22,0xfd,' +` 0x9a,0xfd,0xd3,0xfd,0x44,0xfe,0x7f,0xfe,' +` 0xd4,0xfe,0x00,0xff,0x3c,0xff,0x5f,0xff,' +` 0x89,0xff,0xa3,0xff,0xbe,0xff,0xcf,0xff,' +` 0xdf,0xff,0xe9,0xff,0xf2,0xff,0xf7,0xff,' +` 0xfb,0xff,0xfd,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfd,0xff,0xfb,0xff,0xf7,0xff,0xf1,0xff,' +` 0xe9,0xff,0xde,0xff,0xd0,0xff,0xbd,0xff,' +` 0xa5,0xff,0x87,0xff,0x62,0xff,0x38,0xff,' +` 0x05,0xff,0xce,0xfe,0x88,0xfe,0x39,0xfe,' +` 0xe1,0xfd,0x89,0xfd,0x36,0xfd,0xfd,0xfc,' +` 0xb8,0xfc,0xa9,0xfc,0xf4,0xf9,0xc2,0xf8,' +` 0x24,0xfc,0x12,0xfd,0x48,0xfd,0xc9,0xfd,' +` 0x4a,0xfe,0x1f,0xff,0xd9,0x7f,0xde,0x00,' +` 0xad,0x01,0x27,0x02,0x9e,0x02,0xca,0x02,' +` 0xa4,0x03,0xc3,0x06,0x96,0x05,0x0e,0x03,' +` 0xf8,0x02,0xb1,0x02,0x77,0x02,0x27,0x02,' +` 0xd4,0x01,0x83,0x01,0x3b,0x01,0xfd,0x00,' +` 0xcc,0x00,0xa0,0x00,0x7c,0x00,0x5d,0x00,' +` 0x45,0x00,0x31,0x00,0x22,0x00,0x17,0x00,' +` 0x0f,0x00,0x09,0x00,0x05,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_48khz.m4 new file mode 100644 index 000000000000..085ab0acbecb --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x00,' +` 0x04,0x00,0x0c,0x00,0x0e,0x00,0x19,0x00,' +` 0x1c,0x00,0x31,0x00,0x23,0x00,0x26,0x00,' +` 0x20,0x00,0x3e,0x00,0x27,0x00,0x5a,0x00,' +` 0x2c,0x00,0x7a,0x00,0x28,0x00,0xa0,0x00,' +` 0x15,0x00,0xcd,0x00,0xe9,0xff,0x0b,0x01,' +` 0x8b,0xff,0x6d,0x01,0xb1,0xfe,0x9f,0x02,' +` 0x20,0xfb,0xda,0x7b,0x98,0x05,0x01,0xfd,' +` 0x92,0x01,0x40,0xfe,0x9d,0x00,0x99,0xfe,' +` 0x24,0x00,0xce,0xfe,0xe2,0xff,0xf7,0xfe,' +` 0xbc,0xff,0x1d,0xff,0xab,0xff,0x43,0xff,' +` 0xa8,0xff,0x6a,0xff,0xae,0xff,0x93,0xff,' +` 0x9b,0xff,0x58,0xff,0x98,0xff,0x93,0xff,' +` 0xbc,0xff,0xbc,0xff,0xe2,0xff,0xee,0xff,' +` 0xf5,0xff,0xf6,0xff,0xfb,0xff,0xfc,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,' +` 0xf8,0xff,0xef,0xff,0xdd,0xff,0xd5,0xff,' +` 0xc4,0xff,0xb8,0xff,0x9c,0xff,0xad,0xff,' +` 0xc5,0xff,0xb1,0xff,0xac,0xff,0x9d,0xff,' +` 0x96,0xff,0x8a,0xff,0x85,0xff,0x7d,0xff,' +` 0x7b,0xff,0x77,0xff,0x79,0xff,0x7b,0xff,' +` 0x82,0xff,0x90,0xff,0xa3,0xff,0xb8,0xff,' +` 0xcf,0xff,0xe7,0xff,0xd9,0x7f,0x19,0x00,' +` 0x30,0x00,0x46,0x00,0x59,0x00,0x6b,0x00,' +` 0x77,0x00,0x7c,0x00,0x7d,0x00,0x7d,0x00,' +` 0x79,0x00,0x75,0x00,0x6d,0x00,0x67,0x00,' +` 0x5b,0x00,0x54,0x00,0x47,0x00,0x41,0x00,' +` 0x30,0x00,0x42,0x00,0x4e,0x00,0x38,0x00,' +` 0x2d,0x00,0x1f,0x00,0x19,0x00,0x0c,0x00,' +` 0x05,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_16khz.m4 new file mode 100644 index 000000000000..5a1d8267060a --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x03,0x00,0x05,0x00,0x0c,0x00,' +` 0x10,0x00,0x23,0x00,0x27,0x00,0x52,0x00,' +` 0x53,0x00,0xa4,0x00,0x99,0x00,0x2a,0x01,' +` 0x06,0x01,0xf7,0x01,0x99,0x01,0x0e,0x03,' +` 0x45,0x02,0x68,0x04,0xeb,0x02,0xdb,0x05,' +` 0x37,0x04,0x5b,0x0a,0x33,0x05,0x47,0x0c,' +` 0xeb,0x03,0xde,0x0b,0xb1,0xfb,0x69,0x0f,' +` 0x1f,0xee,0x30,0x34,0x50,0x68,0xd4,0xe3,' +` 0xe0,0x0b,0x25,0xf1,0x55,0x02,0x30,0xf0,' +` 0xfb,0xf9,0x32,0xf1,0x66,0xf8,0x5c,0xf3,' +` 0x89,0xfb,0x91,0xf7,0xc7,0xfb,0x5a,0xf9,' +` 0x78,0xfc,0x10,0xfb,0x52,0xfd,0x8e,0xfc,' +` 0x21,0xfe,0xbf,0xfd,0xc5,0xfe,0x98,0xfe,' +` 0x3e,0xff,0x30,0xff,0x92,0xff,0x92,0xff,' +` 0xc9,0xff,0xcd,0xff,0xe8,0xff,0xec,0xff,' +` 0xf7,0xff,0xfa,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfb,0xff,0xf6,0xff,0xee,0xff,0xe3,0xff,' +` 0xd2,0xff,0xbd,0xff,0x9f,0xff,0x7b,0xff,' +` 0x49,0xff,0x11,0xff,0xc7,0xfe,0x78,0xfe,' +` 0x08,0xfe,0x9d,0xfd,0x0c,0xfd,0x8f,0xfc,' +` 0xe0,0xfb,0x69,0xfb,0xa7,0xfa,0x67,0xfa,' +` 0x2f,0xf9,0x7b,0xf6,0x02,0xf6,0x14,0xf6,' +` 0xa0,0xf5,0x32,0xf8,0x53,0xfb,0xeb,0xfb,' +` 0x63,0xfd,0x96,0xfe,0xd9,0x7f,0x67,0x01,' +` 0x90,0x02,0xf8,0x03,0x80,0x04,0x70,0x07,' +` 0xc9,0x09,0x44,0x09,0x3c,0x09,0xb4,0x08,' +` 0x2a,0x06,0x01,0x05,0xba,0x04,0x02,0x04,' +` 0x8e,0x03,0xed,0x02,0x7a,0x02,0xf9,0x01,' +` 0x99,0x01,0x39,0x01,0xf5,0x00,0xb7,0x00,' +` 0x89,0x00,0x61,0x00,0x45,0x00,0x2e,0x00,' +` 0x1e,0x00,0x12,0x00,0x0a,0x00,0x05,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_48khz.m4 new file mode 100644 index 000000000000..847257c902ed --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,' +` 0x09,0x00,0x0e,0x00,0x15,0x00,0x1f,0x00,' +` 0x29,0x00,0x3a,0x00,0x39,0x00,0x33,0x00,' +` 0x40,0x00,0x49,0x00,0x53,0x00,0x5d,0x00,' +` 0x62,0x00,0x6c,0x00,0x66,0x00,0x6f,0x00,' +` 0x5a,0x00,0x66,0x00,0x36,0x00,0x57,0x00,' +` 0xd5,0xff,0x60,0x68,0x31,0x00,0x8f,0xff,' +` 0xb1,0xff,0x55,0xff,0x55,0xff,0x0e,0xff,' +` 0x03,0xff,0xcd,0xfe,0xbf,0xfe,0x9b,0xfe,' +` 0x8f,0xfe,0x82,0xfe,0x74,0xfe,0x8d,0xfe,' +` 0x07,0xfe,0x8d,0xfd,0xe4,0xfd,0xf9,0xfd,' +` 0x3d,0xfe,0x60,0xfe,0x9e,0xfe,0xc4,0xfe,' +` 0xfa,0xfe,0x1e,0xff,0x4b,0xff,0x69,0xff,' +` 0x8c,0xff,0xa1,0xff,0xc6,0xff,0xde,0xff,' +` 0xe6,0xff,0xef,0xff,0xf4,0xff,0xf9,0xff,' +` 0xfc,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfb,0xff,0xf6,0xff,0xf0,0xff,' +` 0xe8,0xff,0xde,0xff,0xd0,0xff,0xc0,0xff,' +` 0xab,0xff,0x95,0xff,0x77,0xff,0x5d,0xff,' +` 0x36,0xff,0x1a,0xff,0xe3,0xfe,0x05,0xff,' +` 0x3f,0xff,0x1d,0xff,0x1e,0xff,0x0e,0xff,' +` 0x13,0xff,0x0f,0xff,0x1c,0xff,0x26,0xff,' +` 0x3c,0xff,0x52,0xff,0x71,0xff,0x8f,0xff,' +` 0xb4,0xff,0xd9,0xff,0xd9,0x7f,0x26,0x00,' +` 0x4a,0x00,0x6d,0x00,0x8a,0x00,0xa6,0x00,' +` 0xb9,0x00,0xcc,0x00,0xd2,0x00,0xdc,0x00,' +` 0xd7,0x00,0xd8,0x00,0xc8,0x00,0xc6,0x00,' +` 0xa6,0x00,0xd5,0x00,0xef,0x00,0xbe,0x00,' +` 0xa5,0x00,0x82,0x00,0x6b,0x00,0x52,0x00,' +` 0x40,0x00,0x2f,0x00,0x22,0x00,0x17,0x00,' +` 0x10,0x00,0x0a,0x00,0x06,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_16khz.m4 new file mode 100644 index 000000000000..b1b7753525bf --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfc,0xff,0xfa,0xff,0xf6,0xff,0xf2,0xff,' +` 0xeb,0xff,0xe4,0xff,0xd8,0xff,0xce,0xff,' +` 0xba,0xff,0xae,0xff,0x90,0xff,0x83,0xff,' +` 0x5a,0xff,0x4b,0xff,0x04,0xff,0x02,0xff,' +` 0xb6,0xfe,0xd8,0xfe,0x67,0xfe,0xe8,0xfe,' +` 0x62,0xfd,0x56,0xfc,0xfb,0xfe,0x7c,0xfe,' +` 0x00,0xff,0xf4,0xfe,0x54,0xff,0x7c,0xff,' +` 0xd9,0x7f,0x83,0x00,0xa9,0x00,0x04,0x01,' +` 0xf7,0x00,0x72,0x01,0xf6,0x00,0x6c,0x03,' +` 0x6c,0x02,0x00,0x01,0x72,0x01,0x09,0x01,' +` 0x23,0x01,0xdd,0x00,0xd9,0x00,0x9a,0x00,' +` 0x8b,0x00,0x67,0x00,0x5b,0x00,0x42,0x00,' +` 0x37,0x00,0x26,0x00,0x1e,0x00,0x14,0x00,' +` 0x0f,0x00,0x09,0x00,0x07,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x04,0x00,0x01,0x00,0x0b,0x00,' +` 0x02,0x00,0x1b,0x00,0x03,0x00,0x36,0x00,' +` 0x03,0x00,0x65,0x00,0x02,0x00,0xad,0x00,' +` 0xfb,0xff,0x14,0x01,0xe8,0xff,0xab,0x01,' +` 0xd3,0xff,0x6e,0x02,0x80,0xff,0x51,0x03,' +` 0xeb,0xfe,0x50,0x04,0xbd,0xff,0x37,0x07,' +` 0xf7,0xfa,0x25,0x09,0xa9,0xf6,0x93,0x0f,' +` 0x5a,0xe8,0xd1,0x41,0xb2,0x5f,0x18,0xe4,' +` 0xcb,0x0e,0x51,0xf4,0xb6,0x06,0xa3,0xf8,' +` 0x29,0x03,0x2a,0xf8,0xda,0x01,0xf8,0xfb,' +` 0xe9,0x00,0x0d,0xfd,0x63,0x00,0xe7,0xfd,' +` 0x26,0x00,0xa3,0xfe,0x11,0x00,0x20,0xff,' +` 0x03,0x00,0x79,0xff,0xfe,0xff,0xb4,0xff,' +` 0xfd,0xff,0xd9,0xff,0xfe,0xff,0xee,0xff,' +` 0xff,0xff,0xf9,0xff,0x00,0x00,0xfe,0xff,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,' +` 0x01,0x00,0x0b,0x00,0x02,0x00,0x1b,0x00,' +` 0x03,0x00,0x36,0x00,0x03,0x00,0x65,0x00,' +` 0x02,0x00,0xad,0x00,0xfb,0xff,0x14,0x01,' +` 0xe8,0xff,0xab,0x01,0xd3,0xff,0x6e,0x02,' +` 0x80,0xff,0x51,0x03,0xeb,0xfe,0x50,0x04,' +` 0xbd,0xff,0x37,0x07,0xf7,0xfa,0x25,0x09,' +` 0xa9,0xf6,0x93,0x0f,0x5a,0xe8,0xd1,0x41,' +` 0xb2,0x5f,0x18,0xe4,0xcb,0x0e,0x51,0xf4,' +` 0xb6,0x06,0xa3,0xf8,0x29,0x03,0x2a,0xf8,' +` 0xda,0x01,0xf8,0xfb,0xe9,0x00,0x0d,0xfd,' +` 0x63,0x00,0xe7,0xfd,0x26,0x00,0xa3,0xfe,' +` 0x11,0x00,0x20,0xff,0x03,0x00,0x79,0xff,' +` 0xfe,0xff,0xb4,0xff,0xfd,0xff,0xd9,0xff,' +` 0xfe,0xff,0xee,0xff,0xff,0xff,0xf9,0xff,' +` 0x00,0x00,0xfe,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfc,0xff,0xfa,0xff,' +` 0xf6,0xff,0xf2,0xff,0xeb,0xff,0xe4,0xff,' +` 0xd8,0xff,0xce,0xff,0xba,0xff,0xae,0xff,' +` 0x90,0xff,0x83,0xff,0x5a,0xff,0x4b,0xff,' +` 0x04,0xff,0x02,0xff,0xb6,0xfe,0xd8,0xfe,' +` 0x67,0xfe,0xe8,0xfe,0x62,0xfd,0x56,0xfc,' +` 0xfb,0xfe,0x7c,0xfe,0x00,0xff,0xf4,0xfe,' +` 0x54,0xff,0x7c,0xff,0xd9,0x7f,0x83,0x00,' +` 0xa9,0x00,0x04,0x01,0xf7,0x00,0x72,0x01,' +` 0xf6,0x00,0x6c,0x03,0x6c,0x02,0x00,0x01,' +` 0x72,0x01,0x09,0x01,0x23,0x01,0xdd,0x00,' +` 0xd9,0x00,0x9a,0x00,0x8b,0x00,0x67,0x00,' +` 0x5b,0x00,0x42,0x00,0x37,0x00,0x26,0x00,' +` 0x1e,0x00,0x14,0x00,0x0f,0x00,0x09,0x00,' +` 0x07,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_48khz.m4 new file mode 100644 index 000000000000..74a8fd840460 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfe,0xff,0xfc,0xff,0xfb,0xff,' +` 0xfa,0xff,0xe8,0xff,0xd2,0xff,0xd6,0xff,' +` 0xee,0xff,0xe8,0xff,0xe5,0xff,0xdf,0xff,' +` 0xdb,0xff,0xd6,0xff,0xd2,0xff,0xce,0xff,' +` 0xcb,0xff,0xc8,0xff,0xc7,0xff,0xc6,0xff,' +` 0xc6,0xff,0xc7,0xff,0xca,0xff,0xcd,0xff,' +` 0xd2,0xff,0xd7,0xff,0xe1,0xff,0xf1,0xff,' +` 0xd9,0x7f,0x0f,0x00,0x1e,0x00,0x28,0x00,' +` 0x2c,0x00,0x30,0x00,0x33,0x00,0x35,0x00,' +` 0x35,0x00,0x35,0x00,0x34,0x00,0x32,0x00,' +` 0x2f,0x00,0x2c,0x00,0x27,0x00,0x24,0x00,' +` 0x1f,0x00,0x1b,0x00,0x16,0x00,0x14,0x00,' +` 0x0e,0x00,0x20,0x00,0x23,0x00,0x12,0x00,' +` 0x05,0x00,0x04,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x00,0x00,0x04,0x00,0xff,0xff,' +` 0x09,0x00,0xfd,0xff,0x21,0x00,0x10,0x00,' +` 0x34,0x00,0xea,0xff,0x43,0x00,0xd8,0xff,' +` 0x6b,0x00,0xb7,0xff,0xa6,0x00,0x82,0xff,' +` 0xf9,0x00,0x2e,0xff,0x6d,0x01,0xae,0xfe,' +` 0x13,0x02,0xe5,0xfd,0x11,0x03,0x99,0xfc,' +` 0xcb,0x04,0x0d,0xfa,0xc8,0x08,0x40,0xf2,' +` 0x27,0x20,0x54,0x76,0x00,0xeb,0x3c,0x0b,' +` 0x28,0xf8,0x81,0x05,0x61,0xfb,0x51,0x03,' +` 0xe8,0xfc,0x1f,0x02,0xd6,0xfd,0x5e,0x01,' +` 0x78,0xfe,0xde,0x00,0xed,0xfe,0x88,0x00,' +` 0x44,0xff,0x4f,0x00,0x84,0xff,0x2b,0x00,' +` 0xb2,0xff,0x14,0x00,0xb0,0xff,0xea,0xff,' +` 0xdb,0xff,0x06,0x00,0xf2,0xff,0x02,0x00,' +` 0xfa,0xff,0x01,0x00,0xfe,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,' +` 0x04,0x00,0xff,0xff,0x09,0x00,0xfd,0xff,' +` 0x21,0x00,0x10,0x00,0x34,0x00,0xea,0xff,' +` 0x43,0x00,0xd8,0xff,0x6b,0x00,0xb7,0xff,' +` 0xa6,0x00,0x82,0xff,0xf9,0x00,0x2e,0xff,' +` 0x6d,0x01,0xae,0xfe,0x13,0x02,0xe5,0xfd,' +` 0x11,0x03,0x99,0xfc,0xcb,0x04,0x0d,0xfa,' +` 0xc8,0x08,0x40,0xf2,0x27,0x20,0x54,0x76,' +` 0x00,0xeb,0x3c,0x0b,0x28,0xf8,0x81,0x05,' +` 0x61,0xfb,0x51,0x03,0xe8,0xfc,0x1f,0x02,' +` 0xd6,0xfd,0x5e,0x01,0x78,0xfe,0xde,0x00,' +` 0xed,0xfe,0x88,0x00,0x44,0xff,0x4f,0x00,' +` 0x84,0xff,0x2b,0x00,0xb2,0xff,0x14,0x00,' +` 0xb0,0xff,0xea,0xff,0xdb,0xff,0x06,0x00,' +` 0xf2,0xff,0x02,0x00,0xfa,0xff,0x01,0x00,' +` 0xfe,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfe,0xff,' +` 0xfc,0xff,0xfb,0xff,0xfa,0xff,0xe8,0xff,' +` 0xd2,0xff,0xd6,0xff,0xee,0xff,0xe8,0xff,' +` 0xe5,0xff,0xdf,0xff,0xdb,0xff,0xd6,0xff,' +` 0xd2,0xff,0xce,0xff,0xcb,0xff,0xc8,0xff,' +` 0xc7,0xff,0xc6,0xff,0xc6,0xff,0xc7,0xff,' +` 0xca,0xff,0xcd,0xff,0xd2,0xff,0xd7,0xff,' +` 0xe1,0xff,0xf1,0xff,0xd9,0x7f,0x0f,0x00,' +` 0x1e,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,' +` 0x33,0x00,0x35,0x00,0x35,0x00,0x35,0x00,' +` 0x34,0x00,0x32,0x00,0x2f,0x00,0x2c,0x00,' +` 0x27,0x00,0x24,0x00,0x1f,0x00,0x1b,0x00,' +` 0x16,0x00,0x14,0x00,0x0e,0x00,0x20,0x00,' +` 0x23,0x00,0x12,0x00,0x05,0x00,0x04,0x00,' +` 0x02,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_16khz.m4 new file mode 100644 index 000000000000..dfe83577082f --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfd,0xff,0xfb,0xff,' +` 0xf7,0xff,0xf1,0xff,0xe9,0xff,0xde,0xff,' +` 0xd0,0xff,0xbd,0xff,0xa5,0xff,0x87,0xff,' +` 0x62,0xff,0x38,0xff,0x05,0xff,0xce,0xfe,' +` 0x88,0xfe,0x39,0xfe,0xe1,0xfd,0x89,0xfd,' +` 0x36,0xfd,0xfd,0xfc,0xb8,0xfc,0xa9,0xfc,' +` 0xf4,0xf9,0xc2,0xf8,0x24,0xfc,0x12,0xfd,' +` 0x48,0xfd,0xc9,0xfd,0x4a,0xfe,0x1f,0xff,' +` 0xd9,0x7f,0xde,0x00,0xad,0x01,0x27,0x02,' +` 0x9e,0x02,0xca,0x02,0xa4,0x03,0xc3,0x06,' +` 0x96,0x05,0x0e,0x03,0xf8,0x02,0xb1,0x02,' +` 0x77,0x02,0x27,0x02,0xd4,0x01,0x83,0x01,' +` 0x3b,0x01,0xfd,0x00,0xcc,0x00,0xa0,0x00,' +` 0x7c,0x00,0x5d,0x00,0x45,0x00,0x31,0x00,' +` 0x22,0x00,0x17,0x00,0x0f,0x00,0x09,0x00,' +` 0x05,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x05,0x00,0x09,0x00,0x0f,0x00,' +` 0x17,0x00,0x23,0x00,0x30,0x00,0x46,0x00,' +` 0x5b,0x00,0x7e,0x00,0x9d,0x00,0xd0,0x00,' +` 0xf7,0x00,0x42,0x01,0x7a,0x01,0xe0,0x01,' +` 0x18,0x02,0x8a,0x02,0x9b,0x02,0x14,0x03,' +` 0xea,0x02,0xb5,0x05,0x99,0x06,0xef,0x03,' +` 0x79,0x02,0x0b,0x03,0x95,0x01,0x93,0x02,' +` 0x16,0xff,0xd1,0x7f,0xff,0x00,0x63,0xfd,' +` 0x63,0xfe,0xdc,0xfc,0x67,0xfd,0xeb,0xfb,' +` 0x02,0xf9,0xbc,0xf9,0xcb,0xfc,0x9b,0xfc,' +` 0x16,0xfd,0x22,0xfd,0x9a,0xfd,0xd3,0xfd,' +` 0x44,0xfe,0x7f,0xfe,0xd4,0xfe,0x00,0xff,' +` 0x3c,0xff,0x5f,0xff,0x89,0xff,0xa3,0xff,' +` 0xbe,0xff,0xcf,0xff,0xdf,0xff,0xe9,0xff,' +` 0xf2,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,' +` 0x09,0x00,0x0f,0x00,0x17,0x00,0x23,0x00,' +` 0x30,0x00,0x46,0x00,0x5b,0x00,0x7e,0x00,' +` 0x9d,0x00,0xd0,0x00,0xf7,0x00,0x42,0x01,' +` 0x7a,0x01,0xe0,0x01,0x18,0x02,0x8a,0x02,' +` 0x9b,0x02,0x14,0x03,0xea,0x02,0xb5,0x05,' +` 0x99,0x06,0xef,0x03,0x79,0x02,0x0b,0x03,' +` 0x95,0x01,0x93,0x02,0x16,0xff,0xd1,0x7f,' +` 0xff,0x00,0x63,0xfd,0x63,0xfe,0xdc,0xfc,' +` 0x67,0xfd,0xeb,0xfb,0x02,0xf9,0xbc,0xf9,' +` 0xcb,0xfc,0x9b,0xfc,0x16,0xfd,0x22,0xfd,' +` 0x9a,0xfd,0xd3,0xfd,0x44,0xfe,0x7f,0xfe,' +` 0xd4,0xfe,0x00,0xff,0x3c,0xff,0x5f,0xff,' +` 0x89,0xff,0xa3,0xff,0xbe,0xff,0xcf,0xff,' +` 0xdf,0xff,0xe9,0xff,0xf2,0xff,0xf7,0xff,' +` 0xfb,0xff,0xfd,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfd,0xff,0xfb,0xff,0xf7,0xff,0xf1,0xff,' +` 0xe9,0xff,0xde,0xff,0xd0,0xff,0xbd,0xff,' +` 0xa5,0xff,0x87,0xff,0x62,0xff,0x38,0xff,' +` 0x05,0xff,0xce,0xfe,0x88,0xfe,0x39,0xfe,' +` 0xe1,0xfd,0x89,0xfd,0x36,0xfd,0xfd,0xfc,' +` 0xb8,0xfc,0xa9,0xfc,0xf4,0xf9,0xc2,0xf8,' +` 0x24,0xfc,0x12,0xfd,0x48,0xfd,0xc9,0xfd,' +` 0x4a,0xfe,0x1f,0xff,0xd9,0x7f,0xde,0x00,' +` 0xad,0x01,0x27,0x02,0x9e,0x02,0xca,0x02,' +` 0xa4,0x03,0xc3,0x06,0x96,0x05,0x0e,0x03,' +` 0xf8,0x02,0xb1,0x02,0x77,0x02,0x27,0x02,' +` 0xd4,0x01,0x83,0x01,0x3b,0x01,0xfd,0x00,' +` 0xcc,0x00,0xa0,0x00,0x7c,0x00,0x5d,0x00,' +` 0x45,0x00,0x31,0x00,0x22,0x00,0x17,0x00,' +` 0x0f,0x00,0x09,0x00,0x05,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_48khz.m4 new file mode 100644 index 000000000000..3223ef1f28d0 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfa,0xff,0xf8,0xff,0xef,0xff,' +` 0xdd,0xff,0xd5,0xff,0xc4,0xff,0xb8,0xff,' +` 0x9c,0xff,0xad,0xff,0xc5,0xff,0xb1,0xff,' +` 0xac,0xff,0x9d,0xff,0x96,0xff,0x8a,0xff,' +` 0x85,0xff,0x7d,0xff,0x7b,0xff,0x77,0xff,' +` 0x79,0xff,0x7b,0xff,0x82,0xff,0x90,0xff,' +` 0xa3,0xff,0xb8,0xff,0xcf,0xff,0xe7,0xff,' +` 0xd9,0x7f,0x19,0x00,0x30,0x00,0x46,0x00,' +` 0x59,0x00,0x6b,0x00,0x77,0x00,0x7c,0x00,' +` 0x7d,0x00,0x7d,0x00,0x79,0x00,0x75,0x00,' +` 0x6d,0x00,0x67,0x00,0x5b,0x00,0x54,0x00,' +` 0x47,0x00,0x41,0x00,0x30,0x00,0x42,0x00,' +` 0x4e,0x00,0x38,0x00,0x2d,0x00,0x1f,0x00,' +` 0x19,0x00,0x0c,0x00,0x05,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x01,0x00,0x02,0x00,0x04,0x00,0x0c,0x00,' +` 0x0e,0x00,0x19,0x00,0x1c,0x00,0x31,0x00,' +` 0x23,0x00,0x26,0x00,0x20,0x00,0x3e,0x00,' +` 0x27,0x00,0x5a,0x00,0x2c,0x00,0x7a,0x00,' +` 0x28,0x00,0xa0,0x00,0x15,0x00,0xcd,0x00,' +` 0xe9,0xff,0x0b,0x01,0x8b,0xff,0x6d,0x01,' +` 0xb1,0xfe,0x9f,0x02,0x20,0xfb,0xda,0x7b,' +` 0x98,0x05,0x01,0xfd,0x92,0x01,0x40,0xfe,' +` 0x9d,0x00,0x99,0xfe,0x24,0x00,0xce,0xfe,' +` 0xe2,0xff,0xf7,0xfe,0xbc,0xff,0x1d,0xff,' +` 0xab,0xff,0x43,0xff,0xa8,0xff,0x6a,0xff,' +` 0xae,0xff,0x93,0xff,0x9b,0xff,0x58,0xff,' +` 0x98,0xff,0x93,0xff,0xbc,0xff,0xbc,0xff,' +` 0xe2,0xff,0xee,0xff,0xf5,0xff,0xf6,0xff,' +` 0xfb,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x00,' +` 0x04,0x00,0x0c,0x00,0x0e,0x00,0x19,0x00,' +` 0x1c,0x00,0x31,0x00,0x23,0x00,0x26,0x00,' +` 0x20,0x00,0x3e,0x00,0x27,0x00,0x5a,0x00,' +` 0x2c,0x00,0x7a,0x00,0x28,0x00,0xa0,0x00,' +` 0x15,0x00,0xcd,0x00,0xe9,0xff,0x0b,0x01,' +` 0x8b,0xff,0x6d,0x01,0xb1,0xfe,0x9f,0x02,' +` 0x20,0xfb,0xda,0x7b,0x98,0x05,0x01,0xfd,' +` 0x92,0x01,0x40,0xfe,0x9d,0x00,0x99,0xfe,' +` 0x24,0x00,0xce,0xfe,0xe2,0xff,0xf7,0xfe,' +` 0xbc,0xff,0x1d,0xff,0xab,0xff,0x43,0xff,' +` 0xa8,0xff,0x6a,0xff,0xae,0xff,0x93,0xff,' +` 0x9b,0xff,0x58,0xff,0x98,0xff,0x93,0xff,' +` 0xbc,0xff,0xbc,0xff,0xe2,0xff,0xee,0xff,' +` 0xf5,0xff,0xf6,0xff,0xfb,0xff,0xfc,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,' +` 0xf8,0xff,0xef,0xff,0xdd,0xff,0xd5,0xff,' +` 0xc4,0xff,0xb8,0xff,0x9c,0xff,0xad,0xff,' +` 0xc5,0xff,0xb1,0xff,0xac,0xff,0x9d,0xff,' +` 0x96,0xff,0x8a,0xff,0x85,0xff,0x7d,0xff,' +` 0x7b,0xff,0x77,0xff,0x79,0xff,0x7b,0xff,' +` 0x82,0xff,0x90,0xff,0xa3,0xff,0xb8,0xff,' +` 0xcf,0xff,0xe7,0xff,0xd9,0x7f,0x19,0x00,' +` 0x30,0x00,0x46,0x00,0x59,0x00,0x6b,0x00,' +` 0x77,0x00,0x7c,0x00,0x7d,0x00,0x7d,0x00,' +` 0x79,0x00,0x75,0x00,0x6d,0x00,0x67,0x00,' +` 0x5b,0x00,0x54,0x00,0x47,0x00,0x41,0x00,' +` 0x30,0x00,0x42,0x00,0x4e,0x00,0x38,0x00,' +` 0x2d,0x00,0x1f,0x00,0x19,0x00,0x0c,0x00,' +` 0x05,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_16khz.m4 new file mode 100644 index 000000000000..48ee24063cce --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfb,0xff,0xf6,0xff,' +` 0xee,0xff,0xe3,0xff,0xd2,0xff,0xbd,0xff,' +` 0x9f,0xff,0x7b,0xff,0x49,0xff,0x11,0xff,' +` 0xc7,0xfe,0x78,0xfe,0x08,0xfe,0x9d,0xfd,' +` 0x0c,0xfd,0x8f,0xfc,0xe0,0xfb,0x69,0xfb,' +` 0xa7,0xfa,0x67,0xfa,0x2f,0xf9,0x7b,0xf6,' +` 0x02,0xf6,0x14,0xf6,0xa0,0xf5,0x32,0xf8,' +` 0x53,0xfb,0xeb,0xfb,0x63,0xfd,0x96,0xfe,' +` 0xd9,0x7f,0x67,0x01,0x90,0x02,0xf8,0x03,' +` 0x80,0x04,0x70,0x07,0xc9,0x09,0x44,0x09,' +` 0x3c,0x09,0xb4,0x08,0x2a,0x06,0x01,0x05,' +` 0xba,0x04,0x02,0x04,0x8e,0x03,0xed,0x02,' +` 0x7a,0x02,0xf9,0x01,0x99,0x01,0x39,0x01,' +` 0xf5,0x00,0xb7,0x00,0x89,0x00,0x61,0x00,' +` 0x45,0x00,0x2e,0x00,0x1e,0x00,0x12,0x00,' +` 0x0a,0x00,0x05,0x00,0x02,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,' +` 0x05,0x00,0x0c,0x00,0x10,0x00,0x23,0x00,' +` 0x27,0x00,0x52,0x00,0x53,0x00,0xa4,0x00,' +` 0x99,0x00,0x2a,0x01,0x06,0x01,0xf7,0x01,' +` 0x99,0x01,0x0e,0x03,0x45,0x02,0x68,0x04,' +` 0xeb,0x02,0xdb,0x05,0x37,0x04,0x5b,0x0a,' +` 0x33,0x05,0x47,0x0c,0xeb,0x03,0xde,0x0b,' +` 0xb1,0xfb,0x69,0x0f,0x1f,0xee,0x30,0x34,' +` 0x50,0x68,0xd4,0xe3,0xe0,0x0b,0x25,0xf1,' +` 0x55,0x02,0x30,0xf0,0xfb,0xf9,0x32,0xf1,' +` 0x66,0xf8,0x5c,0xf3,0x89,0xfb,0x91,0xf7,' +` 0xc7,0xfb,0x5a,0xf9,0x78,0xfc,0x10,0xfb,' +` 0x52,0xfd,0x8e,0xfc,0x21,0xfe,0xbf,0xfd,' +` 0xc5,0xfe,0x98,0xfe,0x3e,0xff,0x30,0xff,' +` 0x92,0xff,0x92,0xff,0xc9,0xff,0xcd,0xff,' +` 0xe8,0xff,0xec,0xff,0xf7,0xff,0xfa,0xff,' +` 0xfe,0xff,0xff,0xff,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x03,0x00,0x05,0x00,0x0c,0x00,' +` 0x10,0x00,0x23,0x00,0x27,0x00,0x52,0x00,' +` 0x53,0x00,0xa4,0x00,0x99,0x00,0x2a,0x01,' +` 0x06,0x01,0xf7,0x01,0x99,0x01,0x0e,0x03,' +` 0x45,0x02,0x68,0x04,0xeb,0x02,0xdb,0x05,' +` 0x37,0x04,0x5b,0x0a,0x33,0x05,0x47,0x0c,' +` 0xeb,0x03,0xde,0x0b,0xb1,0xfb,0x69,0x0f,' +` 0x1f,0xee,0x30,0x34,0x50,0x68,0xd4,0xe3,' +` 0xe0,0x0b,0x25,0xf1,0x55,0x02,0x30,0xf0,' +` 0xfb,0xf9,0x32,0xf1,0x66,0xf8,0x5c,0xf3,' +` 0x89,0xfb,0x91,0xf7,0xc7,0xfb,0x5a,0xf9,' +` 0x78,0xfc,0x10,0xfb,0x52,0xfd,0x8e,0xfc,' +` 0x21,0xfe,0xbf,0xfd,0xc5,0xfe,0x98,0xfe,' +` 0x3e,0xff,0x30,0xff,0x92,0xff,0x92,0xff,' +` 0xc9,0xff,0xcd,0xff,0xe8,0xff,0xec,0xff,' +` 0xf7,0xff,0xfa,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfb,0xff,0xf6,0xff,0xee,0xff,0xe3,0xff,' +` 0xd2,0xff,0xbd,0xff,0x9f,0xff,0x7b,0xff,' +` 0x49,0xff,0x11,0xff,0xc7,0xfe,0x78,0xfe,' +` 0x08,0xfe,0x9d,0xfd,0x0c,0xfd,0x8f,0xfc,' +` 0xe0,0xfb,0x69,0xfb,0xa7,0xfa,0x67,0xfa,' +` 0x2f,0xf9,0x7b,0xf6,0x02,0xf6,0x14,0xf6,' +` 0xa0,0xf5,0x32,0xf8,0x53,0xfb,0xeb,0xfb,' +` 0x63,0xfd,0x96,0xfe,0xd9,0x7f,0x67,0x01,' +` 0x90,0x02,0xf8,0x03,0x80,0x04,0x70,0x07,' +` 0xc9,0x09,0x44,0x09,0x3c,0x09,0xb4,0x08,' +` 0x2a,0x06,0x01,0x05,0xba,0x04,0x02,0x04,' +` 0x8e,0x03,0xed,0x02,0x7a,0x02,0xf9,0x01,' +` 0x99,0x01,0x39,0x01,0xf5,0x00,0xb7,0x00,' +` 0x89,0x00,0x61,0x00,0x45,0x00,0x2e,0x00,' +` 0x1e,0x00,0x12,0x00,0x0a,0x00,0x05,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_48khz.m4 new file mode 100644 index 000000000000..1250aee76993 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfb,0xff,' +` 0xf6,0xff,0xf0,0xff,0xe8,0xff,0xde,0xff,' +` 0xd0,0xff,0xc0,0xff,0xab,0xff,0x95,0xff,' +` 0x77,0xff,0x5d,0xff,0x36,0xff,0x1a,0xff,' +` 0xe3,0xfe,0x05,0xff,0x3f,0xff,0x1d,0xff,' +` 0x1e,0xff,0x0e,0xff,0x13,0xff,0x0f,0xff,' +` 0x1c,0xff,0x26,0xff,0x3c,0xff,0x52,0xff,' +` 0x71,0xff,0x8f,0xff,0xb4,0xff,0xd9,0xff,' +` 0xd9,0x7f,0x26,0x00,0x4a,0x00,0x6d,0x00,' +` 0x8a,0x00,0xa6,0x00,0xb9,0x00,0xcc,0x00,' +` 0xd2,0x00,0xdc,0x00,0xd7,0x00,0xd8,0x00,' +` 0xc8,0x00,0xc6,0x00,0xa6,0x00,0xd5,0x00,' +` 0xef,0x00,0xbe,0x00,0xa5,0x00,0x82,0x00,' +` 0x6b,0x00,0x52,0x00,0x40,0x00,0x2f,0x00,' +` 0x22,0x00,0x17,0x00,0x10,0x00,0x0a,0x00,' +` 0x06,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x05,0x00,0x09,0x00,0x0e,0x00,' +` 0x15,0x00,0x1f,0x00,0x29,0x00,0x3a,0x00,' +` 0x39,0x00,0x33,0x00,0x40,0x00,0x49,0x00,' +` 0x53,0x00,0x5d,0x00,0x62,0x00,0x6c,0x00,' +` 0x66,0x00,0x6f,0x00,0x5a,0x00,0x66,0x00,' +` 0x36,0x00,0x57,0x00,0xd5,0xff,0x60,0x68,' +` 0x31,0x00,0x8f,0xff,0xb1,0xff,0x55,0xff,' +` 0x55,0xff,0x0e,0xff,0x03,0xff,0xcd,0xfe,' +` 0xbf,0xfe,0x9b,0xfe,0x8f,0xfe,0x82,0xfe,' +` 0x74,0xfe,0x8d,0xfe,0x07,0xfe,0x8d,0xfd,' +` 0xe4,0xfd,0xf9,0xfd,0x3d,0xfe,0x60,0xfe,' +` 0x9e,0xfe,0xc4,0xfe,0xfa,0xfe,0x1e,0xff,' +` 0x4b,0xff,0x69,0xff,0x8c,0xff,0xa1,0xff,' +` 0xc6,0xff,0xde,0xff,0xe6,0xff,0xef,0xff,' +` 0xf4,0xff,0xf9,0xff,0xfc,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,' +` 0x09,0x00,0x0e,0x00,0x15,0x00,0x1f,0x00,' +` 0x29,0x00,0x3a,0x00,0x39,0x00,0x33,0x00,' +` 0x40,0x00,0x49,0x00,0x53,0x00,0x5d,0x00,' +` 0x62,0x00,0x6c,0x00,0x66,0x00,0x6f,0x00,' +` 0x5a,0x00,0x66,0x00,0x36,0x00,0x57,0x00,' +` 0xd5,0xff,0x60,0x68,0x31,0x00,0x8f,0xff,' +` 0xb1,0xff,0x55,0xff,0x55,0xff,0x0e,0xff,' +` 0x03,0xff,0xcd,0xfe,0xbf,0xfe,0x9b,0xfe,' +` 0x8f,0xfe,0x82,0xfe,0x74,0xfe,0x8d,0xfe,' +` 0x07,0xfe,0x8d,0xfd,0xe4,0xfd,0xf9,0xfd,' +` 0x3d,0xfe,0x60,0xfe,0x9e,0xfe,0xc4,0xfe,' +` 0xfa,0xfe,0x1e,0xff,0x4b,0xff,0x69,0xff,' +` 0x8c,0xff,0xa1,0xff,0xc6,0xff,0xde,0xff,' +` 0xe6,0xff,0xef,0xff,0xf4,0xff,0xf9,0xff,' +` 0xfc,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfb,0xff,0xf6,0xff,0xf0,0xff,' +` 0xe8,0xff,0xde,0xff,0xd0,0xff,0xc0,0xff,' +` 0xab,0xff,0x95,0xff,0x77,0xff,0x5d,0xff,' +` 0x36,0xff,0x1a,0xff,0xe3,0xfe,0x05,0xff,' +` 0x3f,0xff,0x1d,0xff,0x1e,0xff,0x0e,0xff,' +` 0x13,0xff,0x0f,0xff,0x1c,0xff,0x26,0xff,' +` 0x3c,0xff,0x52,0xff,0x71,0xff,0x8f,0xff,' +` 0xb4,0xff,0xd9,0xff,0xd9,0x7f,0x26,0x00,' +` 0x4a,0x00,0x6d,0x00,0x8a,0x00,0xa6,0x00,' +` 0xb9,0x00,0xcc,0x00,0xd2,0x00,0xdc,0x00,' +` 0xd7,0x00,0xd8,0x00,0xc8,0x00,0xc6,0x00,' +` 0xa6,0x00,0xd5,0x00,0xef,0x00,0xbe,0x00,' +` 0xa5,0x00,0x82,0x00,0x6b,0x00,0x52,0x00,' +` 0x40,0x00,0x2f,0x00,0x22,0x00,0x17,0x00,' +` 0x10,0x00,0x0a,0x00,0x06,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_16khz.m4 new file mode 100644 index 000000000000..b742a2d5613e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xd9,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xd9,0x7f,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_48khz.m4 new file mode 100644 index 000000000000..b742a2d5613e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xd9,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xd9,0x7f,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_16khz.m4 new file mode 100644 index 000000000000..392e6f052081 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfb,0xff,0xf8,0xff,0xf4,0xff,' +` 0xee,0xff,0xe9,0xff,0xdf,0xff,0xd8,0xff,' +` 0xc8,0xff,0xb9,0xff,0xa3,0xff,0x97,0xff,' +` 0x7b,0xff,0x73,0xff,0x4f,0xff,0x51,0xff,' +` 0x21,0xff,0x3a,0xff,0x3d,0xfd,0x74,0xfe,' +` 0x43,0xff,0xff,0xfe,0x39,0xff,0x2b,0xff,' +` 0x59,0xff,0x65,0xff,0x8f,0xff,0xb2,0xff,' +` 0xd9,0x7f,0x4d,0x00,0x6f,0x00,0x96,0x00,' +` 0xa0,0x00,0xcb,0x00,0xbc,0x00,0xf0,0x00,' +` 0xaf,0x00,0x6a,0x01,0x7f,0x02,0xb1,0x00,' +` 0xc5,0x00,0x99,0x00,0x99,0x00,0x78,0x00,' +` 0x70,0x00,0x57,0x00,0x4c,0x00,0x38,0x00,' +` 0x2c,0x00,0x1f,0x00,0x18,0x00,0x11,0x00,' +` 0x0c,0x00,0x08,0x00,0x05,0x00,0x03,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x00,0x00,0x04,0x00,0x00,0x00,0x0b,0x00,' +` 0x00,0x00,0x19,0x00,0xfe,0xff,0x34,0x00,' +` 0xf9,0xff,0x5f,0x00,0xf1,0xff,0xa8,0x00,' +` 0xdf,0xff,0x0b,0x01,0xb4,0xff,0x93,0x01,' +` 0x63,0xff,0x4f,0x02,0xc1,0xfe,0xfa,0x03,' +` 0xbe,0xff,0xf5,0x03,0xf5,0xfc,0xc8,0x05,' +` 0x8a,0xfa,0xce,0x08,0xbb,0xf5,0x56,0x10,' +` 0x15,0xe5,0x38,0x58,0x41,0x4a,0x9b,0xe5,' +` 0x01,0x0f,0x83,0xf4,0x74,0x07,0xc7,0xf8,' +` 0x51,0x04,0xdf,0xfa,0xa7,0x02,0xa6,0xfa,' +` 0xad,0x00,0x90,0xfd,0xac,0x00,0x35,0xfe,' +` 0x5b,0x00,0xc3,0xfe,0x2a,0x00,0x30,0xff,' +` 0x11,0x00,0x83,0xff,0x09,0x00,0xbb,0xff,' +` 0x03,0x00,0xdc,0xff,0x01,0x00,0xef,0xff,' +` 0x00,0x00,0xfa,0xff,0x00,0x00,0xfe,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_48khz.m4 new file mode 100644 index 000000000000..5154030f7e2b --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,' +` 0xfb,0xff,0xfb,0xff,0xf8,0xff,0xf7,0xff,' +` 0xf4,0xff,0xf3,0xff,0xef,0xff,0xee,0xff,' +` 0xe9,0xff,0xe8,0xff,0xe4,0xff,0xe4,0xff,' +` 0xe0,0xff,0xe0,0xff,0xdd,0xff,0xde,0xff,' +` 0xdc,0xff,0xdf,0xff,0xde,0xff,0xe1,0xff,' +` 0xe3,0xff,0xe8,0xff,0xef,0xff,0xf8,0xff,' +` 0xd9,0x7f,0x08,0x00,0x11,0x00,0x18,0x00,' +` 0x1c,0x00,0x1d,0x00,0x20,0x00,0x1f,0x00,' +` 0x21,0x00,0x1f,0x00,0x20,0x00,0x1d,0x00,' +` 0x1c,0x00,0x19,0x00,0x18,0x00,0x14,0x00,' +` 0x13,0x00,0x0f,0x00,0x0e,0x00,0x0b,0x00,' +` 0x0a,0x00,0x07,0x00,0x06,0x00,0x04,0x00,' +` 0x03,0x00,0x02,0x00,0x02,0x00,0x01,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0xff,0xff,0x04,0x00,0xfc,0xff,' +` 0x0a,0x00,0xf6,0xff,0x17,0x00,0xeb,0xff,' +` 0x2c,0x00,0xd6,0xff,0x50,0x00,0xb2,0xff,' +` 0x87,0x00,0x78,0xff,0xd8,0x00,0x1f,0xff,' +` 0x50,0x01,0x97,0xfe,0xfd,0x01,0xca,0xfd,' +` 0xff,0x02,0x8b,0xfc,0x98,0x04,0x6d,0xfa,' +` 0x85,0x07,0x03,0xf6,0xfb,0x0e,0x86,0xe5,' +` 0xb6,0x63,0xa0,0x3b,0xf0,0xe8,0x08,0x0e,' +` 0xdb,0xf5,0x85,0x07,0xd3,0xf9,0xc1,0x04,' +` 0xda,0xfb,0x2b,0x03,0x1e,0xfd,0x22,0x02,' +` 0xfd,0xfd,0x6b,0x01,0x9e,0xfe,0xec,0x00,' +` 0x12,0xff,0x94,0x00,0x66,0xff,0x58,0x00,' +` 0xa1,0xff,0x32,0x00,0xc8,0xff,0x1a,0x00,' +` 0xe2,0xff,0x0d,0x00,0xf1,0xff,0x06,0x00,' +` 0xf8,0xff,0xff,0xff,0xfc,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_16khz.m4 new file mode 100644 index 000000000000..955deb667102 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfc,0xff,' +` 0xf8,0xff,0xf4,0xff,0xed,0xff,0xe4,0xff,' +` 0xd8,0xff,0xc8,0xff,0xb6,0xff,0x9b,0xff,' +` 0x7f,0xff,0x58,0xff,0x33,0xff,0xfe,0xfe,' +` 0xda,0xfe,0x9f,0xfe,0x82,0xfe,0x39,0xfe,' +` 0x45,0xfe,0xca,0xfc,0xa0,0xfb,0xcb,0xfb,' +` 0xa0,0xfd,0xfa,0xfd,0xf6,0xfd,0x35,0xfe,' +` 0x5d,0xfe,0xa8,0xfe,0x04,0xff,0x85,0xff,' +` 0xd9,0x7f,0x7a,0x00,0xf7,0x00,0x4e,0x01,' +` 0x93,0x01,0xb5,0x01,0xec,0x01,0xe3,0x01,' +` 0x32,0x02,0xd9,0x03,0xf5,0x03,0xdf,0x02,' +` 0x88,0x01,0x8e,0x01,0x49,0x01,0x2d,0x01,' +` 0xf7,0x00,0xd5,0x00,0xa7,0x00,0x86,0x00,' +` 0x65,0x00,0x4d,0x00,0x38,0x00,0x29,0x00,' +` 0x1c,0x00,0x13,0x00,0x0c,0x00,0x08,0x00,' +` 0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x0b,0x00,0x08,0x00,' +` 0x1b,0x00,0x11,0x00,0x39,0x00,0x20,0x00,' +` 0x6f,0x00,0x39,0x00,0xc4,0x00,0x58,0x00,' +` 0x3c,0x01,0x70,0x00,0xd3,0x01,0x74,0x00,' +` 0x8b,0x02,0x5e,0x00,0xec,0x04,0xda,0x01,' +` 0xe4,0x05,0x9c,0xfe,0xef,0x05,0xc4,0xfc,' +` 0x1b,0x08,0xe4,0xf8,0x6a,0x0d,0xcf,0xec,' +` 0x94,0x32,0x0c,0x6b,0x65,0xe5,0x77,0x0d,' +` 0x94,0xf4,0xb2,0x05,0x5b,0xf8,0x77,0x02,' +` 0x44,0xfa,0x0d,0x00,0xd9,0xf8,0xd8,0xfd,' +` 0x8c,0xfb,0xb8,0xff,0x01,0xfd,0x78,0xff,' +` 0xd5,0xfd,0x78,0xff,0x81,0xfe,0x96,0xff,' +` 0x0d,0xff,0xb9,0xff,0x71,0xff,0xd6,0xff,' +` 0xb2,0xff,0xe8,0xff,0xd9,0xff,0xf4,0xff,' +` 0xef,0xff,0xfb,0xff,0xfa,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_48khz.m4 new file mode 100644 index 000000000000..d2d01d8c6f8b --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xff,0xff,0xfd,0xff,' +` 0xfb,0xff,0xf9,0xff,0xf5,0xff,0xf8,0xff,' +` 0xf6,0xff,0xf3,0xff,0xef,0xff,0xea,0xff,' +` 0xe5,0xff,0xdf,0xff,0xd9,0xff,0xd3,0xff,' +` 0xcd,0xff,0xc7,0xff,0xc1,0xff,0xbb,0xff,' +` 0xb7,0xff,0xb3,0xff,0xb0,0xff,0xaf,0xff,' +` 0xaf,0xff,0xb3,0xff,0xba,0xff,0xc3,0xff,' +` 0xcd,0xff,0xd9,0xff,0xe5,0xff,0xf2,0xff,' +` 0xd9,0x7f,0x0d,0x00,0x1a,0x00,0x26,0x00,' +` 0x31,0x00,0x3a,0x00,0x42,0x00,0x48,0x00,' +` 0x4b,0x00,0x4a,0x00,0x48,0x00,0x45,0x00,' +` 0x41,0x00,0x3c,0x00,0x37,0x00,0x31,0x00,' +` 0x2b,0x00,0x25,0x00,0x1f,0x00,0x1a,0x00,' +` 0x15,0x00,0x11,0x00,0x0d,0x00,0x0a,0x00,' +` 0x07,0x00,0x05,0x00,0x07,0x00,0x05,0x00,' +` 0x03,0x00,0x01,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,' +` 0x06,0x00,0x05,0x00,0x0c,0x00,0x08,0x00,' +` 0x15,0x00,0x0b,0x00,0x21,0x00,0x0e,0x00,' +` 0x32,0x00,0x0d,0x00,0x48,0x00,0x07,0x00,' +` 0x64,0x00,0xf6,0xff,0x88,0x00,0xd1,0xff,' +` 0xb8,0x00,0x83,0xff,0x13,0x01,0xd5,0xfe,' +` 0x26,0x02,0xd0,0xfb,0x6a,0x78,0xd7,0x04,' +` 0x74,0xfd,0x7a,0x01,0x92,0xfe,0xb5,0x00,' +` 0xe8,0xfe,0x50,0x00,0x12,0xff,0x14,0x00,' +` 0x35,0xff,0xf1,0xff,0x54,0xff,0xde,0xff,' +` 0x71,0xff,0xd5,0xff,0x8d,0xff,0xd5,0xff,' +` 0xa7,0xff,0xda,0xff,0xbe,0xff,0xe1,0xff,' +` 0xd3,0xff,0xe9,0xff,0xe3,0xff,0xf0,0xff,' +` 0xdf,0xff,0xeb,0xff,0xee,0xff,0xf5,0xff,' +` 0xf8,0xff,0xfc,0xff,0xfd,0xff,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_16khz.m4 new file mode 100644 index 000000000000..c62572f9b464 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfc,0xff,0xf7,0xff,' +` 0xf1,0xff,0xe8,0xff,0xdb,0xff,0xc8,0xff,' +` 0xb0,0xff,0x91,0xff,0x6a,0xff,0x3a,0xff,' +` 0x03,0xff,0xbe,0xfe,0x78,0xfe,0x1f,0xfe,' +` 0xd1,0xfd,0x62,0xfd,0x2b,0xfd,0x11,0xfc,' +` 0x92,0xfa,0x69,0xfa,0xcf,0xf9,0xbd,0xf9,' +` 0x3e,0xf9,0xeb,0xf9,0x43,0xfc,0x99,0xfc,' +` 0x31,0xfd,0xc8,0xfd,0x7f,0xfe,0x3b,0xff,' +` 0xd9,0x7f,0xc3,0x00,0x79,0x01,0x28,0x02,' +` 0xb4,0x02,0x3e,0x03,0x87,0x03,0xae,0x05,' +` 0x3f,0x06,0xba,0x05,0x99,0x05,0x00,0x05,' +` 0xcc,0x04,0x6f,0x03,0x71,0x02,0x3a,0x02,' +` 0xd5,0x01,0x8e,0x01,0x3f,0x01,0x01,0x01,' +` 0xc7,0x00,0x98,0x00,0x70,0x00,0x51,0x00,' +` 0x39,0x00,0x26,0x00,0x18,0x00,0x0f,0x00,' +` 0x09,0x00,0x05,0x00,0x02,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,' +` 0x05,0x00,0x08,0x00,0x11,0x00,0x17,0x00,' +` 0x2b,0x00,0x35,0x00,0x5c,0x00,0x67,0x00,' +` 0xac,0x00,0xb1,0x00,0x21,0x01,0x11,0x01,' +` 0xc0,0x01,0x77,0x01,0xfb,0x02,0x26,0x03,' +` 0x69,0x04,0xb0,0x03,0x81,0x05,0x04,0x04,' +` 0xfd,0x05,0x07,0x01,0x46,0x05,0x08,0xff,' +` 0xa0,0x06,0xb3,0xf9,0x85,0x11,0xec,0x78,' +` 0x6d,0xf1,0xb4,0x05,0xab,0xf8,0xab,0x00,' +` 0x63,0xf9,0x13,0xfe,0xe6,0xf6,0x05,0xfa,' +` 0x42,0xf7,0xd9,0xf9,0x31,0xf8,0x23,0xfa,' +` 0x8a,0xfa,0xe1,0xfc,0x0c,0xfc,0x67,0xfd,' +` 0x0d,0xfd,0x0a,0xfe,0xed,0xfd,0xa3,0xfe,' +` 0xa4,0xfe,0x20,0xff,0x2d,0xff,0x7c,0xff,' +` 0x8b,0xff,0xba,0xff,0xc5,0xff,0xde,0xff,' +` 0xe6,0xff,0xf3,0xff,0xf7,0xff,0xfc,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_48khz.m4 new file mode 100644 index 000000000000..7c623cefd516 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfe,0xff,0xfc,0xff,' +` 0xf9,0xff,0xf6,0xff,0xf0,0xff,0xe9,0xff,' +` 0xe1,0xff,0xd5,0xff,0xca,0xff,0xb7,0xff,' +` 0xbd,0xff,0xc6,0xff,0xb4,0xff,0xae,0xff,' +` 0x9f,0xff,0x99,0xff,0x8c,0xff,0x88,0xff,' +` 0x7f,0xff,0x7e,0xff,0x7a,0xff,0x7f,0xff,' +` 0x81,0xff,0x8b,0xff,0x93,0xff,0xa2,0xff,' +` 0xb1,0xff,0xc4,0xff,0xd6,0xff,0xeb,0xff,' +` 0xd9,0x7f,0x15,0x00,0x29,0x00,0x3b,0x00,' +` 0x4c,0x00,0x59,0x00,0x67,0x00,0x6d,0x00,' +` 0x75,0x00,0x76,0x00,0x79,0x00,0x74,0x00,' +` 0x72,0x00,0x69,0x00,0x64,0x00,0x58,0x00,' +` 0x51,0x00,0x44,0x00,0x3e,0x00,0x2f,0x00,' +` 0x34,0x00,0x38,0x00,0x29,0x00,0x1f,0x00,' +` 0x16,0x00,0x10,0x00,0x0a,0x00,0x07,0x00,' +` 0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x03,0x00,0x00,0x00,0x08,0x00,0xfd,0xff,' +` 0x13,0x00,0xf7,0xff,0x2a,0x00,0xe6,0xff,' +` 0x51,0x00,0xc3,0xff,0x95,0x00,0x7b,0xff,' +` 0x08,0x01,0xef,0xfe,0xd5,0x01,0xd7,0xfd,' +` 0x6c,0x03,0x5b,0xfb,0x96,0x07,0x93,0xf2,' +` 0xe7,0x26,0x81,0x46,0x0f,0xeb,0xc7,0x0c,' +` 0x1d,0xf6,0x7d,0x07,0xfb,0xf8,0x3b,0x05,' +` 0x5c,0xfa,0xd0,0x03,0x3d,0xfb,0xc3,0x02,' +` 0xe9,0xfb,0xef,0x01,0x7e,0xfc,0x46,0x01,' +` 0x07,0xfd,0xc2,0x00,0x8a,0xfd,0x61,0x00,' +` 0x08,0xfe,0xb8,0xff,0xf0,0xfd,0x98,0xff,' +` 0x7b,0xfe,0xa1,0xff,0xed,0xfe,0xb3,0xff,' +` 0x49,0xff,0xc8,0xff,0x8e,0xff,0xdb,0xff,' +` 0xbe,0xff,0xea,0xff,0xde,0xff,0xf5,0xff,' +` 0xf1,0xff,0xfb,0xff,0xfa,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_16khz.m4 new file mode 100644 index 000000000000..fdae52af0cde --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,' +` 0x00,0x00,0x0b,0x00,0x00,0x00,0x19,0x00,' +` 0xfe,0xff,0x34,0x00,0xf9,0xff,0x5f,0x00,' +` 0xf1,0xff,0xa8,0x00,0xdf,0xff,0x0b,0x01,' +` 0xb4,0xff,0x93,0x01,0x63,0xff,0x4f,0x02,' +` 0xc1,0xfe,0xfa,0x03,0xbe,0xff,0xf5,0x03,' +` 0xf5,0xfc,0xc8,0x05,0x8a,0xfa,0xce,0x08,' +` 0xbb,0xf5,0x56,0x10,0x15,0xe5,0x38,0x58,' +` 0x41,0x4a,0x9b,0xe5,0x01,0x0f,0x83,0xf4,' +` 0x74,0x07,0xc7,0xf8,0x51,0x04,0xdf,0xfa,' +` 0xa7,0x02,0xa6,0xfa,0xad,0x00,0x90,0xfd,' +` 0xac,0x00,0x35,0xfe,0x5b,0x00,0xc3,0xfe,' +` 0x2a,0x00,0x30,0xff,0x11,0x00,0x83,0xff,' +` 0x09,0x00,0xbb,0xff,0x03,0x00,0xdc,0xff,' +` 0x01,0x00,0xef,0xff,0x00,0x00,0xfa,0xff,' +` 0x00,0x00,0xfe,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,' +` 0xf8,0xff,0xf4,0xff,0xee,0xff,0xe9,0xff,' +` 0xdf,0xff,0xd8,0xff,0xc8,0xff,0xb9,0xff,' +` 0xa3,0xff,0x97,0xff,0x7b,0xff,0x73,0xff,' +` 0x4f,0xff,0x51,0xff,0x21,0xff,0x3a,0xff,' +` 0x3d,0xfd,0x74,0xfe,0x43,0xff,0xff,0xfe,' +` 0x39,0xff,0x2b,0xff,0x59,0xff,0x65,0xff,' +` 0x8f,0xff,0xb2,0xff,0xd9,0x7f,0x4d,0x00,' +` 0x6f,0x00,0x96,0x00,0xa0,0x00,0xcb,0x00,' +` 0xbc,0x00,0xf0,0x00,0xaf,0x00,0x6a,0x01,' +` 0x7f,0x02,0xb1,0x00,0xc5,0x00,0x99,0x00,' +` 0x99,0x00,0x78,0x00,0x70,0x00,0x57,0x00,' +` 0x4c,0x00,0x38,0x00,0x2c,0x00,0x1f,0x00,' +` 0x18,0x00,0x11,0x00,0x0c,0x00,0x08,0x00,' +` 0x05,0x00,0x03,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_48khz.m4 new file mode 100644 index 000000000000..81cb2d0921c9 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0xff,0xff,' +` 0x04,0x00,0xfc,0xff,0x0a,0x00,0xf6,0xff,' +` 0x17,0x00,0xeb,0xff,0x2c,0x00,0xd6,0xff,' +` 0x50,0x00,0xb2,0xff,0x87,0x00,0x78,0xff,' +` 0xd8,0x00,0x1f,0xff,0x50,0x01,0x97,0xfe,' +` 0xfd,0x01,0xca,0xfd,0xff,0x02,0x8b,0xfc,' +` 0x98,0x04,0x6d,0xfa,0x85,0x07,0x03,0xf6,' +` 0xfb,0x0e,0x86,0xe5,0xb6,0x63,0xa0,0x3b,' +` 0xf0,0xe8,0x08,0x0e,0xdb,0xf5,0x85,0x07,' +` 0xd3,0xf9,0xc1,0x04,0xda,0xfb,0x2b,0x03,' +` 0x1e,0xfd,0x22,0x02,0xfd,0xfd,0x6b,0x01,' +` 0x9e,0xfe,0xec,0x00,0x12,0xff,0x94,0x00,' +` 0x66,0xff,0x58,0x00,0xa1,0xff,0x32,0x00,' +` 0xc8,0xff,0x1a,0x00,0xe2,0xff,0x0d,0x00,' +` 0xf1,0xff,0x06,0x00,0xf8,0xff,0xff,0xff,' +` 0xfc,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,' +` 0xfd,0xff,0xfd,0xff,0xfb,0xff,0xfb,0xff,' +` 0xf8,0xff,0xf7,0xff,0xf4,0xff,0xf3,0xff,' +` 0xef,0xff,0xee,0xff,0xe9,0xff,0xe8,0xff,' +` 0xe4,0xff,0xe4,0xff,0xe0,0xff,0xe0,0xff,' +` 0xdd,0xff,0xde,0xff,0xdc,0xff,0xdf,0xff,' +` 0xde,0xff,0xe1,0xff,0xe3,0xff,0xe8,0xff,' +` 0xef,0xff,0xf8,0xff,0xd9,0x7f,0x08,0x00,' +` 0x11,0x00,0x18,0x00,0x1c,0x00,0x1d,0x00,' +` 0x20,0x00,0x1f,0x00,0x21,0x00,0x1f,0x00,' +` 0x20,0x00,0x1d,0x00,0x1c,0x00,0x19,0x00,' +` 0x18,0x00,0x14,0x00,0x13,0x00,0x0f,0x00,' +` 0x0e,0x00,0x0b,0x00,0x0a,0x00,0x07,0x00,' +` 0x06,0x00,0x04,0x00,0x03,0x00,0x02,0x00,' +` 0x02,0x00,0x01,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_16khz.m4 new file mode 100644 index 000000000000..9a1f9e44367d --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,' +` 0x0b,0x00,0x08,0x00,0x1b,0x00,0x11,0x00,' +` 0x39,0x00,0x20,0x00,0x6f,0x00,0x39,0x00,' +` 0xc4,0x00,0x58,0x00,0x3c,0x01,0x70,0x00,' +` 0xd3,0x01,0x74,0x00,0x8b,0x02,0x5e,0x00,' +` 0xec,0x04,0xda,0x01,0xe4,0x05,0x9c,0xfe,' +` 0xef,0x05,0xc4,0xfc,0x1b,0x08,0xe4,0xf8,' +` 0x6a,0x0d,0xcf,0xec,0x94,0x32,0x0c,0x6b,' +` 0x65,0xe5,0x77,0x0d,0x94,0xf4,0xb2,0x05,' +` 0x5b,0xf8,0x77,0x02,0x44,0xfa,0x0d,0x00,' +` 0xd9,0xf8,0xd8,0xfd,0x8c,0xfb,0xb8,0xff,' +` 0x01,0xfd,0x78,0xff,0xd5,0xfd,0x78,0xff,' +` 0x81,0xfe,0x96,0xff,0x0d,0xff,0xb9,0xff,' +` 0x71,0xff,0xd6,0xff,0xb2,0xff,0xe8,0xff,' +` 0xd9,0xff,0xf4,0xff,0xef,0xff,0xfb,0xff,' +` 0xfa,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfc,0xff,0xf8,0xff,0xf4,0xff,' +` 0xed,0xff,0xe4,0xff,0xd8,0xff,0xc8,0xff,' +` 0xb6,0xff,0x9b,0xff,0x7f,0xff,0x58,0xff,' +` 0x33,0xff,0xfe,0xfe,0xda,0xfe,0x9f,0xfe,' +` 0x82,0xfe,0x39,0xfe,0x45,0xfe,0xca,0xfc,' +` 0xa0,0xfb,0xcb,0xfb,0xa0,0xfd,0xfa,0xfd,' +` 0xf6,0xfd,0x35,0xfe,0x5d,0xfe,0xa8,0xfe,' +` 0x04,0xff,0x85,0xff,0xd9,0x7f,0x7a,0x00,' +` 0xf7,0x00,0x4e,0x01,0x93,0x01,0xb5,0x01,' +` 0xec,0x01,0xe3,0x01,0x32,0x02,0xd9,0x03,' +` 0xf5,0x03,0xdf,0x02,0x88,0x01,0x8e,0x01,' +` 0x49,0x01,0x2d,0x01,0xf7,0x00,0xd5,0x00,' +` 0xa7,0x00,0x86,0x00,0x65,0x00,0x4d,0x00,' +` 0x38,0x00,0x29,0x00,0x1c,0x00,0x13,0x00,' +` 0x0c,0x00,0x08,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_48khz.m4 new file mode 100644 index 000000000000..ee740cd4a708 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,' +` 0x02,0x00,0x02,0x00,0x06,0x00,0x05,0x00,' +` 0x0c,0x00,0x08,0x00,0x15,0x00,0x0b,0x00,' +` 0x21,0x00,0x0e,0x00,0x32,0x00,0x0d,0x00,' +` 0x48,0x00,0x07,0x00,0x64,0x00,0xf6,0xff,' +` 0x88,0x00,0xd1,0xff,0xb8,0x00,0x83,0xff,' +` 0x13,0x01,0xd5,0xfe,0x26,0x02,0xd0,0xfb,' +` 0x6a,0x78,0xd7,0x04,0x74,0xfd,0x7a,0x01,' +` 0x92,0xfe,0xb5,0x00,0xe8,0xfe,0x50,0x00,' +` 0x12,0xff,0x14,0x00,0x35,0xff,0xf1,0xff,' +` 0x54,0xff,0xde,0xff,0x71,0xff,0xd5,0xff,' +` 0x8d,0xff,0xd5,0xff,0xa7,0xff,0xda,0xff,' +` 0xbe,0xff,0xe1,0xff,0xd3,0xff,0xe9,0xff,' +` 0xe3,0xff,0xf0,0xff,0xdf,0xff,0xeb,0xff,' +` 0xee,0xff,0xf5,0xff,0xf8,0xff,0xfc,0xff,' +` 0xfd,0xff,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xff,0xff,0xfd,0xff,0xfb,0xff,0xf9,0xff,' +` 0xf5,0xff,0xf8,0xff,0xf6,0xff,0xf3,0xff,' +` 0xef,0xff,0xea,0xff,0xe5,0xff,0xdf,0xff,' +` 0xd9,0xff,0xd3,0xff,0xcd,0xff,0xc7,0xff,' +` 0xc1,0xff,0xbb,0xff,0xb7,0xff,0xb3,0xff,' +` 0xb0,0xff,0xaf,0xff,0xaf,0xff,0xb3,0xff,' +` 0xba,0xff,0xc3,0xff,0xcd,0xff,0xd9,0xff,' +` 0xe5,0xff,0xf2,0xff,0xd9,0x7f,0x0d,0x00,' +` 0x1a,0x00,0x26,0x00,0x31,0x00,0x3a,0x00,' +` 0x42,0x00,0x48,0x00,0x4b,0x00,0x4a,0x00,' +` 0x48,0x00,0x45,0x00,0x41,0x00,0x3c,0x00,' +` 0x37,0x00,0x31,0x00,0x2b,0x00,0x25,0x00,' +` 0x1f,0x00,0x1a,0x00,0x15,0x00,0x11,0x00,' +` 0x0d,0x00,0x0a,0x00,0x07,0x00,0x05,0x00,' +` 0x07,0x00,0x05,0x00,0x03,0x00,0x01,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_16khz.m4 new file mode 100644 index 000000000000..94a1943f599e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_16khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x02,0x00,0x05,0x00,0x08,0x00,' +` 0x11,0x00,0x17,0x00,0x2b,0x00,0x35,0x00,' +` 0x5c,0x00,0x67,0x00,0xac,0x00,0xb1,0x00,' +` 0x21,0x01,0x11,0x01,0xc0,0x01,0x77,0x01,' +` 0xfb,0x02,0x26,0x03,0x69,0x04,0xb0,0x03,' +` 0x81,0x05,0x04,0x04,0xfd,0x05,0x07,0x01,' +` 0x46,0x05,0x08,0xff,0xa0,0x06,0xb3,0xf9,' +` 0x85,0x11,0xec,0x78,0x6d,0xf1,0xb4,0x05,' +` 0xab,0xf8,0xab,0x00,0x63,0xf9,0x13,0xfe,' +` 0xe6,0xf6,0x05,0xfa,0x42,0xf7,0xd9,0xf9,' +` 0x31,0xf8,0x23,0xfa,0x8a,0xfa,0xe1,0xfc,' +` 0x0c,0xfc,0x67,0xfd,0x0d,0xfd,0x0a,0xfe,' +` 0xed,0xfd,0xa3,0xfe,0xa4,0xfe,0x20,0xff,' +` 0x2d,0xff,0x7c,0xff,0x8b,0xff,0xba,0xff,' +` 0xc5,0xff,0xde,0xff,0xe6,0xff,0xf3,0xff,' +` 0xf7,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfc,0xff,0xf7,0xff,0xf1,0xff,0xe8,0xff,' +` 0xdb,0xff,0xc8,0xff,0xb0,0xff,0x91,0xff,' +` 0x6a,0xff,0x3a,0xff,0x03,0xff,0xbe,0xfe,' +` 0x78,0xfe,0x1f,0xfe,0xd1,0xfd,0x62,0xfd,' +` 0x2b,0xfd,0x11,0xfc,0x92,0xfa,0x69,0xfa,' +` 0xcf,0xf9,0xbd,0xf9,0x3e,0xf9,0xeb,0xf9,' +` 0x43,0xfc,0x99,0xfc,0x31,0xfd,0xc8,0xfd,' +` 0x7f,0xfe,0x3b,0xff,0xd9,0x7f,0xc3,0x00,' +` 0x79,0x01,0x28,0x02,0xb4,0x02,0x3e,0x03,' +` 0x87,0x03,0xae,0x05,0x3f,0x06,0xba,0x05,' +` 0x99,0x05,0x00,0x05,0xcc,0x04,0x6f,0x03,' +` 0x71,0x02,0x3a,0x02,0xd5,0x01,0x8e,0x01,' +` 0x3f,0x01,0x01,0x01,0xc7,0x00,0x98,0x00,' +` 0x70,0x00,0x51,0x00,0x39,0x00,0x26,0x00,' +` 0x18,0x00,0x0f,0x00,0x09,0x00,0x05,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_48khz.m4 new file mode 100644 index 000000000000..1c8b65e6120e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_48khz.m4 @@ -0,0 +1,49 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x50,0x01,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,' +` 0x08,0x00,0xfd,0xff,0x13,0x00,0xf7,0xff,' +` 0x2a,0x00,0xe6,0xff,0x51,0x00,0xc3,0xff,' +` 0x95,0x00,0x7b,0xff,0x08,0x01,0xef,0xfe,' +` 0xd5,0x01,0xd7,0xfd,0x6c,0x03,0x5b,0xfb,' +` 0x96,0x07,0x93,0xf2,0xe7,0x26,0x81,0x46,' +` 0x0f,0xeb,0xc7,0x0c,0x1d,0xf6,0x7d,0x07,' +` 0xfb,0xf8,0x3b,0x05,0x5c,0xfa,0xd0,0x03,' +` 0x3d,0xfb,0xc3,0x02,0xe9,0xfb,0xef,0x01,' +` 0x7e,0xfc,0x46,0x01,0x07,0xfd,0xc2,0x00,' +` 0x8a,0xfd,0x61,0x00,0x08,0xfe,0xb8,0xff,' +` 0xf0,0xfd,0x98,0xff,0x7b,0xfe,0xa1,0xff,' +` 0xed,0xfe,0xb3,0xff,0x49,0xff,0xc8,0xff,' +` 0x8e,0xff,0xdb,0xff,0xbe,0xff,0xea,0xff,' +` 0xde,0xff,0xf5,0xff,0xf1,0xff,0xfb,0xff,' +` 0xfa,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfe,0xff,0xfc,0xff,0xf9,0xff,0xf6,0xff,' +` 0xf0,0xff,0xe9,0xff,0xe1,0xff,0xd5,0xff,' +` 0xca,0xff,0xb7,0xff,0xbd,0xff,0xc6,0xff,' +` 0xb4,0xff,0xae,0xff,0x9f,0xff,0x99,0xff,' +` 0x8c,0xff,0x88,0xff,0x7f,0xff,0x7e,0xff,' +` 0x7a,0xff,0x7f,0xff,0x81,0xff,0x8b,0xff,' +` 0x93,0xff,0xa2,0xff,0xb1,0xff,0xc4,0xff,' +` 0xd6,0xff,0xeb,0xff,0xd9,0x7f,0x15,0x00,' +` 0x29,0x00,0x3b,0x00,0x4c,0x00,0x59,0x00,' +` 0x67,0x00,0x6d,0x00,0x75,0x00,0x76,0x00,' +` 0x79,0x00,0x74,0x00,0x72,0x00,0x69,0x00,' +` 0x64,0x00,0x58,0x00,0x51,0x00,0x44,0x00,' +` 0x3e,0x00,0x2f,0x00,0x34,0x00,0x38,0x00,' +` 0x29,0x00,0x1f,0x00,0x16,0x00,0x10,0x00,' +` 0x0a,0x00,0x07,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line2_pass.m4 b/tools/topology/m4/tdfb/coef_line2_pass.m4 new file mode 100644 index 000000000000..19f04e26efd3 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line2_pass.m4 @@ -0,0 +1,19 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x60,0x00,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x60,0x00,0x00,0x00,0x02,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x04,0x00,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x04,0x00,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_16khz.m4 new file mode 100644 index 000000000000..604e8819d30a --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xfa,0xff,0xf4,0xff,' +` 0xea,0xff,0xdd,0xff,0xcb,0xff,0xb4,0xff,' +` 0x95,0xff,0x74,0xff,0x4b,0xff,0x24,0xff,' +` 0xf8,0xfe,0xd9,0xfe,0xbf,0xfe,0xcc,0xfe,' +` 0xe7,0xfe,0x47,0xff,0xce,0xff,0xcf,0x00,' +` 0x88,0x01,0x45,0x03,0x85,0x05,0x60,0x08,' +` 0x92,0x0b,0x6a,0x0f,0x41,0x13,0x2f,0x17,' +` 0xf2,0x1c,0x60,0x22,0x38,0x23,0xdf,0x26,' +` 0x9b,0x65,0xe8,0x23,0x2a,0x23,0xfb,0x1f,' +` 0x1d,0x1b,0x9b,0x14,0x62,0x11,0xfb,0x0c,' +` 0xac,0x09,0x5e,0x06,0x1f,0x04,0xdb,0x01,' +` 0xa1,0x00,0xe9,0xff,0x45,0xff,0xd1,0xfe,' +` 0xb1,0xfe,0xa2,0xfe,0xbb,0xfe,0xdb,0xfe,' +` 0x0c,0xff,0x37,0xff,0x64,0xff,0x8a,0xff,' +` 0xab,0xff,0xc5,0xff,0xd9,0xff,0xe8,0xff,' +` 0xf2,0xff,0xf9,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,' +` 0x0d,0x00,0x19,0x00,0x2b,0x00,0x45,0x00,' +` 0x6a,0x00,0x99,0x00,0xd4,0x00,0x1a,0x01,' +` 0x69,0x01,0xbb,0x01,0x0d,0x02,0x54,0x02,' +` 0x7e,0x02,0x74,0x02,0x2b,0x02,0x85,0x01,' +` 0x5b,0x00,0x7f,0xfe,0xdd,0xfc,0xa8,0xf9,' +` 0xe0,0xf4,0x86,0xef,0xbb,0xe8,0x90,0xe1,' +` 0x41,0xd9,0x2f,0xd2,0xc5,0xc5,0x12,0xbc,' +` 0x75,0xb8,0xab,0xb4,0x6a,0x34,0xe0,0xb5,' +` 0xbe,0xba,0x3c,0xbf,0x16,0xca,0x45,0xd6,' +` 0x74,0xdd,0xac,0xe5,0xc4,0xec,0x04,0xf3,' +` 0xd4,0xf7,0x1d,0xfc,0xce,0xfe,0x14,0x00,' +` 0x7e,0x01,0x4e,0x02,0xa5,0x02,0xb3,0x02,' +` 0x8e,0x02,0x45,0x02,0xeb,0x01,0x8f,0x01,' +` 0x39,0x01,0xec,0x00,0xaa,0x00,0x76,0x00,' +` 0x4d,0x00,0x30,0x00,0x1b,0x00,0x0e,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x05,0x00,0x0d,0x00,0x19,0x00,' +` 0x2b,0x00,0x45,0x00,0x6a,0x00,0x99,0x00,' +` 0xd4,0x00,0x1a,0x01,0x69,0x01,0xbb,0x01,' +` 0x0d,0x02,0x54,0x02,0x7e,0x02,0x74,0x02,' +` 0x2b,0x02,0x85,0x01,0x5b,0x00,0x7f,0xfe,' +` 0xdd,0xfc,0xa8,0xf9,0xe0,0xf4,0x86,0xef,' +` 0xbb,0xe8,0x90,0xe1,0x41,0xd9,0x2f,0xd2,' +` 0xc5,0xc5,0x12,0xbc,0x75,0xb8,0xab,0xb4,' +` 0x6a,0x34,0xe0,0xb5,0xbe,0xba,0x3c,0xbf,' +` 0x16,0xca,0x45,0xd6,0x74,0xdd,0xac,0xe5,' +` 0xc4,0xec,0x04,0xf3,0xd4,0xf7,0x1d,0xfc,' +` 0xce,0xfe,0x14,0x00,0x7e,0x01,0x4e,0x02,' +` 0xa5,0x02,0xb3,0x02,0x8e,0x02,0x45,0x02,' +` 0xeb,0x01,0x8f,0x01,0x39,0x01,0xec,0x00,' +` 0xaa,0x00,0x76,0x00,0x4d,0x00,0x30,0x00,' +` 0x1b,0x00,0x0e,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xfa,0xff,0xf4,0xff,0xea,0xff,0xdd,0xff,' +` 0xcb,0xff,0xb4,0xff,0x95,0xff,0x74,0xff,' +` 0x4b,0xff,0x24,0xff,0xf8,0xfe,0xd9,0xfe,' +` 0xbf,0xfe,0xcc,0xfe,0xe7,0xfe,0x47,0xff,' +` 0xce,0xff,0xcf,0x00,0x88,0x01,0x45,0x03,' +` 0x85,0x05,0x60,0x08,0x92,0x0b,0x6a,0x0f,' +` 0x41,0x13,0x2f,0x17,0xf2,0x1c,0x60,0x22,' +` 0x38,0x23,0xdf,0x26,0x9b,0x65,0xe8,0x23,' +` 0x2a,0x23,0xfb,0x1f,0x1d,0x1b,0x9b,0x14,' +` 0x62,0x11,0xfb,0x0c,0xac,0x09,0x5e,0x06,' +` 0x1f,0x04,0xdb,0x01,0xa1,0x00,0xe9,0xff,' +` 0x45,0xff,0xd1,0xfe,0xb1,0xfe,0xa2,0xfe,' +` 0xbb,0xfe,0xdb,0xfe,0x0c,0xff,0x37,0xff,' +` 0x64,0xff,0x8a,0xff,0xab,0xff,0xc5,0xff,' +` 0xd9,0xff,0xe8,0xff,0xf2,0xff,0xf9,0xff,' +` 0xfd,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_48khz.m4 new file mode 100644 index 000000000000..024100bcfa34 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x08,0x00,0x0f,0x00,0x17,0x00,0x27,0x00,' +` 0x37,0x00,0x56,0x00,0x75,0x00,0xab,0x00,' +` 0xdc,0x00,0x34,0x01,0x7a,0x01,0xfb,0x01,' +` 0x57,0x02,0x09,0x03,0x74,0x03,0x61,0x04,' +` 0x69,0x05,0xa4,0x06,0x0c,0x07,0x6b,0x08,' +` 0x9f,0x08,0x2e,0x0a,0xf9,0x09,0xcc,0x0b,' +` 0xdb,0x0a,0x4e,0x0d,0xaa,0x0a,0x55,0x10,' +` 0x3c,0x4c,0x34,0x09,0xc9,0x0d,0xa6,0x0a,' +` 0xea,0x0b,0xea,0x09,0x35,0x0a,0x9a,0x08,' +` 0x68,0x08,0x0e,0x07,0x97,0x06,0x7e,0x05,' +` 0xbb,0x04,0x66,0x03,0x0b,0x03,0x50,0x02,' +` 0xfa,0x01,0x75,0x01,0x31,0x01,0xd9,0x00,' +` 0xa9,0x00,0x72,0x00,0x54,0x00,0x36,0x00,' +` 0x25,0x00,0x15,0x00,0x0e,0x00,0x07,0x00,' +` 0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf8,0xff,0xf0,0xff,0xe4,0xff,' +` 0xd2,0xff,0xb5,0xff,0x8e,0xff,0x59,0xff,' +` 0x11,0xff,0xb4,0xfe,0x3d,0xfe,0xab,0xfd,' +` 0xf9,0xfc,0x27,0xfc,0x32,0xfb,0x1d,0xfa,' +` 0xe5,0xf8,0x8c,0xf7,0xf3,0xf4,0x17,0xf3,' +` 0x7c,0xf1,0xb9,0xef,0x1e,0xee,0x7a,0xec,' +` 0x0e,0xeb,0xb2,0xe9,0xa2,0xe8,0xb2,0xe7,' +` 0x21,0xe7,0xb9,0xe6,0x98,0x66,0x08,0xe7,' +` 0xb7,0xe7,0x8a,0xe8,0xb8,0xe9,0xf7,0xea,' +` 0x83,0xec,0x06,0xee,0xc8,0xef,0x62,0xf1,' +` 0x33,0xf3,0xae,0xf4,0xb9,0xf6,0xf7,0xf8,' +` 0x14,0xfa,0x38,0xfb,0x26,0xfc,0xfd,0xfc,' +` 0xac,0xfd,0x40,0xfe,0xb6,0xfe,0x14,0xff,' +` 0x5b,0xff,0x91,0xff,0xb8,0xff,0xd4,0xff,' +` 0xe5,0xff,0xf1,0xff,0xf8,0xff,0xfc,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf8,0xff,' +` 0xf0,0xff,0xe4,0xff,0xd2,0xff,0xb5,0xff,' +` 0x8e,0xff,0x59,0xff,0x11,0xff,0xb4,0xfe,' +` 0x3d,0xfe,0xab,0xfd,0xf9,0xfc,0x27,0xfc,' +` 0x32,0xfb,0x1d,0xfa,0xe5,0xf8,0x8c,0xf7,' +` 0xf3,0xf4,0x17,0xf3,0x7c,0xf1,0xb9,0xef,' +` 0x1e,0xee,0x7a,0xec,0x0e,0xeb,0xb2,0xe9,' +` 0xa2,0xe8,0xb2,0xe7,0x21,0xe7,0xb9,0xe6,' +` 0x98,0x66,0x08,0xe7,0xb7,0xe7,0x8a,0xe8,' +` 0xb8,0xe9,0xf7,0xea,0x83,0xec,0x06,0xee,' +` 0xc8,0xef,0x62,0xf1,0x33,0xf3,0xae,0xf4,' +` 0xb9,0xf6,0xf7,0xf8,0x14,0xfa,0x38,0xfb,' +` 0x26,0xfc,0xfd,0xfc,0xac,0xfd,0x40,0xfe,' +` 0xb6,0xfe,0x14,0xff,0x5b,0xff,0x91,0xff,' +` 0xb8,0xff,0xd4,0xff,0xe5,0xff,0xf1,0xff,' +` 0xf8,0xff,0xfc,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x08,0x00,0x0f,0x00,' +` 0x17,0x00,0x27,0x00,0x37,0x00,0x56,0x00,' +` 0x75,0x00,0xab,0x00,0xdc,0x00,0x34,0x01,' +` 0x7a,0x01,0xfb,0x01,0x57,0x02,0x09,0x03,' +` 0x74,0x03,0x61,0x04,0x69,0x05,0xa4,0x06,' +` 0x0c,0x07,0x6b,0x08,0x9f,0x08,0x2e,0x0a,' +` 0xf9,0x09,0xcc,0x0b,0xdb,0x0a,0x4e,0x0d,' +` 0xaa,0x0a,0x55,0x10,0x3c,0x4c,0x34,0x09,' +` 0xc9,0x0d,0xa6,0x0a,0xea,0x0b,0xea,0x09,' +` 0x35,0x0a,0x9a,0x08,0x68,0x08,0x0e,0x07,' +` 0x97,0x06,0x7e,0x05,0xbb,0x04,0x66,0x03,' +` 0x0b,0x03,0x50,0x02,0xfa,0x01,0x75,0x01,' +` 0x31,0x01,0xd9,0x00,0xa9,0x00,0x72,0x00,' +` 0x54,0x00,0x36,0x00,0x25,0x00,0x15,0x00,' +` 0x0e,0x00,0x07,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_16khz.m4 new file mode 100644 index 000000000000..a97b39344565 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xf9,0xff,0xf2,0xff,' +` 0xe8,0xff,0xd8,0xff,0xc4,0xff,0xa9,0xff,' +` 0x8a,0xff,0x63,0xff,0x3c,0xff,0x0e,0xff,' +` 0xec,0xfe,0xc8,0xfe,0xc9,0xfe,0xcf,0xfe,' +` 0x13,0xff,0x63,0xff,0x40,0x00,0xa7,0x00,' +` 0xa2,0x01,0x8f,0x03,0xa4,0x05,0x7c,0x07,' +` 0x77,0x09,0x8e,0x0d,0xd2,0x10,0xdd,0x13,' +` 0x0d,0x18,0xf3,0x1e,0x7b,0x21,0x7a,0x24,' +` 0xb5,0x65,0x41,0x26,0xf9,0x24,0xed,0x22,' +` 0x30,0x1f,0x6a,0x17,0xed,0x12,0x0e,0x0e,' +` 0xf9,0x0a,0xc6,0x06,0x80,0x03,0x65,0x01,' +` 0x9e,0x00,0xb7,0xff,0xdc,0xfe,0xb2,0xfe,' +` 0x8c,0xfe,0x9f,0xfe,0xb8,0xfe,0xed,0xfe,' +` 0x19,0xff,0x4a,0xff,0x72,0xff,0x98,0xff,' +` 0xb5,0xff,0xcd,0xff,0xde,0xff,0xec,0xff,' +` 0xf4,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x29,0x00,0x48,0x00,' +` 0x64,0x00,0x9c,0x00,0xbd,0x00,0x0f,0x01,' +` 0x20,0x01,0x81,0x01,0x54,0x01,0xad,0x01,' +` 0xff,0x00,0x27,0x01,0xac,0xff,0x93,0xff,' +` 0x02,0xfd,0x12,0xfd,0xa5,0xf9,0xf8,0xf9,' +` 0xea,0xf4,0x10,0xf4,0xfc,0xeb,0x8f,0xef,' +` 0xbf,0xe2,0x64,0xe5,0x49,0xcd,0x33,0xd2,' +` 0xaf,0xb3,0xba,0xd8,0x68,0x29,0x55,0x9a,' +` 0x27,0xba,0x6c,0xaa,0xd1,0xc2,0x4b,0xc5,' +` 0x32,0xd6,0xc7,0xdb,0xd7,0xec,0xf5,0xef,' +` 0x00,0xfa,0xe8,0xfc,0x04,0x02,0x41,0x02,' +` 0xa0,0x04,0x0a,0x04,0xbd,0x04,0xbc,0x03,' +` 0xad,0x03,0xb6,0x02,0x6a,0x02,0xae,0x01,' +` 0x64,0x01,0xec,0x00,0xb6,0x00,0x71,0x00,' +` 0x50,0x00,0x2d,0x00,0x1c,0x00,0x0d,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x27,0x00,0x4a,0x00,0x62,0x00,0xa9,0x00,' +` 0xc9,0x00,0x48,0x01,0x69,0x01,0x36,0x02,' +` 0x3d,0x02,0x5e,0x03,0xff,0x02,0x57,0x04,' +` 0xff,0x02,0x42,0x04,0xec,0x00,0xc6,0x01,' +` 0x76,0xfb,0xc6,0xfa,0x8a,0xee,0xf3,0xed,' +` 0xbf,0xdb,0x5c,0xd8,0xbd,0xc3,0x1f,0xc7,' +` 0x4e,0xa8,0x5d,0xbd,0x1f,0x95,0x94,0xf7,' +` 0xb3,0x13,0x84,0xa4,0x02,0xd9,0xe2,0xc6,' +` 0xa5,0xe7,0xcd,0xe0,0x0e,0xf2,0x69,0xec,' +` 0xe9,0xf5,0xcd,0xf4,0xf5,0xfb,0x07,0xfa,' +` 0xa6,0xfe,0x5f,0xfd,0x9d,0x00,0xf5,0xff,' +` 0xe4,0x01,0x3a,0x01,0x2a,0x02,0x82,0x01,' +` 0xce,0x01,0x3e,0x01,0x3b,0x01,0xce,0x00,' +` 0xb2,0x00,0x6c,0x00,0x52,0x00,0x2c,0x00,' +` 0x1d,0x00,0x0d,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfa,0xff,0xf6,0xff,0xec,0xff,0xe5,0xff,' +` 0xcf,0xff,0xc4,0xff,0x9d,0xff,0x92,0xff,' +` 0x52,0xff,0x54,0xff,0xf9,0xfe,0x1d,0xff,' +` 0xa9,0xfe,0x26,0xff,0xb2,0xfe,0xc3,0xff,' +` 0x73,0xff,0xee,0x01,0x1c,0x01,0xdb,0x04,' +` 0x7c,0x05,0xb9,0x0c,0x9b,0x0c,0x0b,0x15,' +` 0x4b,0x14,0xaa,0x21,0xc2,0x1e,0xf0,0x2b,' +` 0xe5,0x19,0x87,0x5b,0x51,0x3e,0x6b,0x17,' +` 0xa8,0x25,0xbf,0x14,0xc9,0x16,0x04,0x0e,' +` 0x73,0x0f,0xc3,0x07,0xf5,0x07,0x1f,0x04,' +` 0x08,0x04,0x9b,0x00,0x9c,0x00,0x52,0xff,' +` 0x74,0xff,0x6b,0xfe,0xc9,0xfe,0x5a,0xfe,' +` 0xbe,0xfe,0xa5,0xfe,0x05,0xff,0x13,0xff,' +` 0x5d,0xff,0x75,0xff,0xa6,0xff,0xbb,0xff,' +` 0xd7,0xff,0xe4,0xff,0xf1,0xff,0xf8,0xff,' +` 0xfd,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_48khz.m4 new file mode 100644 index 000000000000..055c732e822b --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x08,0x00,0x0d,0x00,0x14,0x00,0x1d,0x00,' +` 0x2d,0x00,0x48,0x00,0x6c,0x00,0x92,0x00,' +` 0xc8,0x00,0x03,0x01,0x54,0x01,0xa9,0x01,' +` 0x1b,0x02,0x8a,0x02,0x24,0x03,0x8d,0x03,' +` 0x1b,0x04,0xc3,0x05,0x8b,0x06,0x68,0x07,' +` 0x37,0x08,0x0c,0x09,0xd2,0x09,0x8d,0x0a,' +` 0x33,0x0b,0xc1,0x0b,0x36,0x0c,0x82,0x0c,' +` 0x8f,0x4c,0x9a,0x0c,0x75,0x0c,0x1b,0x0c,' +` 0xac,0x0b,0x0d,0x0b,0x67,0x0a,0x95,0x09,' +` 0xce,0x08,0xde,0x07,0x14,0x07,0x0f,0x06,' +` 0x8a,0x05,0x57,0x04,0x2f,0x03,0xb2,0x02,' +` 0x1a,0x02,0xae,0x01,0x43,0x01,0xf6,0x00,' +` 0xb1,0x00,0x80,0x00,0x56,0x00,0x3c,0x00,' +` 0x2a,0x00,0x1b,0x00,0x0f,0x00,0x07,0x00,' +` 0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,' +` 0xfc,0xff,0xfb,0xff,0xf1,0xff,0xef,0xff,' +` 0xcf,0xff,0xcd,0xff,0x98,0xff,0xad,0xff,' +` 0x3e,0xff,0x5a,0xff,0x98,0xfe,0xd4,0xfe,' +` 0x92,0xfd,0x09,0xfe,0x0d,0xfc,0xec,0xfc,' +` 0xe7,0xf9,0xe2,0xfa,0xe8,0xf5,0x34,0xf8,' +` 0xfd,0xf1,0x0e,0xf6,0x52,0xed,0x43,0xf4,' +` 0xb3,0xe7,0xe0,0xf3,0x07,0xe0,0x81,0xf8,' +` 0xe4,0xcc,0x70,0x4b,0xe9,0x21,0xe2,0xce,' +` 0xb2,0xf3,0x7e,0xdc,0x57,0xee,0x3e,0xe2,' +` 0xe8,0xed,0x10,0xe7,0x89,0xef,0xcb,0xeb,' +` 0x33,0xf2,0xbb,0xf0,0x3b,0xf6,0xc3,0xf5,' +` 0x3c,0xf9,0x0c,0xf9,0x89,0xfb,0x9f,0xfb,' +` 0x4c,0xfd,0x78,0xfd,0x85,0xfe,0xad,0xfe,' +` 0x49,0xff,0x71,0xff,0xbe,0xff,0xc8,0xff,' +` 0xe6,0xff,0xec,0xff,0xf9,0xff,0xfc,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf3,0xff,' +` 0xed,0xff,0xd8,0xff,0xcd,0xff,0x92,0xff,' +` 0x6d,0xff,0xf7,0xfe,0xc7,0xfe,0xf3,0xfd,' +` 0xb5,0xfd,0x5a,0xfc,0x20,0xfc,0x11,0xfa,' +` 0x04,0xfa,0x09,0xf7,0xfd,0xf6,0x91,0xf2,' +` 0x41,0xf3,0xd8,0xed,0x79,0xf0,0x41,0xe9,' +` 0x85,0xee,0x8b,0xe4,0x56,0xee,0x0e,0xdf,' +` 0x6a,0xf2,0x2b,0xd3,0x73,0x16,0x19,0x54,' +` 0x76,0xce,0x6e,0xf7,0x79,0xe0,0x0c,0xf3,' +` 0x8f,0xe7,0x7c,0xf3,0xe0,0xec,0x4e,0xf5,' +` 0x6b,0xf1,0x7c,0xf7,0x86,0xf5,0x75,0xfa,' +` 0x65,0xf9,0xa1,0xfc,0xae,0xfb,0xd0,0xfd,' +` 0x4b,0xfd,0xad,0xfe,0x66,0xfe,0x41,0xff,' +` 0x1d,0xff,0x9e,0xff,0x83,0xff,0xc0,0xff,' +` 0xc1,0xff,0xea,0xff,0xeb,0xff,0xf9,0xff,' +` 0xf9,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x05,0x00,0x0a,0x00,0x14,0x00,' +` 0x1f,0x00,0x30,0x00,0x43,0x00,0x69,0x00,' +` 0x8f,0x00,0xd1,0x00,0x0d,0x01,0x75,0x01,' +` 0xc9,0x01,0x64,0x02,0xc4,0x02,0xef,0x03,' +` 0xf4,0x04,0xa5,0x05,0x4c,0x06,0x6d,0x07,' +` 0xf3,0x07,0x3e,0x09,0x79,0x09,0xf3,0x0a,' +` 0x9d,0x0a,0x81,0x0c,0xde,0x0a,0x01,0x0f,' +` 0x9e,0x4b,0xf1,0x09,0x82,0x0d,0x05,0x0b,' +` 0x03,0x0c,0x53,0x0a,0x87,0x0a,0x18,0x09,' +` 0xe0,0x08,0x9b,0x07,0x28,0x07,0x04,0x06,' +` 0x7f,0x04,0xa0,0x03,0x87,0x03,0xbc,0x02,' +` 0x66,0x02,0xd3,0x01,0x8b,0x01,0x23,0x01,' +` 0xee,0x00,0xa7,0x00,0x84,0x00,0x54,0x00,' +` 0x37,0x00,0x22,0x00,0x1a,0x00,0x11,0x00,' +` 0x0b,0x00,0x06,0x00,0x03,0x00,0x01,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_16khz.m4 new file mode 100644 index 000000000000..726241942991 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfc,0xff,0xf8,0xff,0xf0,0xff,' +` 0xe4,0xff,0xd3,0xff,0xbc,0xff,0x9f,0xff,' +` 0x7b,0xff,0x54,0xff,0x28,0xff,0xff,0xfe,' +` 0xdc,0xfe,0xca,0xfe,0xc4,0xfe,0xe6,0xfe,' +` 0x2a,0xff,0xb9,0xff,0x02,0x00,0x7d,0x00,' +` 0xd7,0x01,0xfb,0x02,0xc0,0x04,0x27,0x05,' +` 0x58,0x06,0x42,0x09,0xb5,0x0c,0xba,0x0e,' +` 0x2d,0x11,0xfe,0x19,0xd6,0x1e,0xd8,0x22,' +` 0xbd,0x65,0x60,0x27,0x98,0x27,0x7f,0x25,' +` 0x34,0x23,0x3b,0x1a,0x87,0x13,0x3a,0x0f,' +` 0x45,0x0b,0xc1,0x06,0x7a,0x02,0x44,0x01,' +` 0x08,0x00,0x3c,0xff,0xa5,0xfe,0x64,0xfe,' +` 0x74,0xfe,0x9c,0xfe,0xcf,0xfe,0x02,0xff,' +` 0x37,0xff,0x66,0xff,0x8e,0xff,0xad,0xff,' +` 0xc6,0xff,0xd9,0xff,0xe7,0xff,0xf1,0xff,' +` 0xf7,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x27,0x00,0x48,0x00,' +` 0x58,0x00,0x92,0x00,0x94,0x00,0xe1,0x00,' +` 0xac,0x00,0xf8,0x00,0x44,0x00,0x7b,0x00,' +` 0xf1,0xfe,0x26,0xff,0x99,0xfc,0x1a,0xfd,' +` 0xef,0xf9,0x99,0xfb,0xab,0xf7,0xcc,0xfc,' +` 0xf6,0xf7,0x11,0xfd,0xc9,0xf7,0xf3,0x02,' +` 0x0b,0xf5,0x08,0xfc,0x66,0xdb,0x51,0xe8,' +` 0xcb,0xae,0xe3,0x11,0x5c,0xf7,0x14,0x88,' +` 0x0e,0xae,0xce,0x97,0x8c,0xb6,0x08,0xb5,' +` 0x78,0xce,0xac,0xd6,0x9c,0xec,0x79,0xf0,' +` 0x6a,0xfd,0x44,0xff,0x89,0x06,0x05,0x06,' +` 0x75,0x08,0x83,0x06,0x2c,0x07,0x23,0x05,' +` 0xe7,0x04,0x4a,0x03,0xe6,0x02,0xd5,0x01,' +` 0x87,0x01,0xeb,0x00,0xba,0x00,0x6a,0x00,' +` 0x4e,0x00,0x29,0x00,0x1b,0x00,0x0c,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x05,0x00,0x0c,0x00,0x17,0x00,' +` 0x2a,0x00,0x43,0x00,0x6e,0x00,0x9f,0x00,' +` 0xf5,0x00,0x4f,0x01,0xe7,0x01,0x76,0x02,' +` 0x59,0x03,0x05,0x04,0x0f,0x05,0x63,0x05,' +` 0xfc,0x05,0x51,0x05,0x8a,0x04,0x6b,0x00,' +` 0x73,0xfc,0x2e,0xf4,0xfc,0xec,0x17,0xdf,' +` 0xd1,0xd0,0x56,0xbf,0x26,0xb6,0x3d,0xa5,' +` 0x9c,0xa4,0x4a,0x9c,0xdc,0xb5,0x12,0x35,' +` 0x29,0xbc,0x46,0xda,0xa9,0xdf,0xe0,0xf3,' +` 0x0c,0xf9,0xc4,0x00,0x27,0xfd,0x37,0xfc,' +` 0x54,0xfa,0x7f,0xfc,0xb7,0xf9,0xbf,0xfa,' +` 0xd7,0xfa,0x84,0xfc,0x0f,0xfd,0xd3,0xfe,' +` 0x6b,0xff,0x7e,0x00,0xc8,0x00,0x36,0x01,' +` 0x27,0x01,0x2e,0x01,0xf5,0x00,0xd1,0x00,' +` 0x97,0x00,0x70,0x00,0x48,0x00,0x2e,0x00,' +` 0x19,0x00,0x0d,0x00,0x05,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf7,0xff,0xf4,0xff,0xe7,0xff,' +` 0xe1,0xff,0xc7,0xff,0xc1,0xff,0x91,0xff,' +` 0x8f,0xff,0x3f,0xff,0x53,0xff,0xe6,0xfe,' +` 0x2d,0xff,0xa3,0xfe,0x72,0xff,0x2f,0xff,' +` 0xe7,0x00,0xce,0x00,0x71,0x03,0x64,0x04,' +` 0xae,0x0b,0x54,0x0c,0x68,0x14,0x70,0x14,' +` 0xf8,0x23,0x1b,0x20,0x88,0x2d,0x96,0x1a,' +` 0x83,0x59,0x5c,0x3f,0xc4,0x14,0xc7,0x22,' +` 0xba,0x0e,0xe8,0x11,0x83,0x0a,0x32,0x0c,' +` 0xde,0x04,0x3b,0x06,0x38,0x03,0x25,0x04,' +` 0xc3,0x00,0x1b,0x01,0xdb,0xfe,0xdb,0xff,' +` 0x67,0xfe,0xc9,0xfe,0x10,0xfe,0x89,0xfe,' +` 0x49,0xfe,0xb8,0xfe,0xb9,0xfe,0x18,0xff,' +` 0x32,0xff,0x75,0xff,0x90,0xff,0xba,0xff,' +` 0xce,0xff,0xe4,0xff,0xef,0xff,0xf8,0xff,' +` 0xfc,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_48khz.m4 new file mode 100644 index 000000000000..977167d62a5e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,' +` 0x06,0x00,0x08,0x00,0x0e,0x00,0x15,0x00,' +` 0x20,0x00,0x2f,0x00,0x41,0x00,0x6a,0x00,' +` 0x93,0x00,0xc2,0x00,0xfc,0x00,0x43,0x01,' +` 0x8e,0x01,0xf6,0x01,0x46,0x02,0x8b,0x02,' +` 0x06,0x03,0xd1,0x03,0x8d,0x05,0x53,0x06,' +` 0x3d,0x07,0x13,0x08,0xfa,0x08,0xce,0x09,' +` 0x9f,0x0a,0x50,0x0b,0xdf,0x0b,0x4d,0x0c,' +` 0x80,0x4c,0xbb,0x0c,0xb2,0x0c,0x8a,0x0c,' +` 0x2a,0x0c,0xb4,0x0b,0x09,0x0b,0x58,0x0a,' +` 0x6c,0x09,0x90,0x08,0x82,0x07,0xde,0x06,' +` 0xf5,0x05,0x1a,0x05,0xd7,0x03,0xcc,0x02,' +` 0x4c,0x02,0xc0,0x01,0x5a,0x01,0xfe,0x00,' +` 0xb9,0x00,0x82,0x00,0x63,0x00,0x41,0x00,' +` 0x2a,0x00,0x19,0x00,0x0f,0x00,0x08,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xff,0xff,0xfa,0xff,0xfc,0xff,0xf1,0xff,' +` 0xfb,0xff,0xe2,0xff,0xfb,0xff,0xd0,0xff,' +` 0x1b,0x00,0xb5,0xff,0x24,0x00,0x67,0xff,' +` 0x1d,0x00,0xd5,0xfe,0xe4,0xff,0x4d,0xfd,' +` 0xe2,0xfe,0x42,0xfb,0x1a,0xfd,0x61,0xf7,' +` 0x30,0xfb,0xce,0xf2,0x1f,0xf9,0xab,0xec,' +` 0xdf,0xf7,0xcf,0xe3,0xe4,0xfa,0xbe,0xce,' +` 0xc3,0x48,0x46,0x24,0x4b,0xcc,0x60,0xf1,' +` 0xec,0xd7,0x09,0xea,0x6c,0xdc,0x7a,0xe8,' +` 0x98,0xe0,0xc7,0xe9,0x71,0xe5,0x1f,0xed,' +` 0xa6,0xeb,0x2b,0xf1,0xd0,0xf0,0x9d,0xf5,' +` 0x97,0xf5,0xe1,0xf8,0x3b,0xf9,0x8d,0xfb,' +` 0xf7,0xfb,0x7d,0xfd,0xf1,0xfd,0xda,0xfe,' +` 0x0a,0xff,0x84,0xff,0x9d,0xff,0xd7,0xff,' +` 0xe0,0xff,0xf3,0xff,0xf7,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xfa,0xff,0xef,0xff,' +` 0xe5,0xff,0xc5,0xff,0xab,0xff,0x5f,0xff,' +` 0x1f,0xff,0x88,0xfe,0x2d,0xfe,0x26,0xfd,' +` 0xa9,0xfc,0x09,0xfb,0x82,0xfa,0xda,0xf7,' +` 0x5b,0xf7,0x10,0xf4,0xed,0xf3,0x05,0xef,' +` 0x4f,0xf0,0x46,0xea,0xbb,0xed,0x9d,0xe5,' +` 0xf9,0xec,0x96,0xe0,0x5e,0xf0,0x1a,0xd7,' +` 0x53,0x0e,0x97,0x56,0xec,0xd1,0x72,0xf8,' +` 0x8b,0xe3,0xa5,0xf5,0xde,0xea,0xf7,0xf6,' +` 0x73,0xf0,0x54,0xf9,0x0e,0xf5,0xe3,0xfb,' +` 0xc2,0xf9,0x36,0xfe,0x27,0xfc,0xca,0xff,' +` 0x63,0xfe,0x48,0x00,0x25,0xff,0x5e,0x00,' +` 0x91,0xff,0x50,0x00,0xac,0xff,0xf9,0xff,' +` 0xb4,0xff,0xf2,0xff,0xce,0xff,0xf1,0xff,' +` 0xe2,0xff,0xfc,0xff,0xf6,0xff,0xfd,0xff,' +` 0xfc,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x08,0x00,0x0e,0x00,0x19,0x00,' +` 0x25,0x00,0x3b,0x00,0x57,0x00,0x84,0x00,' +` 0xb4,0x00,0x03,0x01,0x49,0x01,0xe6,0x01,' +` 0x9e,0x02,0x4a,0x03,0xf4,0x03,0xa6,0x04,' +` 0x4e,0x05,0x5c,0x06,0xf7,0x06,0x25,0x08,' +` 0x7b,0x08,0xd8,0x09,0x9d,0x09,0x86,0x0b,' +` 0x57,0x09,0x5a,0x45,0x96,0x0d,0x85,0x0a,' +` 0x1d,0x0c,0x9a,0x0a,0x10,0x0b,0xc5,0x09,' +` 0xb8,0x09,0x8a,0x08,0x2a,0x08,0x1c,0x07,' +` 0x59,0x05,0x17,0x04,0xd2,0x03,0x33,0x03,' +` 0x37,0x03,0x86,0x02,0x46,0x02,0xc3,0x01,' +` 0x83,0x01,0x26,0x01,0xed,0x00,0x91,0x00,' +` 0x78,0x00,0x52,0x00,0x41,0x00,0x2b,0x00,' +` 0x1f,0x00,0x16,0x00,0x13,0x00,0x0b,0x00,' +` 0x07,0x00,0x03,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_16khz.m4 new file mode 100644 index 000000000000..de5346840af0 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfc,0xff,0xf7,0xff,0xef,0xff,' +` 0xe3,0xff,0xd2,0xff,0xba,0xff,0x9e,0xff,' +` 0x7d,0xff,0x5a,0xff,0x36,0xff,0x14,0xff,' +` 0xf7,0xfe,0xec,0xfe,0xed,0xfe,0x0f,0xff,' +` 0xd2,0xfe,0xd9,0xfe,0x2c,0xff,0x37,0xff,' +` 0x4e,0xff,0x8b,0xfe,0x23,0xfd,0xd4,0xfc,' +` 0xf7,0xfc,0x85,0xfd,0xf9,0xfe,0x5a,0x02,' +` 0x0a,0x06,0x03,0x0e,0x9a,0x18,0xdc,0x1d,' +` 0xd2,0x62,0x32,0x25,0x85,0x25,0x68,0x24,' +` 0x62,0x21,0xba,0x1a,0x61,0x12,0x0a,0x0d,' +` 0x8b,0x08,0xc6,0x05,0x16,0x03,0x82,0x00,' +` 0x1f,0xff,0xd5,0xfe,0xaa,0xfe,0xbd,0xfe,' +` 0xd5,0xfe,0xfb,0xfe,0x3e,0xff,0x75,0xff,' +` 0xa0,0xff,0xc0,0xff,0xd8,0xff,0xe9,0xff,' +` 0xf3,0xff,0xf9,0xff,0xfd,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x0a,0x00,0x0f,0x00,0x1d,0x00,0x20,0x00,' +` 0x33,0x00,0x1d,0x00,0x23,0x00,0xc9,0xff,' +` 0xa2,0xff,0xbd,0xfe,0x56,0xfe,0xce,0xfc,' +` 0x69,0xfc,0x9a,0xfa,0xd1,0xfa,0x2f,0xf9,' +` 0x1c,0xfc,0xde,0xfc,0x5c,0x03,0xaa,0x05,' +` 0xc4,0x12,0x59,0x16,0x2d,0x24,0x31,0x1f,' +` 0x06,0x26,0x01,0x0d,0x32,0x0d,0x35,0xd4,' +` 0xfa,0xfc,0xc8,0x1f,0xbc,0x84,0x69,0x9e,' +` 0x76,0x86,0x10,0x9c,0x31,0x9e,0x4f,0xbe,' +` 0x85,0xc8,0xf4,0xe1,0x1c,0xec,0xf0,0xfd,' +` 0x3c,0x01,0x1d,0x0a,0xa9,0x0a,0xc9,0x0d,' +` 0xc4,0x0b,0x8e,0x0b,0x8f,0x08,0xab,0x07,' +` 0x50,0x05,0x59,0x04,0xbf,0x02,0x1f,0x02,' +` 0x41,0x01,0xef,0x00,0x83,0x00,0x5e,0x00,' +` 0x30,0x00,0x21,0x00,0x0f,0x00,0x09,0x00,' +` 0x03,0x00,0x01,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x09,0x00,0x16,0x00,' +` 0x24,0x00,0x4c,0x00,0x70,0x00,0xd3,0x00,' +` 0x23,0x01,0xf7,0x01,0x85,0x02,0xeb,0x03,' +` 0x8c,0x04,0x8e,0x06,0xe9,0x06,0xab,0x08,' +` 0xe3,0x06,0x2d,0x07,0x0a,0x01,0x44,0xff,' +` 0xe0,0xf1,0x40,0xea,0xe1,0xd4,0x08,0xcc,' +` 0x94,0xae,0xa5,0xaa,0xd4,0x92,0x48,0xa7,' +` 0x51,0x88,0xd4,0x12,0xec,0x08,0xde,0xcc,' +` 0x02,0x0e,0x4e,0x0b,0xe9,0x2a,0xfa,0x22,' +` 0x20,0x2c,0x7c,0x1b,0x0f,0x19,0xc1,0x07,' +` 0x52,0x05,0xc4,0xfb,0xf0,0xfa,0xb7,0xf5,' +` 0x1b,0xf8,0x14,0xf7,0x00,0xfa,0x2a,0xfa,' +` 0xe7,0xfc,0x65,0xfd,0x38,0xff,0x72,0xff,' +` 0x51,0x00,0x41,0x00,0x8f,0x00,0x61,0x00,' +` 0x6a,0x00,0x3f,0x00,0x35,0x00,0x1c,0x00,' +` 0x13,0x00,0x08,0x00,0x04,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfd,0xff,0xf8,0xff,' +` 0xf3,0xff,0xe5,0xff,0xdb,0xff,0xbe,0xff,' +` 0xa9,0xff,0x74,0xff,0x69,0xff,0x3b,0xff,' +` 0x46,0xff,0x2b,0xff,0x86,0xff,0x12,0x00,' +` 0x30,0x02,0xc2,0x03,0x79,0x06,0x4c,0x09,' +` 0xb3,0x0e,0x8a,0x14,0xc7,0x1c,0x0a,0x1e,' +` 0xa1,0x23,0xdb,0x1d,0xfb,0x5c,0xd4,0x22,' +` 0x84,0x16,0x1e,0x11,0x79,0x05,0xed,0x03,' +` 0x3c,0xfe,0xef,0xfd,0xd6,0xfb,0xa4,0xfc,' +` 0xe1,0xfb,0x51,0xfe,0xbe,0xfe,0x2e,0xff,' +` 0x9c,0xfe,0x83,0xfe,0xff,0xfd,0x9c,0xfe,' +` 0x20,0xfe,0x31,0xfe,0x08,0xfe,0x41,0xfe,' +` 0x55,0xfe,0x99,0xfe,0xc5,0xfe,0x09,0xff,' +` 0x3a,0xff,0x70,0xff,0x96,0xff,0xb9,0xff,' +` 0xd1,0xff,0xe4,0xff,0xf0,0xff,0xf8,0xff,' +` 0xfc,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_48khz.m4 new file mode 100644 index 000000000000..65b971d68299 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff,' +` 0xf3,0xff,0xee,0xff,0xe9,0xff,0xe6,0xff,' +` 0xe3,0xff,0xe7,0xff,0xea,0xff,0x0b,0x00,' +` 0x29,0x00,0x3c,0x00,0x84,0x00,0xcb,0x00,' +` 0x3b,0x01,0xb1,0x01,0x51,0x02,0xf9,0x02,' +` 0x04,0x05,0x30,0x06,0x09,0x07,0x06,0x08,' +` 0xe2,0x08,0xc2,0x09,0x78,0x0a,0x1f,0x0b,' +` 0x7c,0x4b,0xe0,0x0b,0xec,0x0b,0xd7,0x0b,' +` 0x86,0x0b,0x17,0x0b,0x76,0x0a,0xbd,0x09,' +` 0xf3,0x08,0x70,0x08,0x6d,0x07,0x83,0x06,' +` 0x86,0x05,0xb0,0x04,0xcf,0x03,0x27,0x03,' +` 0x4f,0x02,0x94,0x01,0x41,0x01,0xe6,0x00,' +` 0xa7,0x00,0x73,0x00,0x4d,0x00,0x32,0x00,' +` 0x1e,0x00,0x13,0x00,0x0c,0x00,0x06,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,' +` 0x06,0x00,0x0c,0x00,0x1a,0x00,0x2a,0x00,' +` 0x49,0x00,0x69,0x00,0xa5,0x00,0xd8,0x00,' +` 0x35,0x01,0x7d,0x01,0x05,0x02,0x12,0x02,' +` 0xad,0x02,0x84,0x02,0x11,0x03,0x5e,0x02,' +` 0xc2,0x02,0x2d,0x01,0xd6,0x00,0x95,0xfd,' +` 0xa9,0xfd,0xb7,0xf8,0x6b,0xf9,0xac,0xf1,' +` 0x7d,0xf5,0x14,0xe5,0xc4,0x61,0xfb,0xf1,' +` 0xcd,0xde,0x02,0xe5,0xbe,0xdc,0xd2,0xdf,' +` 0x21,0xdb,0xd5,0xdd,0xbf,0xdb,0x03,0xe0,' +` 0xd8,0xdf,0x6c,0xe3,0x80,0xe4,0x3d,0xe8,' +` 0x14,0xea,0xa7,0xed,0xd8,0xef,0xc3,0xf3,' +` 0xc9,0xf5,0x20,0xf8,0xa2,0xf9,0x59,0xfb,' +` 0x6c,0xfc,0x8c,0xfd,0x3a,0xfe,0xe0,0xfe,' +` 0x3a,0xff,0x90,0xff,0xbc,0xff,0xe1,0xff,' +` 0xf0,0xff,0xfc,0xff,0xff,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfa,0xff,0xf3,0xff,0xe2,0xff,' +` 0xcb,0xff,0x9d,0xff,0x6a,0xff,0x06,0xff,' +` 0x94,0xfe,0xc9,0xfd,0x30,0xfd,0xf1,0xfb,' +` 0x2b,0xfb,0x56,0xf9,0x8e,0xf8,0x0d,0xf6,' +` 0x5d,0xf5,0xda,0xf1,0x9e,0xf2,0x16,0xee,' +` 0x42,0xf1,0x37,0xea,0x72,0xf3,0x60,0xe1,' +` 0x45,0x4b,0x82,0x02,0x28,0xe7,0xd8,0xf8,' +` 0xda,0xef,0x44,0xfb,0x9c,0xf6,0x9e,0xff,' +` 0xef,0xfc,0x2b,0x05,0x44,0x03,0x9a,0x08,' +` 0xcd,0x06,0x88,0x0a,0xb0,0x08,0xe7,0x0a,' +` 0x22,0x09,0x72,0x0a,0xd4,0x07,0x33,0x08,' +` 0x20,0x06,0xf8,0x05,0x3f,0x04,0xe5,0x03,' +` 0x97,0x02,0x3e,0x02,0x50,0x01,0x18,0x01,' +` 0x92,0x00,0x73,0x00,0x2d,0x00,0x21,0x00,' +` 0x03,0x00,0x08,0x00,0xfe,0xff,0xff,0xff,' +` 0xfd,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x0b,0x00,0x12,0x00,0x2b,0x00,0x45,0x00,' +` 0x81,0x00,0xa7,0x00,0x24,0x01,0x56,0x01,' +` 0x3d,0x02,0x67,0x02,0xd9,0x03,0x93,0x03,' +` 0x2a,0x06,0xff,0x04,0x78,0x09,0xb1,0x05,' +` 0xfe,0x0e,0xa2,0x00,0x63,0x48,0xea,0x22,' +` 0x6c,0x03,0x8d,0x15,0xde,0x08,0x78,0x13,' +` 0x2e,0x0a,0xb3,0x11,0xd5,0x09,0x47,0x0c,' +` 0x5a,0x04,0xe1,0x08,0x7f,0x02,0xf9,0x05,' +` 0xa5,0x00,0x67,0x03,0x4b,0xff,0x17,0x02,' +` 0x1d,0xfe,0x5f,0x00,0xd9,0xfd,0xb3,0xff,' +` 0xf8,0xfd,0x7a,0xff,0x59,0xfe,0x7b,0xff,' +` 0x98,0xfe,0x78,0xff,0x07,0xff,0xa4,0xff,' +` 0x63,0xff,0xc9,0xff,0xa4,0xff,0xf7,0xff,' +` 0xe5,0xff,0xff,0xff,0xf4,0xff,0x00,0x00,' +` 0xfb,0xff,0x00,0x00,0xfe,0xff,0x00,0x00,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_16khz.m4 new file mode 100644 index 000000000000..5c2851146565 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfa,0xff,0xf6,0xff,' +` 0xec,0xff,0xe5,0xff,0xcf,0xff,0xc4,0xff,' +` 0x9d,0xff,0x92,0xff,0x52,0xff,0x54,0xff,' +` 0xf9,0xfe,0x1d,0xff,0xa9,0xfe,0x26,0xff,' +` 0xb2,0xfe,0xc3,0xff,0x73,0xff,0xee,0x01,' +` 0x1c,0x01,0xdb,0x04,0x7c,0x05,0xb9,0x0c,' +` 0x9b,0x0c,0x0b,0x15,0x4b,0x14,0xaa,0x21,' +` 0xc2,0x1e,0xf0,0x2b,0xe5,0x19,0x87,0x5b,' +` 0x51,0x3e,0x6b,0x17,0xa8,0x25,0xbf,0x14,' +` 0xc9,0x16,0x04,0x0e,0x73,0x0f,0xc3,0x07,' +` 0xf5,0x07,0x1f,0x04,0x08,0x04,0x9b,0x00,' +` 0x9c,0x00,0x52,0xff,0x74,0xff,0x6b,0xfe,' +` 0xc9,0xfe,0x5a,0xfe,0xbe,0xfe,0xa5,0xfe,' +` 0x05,0xff,0x13,0xff,0x5d,0xff,0x75,0xff,' +` 0xa6,0xff,0xbb,0xff,0xd7,0xff,0xe4,0xff,' +` 0xf1,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x27,0x00,0x4a,0x00,' +` 0x62,0x00,0xa9,0x00,0xc9,0x00,0x48,0x01,' +` 0x69,0x01,0x36,0x02,0x3d,0x02,0x5e,0x03,' +` 0xff,0x02,0x57,0x04,0xff,0x02,0x42,0x04,' +` 0xec,0x00,0xc6,0x01,0x76,0xfb,0xc6,0xfa,' +` 0x8a,0xee,0xf3,0xed,0xbf,0xdb,0x5c,0xd8,' +` 0xbd,0xc3,0x1f,0xc7,0x4e,0xa8,0x5d,0xbd,' +` 0x1f,0x95,0x94,0xf7,0xb3,0x13,0x84,0xa4,' +` 0x02,0xd9,0xe2,0xc6,0xa5,0xe7,0xcd,0xe0,' +` 0x0e,0xf2,0x69,0xec,0xe9,0xf5,0xcd,0xf4,' +` 0xf5,0xfb,0x07,0xfa,0xa6,0xfe,0x5f,0xfd,' +` 0x9d,0x00,0xf5,0xff,0xe4,0x01,0x3a,0x01,' +` 0x2a,0x02,0x82,0x01,0xce,0x01,0x3e,0x01,' +` 0x3b,0x01,0xce,0x00,0xb2,0x00,0x6c,0x00,' +` 0x52,0x00,0x2c,0x00,0x1d,0x00,0x0d,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x29,0x00,0x48,0x00,0x64,0x00,0x9c,0x00,' +` 0xbd,0x00,0x0f,0x01,0x20,0x01,0x81,0x01,' +` 0x54,0x01,0xad,0x01,0xff,0x00,0x27,0x01,' +` 0xac,0xff,0x93,0xff,0x02,0xfd,0x12,0xfd,' +` 0xa5,0xf9,0xf8,0xf9,0xea,0xf4,0x10,0xf4,' +` 0xfc,0xeb,0x8f,0xef,0xbf,0xe2,0x64,0xe5,' +` 0x49,0xcd,0x33,0xd2,0xaf,0xb3,0xba,0xd8,' +` 0x68,0x29,0x55,0x9a,0x27,0xba,0x6c,0xaa,' +` 0xd1,0xc2,0x4b,0xc5,0x32,0xd6,0xc7,0xdb,' +` 0xd7,0xec,0xf5,0xef,0x00,0xfa,0xe8,0xfc,' +` 0x04,0x02,0x41,0x02,0xa0,0x04,0x0a,0x04,' +` 0xbd,0x04,0xbc,0x03,0xad,0x03,0xb6,0x02,' +` 0x6a,0x02,0xae,0x01,0x64,0x01,0xec,0x00,' +` 0xb6,0x00,0x71,0x00,0x50,0x00,0x2d,0x00,' +` 0x1c,0x00,0x0d,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xf9,0xff,0xf2,0xff,0xe8,0xff,0xd8,0xff,' +` 0xc4,0xff,0xa9,0xff,0x8a,0xff,0x63,0xff,' +` 0x3c,0xff,0x0e,0xff,0xec,0xfe,0xc8,0xfe,' +` 0xc9,0xfe,0xcf,0xfe,0x13,0xff,0x63,0xff,' +` 0x40,0x00,0xa7,0x00,0xa2,0x01,0x8f,0x03,' +` 0xa4,0x05,0x7c,0x07,0x77,0x09,0x8e,0x0d,' +` 0xd2,0x10,0xdd,0x13,0x0d,0x18,0xf3,0x1e,' +` 0x7b,0x21,0x7a,0x24,0xb5,0x65,0x41,0x26,' +` 0xf9,0x24,0xed,0x22,0x30,0x1f,0x6a,0x17,' +` 0xed,0x12,0x0e,0x0e,0xf9,0x0a,0xc6,0x06,' +` 0x80,0x03,0x65,0x01,0x9e,0x00,0xb7,0xff,' +` 0xdc,0xfe,0xb2,0xfe,0x8c,0xfe,0x9f,0xfe,' +` 0xb8,0xfe,0xed,0xfe,0x19,0xff,0x4a,0xff,' +` 0x72,0xff,0x98,0xff,0xb5,0xff,0xcd,0xff,' +` 0xde,0xff,0xec,0xff,0xf4,0xff,0xfa,0xff,' +` 0xfd,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_48khz.m4 new file mode 100644 index 000000000000..89348198a09f --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x05,0x00,' +` 0x0a,0x00,0x14,0x00,0x1f,0x00,0x30,0x00,' +` 0x43,0x00,0x69,0x00,0x8f,0x00,0xd1,0x00,' +` 0x0d,0x01,0x75,0x01,0xc9,0x01,0x64,0x02,' +` 0xc4,0x02,0xef,0x03,0xf4,0x04,0xa5,0x05,' +` 0x4c,0x06,0x6d,0x07,0xf3,0x07,0x3e,0x09,' +` 0x79,0x09,0xf3,0x0a,0x9d,0x0a,0x81,0x0c,' +` 0xde,0x0a,0x01,0x0f,0x9e,0x4b,0xf1,0x09,' +` 0x82,0x0d,0x05,0x0b,0x03,0x0c,0x53,0x0a,' +` 0x87,0x0a,0x18,0x09,0xe0,0x08,0x9b,0x07,' +` 0x28,0x07,0x04,0x06,0x7f,0x04,0xa0,0x03,' +` 0x87,0x03,0xbc,0x02,0x66,0x02,0xd3,0x01,' +` 0x8b,0x01,0x23,0x01,0xee,0x00,0xa7,0x00,' +` 0x84,0x00,0x54,0x00,0x37,0x00,0x22,0x00,' +` 0x1a,0x00,0x11,0x00,0x0b,0x00,0x06,0x00,' +` 0x03,0x00,0x01,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf3,0xff,0xed,0xff,0xd8,0xff,' +` 0xcd,0xff,0x92,0xff,0x6d,0xff,0xf7,0xfe,' +` 0xc7,0xfe,0xf3,0xfd,0xb5,0xfd,0x5a,0xfc,' +` 0x20,0xfc,0x11,0xfa,0x04,0xfa,0x09,0xf7,' +` 0xfd,0xf6,0x91,0xf2,0x41,0xf3,0xd8,0xed,' +` 0x79,0xf0,0x41,0xe9,0x85,0xee,0x8b,0xe4,' +` 0x56,0xee,0x0e,0xdf,0x6a,0xf2,0x2b,0xd3,' +` 0x73,0x16,0x19,0x54,0x76,0xce,0x6e,0xf7,' +` 0x79,0xe0,0x0c,0xf3,0x8f,0xe7,0x7c,0xf3,' +` 0xe0,0xec,0x4e,0xf5,0x6b,0xf1,0x7c,0xf7,' +` 0x86,0xf5,0x75,0xfa,0x65,0xf9,0xa1,0xfc,' +` 0xae,0xfb,0xd0,0xfd,0x4b,0xfd,0xad,0xfe,' +` 0x66,0xfe,0x41,0xff,0x1d,0xff,0x9e,0xff,' +` 0x83,0xff,0xc0,0xff,0xc1,0xff,0xea,0xff,' +` 0xeb,0xff,0xf9,0xff,0xf9,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xff,0xff,0xfc,0xff,0xfb,0xff,' +` 0xf1,0xff,0xef,0xff,0xcf,0xff,0xcd,0xff,' +` 0x98,0xff,0xad,0xff,0x3e,0xff,0x5a,0xff,' +` 0x98,0xfe,0xd4,0xfe,0x92,0xfd,0x09,0xfe,' +` 0x0d,0xfc,0xec,0xfc,0xe7,0xf9,0xe2,0xfa,' +` 0xe8,0xf5,0x34,0xf8,0xfd,0xf1,0x0e,0xf6,' +` 0x52,0xed,0x43,0xf4,0xb3,0xe7,0xe0,0xf3,' +` 0x07,0xe0,0x81,0xf8,0xe4,0xcc,0x70,0x4b,' +` 0xe9,0x21,0xe2,0xce,0xb2,0xf3,0x7e,0xdc,' +` 0x57,0xee,0x3e,0xe2,0xe8,0xed,0x10,0xe7,' +` 0x89,0xef,0xcb,0xeb,0x33,0xf2,0xbb,0xf0,' +` 0x3b,0xf6,0xc3,0xf5,0x3c,0xf9,0x0c,0xf9,' +` 0x89,0xfb,0x9f,0xfb,0x4c,0xfd,0x78,0xfd,' +` 0x85,0xfe,0xad,0xfe,0x49,0xff,0x71,0xff,' +` 0xbe,0xff,0xc8,0xff,0xe6,0xff,0xec,0xff,' +` 0xf9,0xff,0xfc,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x08,0x00,0x0d,0x00,' +` 0x14,0x00,0x1d,0x00,0x2d,0x00,0x48,0x00,' +` 0x6c,0x00,0x92,0x00,0xc8,0x00,0x03,0x01,' +` 0x54,0x01,0xa9,0x01,0x1b,0x02,0x8a,0x02,' +` 0x24,0x03,0x8d,0x03,0x1b,0x04,0xc3,0x05,' +` 0x8b,0x06,0x68,0x07,0x37,0x08,0x0c,0x09,' +` 0xd2,0x09,0x8d,0x0a,0x33,0x0b,0xc1,0x0b,' +` 0x36,0x0c,0x82,0x0c,0x8f,0x4c,0x9a,0x0c,' +` 0x75,0x0c,0x1b,0x0c,0xac,0x0b,0x0d,0x0b,' +` 0x67,0x0a,0x95,0x09,0xce,0x08,0xde,0x07,' +` 0x14,0x07,0x0f,0x06,0x8a,0x05,0x57,0x04,' +` 0x2f,0x03,0xb2,0x02,0x1a,0x02,0xae,0x01,' +` 0x43,0x01,0xf6,0x00,0xb1,0x00,0x80,0x00,' +` 0x56,0x00,0x3c,0x00,0x2a,0x00,0x1b,0x00,' +` 0x0f,0x00,0x07,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_16khz.m4 new file mode 100644 index 000000000000..83c57a163f77 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf7,0xff,' +` 0xf4,0xff,0xe7,0xff,0xe1,0xff,0xc7,0xff,' +` 0xc1,0xff,0x91,0xff,0x8f,0xff,0x3f,0xff,' +` 0x53,0xff,0xe6,0xfe,0x2d,0xff,0xa3,0xfe,' +` 0x72,0xff,0x2f,0xff,0xe7,0x00,0xce,0x00,' +` 0x71,0x03,0x64,0x04,0xae,0x0b,0x54,0x0c,' +` 0x68,0x14,0x70,0x14,0xf8,0x23,0x1b,0x20,' +` 0x88,0x2d,0x96,0x1a,0x83,0x59,0x5c,0x3f,' +` 0xc4,0x14,0xc7,0x22,0xba,0x0e,0xe8,0x11,' +` 0x83,0x0a,0x32,0x0c,0xde,0x04,0x3b,0x06,' +` 0x38,0x03,0x25,0x04,0xc3,0x00,0x1b,0x01,' +` 0xdb,0xfe,0xdb,0xff,0x67,0xfe,0xc9,0xfe,' +` 0x10,0xfe,0x89,0xfe,0x49,0xfe,0xb8,0xfe,' +` 0xb9,0xfe,0x18,0xff,0x32,0xff,0x75,0xff,' +` 0x90,0xff,0xba,0xff,0xce,0xff,0xe4,0xff,' +` 0xef,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,' +` 0x0c,0x00,0x17,0x00,0x2a,0x00,0x43,0x00,' +` 0x6e,0x00,0x9f,0x00,0xf5,0x00,0x4f,0x01,' +` 0xe7,0x01,0x76,0x02,0x59,0x03,0x05,0x04,' +` 0x0f,0x05,0x63,0x05,0xfc,0x05,0x51,0x05,' +` 0x8a,0x04,0x6b,0x00,0x73,0xfc,0x2e,0xf4,' +` 0xfc,0xec,0x17,0xdf,0xd1,0xd0,0x56,0xbf,' +` 0x26,0xb6,0x3d,0xa5,0x9c,0xa4,0x4a,0x9c,' +` 0xdc,0xb5,0x12,0x35,0x29,0xbc,0x46,0xda,' +` 0xa9,0xdf,0xe0,0xf3,0x0c,0xf9,0xc4,0x00,' +` 0x27,0xfd,0x37,0xfc,0x54,0xfa,0x7f,0xfc,' +` 0xb7,0xf9,0xbf,0xfa,0xd7,0xfa,0x84,0xfc,' +` 0x0f,0xfd,0xd3,0xfe,0x6b,0xff,0x7e,0x00,' +` 0xc8,0x00,0x36,0x01,0x27,0x01,0x2e,0x01,' +` 0xf5,0x00,0xd1,0x00,0x97,0x00,0x70,0x00,' +` 0x48,0x00,0x2e,0x00,0x19,0x00,0x0d,0x00,' +` 0x05,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x27,0x00,0x48,0x00,0x58,0x00,0x92,0x00,' +` 0x94,0x00,0xe1,0x00,0xac,0x00,0xf8,0x00,' +` 0x44,0x00,0x7b,0x00,0xf1,0xfe,0x26,0xff,' +` 0x99,0xfc,0x1a,0xfd,0xef,0xf9,0x99,0xfb,' +` 0xab,0xf7,0xcc,0xfc,0xf6,0xf7,0x11,0xfd,' +` 0xc9,0xf7,0xf3,0x02,0x0b,0xf5,0x08,0xfc,' +` 0x66,0xdb,0x51,0xe8,0xcb,0xae,0xe3,0x11,' +` 0x5c,0xf7,0x14,0x88,0x0e,0xae,0xce,0x97,' +` 0x8c,0xb6,0x08,0xb5,0x78,0xce,0xac,0xd6,' +` 0x9c,0xec,0x79,0xf0,0x6a,0xfd,0x44,0xff,' +` 0x89,0x06,0x05,0x06,0x75,0x08,0x83,0x06,' +` 0x2c,0x07,0x23,0x05,0xe7,0x04,0x4a,0x03,' +` 0xe6,0x02,0xd5,0x01,0x87,0x01,0xeb,0x00,' +` 0xba,0x00,0x6a,0x00,0x4e,0x00,0x29,0x00,' +` 0x1b,0x00,0x0c,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xff,' +` 0xf8,0xff,0xf0,0xff,0xe4,0xff,0xd3,0xff,' +` 0xbc,0xff,0x9f,0xff,0x7b,0xff,0x54,0xff,' +` 0x28,0xff,0xff,0xfe,0xdc,0xfe,0xca,0xfe,' +` 0xc4,0xfe,0xe6,0xfe,0x2a,0xff,0xb9,0xff,' +` 0x02,0x00,0x7d,0x00,0xd7,0x01,0xfb,0x02,' +` 0xc0,0x04,0x27,0x05,0x58,0x06,0x42,0x09,' +` 0xb5,0x0c,0xba,0x0e,0x2d,0x11,0xfe,0x19,' +` 0xd6,0x1e,0xd8,0x22,0xbd,0x65,0x60,0x27,' +` 0x98,0x27,0x7f,0x25,0x34,0x23,0x3b,0x1a,' +` 0x87,0x13,0x3a,0x0f,0x45,0x0b,0xc1,0x06,' +` 0x7a,0x02,0x44,0x01,0x08,0x00,0x3c,0xff,' +` 0xa5,0xfe,0x64,0xfe,0x74,0xfe,0x9c,0xfe,' +` 0xcf,0xfe,0x02,0xff,0x37,0xff,0x66,0xff,' +` 0x8e,0xff,0xad,0xff,0xc6,0xff,0xd9,0xff,' +` 0xe7,0xff,0xf1,0xff,0xf7,0xff,0xfc,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_48khz.m4 new file mode 100644 index 000000000000..9d96247185e8 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x08,0x00,' +` 0x0e,0x00,0x19,0x00,0x25,0x00,0x3b,0x00,' +` 0x57,0x00,0x84,0x00,0xb4,0x00,0x03,0x01,' +` 0x49,0x01,0xe6,0x01,0x9e,0x02,0x4a,0x03,' +` 0xf4,0x03,0xa6,0x04,0x4e,0x05,0x5c,0x06,' +` 0xf7,0x06,0x25,0x08,0x7b,0x08,0xd8,0x09,' +` 0x9d,0x09,0x86,0x0b,0x57,0x09,0x5a,0x45,' +` 0x96,0x0d,0x85,0x0a,0x1d,0x0c,0x9a,0x0a,' +` 0x10,0x0b,0xc5,0x09,0xb8,0x09,0x8a,0x08,' +` 0x2a,0x08,0x1c,0x07,0x59,0x05,0x17,0x04,' +` 0xd2,0x03,0x33,0x03,0x37,0x03,0x86,0x02,' +` 0x46,0x02,0xc3,0x01,0x83,0x01,0x26,0x01,' +` 0xed,0x00,0x91,0x00,0x78,0x00,0x52,0x00,' +` 0x41,0x00,0x2b,0x00,0x1f,0x00,0x16,0x00,' +` 0x13,0x00,0x0b,0x00,0x07,0x00,0x03,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xfa,0xff,0xef,0xff,0xe5,0xff,0xc5,0xff,' +` 0xab,0xff,0x5f,0xff,0x1f,0xff,0x88,0xfe,' +` 0x2d,0xfe,0x26,0xfd,0xa9,0xfc,0x09,0xfb,' +` 0x82,0xfa,0xda,0xf7,0x5b,0xf7,0x10,0xf4,' +` 0xed,0xf3,0x05,0xef,0x4f,0xf0,0x46,0xea,' +` 0xbb,0xed,0x9d,0xe5,0xf9,0xec,0x96,0xe0,' +` 0x5e,0xf0,0x1a,0xd7,0x53,0x0e,0x97,0x56,' +` 0xec,0xd1,0x72,0xf8,0x8b,0xe3,0xa5,0xf5,' +` 0xde,0xea,0xf7,0xf6,0x73,0xf0,0x54,0xf9,' +` 0x0e,0xf5,0xe3,0xfb,0xc2,0xf9,0x36,0xfe,' +` 0x27,0xfc,0xca,0xff,0x63,0xfe,0x48,0x00,' +` 0x25,0xff,0x5e,0x00,0x91,0xff,0x50,0x00,' +` 0xac,0xff,0xf9,0xff,0xb4,0xff,0xf2,0xff,' +` 0xce,0xff,0xf1,0xff,0xe2,0xff,0xfc,0xff,' +` 0xf6,0xff,0xfd,0xff,0xfc,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xff,0xff,0xfa,0xff,' +` 0xfc,0xff,0xf1,0xff,0xfb,0xff,0xe2,0xff,' +` 0xfb,0xff,0xd0,0xff,0x1b,0x00,0xb5,0xff,' +` 0x24,0x00,0x67,0xff,0x1d,0x00,0xd5,0xfe,' +` 0xe4,0xff,0x4d,0xfd,0xe2,0xfe,0x42,0xfb,' +` 0x1a,0xfd,0x61,0xf7,0x30,0xfb,0xce,0xf2,' +` 0x1f,0xf9,0xab,0xec,0xdf,0xf7,0xcf,0xe3,' +` 0xe4,0xfa,0xbe,0xce,0xc3,0x48,0x46,0x24,' +` 0x4b,0xcc,0x60,0xf1,0xec,0xd7,0x09,0xea,' +` 0x6c,0xdc,0x7a,0xe8,0x98,0xe0,0xc7,0xe9,' +` 0x71,0xe5,0x1f,0xed,0xa6,0xeb,0x2b,0xf1,' +` 0xd0,0xf0,0x9d,0xf5,0x97,0xf5,0xe1,0xf8,' +` 0x3b,0xf9,0x8d,0xfb,0xf7,0xfb,0x7d,0xfd,' +` 0xf1,0xfd,0xda,0xfe,0x0a,0xff,0x84,0xff,' +` 0x9d,0xff,0xd7,0xff,0xe0,0xff,0xf3,0xff,' +` 0xf7,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x06,0x00,0x08,0x00,' +` 0x0e,0x00,0x15,0x00,0x20,0x00,0x2f,0x00,' +` 0x41,0x00,0x6a,0x00,0x93,0x00,0xc2,0x00,' +` 0xfc,0x00,0x43,0x01,0x8e,0x01,0xf6,0x01,' +` 0x46,0x02,0x8b,0x02,0x06,0x03,0xd1,0x03,' +` 0x8d,0x05,0x53,0x06,0x3d,0x07,0x13,0x08,' +` 0xfa,0x08,0xce,0x09,0x9f,0x0a,0x50,0x0b,' +` 0xdf,0x0b,0x4d,0x0c,0x80,0x4c,0xbb,0x0c,' +` 0xb2,0x0c,0x8a,0x0c,0x2a,0x0c,0xb4,0x0b,' +` 0x09,0x0b,0x58,0x0a,0x6c,0x09,0x90,0x08,' +` 0x82,0x07,0xde,0x06,0xf5,0x05,0x1a,0x05,' +` 0xd7,0x03,0xcc,0x02,0x4c,0x02,0xc0,0x01,' +` 0x5a,0x01,0xfe,0x00,0xb9,0x00,0x82,0x00,' +` 0x63,0x00,0x41,0x00,0x2a,0x00,0x19,0x00,' +` 0x0f,0x00,0x08,0x00,0x03,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_16khz.m4 new file mode 100644 index 000000000000..721ee1b4b83b --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfd,0xff,0xf8,0xff,0xf3,0xff,0xe5,0xff,' +` 0xdb,0xff,0xbe,0xff,0xa9,0xff,0x74,0xff,' +` 0x69,0xff,0x3b,0xff,0x46,0xff,0x2b,0xff,' +` 0x86,0xff,0x12,0x00,0x30,0x02,0xc2,0x03,' +` 0x79,0x06,0x4c,0x09,0xb3,0x0e,0x8a,0x14,' +` 0xc7,0x1c,0x0a,0x1e,0xa1,0x23,0xdb,0x1d,' +` 0xfb,0x5c,0xd4,0x22,0x84,0x16,0x1e,0x11,' +` 0x79,0x05,0xed,0x03,0x3c,0xfe,0xef,0xfd,' +` 0xd6,0xfb,0xa4,0xfc,0xe1,0xfb,0x51,0xfe,' +` 0xbe,0xfe,0x2e,0xff,0x9c,0xfe,0x83,0xfe,' +` 0xff,0xfd,0x9c,0xfe,0x20,0xfe,0x31,0xfe,' +` 0x08,0xfe,0x41,0xfe,0x55,0xfe,0x99,0xfe,' +` 0xc5,0xfe,0x09,0xff,0x3a,0xff,0x70,0xff,' +` 0x96,0xff,0xb9,0xff,0xd1,0xff,0xe4,0xff,' +` 0xf0,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x09,0x00,0x16,0x00,0x24,0x00,0x4c,0x00,' +` 0x70,0x00,0xd3,0x00,0x23,0x01,0xf7,0x01,' +` 0x85,0x02,0xeb,0x03,0x8c,0x04,0x8e,0x06,' +` 0xe9,0x06,0xab,0x08,0xe3,0x06,0x2d,0x07,' +` 0x0a,0x01,0x44,0xff,0xe0,0xf1,0x40,0xea,' +` 0xe1,0xd4,0x08,0xcc,0x94,0xae,0xa5,0xaa,' +` 0xd4,0x92,0x48,0xa7,0x51,0x88,0xd4,0x12,' +` 0xec,0x08,0xde,0xcc,0x02,0x0e,0x4e,0x0b,' +` 0xe9,0x2a,0xfa,0x22,0x20,0x2c,0x7c,0x1b,' +` 0x0f,0x19,0xc1,0x07,0x52,0x05,0xc4,0xfb,' +` 0xf0,0xfa,0xb7,0xf5,0x1b,0xf8,0x14,0xf7,' +` 0x00,0xfa,0x2a,0xfa,0xe7,0xfc,0x65,0xfd,' +` 0x38,0xff,0x72,0xff,0x51,0x00,0x41,0x00,' +` 0x8f,0x00,0x61,0x00,0x6a,0x00,0x3f,0x00,' +` 0x35,0x00,0x1c,0x00,0x13,0x00,0x08,0x00,' +` 0x04,0x00,0x01,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x0a,0x00,0x0f,0x00,' +` 0x1d,0x00,0x20,0x00,0x33,0x00,0x1d,0x00,' +` 0x23,0x00,0xc9,0xff,0xa2,0xff,0xbd,0xfe,' +` 0x56,0xfe,0xce,0xfc,0x69,0xfc,0x9a,0xfa,' +` 0xd1,0xfa,0x2f,0xf9,0x1c,0xfc,0xde,0xfc,' +` 0x5c,0x03,0xaa,0x05,0xc4,0x12,0x59,0x16,' +` 0x2d,0x24,0x31,0x1f,0x06,0x26,0x01,0x0d,' +` 0x32,0x0d,0x35,0xd4,0xfa,0xfc,0xc8,0x1f,' +` 0xbc,0x84,0x69,0x9e,0x76,0x86,0x10,0x9c,' +` 0x31,0x9e,0x4f,0xbe,0x85,0xc8,0xf4,0xe1,' +` 0x1c,0xec,0xf0,0xfd,0x3c,0x01,0x1d,0x0a,' +` 0xa9,0x0a,0xc9,0x0d,0xc4,0x0b,0x8e,0x0b,' +` 0x8f,0x08,0xab,0x07,0x50,0x05,0x59,0x04,' +` 0xbf,0x02,0x1f,0x02,0x41,0x01,0xef,0x00,' +` 0x83,0x00,0x5e,0x00,0x30,0x00,0x21,0x00,' +` 0x0f,0x00,0x09,0x00,0x03,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xff,' +` 0xf7,0xff,0xef,0xff,0xe3,0xff,0xd2,0xff,' +` 0xba,0xff,0x9e,0xff,0x7d,0xff,0x5a,0xff,' +` 0x36,0xff,0x14,0xff,0xf7,0xfe,0xec,0xfe,' +` 0xed,0xfe,0x0f,0xff,0xd2,0xfe,0xd9,0xfe,' +` 0x2c,0xff,0x37,0xff,0x4e,0xff,0x8b,0xfe,' +` 0x23,0xfd,0xd4,0xfc,0xf7,0xfc,0x85,0xfd,' +` 0xf9,0xfe,0x5a,0x02,0x0a,0x06,0x03,0x0e,' +` 0x9a,0x18,0xdc,0x1d,0xd2,0x62,0x32,0x25,' +` 0x85,0x25,0x68,0x24,0x62,0x21,0xba,0x1a,' +` 0x61,0x12,0x0a,0x0d,0x8b,0x08,0xc6,0x05,' +` 0x16,0x03,0x82,0x00,0x1f,0xff,0xd5,0xfe,' +` 0xaa,0xfe,0xbd,0xfe,0xd5,0xfe,0xfb,0xfe,' +` 0x3e,0xff,0x75,0xff,0xa0,0xff,0xc0,0xff,' +` 0xd8,0xff,0xe9,0xff,0xf3,0xff,0xf9,0xff,' +` 0xfd,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_48khz.m4 new file mode 100644 index 000000000000..21126f1db3cd --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x0b,0x00,0x12,0x00,' +` 0x2b,0x00,0x45,0x00,0x81,0x00,0xa7,0x00,' +` 0x24,0x01,0x56,0x01,0x3d,0x02,0x67,0x02,' +` 0xd9,0x03,0x93,0x03,0x2a,0x06,0xff,0x04,' +` 0x78,0x09,0xb1,0x05,0xfe,0x0e,0xa2,0x00,' +` 0x63,0x48,0xea,0x22,0x6c,0x03,0x8d,0x15,' +` 0xde,0x08,0x78,0x13,0x2e,0x0a,0xb3,0x11,' +` 0xd5,0x09,0x47,0x0c,0x5a,0x04,0xe1,0x08,' +` 0x7f,0x02,0xf9,0x05,0xa5,0x00,0x67,0x03,' +` 0x4b,0xff,0x17,0x02,0x1d,0xfe,0x5f,0x00,' +` 0xd9,0xfd,0xb3,0xff,0xf8,0xfd,0x7a,0xff,' +` 0x59,0xfe,0x7b,0xff,0x98,0xfe,0x78,0xff,' +` 0x07,0xff,0xa4,0xff,0x63,0xff,0xc9,0xff,' +` 0xa4,0xff,0xf7,0xff,0xe5,0xff,0xff,0xff,' +` 0xf4,0xff,0x00,0x00,0xfb,0xff,0x00,0x00,' +` 0xfe,0xff,0x00,0x00,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfa,0xff,' +` 0xf3,0xff,0xe2,0xff,0xcb,0xff,0x9d,0xff,' +` 0x6a,0xff,0x06,0xff,0x94,0xfe,0xc9,0xfd,' +` 0x30,0xfd,0xf1,0xfb,0x2b,0xfb,0x56,0xf9,' +` 0x8e,0xf8,0x0d,0xf6,0x5d,0xf5,0xda,0xf1,' +` 0x9e,0xf2,0x16,0xee,0x42,0xf1,0x37,0xea,' +` 0x72,0xf3,0x60,0xe1,0x45,0x4b,0x82,0x02,' +` 0x28,0xe7,0xd8,0xf8,0xda,0xef,0x44,0xfb,' +` 0x9c,0xf6,0x9e,0xff,0xef,0xfc,0x2b,0x05,' +` 0x44,0x03,0x9a,0x08,0xcd,0x06,0x88,0x0a,' +` 0xb0,0x08,0xe7,0x0a,0x22,0x09,0x72,0x0a,' +` 0xd4,0x07,0x33,0x08,0x20,0x06,0xf8,0x05,' +` 0x3f,0x04,0xe5,0x03,0x97,0x02,0x3e,0x02,' +` 0x50,0x01,0x18,0x01,0x92,0x00,0x73,0x00,' +` 0x2d,0x00,0x21,0x00,0x03,0x00,0x08,0x00,' +` 0xfe,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x02,0x00,0x06,0x00,0x0c,0x00,' +` 0x1a,0x00,0x2a,0x00,0x49,0x00,0x69,0x00,' +` 0xa5,0x00,0xd8,0x00,0x35,0x01,0x7d,0x01,' +` 0x05,0x02,0x12,0x02,0xad,0x02,0x84,0x02,' +` 0x11,0x03,0x5e,0x02,0xc2,0x02,0x2d,0x01,' +` 0xd6,0x00,0x95,0xfd,0xa9,0xfd,0xb7,0xf8,' +` 0x6b,0xf9,0xac,0xf1,0x7d,0xf5,0x14,0xe5,' +` 0xc4,0x61,0xfb,0xf1,0xcd,0xde,0x02,0xe5,' +` 0xbe,0xdc,0xd2,0xdf,0x21,0xdb,0xd5,0xdd,' +` 0xbf,0xdb,0x03,0xe0,0xd8,0xdf,0x6c,0xe3,' +` 0x80,0xe4,0x3d,0xe8,0x14,0xea,0xa7,0xed,' +` 0xd8,0xef,0xc3,0xf3,0xc9,0xf5,0x20,0xf8,' +` 0xa2,0xf9,0x59,0xfb,0x6c,0xfc,0x8c,0xfd,' +` 0x3a,0xfe,0xe0,0xfe,0x3a,0xff,0x90,0xff,' +` 0xbc,0xff,0xe1,0xff,0xf0,0xff,0xfc,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,' +` 0xf8,0xff,0xf6,0xff,0xf3,0xff,0xee,0xff,' +` 0xe9,0xff,0xe6,0xff,0xe3,0xff,0xe7,0xff,' +` 0xea,0xff,0x0b,0x00,0x29,0x00,0x3c,0x00,' +` 0x84,0x00,0xcb,0x00,0x3b,0x01,0xb1,0x01,' +` 0x51,0x02,0xf9,0x02,0x04,0x05,0x30,0x06,' +` 0x09,0x07,0x06,0x08,0xe2,0x08,0xc2,0x09,' +` 0x78,0x0a,0x1f,0x0b,0x7c,0x4b,0xe0,0x0b,' +` 0xec,0x0b,0xd7,0x0b,0x86,0x0b,0x17,0x0b,' +` 0x76,0x0a,0xbd,0x09,0xf3,0x08,0x70,0x08,' +` 0x6d,0x07,0x83,0x06,0x86,0x05,0xb0,0x04,' +` 0xcf,0x03,0x27,0x03,0x4f,0x02,0x94,0x01,' +` 0x41,0x01,0xe6,0x00,0xa7,0x00,0x73,0x00,' +` 0x4d,0x00,0x32,0x00,0x1e,0x00,0x13,0x00,' +` 0x0c,0x00,0x06,0x00,0x03,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_16khz.m4 new file mode 100644 index 000000000000..10f58a9e8dc7 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_16khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xf9,0xff,0xf2,0xff,' +` 0xe8,0xff,0xd8,0xff,0xc4,0xff,0xa9,0xff,' +` 0x8a,0xff,0x63,0xff,0x3c,0xff,0x0e,0xff,' +` 0xec,0xfe,0xc8,0xfe,0xc9,0xfe,0xcf,0xfe,' +` 0x13,0xff,0x63,0xff,0x40,0x00,0xa7,0x00,' +` 0xa2,0x01,0x8f,0x03,0xa4,0x05,0x7c,0x07,' +` 0x77,0x09,0x8e,0x0d,0xd2,0x10,0xdd,0x13,' +` 0x0d,0x18,0xf3,0x1e,0x7b,0x21,0x7a,0x24,' +` 0xb5,0x65,0x41,0x26,0xf9,0x24,0xed,0x22,' +` 0x30,0x1f,0x6a,0x17,0xed,0x12,0x0e,0x0e,' +` 0xf9,0x0a,0xc6,0x06,0x80,0x03,0x65,0x01,' +` 0x9e,0x00,0xb7,0xff,0xdc,0xfe,0xb2,0xfe,' +` 0x8c,0xfe,0x9f,0xfe,0xb8,0xfe,0xed,0xfe,' +` 0x19,0xff,0x4a,0xff,0x72,0xff,0x98,0xff,' +` 0xb5,0xff,0xcd,0xff,0xde,0xff,0xec,0xff,' +` 0xf4,0xff,0xfa,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x29,0x00,0x48,0x00,' +` 0x64,0x00,0x9c,0x00,0xbd,0x00,0x0f,0x01,' +` 0x20,0x01,0x81,0x01,0x54,0x01,0xad,0x01,' +` 0xff,0x00,0x27,0x01,0xac,0xff,0x93,0xff,' +` 0x02,0xfd,0x12,0xfd,0xa5,0xf9,0xf8,0xf9,' +` 0xea,0xf4,0x10,0xf4,0xfc,0xeb,0x8f,0xef,' +` 0xbf,0xe2,0x64,0xe5,0x49,0xcd,0x33,0xd2,' +` 0xaf,0xb3,0xba,0xd8,0x68,0x29,0x55,0x9a,' +` 0x27,0xba,0x6c,0xaa,0xd1,0xc2,0x4b,0xc5,' +` 0x32,0xd6,0xc7,0xdb,0xd7,0xec,0xf5,0xef,' +` 0x00,0xfa,0xe8,0xfc,0x04,0x02,0x41,0x02,' +` 0xa0,0x04,0x0a,0x04,0xbd,0x04,0xbc,0x03,' +` 0xad,0x03,0xb6,0x02,0x6a,0x02,0xae,0x01,' +` 0x64,0x01,0xec,0x00,0xb6,0x00,0x71,0x00,' +` 0x50,0x00,0x2d,0x00,0x1c,0x00,0x0d,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x27,0x00,0x4a,0x00,0x62,0x00,0xa9,0x00,' +` 0xc9,0x00,0x48,0x01,0x69,0x01,0x36,0x02,' +` 0x3d,0x02,0x5e,0x03,0xff,0x02,0x57,0x04,' +` 0xff,0x02,0x42,0x04,0xec,0x00,0xc6,0x01,' +` 0x76,0xfb,0xc6,0xfa,0x8a,0xee,0xf3,0xed,' +` 0xbf,0xdb,0x5c,0xd8,0xbd,0xc3,0x1f,0xc7,' +` 0x4e,0xa8,0x5d,0xbd,0x1f,0x95,0x94,0xf7,' +` 0xb3,0x13,0x84,0xa4,0x02,0xd9,0xe2,0xc6,' +` 0xa5,0xe7,0xcd,0xe0,0x0e,0xf2,0x69,0xec,' +` 0xe9,0xf5,0xcd,0xf4,0xf5,0xfb,0x07,0xfa,' +` 0xa6,0xfe,0x5f,0xfd,0x9d,0x00,0xf5,0xff,' +` 0xe4,0x01,0x3a,0x01,0x2a,0x02,0x82,0x01,' +` 0xce,0x01,0x3e,0x01,0x3b,0x01,0xce,0x00,' +` 0xb2,0x00,0x6c,0x00,0x52,0x00,0x2c,0x00,' +` 0x1d,0x00,0x0d,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfa,0xff,0xf6,0xff,0xec,0xff,0xe5,0xff,' +` 0xcf,0xff,0xc4,0xff,0x9d,0xff,0x92,0xff,' +` 0x52,0xff,0x54,0xff,0xf9,0xfe,0x1d,0xff,' +` 0xa9,0xfe,0x26,0xff,0xb2,0xfe,0xc3,0xff,' +` 0x73,0xff,0xee,0x01,0x1c,0x01,0xdb,0x04,' +` 0x7c,0x05,0xb9,0x0c,0x9b,0x0c,0x0b,0x15,' +` 0x4b,0x14,0xaa,0x21,0xc2,0x1e,0xf0,0x2b,' +` 0xe5,0x19,0x87,0x5b,0x51,0x3e,0x6b,0x17,' +` 0xa8,0x25,0xbf,0x14,0xc9,0x16,0x04,0x0e,' +` 0x73,0x0f,0xc3,0x07,0xf5,0x07,0x1f,0x04,' +` 0x08,0x04,0x9b,0x00,0x9c,0x00,0x52,0xff,' +` 0x74,0xff,0x6b,0xfe,0xc9,0xfe,0x5a,0xfe,' +` 0xbe,0xfe,0xa5,0xfe,0x05,0xff,0x13,0xff,' +` 0x5d,0xff,0x75,0xff,0xa6,0xff,0xbb,0xff,' +` 0xd7,0xff,0xe4,0xff,0xf1,0xff,0xf8,0xff,' +` 0xfd,0xff,0xff,0xff,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfa,0xff,0xf6,0xff,' +` 0xec,0xff,0xe5,0xff,0xcf,0xff,0xc4,0xff,' +` 0x9d,0xff,0x92,0xff,0x52,0xff,0x54,0xff,' +` 0xf9,0xfe,0x1d,0xff,0xa9,0xfe,0x26,0xff,' +` 0xb2,0xfe,0xc3,0xff,0x73,0xff,0xee,0x01,' +` 0x1c,0x01,0xdb,0x04,0x7c,0x05,0xb9,0x0c,' +` 0x9b,0x0c,0x0b,0x15,0x4b,0x14,0xaa,0x21,' +` 0xc2,0x1e,0xf0,0x2b,0xe5,0x19,0x87,0x5b,' +` 0x51,0x3e,0x6b,0x17,0xa8,0x25,0xbf,0x14,' +` 0xc9,0x16,0x04,0x0e,0x73,0x0f,0xc3,0x07,' +` 0xf5,0x07,0x1f,0x04,0x08,0x04,0x9b,0x00,' +` 0x9c,0x00,0x52,0xff,0x74,0xff,0x6b,0xfe,' +` 0xc9,0xfe,0x5a,0xfe,0xbe,0xfe,0xa5,0xfe,' +` 0x05,0xff,0x13,0xff,0x5d,0xff,0x75,0xff,' +` 0xa6,0xff,0xbb,0xff,0xd7,0xff,0xe4,0xff,' +` 0xf1,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x27,0x00,0x4a,0x00,' +` 0x62,0x00,0xa9,0x00,0xc9,0x00,0x48,0x01,' +` 0x69,0x01,0x36,0x02,0x3d,0x02,0x5e,0x03,' +` 0xff,0x02,0x57,0x04,0xff,0x02,0x42,0x04,' +` 0xec,0x00,0xc6,0x01,0x76,0xfb,0xc6,0xfa,' +` 0x8a,0xee,0xf3,0xed,0xbf,0xdb,0x5c,0xd8,' +` 0xbd,0xc3,0x1f,0xc7,0x4e,0xa8,0x5d,0xbd,' +` 0x1f,0x95,0x94,0xf7,0xb3,0x13,0x84,0xa4,' +` 0x02,0xd9,0xe2,0xc6,0xa5,0xe7,0xcd,0xe0,' +` 0x0e,0xf2,0x69,0xec,0xe9,0xf5,0xcd,0xf4,' +` 0xf5,0xfb,0x07,0xfa,0xa6,0xfe,0x5f,0xfd,' +` 0x9d,0x00,0xf5,0xff,0xe4,0x01,0x3a,0x01,' +` 0x2a,0x02,0x82,0x01,0xce,0x01,0x3e,0x01,' +` 0x3b,0x01,0xce,0x00,0xb2,0x00,0x6c,0x00,' +` 0x52,0x00,0x2c,0x00,0x1d,0x00,0x0d,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x29,0x00,0x48,0x00,0x64,0x00,0x9c,0x00,' +` 0xbd,0x00,0x0f,0x01,0x20,0x01,0x81,0x01,' +` 0x54,0x01,0xad,0x01,0xff,0x00,0x27,0x01,' +` 0xac,0xff,0x93,0xff,0x02,0xfd,0x12,0xfd,' +` 0xa5,0xf9,0xf8,0xf9,0xea,0xf4,0x10,0xf4,' +` 0xfc,0xeb,0x8f,0xef,0xbf,0xe2,0x64,0xe5,' +` 0x49,0xcd,0x33,0xd2,0xaf,0xb3,0xba,0xd8,' +` 0x68,0x29,0x55,0x9a,0x27,0xba,0x6c,0xaa,' +` 0xd1,0xc2,0x4b,0xc5,0x32,0xd6,0xc7,0xdb,' +` 0xd7,0xec,0xf5,0xef,0x00,0xfa,0xe8,0xfc,' +` 0x04,0x02,0x41,0x02,0xa0,0x04,0x0a,0x04,' +` 0xbd,0x04,0xbc,0x03,0xad,0x03,0xb6,0x02,' +` 0x6a,0x02,0xae,0x01,0x64,0x01,0xec,0x00,' +` 0xb6,0x00,0x71,0x00,0x50,0x00,0x2d,0x00,' +` 0x1c,0x00,0x0d,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xf9,0xff,0xf2,0xff,0xe8,0xff,0xd8,0xff,' +` 0xc4,0xff,0xa9,0xff,0x8a,0xff,0x63,0xff,' +` 0x3c,0xff,0x0e,0xff,0xec,0xfe,0xc8,0xfe,' +` 0xc9,0xfe,0xcf,0xfe,0x13,0xff,0x63,0xff,' +` 0x40,0x00,0xa7,0x00,0xa2,0x01,0x8f,0x03,' +` 0xa4,0x05,0x7c,0x07,0x77,0x09,0x8e,0x0d,' +` 0xd2,0x10,0xdd,0x13,0x0d,0x18,0xf3,0x1e,' +` 0x7b,0x21,0x7a,0x24,0xb5,0x65,0x41,0x26,' +` 0xf9,0x24,0xed,0x22,0x30,0x1f,0x6a,0x17,' +` 0xed,0x12,0x0e,0x0e,0xf9,0x0a,0xc6,0x06,' +` 0x80,0x03,0x65,0x01,0x9e,0x00,0xb7,0xff,' +` 0xdc,0xfe,0xb2,0xfe,0x8c,0xfe,0x9f,0xfe,' +` 0xb8,0xfe,0xed,0xfe,0x19,0xff,0x4a,0xff,' +` 0x72,0xff,0x98,0xff,0xb5,0xff,0xcd,0xff,' +` 0xde,0xff,0xec,0xff,0xf4,0xff,0xfa,0xff,' +` 0xfd,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_48khz.m4 new file mode 100644 index 000000000000..6c2f11e63834 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_48khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x08,0x00,0x0d,0x00,0x14,0x00,0x1d,0x00,' +` 0x2d,0x00,0x48,0x00,0x6c,0x00,0x92,0x00,' +` 0xc8,0x00,0x03,0x01,0x54,0x01,0xa9,0x01,' +` 0x1b,0x02,0x8a,0x02,0x24,0x03,0x8d,0x03,' +` 0x1b,0x04,0xc3,0x05,0x8b,0x06,0x68,0x07,' +` 0x37,0x08,0x0c,0x09,0xd2,0x09,0x8d,0x0a,' +` 0x33,0x0b,0xc1,0x0b,0x36,0x0c,0x82,0x0c,' +` 0x8f,0x4c,0x9a,0x0c,0x75,0x0c,0x1b,0x0c,' +` 0xac,0x0b,0x0d,0x0b,0x67,0x0a,0x95,0x09,' +` 0xce,0x08,0xde,0x07,0x14,0x07,0x0f,0x06,' +` 0x8a,0x05,0x57,0x04,0x2f,0x03,0xb2,0x02,' +` 0x1a,0x02,0xae,0x01,0x43,0x01,0xf6,0x00,' +` 0xb1,0x00,0x80,0x00,0x56,0x00,0x3c,0x00,' +` 0x2a,0x00,0x1b,0x00,0x0f,0x00,0x07,0x00,' +` 0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,' +` 0xfc,0xff,0xfb,0xff,0xf1,0xff,0xef,0xff,' +` 0xcf,0xff,0xcd,0xff,0x98,0xff,0xad,0xff,' +` 0x3e,0xff,0x5a,0xff,0x98,0xfe,0xd4,0xfe,' +` 0x92,0xfd,0x09,0xfe,0x0d,0xfc,0xec,0xfc,' +` 0xe7,0xf9,0xe2,0xfa,0xe8,0xf5,0x34,0xf8,' +` 0xfd,0xf1,0x0e,0xf6,0x52,0xed,0x43,0xf4,' +` 0xb3,0xe7,0xe0,0xf3,0x07,0xe0,0x81,0xf8,' +` 0xe4,0xcc,0x70,0x4b,0xe9,0x21,0xe2,0xce,' +` 0xb2,0xf3,0x7e,0xdc,0x57,0xee,0x3e,0xe2,' +` 0xe8,0xed,0x10,0xe7,0x89,0xef,0xcb,0xeb,' +` 0x33,0xf2,0xbb,0xf0,0x3b,0xf6,0xc3,0xf5,' +` 0x3c,0xf9,0x0c,0xf9,0x89,0xfb,0x9f,0xfb,' +` 0x4c,0xfd,0x78,0xfd,0x85,0xfe,0xad,0xfe,' +` 0x49,0xff,0x71,0xff,0xbe,0xff,0xc8,0xff,' +` 0xe6,0xff,0xec,0xff,0xf9,0xff,0xfc,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf3,0xff,' +` 0xed,0xff,0xd8,0xff,0xcd,0xff,0x92,0xff,' +` 0x6d,0xff,0xf7,0xfe,0xc7,0xfe,0xf3,0xfd,' +` 0xb5,0xfd,0x5a,0xfc,0x20,0xfc,0x11,0xfa,' +` 0x04,0xfa,0x09,0xf7,0xfd,0xf6,0x91,0xf2,' +` 0x41,0xf3,0xd8,0xed,0x79,0xf0,0x41,0xe9,' +` 0x85,0xee,0x8b,0xe4,0x56,0xee,0x0e,0xdf,' +` 0x6a,0xf2,0x2b,0xd3,0x73,0x16,0x19,0x54,' +` 0x76,0xce,0x6e,0xf7,0x79,0xe0,0x0c,0xf3,' +` 0x8f,0xe7,0x7c,0xf3,0xe0,0xec,0x4e,0xf5,' +` 0x6b,0xf1,0x7c,0xf7,0x86,0xf5,0x75,0xfa,' +` 0x65,0xf9,0xa1,0xfc,0xae,0xfb,0xd0,0xfd,' +` 0x4b,0xfd,0xad,0xfe,0x66,0xfe,0x41,0xff,' +` 0x1d,0xff,0x9e,0xff,0x83,0xff,0xc0,0xff,' +` 0xc1,0xff,0xea,0xff,0xeb,0xff,0xf9,0xff,' +` 0xf9,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x05,0x00,0x0a,0x00,0x14,0x00,' +` 0x1f,0x00,0x30,0x00,0x43,0x00,0x69,0x00,' +` 0x8f,0x00,0xd1,0x00,0x0d,0x01,0x75,0x01,' +` 0xc9,0x01,0x64,0x02,0xc4,0x02,0xef,0x03,' +` 0xf4,0x04,0xa5,0x05,0x4c,0x06,0x6d,0x07,' +` 0xf3,0x07,0x3e,0x09,0x79,0x09,0xf3,0x0a,' +` 0x9d,0x0a,0x81,0x0c,0xde,0x0a,0x01,0x0f,' +` 0x9e,0x4b,0xf1,0x09,0x82,0x0d,0x05,0x0b,' +` 0x03,0x0c,0x53,0x0a,0x87,0x0a,0x18,0x09,' +` 0xe0,0x08,0x9b,0x07,0x28,0x07,0x04,0x06,' +` 0x7f,0x04,0xa0,0x03,0x87,0x03,0xbc,0x02,' +` 0x66,0x02,0xd3,0x01,0x8b,0x01,0x23,0x01,' +` 0xee,0x00,0xa7,0x00,0x84,0x00,0x54,0x00,' +` 0x37,0x00,0x22,0x00,0x1a,0x00,0x11,0x00,' +` 0x0b,0x00,0x06,0x00,0x03,0x00,0x01,0x00,' +` 0x01,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x05,0x00,' +` 0x0a,0x00,0x14,0x00,0x1f,0x00,0x30,0x00,' +` 0x43,0x00,0x69,0x00,0x8f,0x00,0xd1,0x00,' +` 0x0d,0x01,0x75,0x01,0xc9,0x01,0x64,0x02,' +` 0xc4,0x02,0xef,0x03,0xf4,0x04,0xa5,0x05,' +` 0x4c,0x06,0x6d,0x07,0xf3,0x07,0x3e,0x09,' +` 0x79,0x09,0xf3,0x0a,0x9d,0x0a,0x81,0x0c,' +` 0xde,0x0a,0x01,0x0f,0x9e,0x4b,0xf1,0x09,' +` 0x82,0x0d,0x05,0x0b,0x03,0x0c,0x53,0x0a,' +` 0x87,0x0a,0x18,0x09,0xe0,0x08,0x9b,0x07,' +` 0x28,0x07,0x04,0x06,0x7f,0x04,0xa0,0x03,' +` 0x87,0x03,0xbc,0x02,0x66,0x02,0xd3,0x01,' +` 0x8b,0x01,0x23,0x01,0xee,0x00,0xa7,0x00,' +` 0x84,0x00,0x54,0x00,0x37,0x00,0x22,0x00,' +` 0x1a,0x00,0x11,0x00,0x0b,0x00,0x06,0x00,' +` 0x03,0x00,0x01,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf3,0xff,0xed,0xff,0xd8,0xff,' +` 0xcd,0xff,0x92,0xff,0x6d,0xff,0xf7,0xfe,' +` 0xc7,0xfe,0xf3,0xfd,0xb5,0xfd,0x5a,0xfc,' +` 0x20,0xfc,0x11,0xfa,0x04,0xfa,0x09,0xf7,' +` 0xfd,0xf6,0x91,0xf2,0x41,0xf3,0xd8,0xed,' +` 0x79,0xf0,0x41,0xe9,0x85,0xee,0x8b,0xe4,' +` 0x56,0xee,0x0e,0xdf,0x6a,0xf2,0x2b,0xd3,' +` 0x73,0x16,0x19,0x54,0x76,0xce,0x6e,0xf7,' +` 0x79,0xe0,0x0c,0xf3,0x8f,0xe7,0x7c,0xf3,' +` 0xe0,0xec,0x4e,0xf5,0x6b,0xf1,0x7c,0xf7,' +` 0x86,0xf5,0x75,0xfa,0x65,0xf9,0xa1,0xfc,' +` 0xae,0xfb,0xd0,0xfd,0x4b,0xfd,0xad,0xfe,' +` 0x66,0xfe,0x41,0xff,0x1d,0xff,0x9e,0xff,' +` 0x83,0xff,0xc0,0xff,0xc1,0xff,0xea,0xff,' +` 0xeb,0xff,0xf9,0xff,0xf9,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xff,0xff,0xfc,0xff,0xfb,0xff,' +` 0xf1,0xff,0xef,0xff,0xcf,0xff,0xcd,0xff,' +` 0x98,0xff,0xad,0xff,0x3e,0xff,0x5a,0xff,' +` 0x98,0xfe,0xd4,0xfe,0x92,0xfd,0x09,0xfe,' +` 0x0d,0xfc,0xec,0xfc,0xe7,0xf9,0xe2,0xfa,' +` 0xe8,0xf5,0x34,0xf8,0xfd,0xf1,0x0e,0xf6,' +` 0x52,0xed,0x43,0xf4,0xb3,0xe7,0xe0,0xf3,' +` 0x07,0xe0,0x81,0xf8,0xe4,0xcc,0x70,0x4b,' +` 0xe9,0x21,0xe2,0xce,0xb2,0xf3,0x7e,0xdc,' +` 0x57,0xee,0x3e,0xe2,0xe8,0xed,0x10,0xe7,' +` 0x89,0xef,0xcb,0xeb,0x33,0xf2,0xbb,0xf0,' +` 0x3b,0xf6,0xc3,0xf5,0x3c,0xf9,0x0c,0xf9,' +` 0x89,0xfb,0x9f,0xfb,0x4c,0xfd,0x78,0xfd,' +` 0x85,0xfe,0xad,0xfe,0x49,0xff,0x71,0xff,' +` 0xbe,0xff,0xc8,0xff,0xe6,0xff,0xec,0xff,' +` 0xf9,0xff,0xfc,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x08,0x00,0x0d,0x00,' +` 0x14,0x00,0x1d,0x00,0x2d,0x00,0x48,0x00,' +` 0x6c,0x00,0x92,0x00,0xc8,0x00,0x03,0x01,' +` 0x54,0x01,0xa9,0x01,0x1b,0x02,0x8a,0x02,' +` 0x24,0x03,0x8d,0x03,0x1b,0x04,0xc3,0x05,' +` 0x8b,0x06,0x68,0x07,0x37,0x08,0x0c,0x09,' +` 0xd2,0x09,0x8d,0x0a,0x33,0x0b,0xc1,0x0b,' +` 0x36,0x0c,0x82,0x0c,0x8f,0x4c,0x9a,0x0c,' +` 0x75,0x0c,0x1b,0x0c,0xac,0x0b,0x0d,0x0b,' +` 0x67,0x0a,0x95,0x09,0xce,0x08,0xde,0x07,' +` 0x14,0x07,0x0f,0x06,0x8a,0x05,0x57,0x04,' +` 0x2f,0x03,0xb2,0x02,0x1a,0x02,0xae,0x01,' +` 0x43,0x01,0xf6,0x00,0xb1,0x00,0x80,0x00,' +` 0x56,0x00,0x3c,0x00,0x2a,0x00,0x1b,0x00,' +` 0x0f,0x00,0x07,0x00,0x04,0x00,0x02,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_16khz.m4 new file mode 100644 index 000000000000..1f658fdd77cd --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_16khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfc,0xff,0xf8,0xff,0xf0,0xff,' +` 0xe4,0xff,0xd3,0xff,0xbc,0xff,0x9f,0xff,' +` 0x7b,0xff,0x54,0xff,0x28,0xff,0xff,0xfe,' +` 0xdc,0xfe,0xca,0xfe,0xc4,0xfe,0xe6,0xfe,' +` 0x2a,0xff,0xb9,0xff,0x02,0x00,0x7d,0x00,' +` 0xd7,0x01,0xfb,0x02,0xc0,0x04,0x27,0x05,' +` 0x58,0x06,0x42,0x09,0xb5,0x0c,0xba,0x0e,' +` 0x2d,0x11,0xfe,0x19,0xd6,0x1e,0xd8,0x22,' +` 0xbd,0x65,0x60,0x27,0x98,0x27,0x7f,0x25,' +` 0x34,0x23,0x3b,0x1a,0x87,0x13,0x3a,0x0f,' +` 0x45,0x0b,0xc1,0x06,0x7a,0x02,0x44,0x01,' +` 0x08,0x00,0x3c,0xff,0xa5,0xfe,0x64,0xfe,' +` 0x74,0xfe,0x9c,0xfe,0xcf,0xfe,0x02,0xff,' +` 0x37,0xff,0x66,0xff,0x8e,0xff,0xad,0xff,' +` 0xc6,0xff,0xd9,0xff,0xe7,0xff,0xf1,0xff,' +` 0xf7,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x00,' +` 0x0c,0x00,0x1a,0x00,0x27,0x00,0x48,0x00,' +` 0x58,0x00,0x92,0x00,0x94,0x00,0xe1,0x00,' +` 0xac,0x00,0xf8,0x00,0x44,0x00,0x7b,0x00,' +` 0xf1,0xfe,0x26,0xff,0x99,0xfc,0x1a,0xfd,' +` 0xef,0xf9,0x99,0xfb,0xab,0xf7,0xcc,0xfc,' +` 0xf6,0xf7,0x11,0xfd,0xc9,0xf7,0xf3,0x02,' +` 0x0b,0xf5,0x08,0xfc,0x66,0xdb,0x51,0xe8,' +` 0xcb,0xae,0xe3,0x11,0x5c,0xf7,0x14,0x88,' +` 0x0e,0xae,0xce,0x97,0x8c,0xb6,0x08,0xb5,' +` 0x78,0xce,0xac,0xd6,0x9c,0xec,0x79,0xf0,' +` 0x6a,0xfd,0x44,0xff,0x89,0x06,0x05,0x06,' +` 0x75,0x08,0x83,0x06,0x2c,0x07,0x23,0x05,' +` 0xe7,0x04,0x4a,0x03,0xe6,0x02,0xd5,0x01,' +` 0x87,0x01,0xeb,0x00,0xba,0x00,0x6a,0x00,' +` 0x4e,0x00,0x29,0x00,0x1b,0x00,0x0c,0x00,' +` 0x06,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x05,0x00,0x0c,0x00,0x17,0x00,' +` 0x2a,0x00,0x43,0x00,0x6e,0x00,0x9f,0x00,' +` 0xf5,0x00,0x4f,0x01,0xe7,0x01,0x76,0x02,' +` 0x59,0x03,0x05,0x04,0x0f,0x05,0x63,0x05,' +` 0xfc,0x05,0x51,0x05,0x8a,0x04,0x6b,0x00,' +` 0x73,0xfc,0x2e,0xf4,0xfc,0xec,0x17,0xdf,' +` 0xd1,0xd0,0x56,0xbf,0x26,0xb6,0x3d,0xa5,' +` 0x9c,0xa4,0x4a,0x9c,0xdc,0xb5,0x12,0x35,' +` 0x29,0xbc,0x46,0xda,0xa9,0xdf,0xe0,0xf3,' +` 0x0c,0xf9,0xc4,0x00,0x27,0xfd,0x37,0xfc,' +` 0x54,0xfa,0x7f,0xfc,0xb7,0xf9,0xbf,0xfa,' +` 0xd7,0xfa,0x84,0xfc,0x0f,0xfd,0xd3,0xfe,' +` 0x6b,0xff,0x7e,0x00,0xc8,0x00,0x36,0x01,' +` 0x27,0x01,0x2e,0x01,0xf5,0x00,0xd1,0x00,' +` 0x97,0x00,0x70,0x00,0x48,0x00,0x2e,0x00,' +` 0x19,0x00,0x0d,0x00,0x05,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf7,0xff,0xf4,0xff,0xe7,0xff,' +` 0xe1,0xff,0xc7,0xff,0xc1,0xff,0x91,0xff,' +` 0x8f,0xff,0x3f,0xff,0x53,0xff,0xe6,0xfe,' +` 0x2d,0xff,0xa3,0xfe,0x72,0xff,0x2f,0xff,' +` 0xe7,0x00,0xce,0x00,0x71,0x03,0x64,0x04,' +` 0xae,0x0b,0x54,0x0c,0x68,0x14,0x70,0x14,' +` 0xf8,0x23,0x1b,0x20,0x88,0x2d,0x96,0x1a,' +` 0x83,0x59,0x5c,0x3f,0xc4,0x14,0xc7,0x22,' +` 0xba,0x0e,0xe8,0x11,0x83,0x0a,0x32,0x0c,' +` 0xde,0x04,0x3b,0x06,0x38,0x03,0x25,0x04,' +` 0xc3,0x00,0x1b,0x01,0xdb,0xfe,0xdb,0xff,' +` 0x67,0xfe,0xc9,0xfe,0x10,0xfe,0x89,0xfe,' +` 0x49,0xfe,0xb8,0xfe,0xb9,0xfe,0x18,0xff,' +` 0x32,0xff,0x75,0xff,0x90,0xff,0xba,0xff,' +` 0xce,0xff,0xe4,0xff,0xef,0xff,0xf8,0xff,' +` 0xfc,0xff,0xff,0xff,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf7,0xff,' +` 0xf4,0xff,0xe7,0xff,0xe1,0xff,0xc7,0xff,' +` 0xc1,0xff,0x91,0xff,0x8f,0xff,0x3f,0xff,' +` 0x53,0xff,0xe6,0xfe,0x2d,0xff,0xa3,0xfe,' +` 0x72,0xff,0x2f,0xff,0xe7,0x00,0xce,0x00,' +` 0x71,0x03,0x64,0x04,0xae,0x0b,0x54,0x0c,' +` 0x68,0x14,0x70,0x14,0xf8,0x23,0x1b,0x20,' +` 0x88,0x2d,0x96,0x1a,0x83,0x59,0x5c,0x3f,' +` 0xc4,0x14,0xc7,0x22,0xba,0x0e,0xe8,0x11,' +` 0x83,0x0a,0x32,0x0c,0xde,0x04,0x3b,0x06,' +` 0x38,0x03,0x25,0x04,0xc3,0x00,0x1b,0x01,' +` 0xdb,0xfe,0xdb,0xff,0x67,0xfe,0xc9,0xfe,' +` 0x10,0xfe,0x89,0xfe,0x49,0xfe,0xb8,0xfe,' +` 0xb9,0xfe,0x18,0xff,0x32,0xff,0x75,0xff,' +` 0x90,0xff,0xba,0xff,0xce,0xff,0xe4,0xff,' +` 0xef,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,' +` 0x0c,0x00,0x17,0x00,0x2a,0x00,0x43,0x00,' +` 0x6e,0x00,0x9f,0x00,0xf5,0x00,0x4f,0x01,' +` 0xe7,0x01,0x76,0x02,0x59,0x03,0x05,0x04,' +` 0x0f,0x05,0x63,0x05,0xfc,0x05,0x51,0x05,' +` 0x8a,0x04,0x6b,0x00,0x73,0xfc,0x2e,0xf4,' +` 0xfc,0xec,0x17,0xdf,0xd1,0xd0,0x56,0xbf,' +` 0x26,0xb6,0x3d,0xa5,0x9c,0xa4,0x4a,0x9c,' +` 0xdc,0xb5,0x12,0x35,0x29,0xbc,0x46,0xda,' +` 0xa9,0xdf,0xe0,0xf3,0x0c,0xf9,0xc4,0x00,' +` 0x27,0xfd,0x37,0xfc,0x54,0xfa,0x7f,0xfc,' +` 0xb7,0xf9,0xbf,0xfa,0xd7,0xfa,0x84,0xfc,' +` 0x0f,0xfd,0xd3,0xfe,0x6b,0xff,0x7e,0x00,' +` 0xc8,0x00,0x36,0x01,0x27,0x01,0x2e,0x01,' +` 0xf5,0x00,0xd1,0x00,0x97,0x00,0x70,0x00,' +` 0x48,0x00,0x2e,0x00,0x19,0x00,0x0d,0x00,' +` 0x05,0x00,0x02,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x06,0x00,0x0c,0x00,0x1a,0x00,' +` 0x27,0x00,0x48,0x00,0x58,0x00,0x92,0x00,' +` 0x94,0x00,0xe1,0x00,0xac,0x00,0xf8,0x00,' +` 0x44,0x00,0x7b,0x00,0xf1,0xfe,0x26,0xff,' +` 0x99,0xfc,0x1a,0xfd,0xef,0xf9,0x99,0xfb,' +` 0xab,0xf7,0xcc,0xfc,0xf6,0xf7,0x11,0xfd,' +` 0xc9,0xf7,0xf3,0x02,0x0b,0xf5,0x08,0xfc,' +` 0x66,0xdb,0x51,0xe8,0xcb,0xae,0xe3,0x11,' +` 0x5c,0xf7,0x14,0x88,0x0e,0xae,0xce,0x97,' +` 0x8c,0xb6,0x08,0xb5,0x78,0xce,0xac,0xd6,' +` 0x9c,0xec,0x79,0xf0,0x6a,0xfd,0x44,0xff,' +` 0x89,0x06,0x05,0x06,0x75,0x08,0x83,0x06,' +` 0x2c,0x07,0x23,0x05,0xe7,0x04,0x4a,0x03,' +` 0xe6,0x02,0xd5,0x01,0x87,0x01,0xeb,0x00,' +` 0xba,0x00,0x6a,0x00,0x4e,0x00,0x29,0x00,' +` 0x1b,0x00,0x0c,0x00,0x06,0x00,0x02,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xff,' +` 0xf8,0xff,0xf0,0xff,0xe4,0xff,0xd3,0xff,' +` 0xbc,0xff,0x9f,0xff,0x7b,0xff,0x54,0xff,' +` 0x28,0xff,0xff,0xfe,0xdc,0xfe,0xca,0xfe,' +` 0xc4,0xfe,0xe6,0xfe,0x2a,0xff,0xb9,0xff,' +` 0x02,0x00,0x7d,0x00,0xd7,0x01,0xfb,0x02,' +` 0xc0,0x04,0x27,0x05,0x58,0x06,0x42,0x09,' +` 0xb5,0x0c,0xba,0x0e,0x2d,0x11,0xfe,0x19,' +` 0xd6,0x1e,0xd8,0x22,0xbd,0x65,0x60,0x27,' +` 0x98,0x27,0x7f,0x25,0x34,0x23,0x3b,0x1a,' +` 0x87,0x13,0x3a,0x0f,0x45,0x0b,0xc1,0x06,' +` 0x7a,0x02,0x44,0x01,0x08,0x00,0x3c,0xff,' +` 0xa5,0xfe,0x64,0xfe,0x74,0xfe,0x9c,0xfe,' +` 0xcf,0xfe,0x02,0xff,0x37,0xff,0x66,0xff,' +` 0x8e,0xff,0xad,0xff,0xc6,0xff,0xd9,0xff,' +` 0xe7,0xff,0xf1,0xff,0xf7,0xff,0xfc,0xff,' +` 0xfe,0xff,0xff,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_48khz.m4 new file mode 100644 index 000000000000..3957bb82286e --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_48khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,' +` 0x06,0x00,0x08,0x00,0x0e,0x00,0x15,0x00,' +` 0x20,0x00,0x2f,0x00,0x41,0x00,0x6a,0x00,' +` 0x93,0x00,0xc2,0x00,0xfc,0x00,0x43,0x01,' +` 0x8e,0x01,0xf6,0x01,0x46,0x02,0x8b,0x02,' +` 0x06,0x03,0xd1,0x03,0x8d,0x05,0x53,0x06,' +` 0x3d,0x07,0x13,0x08,0xfa,0x08,0xce,0x09,' +` 0x9f,0x0a,0x50,0x0b,0xdf,0x0b,0x4d,0x0c,' +` 0x80,0x4c,0xbb,0x0c,0xb2,0x0c,0x8a,0x0c,' +` 0x2a,0x0c,0xb4,0x0b,0x09,0x0b,0x58,0x0a,' +` 0x6c,0x09,0x90,0x08,0x82,0x07,0xde,0x06,' +` 0xf5,0x05,0x1a,0x05,0xd7,0x03,0xcc,0x02,' +` 0x4c,0x02,0xc0,0x01,0x5a,0x01,0xfe,0x00,' +` 0xb9,0x00,0x82,0x00,0x63,0x00,0x41,0x00,' +` 0x2a,0x00,0x19,0x00,0x0f,0x00,0x08,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xff,0xff,0xfa,0xff,0xfc,0xff,0xf1,0xff,' +` 0xfb,0xff,0xe2,0xff,0xfb,0xff,0xd0,0xff,' +` 0x1b,0x00,0xb5,0xff,0x24,0x00,0x67,0xff,' +` 0x1d,0x00,0xd5,0xfe,0xe4,0xff,0x4d,0xfd,' +` 0xe2,0xfe,0x42,0xfb,0x1a,0xfd,0x61,0xf7,' +` 0x30,0xfb,0xce,0xf2,0x1f,0xf9,0xab,0xec,' +` 0xdf,0xf7,0xcf,0xe3,0xe4,0xfa,0xbe,0xce,' +` 0xc3,0x48,0x46,0x24,0x4b,0xcc,0x60,0xf1,' +` 0xec,0xd7,0x09,0xea,0x6c,0xdc,0x7a,0xe8,' +` 0x98,0xe0,0xc7,0xe9,0x71,0xe5,0x1f,0xed,' +` 0xa6,0xeb,0x2b,0xf1,0xd0,0xf0,0x9d,0xf5,' +` 0x97,0xf5,0xe1,0xf8,0x3b,0xf9,0x8d,0xfb,' +` 0xf7,0xfb,0x7d,0xfd,0xf1,0xfd,0xda,0xfe,' +` 0x0a,0xff,0x84,0xff,0x9d,0xff,0xd7,0xff,' +` 0xe0,0xff,0xf3,0xff,0xf7,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xfa,0xff,0xef,0xff,' +` 0xe5,0xff,0xc5,0xff,0xab,0xff,0x5f,0xff,' +` 0x1f,0xff,0x88,0xfe,0x2d,0xfe,0x26,0xfd,' +` 0xa9,0xfc,0x09,0xfb,0x82,0xfa,0xda,0xf7,' +` 0x5b,0xf7,0x10,0xf4,0xed,0xf3,0x05,0xef,' +` 0x4f,0xf0,0x46,0xea,0xbb,0xed,0x9d,0xe5,' +` 0xf9,0xec,0x96,0xe0,0x5e,0xf0,0x1a,0xd7,' +` 0x53,0x0e,0x97,0x56,0xec,0xd1,0x72,0xf8,' +` 0x8b,0xe3,0xa5,0xf5,0xde,0xea,0xf7,0xf6,' +` 0x73,0xf0,0x54,0xf9,0x0e,0xf5,0xe3,0xfb,' +` 0xc2,0xf9,0x36,0xfe,0x27,0xfc,0xca,0xff,' +` 0x63,0xfe,0x48,0x00,0x25,0xff,0x5e,0x00,' +` 0x91,0xff,0x50,0x00,0xac,0xff,0xf9,0xff,' +` 0xb4,0xff,0xf2,0xff,0xce,0xff,0xf1,0xff,' +` 0xe2,0xff,0xfc,0xff,0xf6,0xff,0xfd,0xff,' +` 0xfc,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x03,0x00,0x08,0x00,0x0e,0x00,0x19,0x00,' +` 0x25,0x00,0x3b,0x00,0x57,0x00,0x84,0x00,' +` 0xb4,0x00,0x03,0x01,0x49,0x01,0xe6,0x01,' +` 0x9e,0x02,0x4a,0x03,0xf4,0x03,0xa6,0x04,' +` 0x4e,0x05,0x5c,0x06,0xf7,0x06,0x25,0x08,' +` 0x7b,0x08,0xd8,0x09,0x9d,0x09,0x86,0x0b,' +` 0x57,0x09,0x5a,0x45,0x96,0x0d,0x85,0x0a,' +` 0x1d,0x0c,0x9a,0x0a,0x10,0x0b,0xc5,0x09,' +` 0xb8,0x09,0x8a,0x08,0x2a,0x08,0x1c,0x07,' +` 0x59,0x05,0x17,0x04,0xd2,0x03,0x33,0x03,' +` 0x37,0x03,0x86,0x02,0x46,0x02,0xc3,0x01,' +` 0x83,0x01,0x26,0x01,0xed,0x00,0x91,0x00,' +` 0x78,0x00,0x52,0x00,0x41,0x00,0x2b,0x00,' +` 0x1f,0x00,0x16,0x00,0x13,0x00,0x0b,0x00,' +` 0x07,0x00,0x03,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x03,0x00,0x08,0x00,' +` 0x0e,0x00,0x19,0x00,0x25,0x00,0x3b,0x00,' +` 0x57,0x00,0x84,0x00,0xb4,0x00,0x03,0x01,' +` 0x49,0x01,0xe6,0x01,0x9e,0x02,0x4a,0x03,' +` 0xf4,0x03,0xa6,0x04,0x4e,0x05,0x5c,0x06,' +` 0xf7,0x06,0x25,0x08,0x7b,0x08,0xd8,0x09,' +` 0x9d,0x09,0x86,0x0b,0x57,0x09,0x5a,0x45,' +` 0x96,0x0d,0x85,0x0a,0x1d,0x0c,0x9a,0x0a,' +` 0x10,0x0b,0xc5,0x09,0xb8,0x09,0x8a,0x08,' +` 0x2a,0x08,0x1c,0x07,0x59,0x05,0x17,0x04,' +` 0xd2,0x03,0x33,0x03,0x37,0x03,0x86,0x02,' +` 0x46,0x02,0xc3,0x01,0x83,0x01,0x26,0x01,' +` 0xed,0x00,0x91,0x00,0x78,0x00,0x52,0x00,' +` 0x41,0x00,0x2b,0x00,0x1f,0x00,0x16,0x00,' +` 0x13,0x00,0x0b,0x00,0x07,0x00,0x03,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xfa,0xff,0xef,0xff,0xe5,0xff,0xc5,0xff,' +` 0xab,0xff,0x5f,0xff,0x1f,0xff,0x88,0xfe,' +` 0x2d,0xfe,0x26,0xfd,0xa9,0xfc,0x09,0xfb,' +` 0x82,0xfa,0xda,0xf7,0x5b,0xf7,0x10,0xf4,' +` 0xed,0xf3,0x05,0xef,0x4f,0xf0,0x46,0xea,' +` 0xbb,0xed,0x9d,0xe5,0xf9,0xec,0x96,0xe0,' +` 0x5e,0xf0,0x1a,0xd7,0x53,0x0e,0x97,0x56,' +` 0xec,0xd1,0x72,0xf8,0x8b,0xe3,0xa5,0xf5,' +` 0xde,0xea,0xf7,0xf6,0x73,0xf0,0x54,0xf9,' +` 0x0e,0xf5,0xe3,0xfb,0xc2,0xf9,0x36,0xfe,' +` 0x27,0xfc,0xca,0xff,0x63,0xfe,0x48,0x00,' +` 0x25,0xff,0x5e,0x00,0x91,0xff,0x50,0x00,' +` 0xac,0xff,0xf9,0xff,0xb4,0xff,0xf2,0xff,' +` 0xce,0xff,0xf1,0xff,0xe2,0xff,0xfc,0xff,' +` 0xf6,0xff,0xfd,0xff,0xfc,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xff,0xff,0xfa,0xff,' +` 0xfc,0xff,0xf1,0xff,0xfb,0xff,0xe2,0xff,' +` 0xfb,0xff,0xd0,0xff,0x1b,0x00,0xb5,0xff,' +` 0x24,0x00,0x67,0xff,0x1d,0x00,0xd5,0xfe,' +` 0xe4,0xff,0x4d,0xfd,0xe2,0xfe,0x42,0xfb,' +` 0x1a,0xfd,0x61,0xf7,0x30,0xfb,0xce,0xf2,' +` 0x1f,0xf9,0xab,0xec,0xdf,0xf7,0xcf,0xe3,' +` 0xe4,0xfa,0xbe,0xce,0xc3,0x48,0x46,0x24,' +` 0x4b,0xcc,0x60,0xf1,0xec,0xd7,0x09,0xea,' +` 0x6c,0xdc,0x7a,0xe8,0x98,0xe0,0xc7,0xe9,' +` 0x71,0xe5,0x1f,0xed,0xa6,0xeb,0x2b,0xf1,' +` 0xd0,0xf0,0x9d,0xf5,0x97,0xf5,0xe1,0xf8,' +` 0x3b,0xf9,0x8d,0xfb,0xf7,0xfb,0x7d,0xfd,' +` 0xf1,0xfd,0xda,0xfe,0x0a,0xff,0x84,0xff,' +` 0x9d,0xff,0xd7,0xff,0xe0,0xff,0xf3,0xff,' +` 0xf7,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x06,0x00,0x08,0x00,' +` 0x0e,0x00,0x15,0x00,0x20,0x00,0x2f,0x00,' +` 0x41,0x00,0x6a,0x00,0x93,0x00,0xc2,0x00,' +` 0xfc,0x00,0x43,0x01,0x8e,0x01,0xf6,0x01,' +` 0x46,0x02,0x8b,0x02,0x06,0x03,0xd1,0x03,' +` 0x8d,0x05,0x53,0x06,0x3d,0x07,0x13,0x08,' +` 0xfa,0x08,0xce,0x09,0x9f,0x0a,0x50,0x0b,' +` 0xdf,0x0b,0x4d,0x0c,0x80,0x4c,0xbb,0x0c,' +` 0xb2,0x0c,0x8a,0x0c,0x2a,0x0c,0xb4,0x0b,' +` 0x09,0x0b,0x58,0x0a,0x6c,0x09,0x90,0x08,' +` 0x82,0x07,0xde,0x06,0xf5,0x05,0x1a,0x05,' +` 0xd7,0x03,0xcc,0x02,0x4c,0x02,0xc0,0x01,' +` 0x5a,0x01,0xfe,0x00,0xb9,0x00,0x82,0x00,' +` 0x63,0x00,0x41,0x00,0x2a,0x00,0x19,0x00,' +` 0x0f,0x00,0x08,0x00,0x03,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_16khz.m4 new file mode 100644 index 000000000000..f2560a3d25ed --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_16khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfc,0xff,0xf7,0xff,0xef,0xff,' +` 0xe3,0xff,0xd2,0xff,0xba,0xff,0x9e,0xff,' +` 0x7d,0xff,0x5a,0xff,0x36,0xff,0x14,0xff,' +` 0xf7,0xfe,0xec,0xfe,0xed,0xfe,0x0f,0xff,' +` 0xd2,0xfe,0xd9,0xfe,0x2c,0xff,0x37,0xff,' +` 0x4e,0xff,0x8b,0xfe,0x23,0xfd,0xd4,0xfc,' +` 0xf7,0xfc,0x85,0xfd,0xf9,0xfe,0x5a,0x02,' +` 0x0a,0x06,0x03,0x0e,0x9a,0x18,0xdc,0x1d,' +` 0xd2,0x62,0x32,0x25,0x85,0x25,0x68,0x24,' +` 0x62,0x21,0xba,0x1a,0x61,0x12,0x0a,0x0d,' +` 0x8b,0x08,0xc6,0x05,0x16,0x03,0x82,0x00,' +` 0x1f,0xff,0xd5,0xfe,0xaa,0xfe,0xbd,0xfe,' +` 0xd5,0xfe,0xfb,0xfe,0x3e,0xff,0x75,0xff,' +` 0xa0,0xff,0xc0,0xff,0xd8,0xff,0xe9,0xff,' +` 0xf3,0xff,0xf9,0xff,0xfd,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x0a,0x00,0x0f,0x00,0x1d,0x00,0x20,0x00,' +` 0x33,0x00,0x1d,0x00,0x23,0x00,0xc9,0xff,' +` 0xa2,0xff,0xbd,0xfe,0x56,0xfe,0xce,0xfc,' +` 0x69,0xfc,0x9a,0xfa,0xd1,0xfa,0x2f,0xf9,' +` 0x1c,0xfc,0xde,0xfc,0x5c,0x03,0xaa,0x05,' +` 0xc4,0x12,0x59,0x16,0x2d,0x24,0x31,0x1f,' +` 0x06,0x26,0x01,0x0d,0x32,0x0d,0x35,0xd4,' +` 0xfa,0xfc,0xc8,0x1f,0xbc,0x84,0x69,0x9e,' +` 0x76,0x86,0x10,0x9c,0x31,0x9e,0x4f,0xbe,' +` 0x85,0xc8,0xf4,0xe1,0x1c,0xec,0xf0,0xfd,' +` 0x3c,0x01,0x1d,0x0a,0xa9,0x0a,0xc9,0x0d,' +` 0xc4,0x0b,0x8e,0x0b,0x8f,0x08,0xab,0x07,' +` 0x50,0x05,0x59,0x04,0xbf,0x02,0x1f,0x02,' +` 0x41,0x01,0xef,0x00,0x83,0x00,0x5e,0x00,' +` 0x30,0x00,0x21,0x00,0x0f,0x00,0x09,0x00,' +` 0x03,0x00,0x01,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x09,0x00,0x16,0x00,' +` 0x24,0x00,0x4c,0x00,0x70,0x00,0xd3,0x00,' +` 0x23,0x01,0xf7,0x01,0x85,0x02,0xeb,0x03,' +` 0x8c,0x04,0x8e,0x06,0xe9,0x06,0xab,0x08,' +` 0xe3,0x06,0x2d,0x07,0x0a,0x01,0x44,0xff,' +` 0xe0,0xf1,0x40,0xea,0xe1,0xd4,0x08,0xcc,' +` 0x94,0xae,0xa5,0xaa,0xd4,0x92,0x48,0xa7,' +` 0x51,0x88,0xd4,0x12,0xec,0x08,0xde,0xcc,' +` 0x02,0x0e,0x4e,0x0b,0xe9,0x2a,0xfa,0x22,' +` 0x20,0x2c,0x7c,0x1b,0x0f,0x19,0xc1,0x07,' +` 0x52,0x05,0xc4,0xfb,0xf0,0xfa,0xb7,0xf5,' +` 0x1b,0xf8,0x14,0xf7,0x00,0xfa,0x2a,0xfa,' +` 0xe7,0xfc,0x65,0xfd,0x38,0xff,0x72,0xff,' +` 0x51,0x00,0x41,0x00,0x8f,0x00,0x61,0x00,' +` 0x6a,0x00,0x3f,0x00,0x35,0x00,0x1c,0x00,' +` 0x13,0x00,0x08,0x00,0x04,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfd,0xff,0xf8,0xff,' +` 0xf3,0xff,0xe5,0xff,0xdb,0xff,0xbe,0xff,' +` 0xa9,0xff,0x74,0xff,0x69,0xff,0x3b,0xff,' +` 0x46,0xff,0x2b,0xff,0x86,0xff,0x12,0x00,' +` 0x30,0x02,0xc2,0x03,0x79,0x06,0x4c,0x09,' +` 0xb3,0x0e,0x8a,0x14,0xc7,0x1c,0x0a,0x1e,' +` 0xa1,0x23,0xdb,0x1d,0xfb,0x5c,0xd4,0x22,' +` 0x84,0x16,0x1e,0x11,0x79,0x05,0xed,0x03,' +` 0x3c,0xfe,0xef,0xfd,0xd6,0xfb,0xa4,0xfc,' +` 0xe1,0xfb,0x51,0xfe,0xbe,0xfe,0x2e,0xff,' +` 0x9c,0xfe,0x83,0xfe,0xff,0xfd,0x9c,0xfe,' +` 0x20,0xfe,0x31,0xfe,0x08,0xfe,0x41,0xfe,' +` 0x55,0xfe,0x99,0xfe,0xc5,0xfe,0x09,0xff,' +` 0x3a,0xff,0x70,0xff,0x96,0xff,0xb9,0xff,' +` 0xd1,0xff,0xe4,0xff,0xf0,0xff,0xf8,0xff,' +` 0xfc,0xff,0xff,0xff,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfd,0xff,0xf8,0xff,0xf3,0xff,0xe5,0xff,' +` 0xdb,0xff,0xbe,0xff,0xa9,0xff,0x74,0xff,' +` 0x69,0xff,0x3b,0xff,0x46,0xff,0x2b,0xff,' +` 0x86,0xff,0x12,0x00,0x30,0x02,0xc2,0x03,' +` 0x79,0x06,0x4c,0x09,0xb3,0x0e,0x8a,0x14,' +` 0xc7,0x1c,0x0a,0x1e,0xa1,0x23,0xdb,0x1d,' +` 0xfb,0x5c,0xd4,0x22,0x84,0x16,0x1e,0x11,' +` 0x79,0x05,0xed,0x03,0x3c,0xfe,0xef,0xfd,' +` 0xd6,0xfb,0xa4,0xfc,0xe1,0xfb,0x51,0xfe,' +` 0xbe,0xfe,0x2e,0xff,0x9c,0xfe,0x83,0xfe,' +` 0xff,0xfd,0x9c,0xfe,0x20,0xfe,0x31,0xfe,' +` 0x08,0xfe,0x41,0xfe,0x55,0xfe,0x99,0xfe,' +` 0xc5,0xfe,0x09,0xff,0x3a,0xff,0x70,0xff,' +` 0x96,0xff,0xb9,0xff,0xd1,0xff,0xe4,0xff,' +` 0xf0,0xff,0xf8,0xff,0xfc,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x09,0x00,0x16,0x00,0x24,0x00,0x4c,0x00,' +` 0x70,0x00,0xd3,0x00,0x23,0x01,0xf7,0x01,' +` 0x85,0x02,0xeb,0x03,0x8c,0x04,0x8e,0x06,' +` 0xe9,0x06,0xab,0x08,0xe3,0x06,0x2d,0x07,' +` 0x0a,0x01,0x44,0xff,0xe0,0xf1,0x40,0xea,' +` 0xe1,0xd4,0x08,0xcc,0x94,0xae,0xa5,0xaa,' +` 0xd4,0x92,0x48,0xa7,0x51,0x88,0xd4,0x12,' +` 0xec,0x08,0xde,0xcc,0x02,0x0e,0x4e,0x0b,' +` 0xe9,0x2a,0xfa,0x22,0x20,0x2c,0x7c,0x1b,' +` 0x0f,0x19,0xc1,0x07,0x52,0x05,0xc4,0xfb,' +` 0xf0,0xfa,0xb7,0xf5,0x1b,0xf8,0x14,0xf7,' +` 0x00,0xfa,0x2a,0xfa,0xe7,0xfc,0x65,0xfd,' +` 0x38,0xff,0x72,0xff,0x51,0x00,0x41,0x00,' +` 0x8f,0x00,0x61,0x00,0x6a,0x00,0x3f,0x00,' +` 0x35,0x00,0x1c,0x00,0x13,0x00,0x08,0x00,' +` 0x04,0x00,0x01,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x0a,0x00,0x0f,0x00,' +` 0x1d,0x00,0x20,0x00,0x33,0x00,0x1d,0x00,' +` 0x23,0x00,0xc9,0xff,0xa2,0xff,0xbd,0xfe,' +` 0x56,0xfe,0xce,0xfc,0x69,0xfc,0x9a,0xfa,' +` 0xd1,0xfa,0x2f,0xf9,0x1c,0xfc,0xde,0xfc,' +` 0x5c,0x03,0xaa,0x05,0xc4,0x12,0x59,0x16,' +` 0x2d,0x24,0x31,0x1f,0x06,0x26,0x01,0x0d,' +` 0x32,0x0d,0x35,0xd4,0xfa,0xfc,0xc8,0x1f,' +` 0xbc,0x84,0x69,0x9e,0x76,0x86,0x10,0x9c,' +` 0x31,0x9e,0x4f,0xbe,0x85,0xc8,0xf4,0xe1,' +` 0x1c,0xec,0xf0,0xfd,0x3c,0x01,0x1d,0x0a,' +` 0xa9,0x0a,0xc9,0x0d,0xc4,0x0b,0x8e,0x0b,' +` 0x8f,0x08,0xab,0x07,0x50,0x05,0x59,0x04,' +` 0xbf,0x02,0x1f,0x02,0x41,0x01,0xef,0x00,' +` 0x83,0x00,0x5e,0x00,0x30,0x00,0x21,0x00,' +` 0x0f,0x00,0x09,0x00,0x03,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xff,' +` 0xf7,0xff,0xef,0xff,0xe3,0xff,0xd2,0xff,' +` 0xba,0xff,0x9e,0xff,0x7d,0xff,0x5a,0xff,' +` 0x36,0xff,0x14,0xff,0xf7,0xfe,0xec,0xfe,' +` 0xed,0xfe,0x0f,0xff,0xd2,0xfe,0xd9,0xfe,' +` 0x2c,0xff,0x37,0xff,0x4e,0xff,0x8b,0xfe,' +` 0x23,0xfd,0xd4,0xfc,0xf7,0xfc,0x85,0xfd,' +` 0xf9,0xfe,0x5a,0x02,0x0a,0x06,0x03,0x0e,' +` 0x9a,0x18,0xdc,0x1d,0xd2,0x62,0x32,0x25,' +` 0x85,0x25,0x68,0x24,0x62,0x21,0xba,0x1a,' +` 0x61,0x12,0x0a,0x0d,0x8b,0x08,0xc6,0x05,' +` 0x16,0x03,0x82,0x00,0x1f,0xff,0xd5,0xfe,' +` 0xaa,0xfe,0xbd,0xfe,0xd5,0xfe,0xfb,0xfe,' +` 0x3e,0xff,0x75,0xff,0xa0,0xff,0xc0,0xff,' +` 0xd8,0xff,0xe9,0xff,0xf3,0xff,0xf9,0xff,' +` 0xfd,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_48khz.m4 new file mode 100644 index 000000000000..a5b14a525a55 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_48khz.m4 @@ -0,0 +1,165 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xec,0x04,0x00,0x00,0x08,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfb,0xff,0xf8,0xff,0xf6,0xff,' +` 0xf3,0xff,0xee,0xff,0xe9,0xff,0xe6,0xff,' +` 0xe3,0xff,0xe7,0xff,0xea,0xff,0x0b,0x00,' +` 0x29,0x00,0x3c,0x00,0x84,0x00,0xcb,0x00,' +` 0x3b,0x01,0xb1,0x01,0x51,0x02,0xf9,0x02,' +` 0x04,0x05,0x30,0x06,0x09,0x07,0x06,0x08,' +` 0xe2,0x08,0xc2,0x09,0x78,0x0a,0x1f,0x0b,' +` 0x7c,0x4b,0xe0,0x0b,0xec,0x0b,0xd7,0x0b,' +` 0x86,0x0b,0x17,0x0b,0x76,0x0a,0xbd,0x09,' +` 0xf3,0x08,0x70,0x08,0x6d,0x07,0x83,0x06,' +` 0x86,0x05,0xb0,0x04,0xcf,0x03,0x27,0x03,' +` 0x4f,0x02,0x94,0x01,0x41,0x01,0xe6,0x00,' +` 0xa7,0x00,0x73,0x00,0x4d,0x00,0x32,0x00,' +` 0x1e,0x00,0x13,0x00,0x0c,0x00,0x06,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,' +` 0x06,0x00,0x0c,0x00,0x1a,0x00,0x2a,0x00,' +` 0x49,0x00,0x69,0x00,0xa5,0x00,0xd8,0x00,' +` 0x35,0x01,0x7d,0x01,0x05,0x02,0x12,0x02,' +` 0xad,0x02,0x84,0x02,0x11,0x03,0x5e,0x02,' +` 0xc2,0x02,0x2d,0x01,0xd6,0x00,0x95,0xfd,' +` 0xa9,0xfd,0xb7,0xf8,0x6b,0xf9,0xac,0xf1,' +` 0x7d,0xf5,0x14,0xe5,0xc4,0x61,0xfb,0xf1,' +` 0xcd,0xde,0x02,0xe5,0xbe,0xdc,0xd2,0xdf,' +` 0x21,0xdb,0xd5,0xdd,0xbf,0xdb,0x03,0xe0,' +` 0xd8,0xdf,0x6c,0xe3,0x80,0xe4,0x3d,0xe8,' +` 0x14,0xea,0xa7,0xed,0xd8,0xef,0xc3,0xf3,' +` 0xc9,0xf5,0x20,0xf8,0xa2,0xf9,0x59,0xfb,' +` 0x6c,0xfc,0x8c,0xfd,0x3a,0xfe,0xe0,0xfe,' +` 0x3a,0xff,0x90,0xff,0xbc,0xff,0xe1,0xff,' +` 0xf0,0xff,0xfc,0xff,0xff,0xff,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfa,0xff,0xf3,0xff,0xe2,0xff,' +` 0xcb,0xff,0x9d,0xff,0x6a,0xff,0x06,0xff,' +` 0x94,0xfe,0xc9,0xfd,0x30,0xfd,0xf1,0xfb,' +` 0x2b,0xfb,0x56,0xf9,0x8e,0xf8,0x0d,0xf6,' +` 0x5d,0xf5,0xda,0xf1,0x9e,0xf2,0x16,0xee,' +` 0x42,0xf1,0x37,0xea,0x72,0xf3,0x60,0xe1,' +` 0x45,0x4b,0x82,0x02,0x28,0xe7,0xd8,0xf8,' +` 0xda,0xef,0x44,0xfb,0x9c,0xf6,0x9e,0xff,' +` 0xef,0xfc,0x2b,0x05,0x44,0x03,0x9a,0x08,' +` 0xcd,0x06,0x88,0x0a,0xb0,0x08,0xe7,0x0a,' +` 0x22,0x09,0x72,0x0a,0xd4,0x07,0x33,0x08,' +` 0x20,0x06,0xf8,0x05,0x3f,0x04,0xe5,0x03,' +` 0x97,0x02,0x3e,0x02,0x50,0x01,0x18,0x01,' +` 0x92,0x00,0x73,0x00,0x2d,0x00,0x21,0x00,' +` 0x03,0x00,0x08,0x00,0xfe,0xff,0xff,0xff,' +` 0xfd,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x0b,0x00,0x12,0x00,0x2b,0x00,0x45,0x00,' +` 0x81,0x00,0xa7,0x00,0x24,0x01,0x56,0x01,' +` 0x3d,0x02,0x67,0x02,0xd9,0x03,0x93,0x03,' +` 0x2a,0x06,0xff,0x04,0x78,0x09,0xb1,0x05,' +` 0xfe,0x0e,0xa2,0x00,0x63,0x48,0xea,0x22,' +` 0x6c,0x03,0x8d,0x15,0xde,0x08,0x78,0x13,' +` 0x2e,0x0a,0xb3,0x11,0xd5,0x09,0x47,0x0c,' +` 0x5a,0x04,0xe1,0x08,0x7f,0x02,0xf9,0x05,' +` 0xa5,0x00,0x67,0x03,0x4b,0xff,0x17,0x02,' +` 0x1d,0xfe,0x5f,0x00,0xd9,0xfd,0xb3,0xff,' +` 0xf8,0xfd,0x7a,0xff,0x59,0xfe,0x7b,0xff,' +` 0x98,0xfe,0x78,0xff,0x07,0xff,0xa4,0xff,' +` 0x63,0xff,0xc9,0xff,0xa4,0xff,0xf7,0xff,' +` 0xe5,0xff,0xff,0xff,0xf4,0xff,0x00,0x00,' +` 0xfb,0xff,0x00,0x00,0xfe,0xff,0x00,0x00,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x0b,0x00,0x12,0x00,' +` 0x2b,0x00,0x45,0x00,0x81,0x00,0xa7,0x00,' +` 0x24,0x01,0x56,0x01,0x3d,0x02,0x67,0x02,' +` 0xd9,0x03,0x93,0x03,0x2a,0x06,0xff,0x04,' +` 0x78,0x09,0xb1,0x05,0xfe,0x0e,0xa2,0x00,' +` 0x63,0x48,0xea,0x22,0x6c,0x03,0x8d,0x15,' +` 0xde,0x08,0x78,0x13,0x2e,0x0a,0xb3,0x11,' +` 0xd5,0x09,0x47,0x0c,0x5a,0x04,0xe1,0x08,' +` 0x7f,0x02,0xf9,0x05,0xa5,0x00,0x67,0x03,' +` 0x4b,0xff,0x17,0x02,0x1d,0xfe,0x5f,0x00,' +` 0xd9,0xfd,0xb3,0xff,0xf8,0xfd,0x7a,0xff,' +` 0x59,0xfe,0x7b,0xff,0x98,0xfe,0x78,0xff,' +` 0x07,0xff,0xa4,0xff,0x63,0xff,0xc9,0xff,' +` 0xa4,0xff,0xf7,0xff,0xe5,0xff,0xff,0xff,' +` 0xf4,0xff,0x00,0x00,0xfb,0xff,0x00,0x00,' +` 0xfe,0xff,0x00,0x00,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfa,0xff,' +` 0xf3,0xff,0xe2,0xff,0xcb,0xff,0x9d,0xff,' +` 0x6a,0xff,0x06,0xff,0x94,0xfe,0xc9,0xfd,' +` 0x30,0xfd,0xf1,0xfb,0x2b,0xfb,0x56,0xf9,' +` 0x8e,0xf8,0x0d,0xf6,0x5d,0xf5,0xda,0xf1,' +` 0x9e,0xf2,0x16,0xee,0x42,0xf1,0x37,0xea,' +` 0x72,0xf3,0x60,0xe1,0x45,0x4b,0x82,0x02,' +` 0x28,0xe7,0xd8,0xf8,0xda,0xef,0x44,0xfb,' +` 0x9c,0xf6,0x9e,0xff,0xef,0xfc,0x2b,0x05,' +` 0x44,0x03,0x9a,0x08,0xcd,0x06,0x88,0x0a,' +` 0xb0,0x08,0xe7,0x0a,0x22,0x09,0x72,0x0a,' +` 0xd4,0x07,0x33,0x08,0x20,0x06,0xf8,0x05,' +` 0x3f,0x04,0xe5,0x03,0x97,0x02,0x3e,0x02,' +` 0x50,0x01,0x18,0x01,0x92,0x00,0x73,0x00,' +` 0x2d,0x00,0x21,0x00,0x03,0x00,0x08,0x00,' +` 0xfe,0xff,0xff,0xff,0xfd,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x02,0x00,0x06,0x00,0x0c,0x00,' +` 0x1a,0x00,0x2a,0x00,0x49,0x00,0x69,0x00,' +` 0xa5,0x00,0xd8,0x00,0x35,0x01,0x7d,0x01,' +` 0x05,0x02,0x12,0x02,0xad,0x02,0x84,0x02,' +` 0x11,0x03,0x5e,0x02,0xc2,0x02,0x2d,0x01,' +` 0xd6,0x00,0x95,0xfd,0xa9,0xfd,0xb7,0xf8,' +` 0x6b,0xf9,0xac,0xf1,0x7d,0xf5,0x14,0xe5,' +` 0xc4,0x61,0xfb,0xf1,0xcd,0xde,0x02,0xe5,' +` 0xbe,0xdc,0xd2,0xdf,0x21,0xdb,0xd5,0xdd,' +` 0xbf,0xdb,0x03,0xe0,0xd8,0xdf,0x6c,0xe3,' +` 0x80,0xe4,0x3d,0xe8,0x14,0xea,0xa7,0xed,' +` 0xd8,0xef,0xc3,0xf3,0xc9,0xf5,0x20,0xf8,' +` 0xa2,0xf9,0x59,0xfb,0x6c,0xfc,0x8c,0xfd,' +` 0x3a,0xfe,0xe0,0xfe,0x3a,0xff,0x90,0xff,' +` 0xbc,0xff,0xe1,0xff,0xf0,0xff,0xfc,0xff,' +` 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,' +` 0xf8,0xff,0xf6,0xff,0xf3,0xff,0xee,0xff,' +` 0xe9,0xff,0xe6,0xff,0xe3,0xff,0xe7,0xff,' +` 0xea,0xff,0x0b,0x00,0x29,0x00,0x3c,0x00,' +` 0x84,0x00,0xcb,0x00,0x3b,0x01,0xb1,0x01,' +` 0x51,0x02,0xf9,0x02,0x04,0x05,0x30,0x06,' +` 0x09,0x07,0x06,0x08,0xe2,0x08,0xc2,0x09,' +` 0x78,0x0a,0x1f,0x0b,0x7c,0x4b,0xe0,0x0b,' +` 0xec,0x0b,0xd7,0x0b,0x86,0x0b,0x17,0x0b,' +` 0x76,0x0a,0xbd,0x09,0xf3,0x08,0x70,0x08,' +` 0x6d,0x07,0x83,0x06,0x86,0x05,0xb0,0x04,' +` 0xcf,0x03,0x27,0x03,0x4f,0x02,0x94,0x01,' +` 0x41,0x01,0xe6,0x00,0xa7,0x00,0x73,0x00,' +` 0x4d,0x00,0x32,0x00,0x1e,0x00,0x13,0x00,' +` 0x0c,0x00,0x06,0x00,0x03,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x05,0x00,0x05,0x00,' +` 0x05,0x00,0x05,0x00,0x0a,0x00,0x0a,0x00,' +` 0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_16khz.m4 new file mode 100644 index 000000000000..7b35eb55fd07 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x07,0x00,0x0f,0x00,0x16,0x00,0x29,0x00,' +` 0x36,0x00,0x5f,0x00,0x75,0x00,0xb9,0x00,' +` 0xdf,0x00,0x4f,0x01,0x84,0x01,0x2c,0x02,' +` 0x6b,0x02,0x58,0x03,0x99,0x03,0xcd,0x04,' +` 0x2e,0x05,0x87,0x07,0x42,0x07,0x87,0x09,' +` 0xd5,0x08,0xa1,0x0b,0x0e,0x0a,0xb7,0x0d,' +` 0x82,0x0a,0x1c,0x10,0xc4,0x08,0xd3,0x17,' +` 0x6b,0x4b,0xbe,0x05,0xf7,0x10,0xd2,0x09,' +` 0xc4,0x0d,0x98,0x09,0x72,0x0b,0x6a,0x08,' +` 0x40,0x09,0xdc,0x06,0x32,0x07,0xf9,0x04,' +` 0x75,0x04,0x4a,0x03,0x12,0x03,0x2a,0x02,' +` 0xf3,0x01,0x51,0x01,0x25,0x01,0xbc,0x00,' +` 0x9c,0x00,0x5e,0x00,0x49,0x00,0x27,0x00,' +` 0x1f,0x00,0x0f,0x00,0x0b,0x00,0x04,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfc,0xff,0xf8,0xff,0xf0,0xff,0xe4,0xff,' +` 0xd1,0xff,0xb5,0xff,0x8d,0xff,0x50,0xff,' +` 0x08,0xff,0xa9,0xfe,0x28,0xfe,0x8f,0xfd,' +` 0xcc,0xfc,0xf1,0xfb,0xe1,0xfa,0xbf,0xf9,' +` 0x5d,0xf8,0x08,0xf7,0x20,0xf5,0x01,0xf2,' +` 0x59,0xf0,0x6c,0xee,0xa8,0xec,0xe6,0xea,' +` 0x54,0xe9,0xe7,0xe7,0xb6,0xe6,0xc8,0xe5,' +` 0x20,0xe5,0xcd,0xe4,0xa6,0x64,0x48,0xe5,' +` 0xfa,0xe5,0x0d,0xe7,0x43,0xe8,0xcf,0xe9,' +` 0x61,0xeb,0x3c,0xed,0xf6,0xee,0xf8,0xf0,' +` 0x97,0xf2,0xf7,0xf4,0xad,0xf7,0xdb,0xf8,' +` 0x3d,0xfa,0x4e,0xfb,0x54,0xfc,0x22,0xfd,' +` 0xd9,0xfd,0x65,0xfe,0xdb,0xfe,0x31,0xff,' +` 0x76,0xff,0xa9,0xff,0xc6,0xff,0xdd,0xff,' +` 0xec,0xff,0xf6,0xff,0xfb,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfc,0xff,0xf8,0xff,' +` 0xf0,0xff,0xe4,0xff,0xd1,0xff,0xb5,0xff,' +` 0x8d,0xff,0x50,0xff,0x08,0xff,0xa9,0xfe,' +` 0x28,0xfe,0x8f,0xfd,0xcc,0xfc,0xf1,0xfb,' +` 0xe1,0xfa,0xbf,0xf9,0x5d,0xf8,0x08,0xf7,' +` 0x20,0xf5,0x01,0xf2,0x59,0xf0,0x6c,0xee,' +` 0xa8,0xec,0xe6,0xea,0x54,0xe9,0xe7,0xe7,' +` 0xb6,0xe6,0xc8,0xe5,0x20,0xe5,0xcd,0xe4,' +` 0xa6,0x64,0x48,0xe5,0xfa,0xe5,0x0d,0xe7,' +` 0x43,0xe8,0xcf,0xe9,0x61,0xeb,0x3c,0xed,' +` 0xf6,0xee,0xf8,0xf0,0x97,0xf2,0xf7,0xf4,' +` 0xad,0xf7,0xdb,0xf8,0x3d,0xfa,0x4e,0xfb,' +` 0x54,0xfc,0x22,0xfd,0xd9,0xfd,0x65,0xfe,' +` 0xdb,0xfe,0x31,0xff,0x76,0xff,0xa9,0xff,' +` 0xc6,0xff,0xdd,0xff,0xec,0xff,0xf6,0xff,' +` 0xfb,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x07,0x00,0x0f,0x00,' +` 0x16,0x00,0x29,0x00,0x36,0x00,0x5f,0x00,' +` 0x75,0x00,0xb9,0x00,0xdf,0x00,0x4f,0x01,' +` 0x84,0x01,0x2c,0x02,0x6b,0x02,0x58,0x03,' +` 0x99,0x03,0xcd,0x04,0x2e,0x05,0x87,0x07,' +` 0x42,0x07,0x87,0x09,0xd5,0x08,0xa1,0x0b,' +` 0x0e,0x0a,0xb7,0x0d,0x82,0x0a,0x1c,0x10,' +` 0xc4,0x08,0xd3,0x17,0x6b,0x4b,0xbe,0x05,' +` 0xf7,0x10,0xd2,0x09,0xc4,0x0d,0x98,0x09,' +` 0x72,0x0b,0x6a,0x08,0x40,0x09,0xdc,0x06,' +` 0x32,0x07,0xf9,0x04,0x75,0x04,0x4a,0x03,' +` 0x12,0x03,0x2a,0x02,0xf3,0x01,0x51,0x01,' +` 0x25,0x01,0xbc,0x00,0x9c,0x00,0x5e,0x00,' +` 0x49,0x00,0x27,0x00,0x1f,0x00,0x0f,0x00,' +` 0x0b,0x00,0x04,0x00,0x03,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_48khz.m4 new file mode 100644 index 000000000000..9ea97de02498 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x03,0x00,0x04,0x00,0x0c,0x00,' +` 0x0f,0x00,0x22,0x00,0x24,0x00,0x4e,0x00,' +` 0x4a,0x00,0x9a,0x00,0x86,0x00,0x12,0x01,' +` 0xdb,0x00,0xc3,0x01,0x4a,0x01,0xb5,0x02,' +` 0xcc,0x01,0xef,0x03,0x53,0x02,0x74,0x05,' +` 0xc7,0x02,0x47,0x07,0x01,0x03,0x72,0x09,' +` 0xc0,0x02,0x1f,0x0c,0x86,0x01,0xe7,0x0f,' +` 0xed,0xfd,0x8e,0x17,0xe8,0xef,0xbe,0x4d,' +` 0xed,0x65,0x3f,0xed,0x6d,0x18,0x64,0xfd,' +` 0x17,0x10,0x40,0x01,0x24,0x0c,0x8d,0x02,' +` 0x66,0x09,0xd7,0x02,0x33,0x07,0xa3,0x02,' +` 0x5f,0x05,0x35,0x02,0xdb,0x03,0xb4,0x01,' +` 0xa4,0x02,0x38,0x01,0xb6,0x01,0xcf,0x00,' +` 0x0a,0x01,0x7e,0x00,0x94,0x00,0x45,0x00,' +` 0x4b,0x00,0x22,0x00,0x21,0x00,0x0e,0x00,' +` 0x0b,0x00,0x04,0x00,0x03,0x00,0x01,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfb,0xff,0xf6,0xff,0xee,0xff,0xe3,0xff,' +` 0xd4,0xff,0xbf,0xff,0xa4,0xff,0x81,0xff,' +` 0x55,0xff,0x21,0xff,0xe1,0xfe,0x98,0xfe,' +` 0x42,0xfe,0xe2,0xfd,0x77,0xfd,0x02,0xfd,' +` 0x84,0xfc,0xff,0xfb,0x75,0xfb,0xe7,0xfa,' +` 0x59,0xfa,0xce,0xf9,0x48,0xf9,0xca,0xf8,' +` 0x59,0xf8,0xf4,0xf7,0xa2,0xf7,0x60,0xf7,' +` 0x36,0xf7,0x1e,0xf7,0xfc,0x76,0x3c,0xf7,' +` 0x6e,0xf7,0xaf,0xf7,0x08,0xf8,0x6b,0xf8,' +` 0xe2,0xf8,0x5e,0xf9,0xe8,0xf9,0x71,0xfa,' +` 0x01,0xfb,0x8c,0xfb,0x17,0xfc,0x99,0xfc,' +` 0x17,0xfd,0x89,0xfd,0xf3,0xfd,0x50,0xfe,' +` 0xa4,0xfe,0xeb,0xfe,0x29,0xff,0x5c,0xff,' +` 0x86,0xff,0xa7,0xff,0xc2,0xff,0xd6,0xff,' +` 0xe5,0xff,0xef,0xff,0xf6,0xff,0xfb,0xff,' +` 0xfe,0xff,0xff,0xff,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfb,0xff,0xf6,0xff,' +` 0xee,0xff,0xe3,0xff,0xd4,0xff,0xbf,0xff,' +` 0xa4,0xff,0x81,0xff,0x55,0xff,0x21,0xff,' +` 0xe1,0xfe,0x98,0xfe,0x42,0xfe,0xe2,0xfd,' +` 0x77,0xfd,0x02,0xfd,0x84,0xfc,0xff,0xfb,' +` 0x75,0xfb,0xe7,0xfa,0x59,0xfa,0xce,0xf9,' +` 0x48,0xf9,0xca,0xf8,0x59,0xf8,0xf4,0xf7,' +` 0xa2,0xf7,0x60,0xf7,0x36,0xf7,0x1e,0xf7,' +` 0xfc,0x76,0x3c,0xf7,0x6e,0xf7,0xaf,0xf7,' +` 0x08,0xf8,0x6b,0xf8,0xe2,0xf8,0x5e,0xf9,' +` 0xe8,0xf9,0x71,0xfa,0x01,0xfb,0x8c,0xfb,' +` 0x17,0xfc,0x99,0xfc,0x17,0xfd,0x89,0xfd,' +` 0xf3,0xfd,0x50,0xfe,0xa4,0xfe,0xeb,0xfe,' +` 0x29,0xff,0x5c,0xff,0x86,0xff,0xa7,0xff,' +` 0xc2,0xff,0xd6,0xff,0xe5,0xff,0xef,0xff,' +` 0xf6,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,' +` 0x04,0x00,0x0c,0x00,0x0f,0x00,0x22,0x00,' +` 0x24,0x00,0x4e,0x00,0x4a,0x00,0x9a,0x00,' +` 0x86,0x00,0x12,0x01,0xdb,0x00,0xc3,0x01,' +` 0x4a,0x01,0xb5,0x02,0xcc,0x01,0xef,0x03,' +` 0x53,0x02,0x74,0x05,0xc7,0x02,0x47,0x07,' +` 0x01,0x03,0x72,0x09,0xc0,0x02,0x1f,0x0c,' +` 0x86,0x01,0xe7,0x0f,0xed,0xfd,0x8e,0x17,' +` 0xe8,0xef,0xbe,0x4d,0xed,0x65,0x3f,0xed,' +` 0x6d,0x18,0x64,0xfd,0x17,0x10,0x40,0x01,' +` 0x24,0x0c,0x8d,0x02,0x66,0x09,0xd7,0x02,' +` 0x33,0x07,0xa3,0x02,0x5f,0x05,0x35,0x02,' +` 0xdb,0x03,0xb4,0x01,0xa4,0x02,0x38,0x01,' +` 0xb6,0x01,0xcf,0x00,0x0a,0x01,0x7e,0x00,' +` 0x94,0x00,0x45,0x00,0x4b,0x00,0x22,0x00,' +` 0x21,0x00,0x0e,0x00,0x0b,0x00,0x04,0x00,' +` 0x03,0x00,0x01,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_16khz.m4 new file mode 100644 index 000000000000..2111a32a47ee --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x08,0x00,0x0e,0x00,0x16,0x00,0x24,0x00,' +` 0x33,0x00,0x43,0x00,0x64,0x00,0x9b,0x00,' +` 0xd2,0x00,0x17,0x01,0x66,0x01,0xcb,0x01,' +` 0x37,0x02,0xc4,0x02,0x49,0x03,0x08,0x04,' +` 0x8e,0x04,0x4d,0x05,0x27,0x07,0xe6,0x07,' +` 0xe9,0x08,0xb8,0x09,0xa1,0x0a,0x5e,0x0b,' +` 0x1c,0x0c,0xae,0x0c,0x2e,0x0d,0x81,0x0d,' +` 0x88,0x4d,0x90,0x0d,0x59,0x0d,0xfe,0x0c,' +` 0x6d,0x0c,0xce,0x0b,0xf9,0x0a,0x2e,0x0a,' +` 0x2a,0x09,0x55,0x08,0x29,0x07,0x70,0x06,' +` 0x4e,0x05,0xd6,0x03,0x47,0x03,0x8f,0x02,' +` 0x0f,0x02,0x8d,0x01,0x30,0x01,0xda,0x00,' +` 0x9f,0x00,0x6a,0x00,0x4f,0x00,0x37,0x00,' +` 0x20,0x00,0x10,0x00,0x09,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xf7,0xff,0xf4,0xff,0xde,0xff,0xdb,0xff,' +` 0xa5,0xff,0x9e,0xff,0x0e,0xff,0x19,0xff,' +` 0x47,0xfe,0xa1,0xfe,0xf9,0xfc,0x82,0xfd,' +` 0xcc,0xfa,0xd2,0xfb,0x91,0xf7,0x6f,0xf9,' +` 0x09,0xf3,0x57,0xf6,0x7c,0xeb,0x09,0xef,' +` 0x03,0xe2,0xa0,0xea,0xed,0xd7,0x9e,0xe6,' +` 0xd4,0xcb,0x6d,0xe5,0xa6,0xbb,0x1c,0xee,' +` 0x64,0x96,0x0e,0x6a,0xfc,0x6c,0x28,0x91,' +` 0x18,0xe7,0x78,0xb2,0x82,0xda,0xaf,0xbf,' +` 0x8d,0xd9,0x90,0xca,0x41,0xdd,0x21,0xd5,' +` 0x89,0xe3,0x98,0xe1,0x1b,0xed,0xeb,0xea,' +` 0x9f,0xf2,0x13,0xf2,0x6a,0xf7,0x7f,0xf7,' +` 0x00,0xfb,0x47,0xfb,0x64,0xfd,0xca,0xfd,' +` 0x08,0xff,0x19,0xff,0x98,0xff,0xa0,0xff,' +` 0xe2,0xff,0xe5,0xff,0xfb,0xff,0xfb,0xff,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfc,0xff,0xf5,0xff,' +` 0xed,0xff,0xda,0xff,0xc5,0xff,0x9d,0xff,' +` 0x7b,0xff,0x11,0xff,0xb2,0xfe,0x09,0xfe,' +` 0x84,0xfd,0x6f,0xfc,0xb8,0xfb,0x20,0xfa,' +` 0x42,0xf9,0x17,0xf7,0x2b,0xf6,0xb2,0xf2,' +` 0xd3,0xf1,0x98,0xed,0xc1,0xed,0x4e,0xe9,' +` 0xbb,0xea,0x55,0xe5,0x03,0xe9,0xb0,0xe1,' +` 0xd1,0xe9,0x6e,0xdc,0x3d,0xf6,0x29,0x62,' +` 0xbb,0xd8,0xf8,0xee,0x49,0xe4,0x58,0xee,' +` 0xb5,0xe9,0x8f,0xf0,0x53,0xee,0x84,0xf3,' +` 0x6f,0xf2,0xa9,0xf6,0x13,0xf7,0x1e,0xfa,' +` 0x6d,0xfa,0x3d,0xfc,0x5a,0xfc,0xa7,0xfd,' +` 0xc2,0xfd,0x9f,0xfe,0xb5,0xfe,0x40,0xff,' +` 0x4c,0xff,0x83,0xff,0x8f,0xff,0xcd,0xff,' +` 0xd9,0xff,0xed,0xff,0xf1,0xff,0xfa,0xff,' +` 0xfc,0xff,0xff,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x0a,0x00,0x0f,0x00,' +` 0x20,0x00,0x30,0x00,0x51,0x00,0x65,0x00,' +` 0x9b,0x00,0xc7,0x00,0x29,0x01,0x69,0x01,' +` 0x03,0x02,0x53,0x02,0x36,0x03,0x80,0x03,' +` 0x10,0x05,0x22,0x06,0x44,0x07,0x6f,0x07,' +` 0x53,0x09,0x12,0x09,0x6e,0x0b,0x53,0x0a,' +` 0x81,0x0d,0xb1,0x0a,0x1a,0x10,0x6b,0x07,' +` 0x87,0x4b,0xe6,0x14,0x84,0x09,0xf0,0x0e,' +` 0x69,0x0a,0xb4,0x0c,0xa5,0x09,0xa8,0x0a,' +` 0x50,0x08,0x99,0x08,0xce,0x06,0xea,0x05,' +` 0xc3,0x03,0x4d,0x04,0x1a,0x03,0xf7,0x02,' +` 0x16,0x02,0xed,0x01,0x4f,0x01,0x2b,0x01,' +` 0xc2,0x00,0xa7,0x00,0x58,0x00,0x45,0x00,' +` 0x26,0x00,0x25,0x00,0x14,0x00,0x0e,0x00,' +` 0x07,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_48khz.m4 new file mode 100644 index 000000000000..79cd230eb0c6 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x05,0x00,' +` 0x08,0x00,0x0d,0x00,0x14,0x00,0x1e,0x00,' +` 0x2a,0x00,0x3b,0x00,0x4f,0x00,0x68,0x00,' +` 0x85,0x00,0xa8,0x00,0xd1,0x00,0xff,0x00,' +` 0x32,0x01,0x6b,0x01,0xa8,0x01,0xea,0x01,' +` 0x2d,0x02,0x74,0x02,0xbb,0x02,0x02,0x03,' +` 0x45,0x03,0x87,0x03,0xc2,0x03,0xf9,0x03,' +` 0x25,0x04,0x4b,0x04,0x62,0x04,0x71,0x04,' +` 0x5d,0x44,0x69,0x04,0x55,0x04,0x39,0x04,' +` 0x11,0x04,0xe2,0x03,0xa9,0x03,0x6d,0x03,' +` 0x29,0x03,0xe4,0x02,0x9b,0x02,0x55,0x02,' +` 0x0e,0x02,0xcb,0x01,0x8a,0x01,0x4f,0x01,' +` 0x17,0x01,0xe7,0x00,0xba,0x00,0x95,0x00,' +` 0x73,0x00,0x59,0x00,0x42,0x00,0x30,0x00,' +` 0x22,0x00,0x17,0x00,0x0f,0x00,0x09,0x00,' +` 0x05,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfd,0xff,0xf6,0xff,0xf5,0xff,0xe3,0xff,' +` 0xe5,0xff,0xbe,0xff,0xc9,0xff,0x7a,0xff,' +` 0x9a,0xff,0x0d,0xff,0x57,0xff,0x69,0xfe,' +` 0xff,0xfe,0x81,0xfd,0x96,0xfe,0x4b,0xfc,' +` 0x2b,0xfe,0xbe,0xfa,0xd7,0xfd,0xcc,0xf8,' +` 0xc9,0xfd,0x5a,0xf6,0x5a,0xfe,0x12,0xf3,' +` 0x5b,0x00,0xa3,0xed,0xe8,0x06,0x6f,0xdd,' +` 0x34,0x44,0xcd,0x4b,0x61,0xdb,0x0e,0x07,' +` 0x97,0xeb,0xb0,0xff,0xb3,0xf0,0x36,0xfd,' +` 0xcc,0xf3,0x5b,0xfc,0x3a,0xf6,0x4a,0xfc,' +` 0x52,0xf8,0xa6,0xfc,0x27,0xfa,0x37,0xfd,' +` 0xb9,0xfb,0xda,0xfd,0x05,0xfd,0x75,0xfe,' +` 0x0a,0xfe,0xf9,0xfe,0xcc,0xfe,0x5f,0xff,' +` 0x52,0xff,0xa6,0xff,0xa7,0xff,0xd4,0xff,' +` 0xd9,0xff,0xee,0xff,0xf2,0xff,0xfb,0xff,' +` 0xfd,0xff,0xff,0xff,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xfa,0xff,0xf1,0xff,' +` 0xee,0xff,0xd7,0xff,0xd3,0xff,0xa4,0xff,' +` 0xa6,0xff,0x4c,0xff,0x60,0xff,0xc2,0xfe,' +` 0x01,0xff,0xfb,0xfd,0x8a,0xfe,0xed,0xfc,' +` 0x09,0xfe,0x8e,0xfb,0x95,0xfd,0xd5,0xf9,' +` 0x59,0xfd,0xaa,0xf7,0xa4,0xfd,0xc6,0xf4,' +` 0x2d,0xff,0x1d,0xf0,0x95,0x04,0xf8,0xe2,' +` 0x44,0x30,0x39,0x59,0x81,0xdc,0x66,0x07,' +` 0x96,0xec,0x5f,0x00,0x5a,0xf1,0x02,0xfe,' +` 0x39,0xf4,0x26,0xfd,0x7d,0xf6,0x01,0xfd,' +` 0x73,0xf8,0x3d,0xfd,0x2d,0xfa,0xab,0xfd,' +` 0xad,0xfb,0x2a,0xfe,0xec,0xfc,0xa6,0xfe,' +` 0xeb,0xfd,0x12,0xff,0xac,0xfe,0x68,0xff,' +` 0x35,0xff,0xa6,0xff,0x90,0xff,0xd0,0xff,' +` 0xc9,0xff,0xe9,0xff,0xe8,0xff,0xf7,0xff,' +` 0xf8,0xff,0xfe,0xff,0xfe,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,' +` 0x07,0x00,0x0a,0x00,0x17,0x00,0x1a,0x00,' +` 0x3a,0x00,0x3a,0x00,0x7a,0x00,0x6d,0x00,' +` 0xe5,0x00,0xb6,0x00,0x86,0x01,0x15,0x01,' +` 0x6e,0x02,0x7f,0x01,0xaa,0x03,0xde,0x01,' +` 0x51,0x05,0x01,0x02,0x8e,0x07,0x7a,0x01,' +` 0xf1,0x0a,0xfe,0xfe,0x25,0x12,0xef,0xf1,' +` 0x42,0x64,0x61,0x36,0xcc,0xf4,0x03,0x15,' +` 0x44,0xff,0x01,0x10,0x73,0x02,0x86,0x0d,' +` 0xc9,0x03,0xa1,0x0b,0x42,0x04,0xe4,0x09,' +` 0x35,0x04,0x36,0x08,0xd5,0x03,0x9a,0x06,' +` 0x44,0x03,0x1c,0x05,0x9f,0x02,0xca,0x03,' +` 0xfc,0x01,0xad,0x02,0x6a,0x01,0xca,0x01,' +` 0xf2,0x00,0x1f,0x01,0x96,0x00,0xa7,0x00,' +` 0x55,0x00,0x59,0x00,0x2b,0x00,0x2a,0x00,' +` 0x13,0x00,0x0e,0x00,0x05,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_16khz.m4 new file mode 100644 index 000000000000..e03d236e07c7 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x07,0x00,0x0b,0x00,0x12,0x00,0x16,0x00,' +` 0x23,0x00,0x32,0x00,0x49,0x00,0x60,0x00,' +` 0x8d,0x00,0xce,0x00,0x0e,0x01,0x55,0x01,' +` 0xb3,0x01,0x0c,0x02,0x8f,0x02,0x01,0x03,' +` 0x4a,0x03,0xc5,0x03,0x11,0x05,0xe1,0x06,' +` 0xa3,0x07,0xb5,0x08,0x94,0x09,0x91,0x0a,' +` 0x68,0x0b,0x39,0x0c,0xd1,0x0c,0x4b,0x0d,' +` 0x84,0x4d,0xb8,0x0d,0xb7,0x0d,0x77,0x0d,' +` 0x1b,0x0d,0x7d,0x0c,0xd7,0x0b,0xe9,0x0a,' +` 0x05,0x0a,0xd9,0x08,0xf5,0x07,0x2b,0x07,' +` 0x2b,0x06,0xac,0x04,0x6a,0x03,0xd1,0x02,' +` 0x28,0x02,0xab,0x01,0x3b,0x01,0xe4,0x00,' +` 0xa8,0x00,0x7e,0x00,0x51,0x00,0x36,0x00,' +` 0x20,0x00,0x13,0x00,0x08,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfe,0xff,0xfa,0xff,0xfc,0xff,0xeb,0xff,' +` 0xf3,0xff,0xd7,0xff,0xee,0xff,0xb6,0xff,' +` 0xeb,0xff,0x9c,0xff,0x18,0x00,0x58,0xff,' +` 0x10,0x00,0xc3,0xfe,0xe5,0xff,0xb8,0xfd,' +` 0xe9,0xfe,0x33,0xfb,0x89,0xfd,0x07,0xf7,' +` 0xee,0xfa,0x54,0xf2,0x80,0xf8,0xdc,0xeb,' +` 0xb5,0xf6,0xc8,0xe2,0x9e,0xf8,0x7b,0xcf,' +` 0x57,0x28,0x6b,0x41,0xd2,0xc5,0x53,0xf0,' +` 0x5e,0xd4,0xf6,0xe7,0x7a,0xd9,0x5b,0xe6,' +` 0x36,0xde,0x03,0xe8,0xc8,0xe3,0x74,0xec,' +` 0x66,0xea,0xd5,0xf0,0xd9,0xf0,0x52,0xf5,' +` 0x86,0xf5,0xef,0xf8,0x65,0xf9,0xc0,0xfb,' +` 0x49,0xfc,0xf4,0xfd,0x33,0xfe,0x13,0xff,' +` 0x39,0xff,0xab,0xff,0xba,0xff,0xe5,0xff,' +` 0xea,0xff,0xfc,0xff,0xfc,0xff,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfa,0xff,0xf3,0xff,' +` 0xe6,0xff,0xd1,0xff,0xab,0xff,0x77,0xff,' +` 0x27,0xff,0xb6,0xfe,0x07,0xfe,0x58,0xfd,' +` 0x4e,0xfc,0x46,0xfb,0xc3,0xf9,0x6f,0xf8,' +` 0x16,0xf6,0x46,0xf4,0xfb,0xf1,0xff,0xef,' +` 0xbf,0xec,0x6a,0xeb,0x7d,0xe8,0x09,0xe8,' +` 0x2c,0xe5,0x37,0xe6,0xf9,0xe2,0x4f,0xe7,' +` 0x55,0xe0,0x6d,0x62,0xfd,0xed,0xff,0xe6,' +` 0xd6,0xed,0x89,0xec,0x37,0xf1,0x58,0xf1,' +` 0x1c,0xf5,0xc4,0xf5,0xb8,0xf8,0x6d,0xfa,' +` 0xa1,0xfc,0xc5,0xfc,0xb0,0xfe,0x33,0xff,' +` 0xd7,0xff,0xc4,0xff,0x29,0x00,0x04,0x00,' +` 0x37,0x00,0xdd,0xff,0xd7,0xff,0xcc,0xff,' +` 0xd7,0xff,0xd4,0xff,0xde,0xff,0xec,0xff,' +` 0xf6,0xff,0xf5,0xff,0xf9,0xff,0xfa,0xff,' +` 0xfc,0xff,0xfe,0xff,0xff,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,' +` 0x05,0x00,0x10,0x00,0x17,0x00,0x35,0x00,' +` 0x44,0x00,0x8c,0x00,0x9d,0x00,0x20,0x01,' +` 0x47,0x01,0x3f,0x02,0x67,0x02,0x04,0x04,' +` 0x25,0x04,0x9f,0x07,0x74,0x07,0x99,0x0b,' +` 0x1f,0x0a,0x77,0x0f,0xb9,0x0c,0xb3,0x14,' +` 0x75,0x0e,0xbb,0x1a,0x72,0x0d,0x47,0x24,' +` 0x45,0x00,0x5b,0x71,0xc0,0x54,0x89,0x01,' +` 0x21,0x27,0x06,0x0d,0x0c,0x1f,0x77,0x0e,' +` 0x95,0x19,0x59,0x0d,0xd2,0x14,0x90,0x0a,' +` 0xa1,0x0c,0x1b,0x06,0x3d,0x09,0x21,0x05,' +` 0xa2,0x07,0xcb,0x03,0x51,0x05,0x87,0x02,' +` 0x80,0x03,0x75,0x01,0xcc,0x01,0xac,0x00,' +` 0x0a,0x01,0x57,0x00,0x8c,0x00,0x25,0x00,' +` 0x56,0x00,0x1c,0x00,0x26,0x00,0x08,0x00,' +` 0x0c,0x00,0x01,0x00,0x03,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_48khz.m4 new file mode 100644 index 000000000000..3e46c2a4b1a4 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x07,0x00,0x0b,0x00,0x11,0x00,0x1a,0x00,' +` 0x25,0x00,0x34,0x00,0x46,0x00,0x5d,0x00,' +` 0x78,0x00,0x99,0x00,0xbf,0x00,0xeb,0x00,' +` 0x1c,0x01,0x53,0x01,0x8f,0x01,0xcf,0x01,' +` 0x13,0x02,0x59,0x02,0xa2,0x02,0xea,0x02,' +` 0x30,0x03,0x71,0x03,0xb0,0x03,0xe7,0x03,' +` 0x18,0x04,0x3e,0x04,0x5d,0x04,0x6f,0x04,' +` 0x64,0x44,0x72,0x04,0x66,0x04,0x4b,0x04,' +` 0x2a,0x04,0xfb,0x03,0xc8,0x03,0x8a,0x03,' +` 0x4a,0x03,0x03,0x03,0xbd,0x02,0x73,0x02,' +` 0x2d,0x02,0xe5,0x01,0xa4,0x01,0x64,0x01,' +` 0x2c,0x01,0xf7,0x00,0xc9,0x00,0xa0,0x00,' +` 0x7d,0x00,0x60,0x00,0x48,0x00,0x34,0x00,' +` 0x25,0x00,0x19,0x00,0x10,0x00,0x0a,0x00,' +` 0x06,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,' +` 0xfd,0xff,0xfc,0xff,0xf4,0xff,0xf4,0xff,' +` 0xdf,0xff,0xe4,0xff,0xb6,0xff,0xc6,0xff,' +` 0x6e,0xff,0x96,0xff,0xf9,0xfe,0x50,0xff,' +` 0x48,0xfe,0xf5,0xfe,0x4b,0xfd,0x8b,0xfe,' +` 0xf1,0xfb,0x27,0xfe,0x1a,0xfa,0xfc,0xfd,' +` 0x96,0xf7,0x8a,0xfe,0xa6,0xf3,0x9d,0x01,' +` 0xe7,0xe9,0x45,0x1b,0x90,0x63,0x40,0xe0,' +` 0x43,0x03,0x36,0xed,0xd4,0xfc,0x65,0xf0,' +` 0x6f,0xfa,0x3c,0xf2,0x74,0xf9,0xdb,0xf3,' +` 0x56,0xf9,0x8d,0xf5,0xc4,0xf9,0x4a,0xf7,' +` 0x8a,0xfa,0x03,0xf9,0x7d,0xfb,0xa3,0xfa,' +` 0x7d,0xfc,0x15,0xfc,0x6e,0xfd,0x4c,0xfd,' +` 0x3e,0xfe,0x42,0xfe,0xe3,0xfe,0xf5,0xfe,' +` 0x5b,0xff,0x6f,0xff,0xaa,0xff,0xba,0xff,' +` 0xdb,0xff,0xe5,0xff,0xf3,0xff,0xf8,0xff,' +` 0xfd,0xff,0xff,0xff,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfd,0xff,0xf8,0xff,0xf2,0xff,' +` 0xe4,0xff,0xda,0xff,0xbd,0xff,0xae,0xff,' +` 0x76,0xff,0x68,0xff,0x06,0xff,0x03,0xff,' +` 0x62,0xfe,0x83,0xfe,0x80,0xfd,0xf8,0xfd,' +` 0x5b,0xfc,0x85,0xfd,0xd3,0xfa,0x7e,0xfd,' +` 0x6f,0xf8,0x44,0xff,0xe9,0xf0,0x64,0x51,' +` 0x39,0x08,0x1a,0xf2,0x2a,0xfe,0x1d,0xf5,' +` 0x2e,0xfc,0x38,0xf6,0x75,0xfb,0x1c,0xf7,' +` 0x52,0xfb,0x09,0xf8,0x86,0xfb,0x13,0xf9,' +` 0xfa,0xfb,0x2f,0xfa,0x94,0xfc,0x4d,0xfb,' +` 0x3e,0xfd,0x5d,0xfc,0xe4,0xfd,0x50,0xfd,' +` 0x7a,0xfe,0x1d,0xfe,0xf7,0xfe,0xbf,0xfe,' +` 0x57,0xff,0x36,0xff,0x9c,0xff,0x89,0xff,' +` 0xcd,0xff,0xd2,0xff,0xea,0xff,0xe7,0xff,' +` 0xf7,0xff,0xf5,0xff,0xfd,0xff,0xfc,0xff,' +` 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,' +` 0x0f,0x00,0x15,0x00,0x31,0x00,0x39,0x00,' +` 0x7b,0x00,0x78,0x00,0x04,0x01,0xd8,0x00,' +` 0xec,0x01,0x4f,0x01,0x64,0x03,0xa9,0x01,' +` 0xdc,0x05,0x18,0x01,0x32,0x0b,0x5e,0xf9,' +` 0x76,0x68,0x92,0x20,0x85,0xfc,0x05,0x13,' +` 0x92,0x03,0x3a,0x12,0xf2,0x06,0xa7,0x12,' +` 0x39,0x09,0x17,0x13,0xc2,0x0a,0x1a,0x13,' +` 0x92,0x0b,0x8e,0x12,0xbc,0x0b,0x71,0x11,' +` 0x52,0x0b,0xd6,0x0f,0x6b,0x0a,0xda,0x0d,' +` 0x2b,0x09,0xab,0x0b,0xb6,0x07,0x6d,0x09,' +` 0x30,0x06,0x4b,0x07,0xbb,0x04,0x64,0x05,' +` 0x6d,0x03,0xcb,0x03,0xf3,0x01,0xe6,0x01,' +` 0x18,0x01,0x2f,0x01,0xa6,0x00,0xad,0x00,' +` 0x5b,0x00,0x5a,0x00,0x2d,0x00,0x26,0x00,' +` 0x16,0x00,0x12,0x00,0x08,0x00,0x05,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_16khz.m4 new file mode 100644 index 000000000000..a4cb36631bfd --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfd,0xff,0xfa,0xff,0xf8,0xff,0xf3,0xff,' +` 0xef,0xff,0xeb,0xff,0xe7,0xff,0xde,0xff,' +` 0xdb,0xff,0xd4,0xff,0xdb,0xff,0xdc,0xff,' +` 0x03,0x00,0x2e,0x00,0x4c,0x00,0x9b,0x00,' +` 0x06,0x01,0x7d,0x01,0x2e,0x02,0xc0,0x02,' +` 0x27,0x04,0x66,0x06,0x44,0x07,0x6b,0x08,' +` 0x5d,0x09,0x5f,0x0a,0x30,0x0b,0xee,0x0b,' +` 0x63,0x4c,0xce,0x0c,0xe7,0x0c,0xc7,0x0c,' +` 0x7a,0x0c,0xef,0x0b,0x4b,0x0b,0x66,0x0a,' +` 0xda,0x09,0xf6,0x08,0xdf,0x07,0xcb,0x06,' +` 0xca,0x05,0xc5,0x04,0xf9,0x03,0xde,0x02,' +` 0x08,0x02,0xa1,0x01,0x2b,0x01,0xdd,0x00,' +` 0x96,0x00,0x68,0x00,0x42,0x00,0x2b,0x00,' +` 0x1e,0x00,0x12,0x00,0x09,0x00,0x05,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x05,0x00,0x08,0x00,0x17,0x00,0x20,0x00,' +` 0x4a,0x00,0x5a,0x00,0xb3,0x00,0xc7,0x00,' +` 0x65,0x01,0x6a,0x01,0x64,0x02,0x46,0x02,' +` 0x88,0x03,0xab,0x02,0x7c,0x04,0x82,0x02,' +` 0xdf,0x04,0x10,0x01,0x42,0x04,0xee,0xfc,' +` 0x7b,0x01,0x65,0xf6,0xc0,0xfe,0xf9,0xeb,' +` 0xd7,0xfe,0xd3,0xd4,0xf9,0x49,0xf0,0x1d,' +` 0x15,0xcc,0x48,0xed,0xbe,0xd2,0xcf,0xe2,' +` 0x8f,0xd3,0x8f,0xde,0xf5,0xd5,0x2d,0xe0,' +` 0x0e,0xdb,0x32,0xe3,0x01,0xe1,0x18,0xe8,' +` 0xc2,0xe7,0xcc,0xed,0x60,0xef,0x65,0xf4,' +` 0x27,0xf5,0xab,0xf8,0x78,0xf9,0xe1,0xfb,' +` 0x7c,0xfc,0xfe,0xfd,0x54,0xfe,0x28,0xff,' +` 0x58,0xff,0xc0,0xff,0xd0,0xff,0xfa,0xff,' +` 0xfa,0xff,0x03,0x00,0x01,0x00,0x03,0x00,' +` 0x01,0x00,0x01,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfb,0xff,0xf6,0xff,0xe5,0xff,' +` 0xd3,0xff,0xa3,0xff,0x78,0xff,0x0b,0xff,' +` 0xba,0xfe,0xe1,0xfd,0x33,0xfd,0xba,0xfb,' +` 0x08,0xfb,0xca,0xf8,0x2e,0xf8,0xf8,0xf4,' +` 0xf4,0xf4,0x42,0xf0,0x57,0xf1,0x64,0xeb,' +` 0xd8,0xef,0x90,0xe6,0x26,0xf2,0x0d,0xde,' +` 0x06,0x0c,0x19,0x48,0xfd,0xd8,0xbc,0xfc,' +` 0xf7,0xe9,0xfa,0xfc,0x30,0xf3,0x33,0x01,' +` 0x25,0xfb,0x25,0x07,0xa6,0x02,0xbe,0x0a,' +` 0xe6,0x06,0xa5,0x0c,0x19,0x09,0xc8,0x0c,' +` 0xe2,0x09,0x6c,0x0b,0x1d,0x08,0xfb,0x08,' +` 0x22,0x06,0x56,0x06,0x0d,0x04,0xf7,0x03,' +` 0x47,0x02,0x16,0x02,0x0b,0x01,0xf5,0x00,' +` 0x59,0x00,0x55,0x00,0x05,0x00,0x16,0x00,' +` 0xfa,0xff,0xff,0xff,0xf5,0xff,0xfb,0xff,' +` 0xfa,0xff,0xfd,0xff,0xfe,0xff,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,' +` 0x08,0x00,0x13,0x00,0x22,0x00,0x3d,0x00,' +` 0x64,0x00,0xbb,0x00,0x00,0x01,0x8e,0x01,' +` 0x00,0x02,0xe9,0x02,0x86,0x03,0xdf,0x04,' +` 0x44,0x05,0x43,0x07,0x84,0x07,0x6d,0x0a,' +` 0x83,0x09,0x9a,0x0e,0x61,0x08,0x28,0x58,' +` 0xf5,0x16,0x0c,0x0c,0x2b,0x13,0x0b,0x0e,' +` 0x0d,0x12,0xb1,0x0d,0x74,0x10,0xba,0x09,' +` 0x02,0x09,0xd7,0x05,0x31,0x06,0x1e,0x03,' +` 0x74,0x03,0xc1,0x00,0x9d,0x01,0x9b,0xff,' +` 0x9c,0xff,0x85,0xfe,0xf6,0xfe,0x46,0xfe,' +` 0xcf,0xfe,0x76,0xfe,0xf2,0xfe,0x96,0xfe,' +` 0x07,0xff,0xfc,0xfe,0x55,0xff,0x59,0xff,' +` 0x94,0xff,0xa9,0xff,0xed,0xff,0xe5,0xff,' +` 0xf7,0xff,0xf3,0xff,0xfc,0xff,0xfa,0xff,' +` 0xfd,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_48khz.m4 new file mode 100644 index 000000000000..b598b59b75de --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,' +` 0x03,0x00,0x05,0x00,0x08,0x00,0x0d,0x00,' +` 0x13,0x00,0x24,0x00,0x34,0x00,0x45,0x00,' +` 0x5c,0x00,0x76,0x00,0x96,0x00,0xbb,0x00,' +` 0xe5,0x00,0x14,0x01,0x49,0x01,0x82,0x01,' +` 0xbf,0x01,0xff,0x01,0x42,0x02,0x85,0x02,' +` 0xc9,0x02,0x0a,0x03,0x49,0x03,0x81,0x03,' +` 0xb5,0x03,0xe0,0x03,0x03,0x04,0x1b,0x04,' +` 0x16,0x44,0x2d,0x04,0x26,0x04,0x11,0x04,' +` 0xf3,0x03,0xcb,0x03,0x9c,0x03,0x64,0x03,' +` 0x27,0x03,0xe5,0x02,0xa2,0x02,0x5d,0x02,' +` 0x18,0x02,0xd5,0x01,0x95,0x01,0x59,0x01,' +` 0x21,0x01,0xef,0x00,0xc2,0x00,0x9a,0x00,' +` 0x79,0x00,0x5c,0x00,0x45,0x00,0x32,0x00,' +` 0x25,0x00,0x19,0x00,0x10,0x00,0x0a,0x00,' +` 0x06,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xff,0xff,0xfa,0xff,0xfa,0xff,' +` 0xee,0xff,0xee,0xff,0xd1,0xff,0xd4,0xff,' +` 0x98,0xff,0xa4,0xff,0x32,0xff,0x57,0xff,' +` 0x89,0xfe,0xf0,0xfe,0x7c,0xfd,0x8b,0xfe,' +` 0xb8,0xfb,0xe0,0xfe,0xbd,0xf6,0xc4,0x44,' +` 0xf2,0x01,0xb9,0xf5,0xac,0xfb,0xe0,0xf5,' +` 0x3c,0xf9,0xfe,0xf4,0x71,0xf7,0x16,0xf4,' +` 0x1a,0xf6,0x72,0xf3,0x3e,0xf5,0x3a,0xf3,' +` 0xe9,0xf4,0x7e,0xf3,0x1e,0xf5,0x3e,0xf4,' +` 0xd0,0xf5,0x68,0xf5,0xe9,0xf6,0xdf,0xf6,' +` 0x45,0xf8,0x7e,0xf8,0xca,0xf9,0x57,0xfa,' +` 0x69,0xfb,0xd5,0xfb,0xb2,0xfc,0x1b,0xfd,' +` 0xc5,0xfd,0x1f,0xfe,0x9a,0xfe,0xe0,0xfe,' +` 0x32,0xff,0x63,0xff,0x96,0xff,0xb5,0xff,' +` 0xd1,0xff,0xe2,0xff,0xef,0xff,0xf7,0xff,' +` 0xfc,0xff,0xff,0xff,0x40,0x00,0x05,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xf9,0xff,0xe0,0xff,0xd2,0xff,0x74,0xff,' +` 0x83,0xff,0x6e,0xfe,0x2e,0xff,0x0c,0xfc,' +` 0x25,0x00,0x5e,0xf3,0x7a,0x48,0xf6,0x0d,' +` 0xef,0xeb,0x00,0x00,0xed,0xeb,0x87,0xfb,' +` 0x2a,0xe9,0x61,0xf8,0x39,0xe6,0x2f,0xf6,' +` 0x08,0xe4,0x24,0xf5,0x31,0xe3,0x7f,0xf5,' +` 0x14,0xe4,0x56,0xf7,0xcb,0xe6,0x8d,0xfa,' +` 0x2a,0xeb,0xcc,0xfe,0xbe,0xf0,0x90,0x03,' +` 0xe2,0xf6,0x3d,0x08,0xf8,0xff,0x60,0x0f,' +` 0x0d,0x05,0x98,0x11,0x93,0x08,0x72,0x12,' +` 0x9f,0x0a,0xec,0x11,0x3c,0x0b,0x3e,0x10,' +` 0xa5,0x0a,0xc3,0x0d,0x36,0x09,0xe6,0x0a,' +` 0x55,0x07,0x0b,0x08,0x5f,0x05,0x80,0x05,' +` 0x9b,0x03,0x73,0x03,0x30,0x02,0xf8,0x01,' +` 0x4f,0x01,0x00,0x01,0x8b,0x00,0x67,0x00,' +` 0x33,0x00,0x1f,0x00,0x0c,0x00,0x04,0x00,' +` 0x40,0x00,0x06,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x45,0x00,0xd7,0xff,' +` 0xc9,0x00,0x02,0x00,0xee,0x01,0x92,0x00,' +` 0x03,0x04,0xc8,0x01,0x5e,0x07,0xe5,0x03,' +` 0x43,0x0c,0x19,0x07,0xd1,0x12,0x76,0x0b,' +` 0xee,0x1a,0xdd,0x10,0x3d,0x24,0xfb,0x16,' +` 0x22,0x2e,0x4f,0x1d,0xd4,0x37,0x3a,0x23,' +` 0x2e,0x40,0xdc,0x1a,0xb5,0x34,0x8e,0x19,' +` 0x7a,0x36,0x9b,0x18,0x74,0x35,0x57,0x16,' +` 0x0b,0x32,0xf6,0x12,0xb7,0x2c,0xe1,0x0e,' +` 0x16,0x26,0x94,0x0a,0xde,0x1e,0x88,0x06,' +` 0xbd,0x17,0x1c,0x03,0x40,0x11,0x87,0x00,' +` 0xc7,0x0b,0xd7,0xfe,0xba,0x07,0x1d,0x01,' +` 0xd0,0x05,0x9d,0xfd,0x8c,0x02,0x04,0xfe,' +` 0x3c,0x01,0x7d,0xfe,0x85,0x00,0xf9,0xfe,' +` 0x2d,0x00,0x62,0xff,0x09,0x00,0xae,0xff,' +` 0xff,0xff,0xdd,0xff,0xfe,0xff,0xf5,0xff,' +` 0xff,0xff,0xfe,0xff,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_16khz.m4 new file mode 100644 index 000000000000..e92e3db4a6e6 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,' +` 0x0a,0x00,0x0f,0x00,0x20,0x00,0x30,0x00,' +` 0x51,0x00,0x65,0x00,0x9b,0x00,0xc7,0x00,' +` 0x29,0x01,0x69,0x01,0x03,0x02,0x53,0x02,' +` 0x36,0x03,0x80,0x03,0x10,0x05,0x22,0x06,' +` 0x44,0x07,0x6f,0x07,0x53,0x09,0x12,0x09,' +` 0x6e,0x0b,0x53,0x0a,0x81,0x0d,0xb1,0x0a,' +` 0x1a,0x10,0x6b,0x07,0x87,0x4b,0xe6,0x14,' +` 0x84,0x09,0xf0,0x0e,0x69,0x0a,0xb4,0x0c,' +` 0xa5,0x09,0xa8,0x0a,0x50,0x08,0x99,0x08,' +` 0xce,0x06,0xea,0x05,0xc3,0x03,0x4d,0x04,' +` 0x1a,0x03,0xf7,0x02,0x16,0x02,0xed,0x01,' +` 0x4f,0x01,0x2b,0x01,0xc2,0x00,0xa7,0x00,' +` 0x58,0x00,0x45,0x00,0x26,0x00,0x25,0x00,' +` 0x14,0x00,0x0e,0x00,0x07,0x00,0x04,0x00,' +` 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,' +` 0xfc,0xff,0xf5,0xff,0xed,0xff,0xda,0xff,' +` 0xc5,0xff,0x9d,0xff,0x7b,0xff,0x11,0xff,' +` 0xb2,0xfe,0x09,0xfe,0x84,0xfd,0x6f,0xfc,' +` 0xb8,0xfb,0x20,0xfa,0x42,0xf9,0x17,0xf7,' +` 0x2b,0xf6,0xb2,0xf2,0xd3,0xf1,0x98,0xed,' +` 0xc1,0xed,0x4e,0xe9,0xbb,0xea,0x55,0xe5,' +` 0x03,0xe9,0xb0,0xe1,0xd1,0xe9,0x6e,0xdc,' +` 0x3d,0xf6,0x29,0x62,0xbb,0xd8,0xf8,0xee,' +` 0x49,0xe4,0x58,0xee,0xb5,0xe9,0x8f,0xf0,' +` 0x53,0xee,0x84,0xf3,0x6f,0xf2,0xa9,0xf6,' +` 0x13,0xf7,0x1e,0xfa,0x6d,0xfa,0x3d,0xfc,' +` 0x5a,0xfc,0xa7,0xfd,0xc2,0xfd,0x9f,0xfe,' +` 0xb5,0xfe,0x40,0xff,0x4c,0xff,0x83,0xff,' +` 0x8f,0xff,0xcd,0xff,0xd9,0xff,0xed,0xff,' +` 0xf1,0xff,0xfa,0xff,0xfc,0xff,0xff,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x03,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xf7,0xff,0xf4,0xff,' +` 0xde,0xff,0xdb,0xff,0xa5,0xff,0x9e,0xff,' +` 0x0e,0xff,0x19,0xff,0x47,0xfe,0xa1,0xfe,' +` 0xf9,0xfc,0x82,0xfd,0xcc,0xfa,0xd2,0xfb,' +` 0x91,0xf7,0x6f,0xf9,0x09,0xf3,0x57,0xf6,' +` 0x7c,0xeb,0x09,0xef,0x03,0xe2,0xa0,0xea,' +` 0xed,0xd7,0x9e,0xe6,0xd4,0xcb,0x6d,0xe5,' +` 0xa6,0xbb,0x1c,0xee,0x64,0x96,0x0e,0x6a,' +` 0xfc,0x6c,0x28,0x91,0x18,0xe7,0x78,0xb2,' +` 0x82,0xda,0xaf,0xbf,0x8d,0xd9,0x90,0xca,' +` 0x41,0xdd,0x21,0xd5,0x89,0xe3,0x98,0xe1,' +` 0x1b,0xed,0xeb,0xea,0x9f,0xf2,0x13,0xf2,' +` 0x6a,0xf7,0x7f,0xf7,0x00,0xfb,0x47,0xfb,' +` 0x64,0xfd,0xca,0xfd,0x08,0xff,0x19,0xff,' +` 0x98,0xff,0xa0,0xff,0xe2,0xff,0xe5,0xff,' +` 0xfb,0xff,0xfb,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x08,0x00,0x0e,0x00,' +` 0x16,0x00,0x24,0x00,0x33,0x00,0x43,0x00,' +` 0x64,0x00,0x9b,0x00,0xd2,0x00,0x17,0x01,' +` 0x66,0x01,0xcb,0x01,0x37,0x02,0xc4,0x02,' +` 0x49,0x03,0x08,0x04,0x8e,0x04,0x4d,0x05,' +` 0x27,0x07,0xe6,0x07,0xe9,0x08,0xb8,0x09,' +` 0xa1,0x0a,0x5e,0x0b,0x1c,0x0c,0xae,0x0c,' +` 0x2e,0x0d,0x81,0x0d,0x88,0x4d,0x90,0x0d,' +` 0x59,0x0d,0xfe,0x0c,0x6d,0x0c,0xce,0x0b,' +` 0xf9,0x0a,0x2e,0x0a,0x2a,0x09,0x55,0x08,' +` 0x29,0x07,0x70,0x06,0x4e,0x05,0xd6,0x03,' +` 0x47,0x03,0x8f,0x02,0x0f,0x02,0x8d,0x01,' +` 0x30,0x01,0xda,0x00,0x9f,0x00,0x6a,0x00,' +` 0x4f,0x00,0x37,0x00,0x20,0x00,0x10,0x00,' +` 0x09,0x00,0x04,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_48khz.m4 new file mode 100644 index 000000000000..8239f22d3082 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x02,0x00,0x07,0x00,0x0a,0x00,' +` 0x17,0x00,0x1a,0x00,0x3a,0x00,0x3a,0x00,' +` 0x7a,0x00,0x6d,0x00,0xe5,0x00,0xb6,0x00,' +` 0x86,0x01,0x15,0x01,0x6e,0x02,0x7f,0x01,' +` 0xaa,0x03,0xde,0x01,0x51,0x05,0x01,0x02,' +` 0x8e,0x07,0x7a,0x01,0xf1,0x0a,0xfe,0xfe,' +` 0x25,0x12,0xef,0xf1,0x42,0x64,0x61,0x36,' +` 0xcc,0xf4,0x03,0x15,0x44,0xff,0x01,0x10,' +` 0x73,0x02,0x86,0x0d,0xc9,0x03,0xa1,0x0b,' +` 0x42,0x04,0xe4,0x09,0x35,0x04,0x36,0x08,' +` 0xd5,0x03,0x9a,0x06,0x44,0x03,0x1c,0x05,' +` 0x9f,0x02,0xca,0x03,0xfc,0x01,0xad,0x02,' +` 0x6a,0x01,0xca,0x01,0xf2,0x00,0x1f,0x01,' +` 0x96,0x00,0xa7,0x00,0x55,0x00,0x59,0x00,' +` 0x2b,0x00,0x2a,0x00,0x13,0x00,0x0e,0x00,' +` 0x05,0x00,0x04,0x00,0x01,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xfa,0xff,0xf1,0xff,0xee,0xff,0xd7,0xff,' +` 0xd3,0xff,0xa4,0xff,0xa6,0xff,0x4c,0xff,' +` 0x60,0xff,0xc2,0xfe,0x01,0xff,0xfb,0xfd,' +` 0x8a,0xfe,0xed,0xfc,0x09,0xfe,0x8e,0xfb,' +` 0x95,0xfd,0xd5,0xf9,0x59,0xfd,0xaa,0xf7,' +` 0xa4,0xfd,0xc6,0xf4,0x2d,0xff,0x1d,0xf0,' +` 0x95,0x04,0xf8,0xe2,0x44,0x30,0x39,0x59,' +` 0x81,0xdc,0x66,0x07,0x96,0xec,0x5f,0x00,' +` 0x5a,0xf1,0x02,0xfe,0x39,0xf4,0x26,0xfd,' +` 0x7d,0xf6,0x01,0xfd,0x73,0xf8,0x3d,0xfd,' +` 0x2d,0xfa,0xab,0xfd,0xad,0xfb,0x2a,0xfe,' +` 0xec,0xfc,0xa6,0xfe,0xeb,0xfd,0x12,0xff,' +` 0xac,0xfe,0x68,0xff,0x35,0xff,0xa6,0xff,' +` 0x90,0xff,0xd0,0xff,0xc9,0xff,0xe9,0xff,' +` 0xe8,0xff,0xf7,0xff,0xf8,0xff,0xfe,0xff,' +` 0xfe,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfd,0xff,0xf6,0xff,' +` 0xf5,0xff,0xe3,0xff,0xe5,0xff,0xbe,0xff,' +` 0xc9,0xff,0x7a,0xff,0x9a,0xff,0x0d,0xff,' +` 0x57,0xff,0x69,0xfe,0xff,0xfe,0x81,0xfd,' +` 0x96,0xfe,0x4b,0xfc,0x2b,0xfe,0xbe,0xfa,' +` 0xd7,0xfd,0xcc,0xf8,0xc9,0xfd,0x5a,0xf6,' +` 0x5a,0xfe,0x12,0xf3,0x5b,0x00,0xa3,0xed,' +` 0xe8,0x06,0x6f,0xdd,0x34,0x44,0xcd,0x4b,' +` 0x61,0xdb,0x0e,0x07,0x97,0xeb,0xb0,0xff,' +` 0xb3,0xf0,0x36,0xfd,0xcc,0xf3,0x5b,0xfc,' +` 0x3a,0xf6,0x4a,0xfc,0x52,0xf8,0xa6,0xfc,' +` 0x27,0xfa,0x37,0xfd,0xb9,0xfb,0xda,0xfd,' +` 0x05,0xfd,0x75,0xfe,0x0a,0xfe,0xf9,0xfe,' +` 0xcc,0xfe,0x5f,0xff,0x52,0xff,0xa6,0xff,' +` 0xa7,0xff,0xd4,0xff,0xd9,0xff,0xee,0xff,' +` 0xf2,0xff,0xfb,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x05,0x00,0x08,0x00,0x0d,0x00,' +` 0x14,0x00,0x1e,0x00,0x2a,0x00,0x3b,0x00,' +` 0x4f,0x00,0x68,0x00,0x85,0x00,0xa8,0x00,' +` 0xd1,0x00,0xff,0x00,0x32,0x01,0x6b,0x01,' +` 0xa8,0x01,0xea,0x01,0x2d,0x02,0x74,0x02,' +` 0xbb,0x02,0x02,0x03,0x45,0x03,0x87,0x03,' +` 0xc2,0x03,0xf9,0x03,0x25,0x04,0x4b,0x04,' +` 0x62,0x04,0x71,0x04,0x5d,0x44,0x69,0x04,' +` 0x55,0x04,0x39,0x04,0x11,0x04,0xe2,0x03,' +` 0xa9,0x03,0x6d,0x03,0x29,0x03,0xe4,0x02,' +` 0x9b,0x02,0x55,0x02,0x0e,0x02,0xcb,0x01,' +` 0x8a,0x01,0x4f,0x01,0x17,0x01,0xe7,0x00,' +` 0xba,0x00,0x95,0x00,0x73,0x00,0x59,0x00,' +` 0x42,0x00,0x30,0x00,0x22,0x00,0x17,0x00,' +` 0x0f,0x00,0x09,0x00,0x05,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_16khz.m4 new file mode 100644 index 000000000000..c5d7e5a5c230 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x02,0x00,0x05,0x00,0x10,0x00,' +` 0x17,0x00,0x35,0x00,0x44,0x00,0x8c,0x00,' +` 0x9d,0x00,0x20,0x01,0x47,0x01,0x3f,0x02,' +` 0x67,0x02,0x04,0x04,0x25,0x04,0x9f,0x07,' +` 0x74,0x07,0x99,0x0b,0x1f,0x0a,0x77,0x0f,' +` 0xb9,0x0c,0xb3,0x14,0x75,0x0e,0xbb,0x1a,' +` 0x72,0x0d,0x47,0x24,0x45,0x00,0x5b,0x71,' +` 0xc0,0x54,0x89,0x01,0x21,0x27,0x06,0x0d,' +` 0x0c,0x1f,0x77,0x0e,0x95,0x19,0x59,0x0d,' +` 0xd2,0x14,0x90,0x0a,0xa1,0x0c,0x1b,0x06,' +` 0x3d,0x09,0x21,0x05,0xa2,0x07,0xcb,0x03,' +` 0x51,0x05,0x87,0x02,0x80,0x03,0x75,0x01,' +` 0xcc,0x01,0xac,0x00,0x0a,0x01,0x57,0x00,' +` 0x8c,0x00,0x25,0x00,0x56,0x00,0x1c,0x00,' +` 0x26,0x00,0x08,0x00,0x0c,0x00,0x01,0x00,' +` 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xff,' +` 0xfa,0xff,0xf3,0xff,0xe6,0xff,0xd1,0xff,' +` 0xab,0xff,0x77,0xff,0x27,0xff,0xb6,0xfe,' +` 0x07,0xfe,0x58,0xfd,0x4e,0xfc,0x46,0xfb,' +` 0xc3,0xf9,0x6f,0xf8,0x16,0xf6,0x46,0xf4,' +` 0xfb,0xf1,0xff,0xef,0xbf,0xec,0x6a,0xeb,' +` 0x7d,0xe8,0x09,0xe8,0x2c,0xe5,0x37,0xe6,' +` 0xf9,0xe2,0x4f,0xe7,0x55,0xe0,0x6d,0x62,' +` 0xfd,0xed,0xff,0xe6,0xd6,0xed,0x89,0xec,' +` 0x37,0xf1,0x58,0xf1,0x1c,0xf5,0xc4,0xf5,' +` 0xb8,0xf8,0x6d,0xfa,0xa1,0xfc,0xc5,0xfc,' +` 0xb0,0xfe,0x33,0xff,0xd7,0xff,0xc4,0xff,' +` 0x29,0x00,0x04,0x00,0x37,0x00,0xdd,0xff,' +` 0xd7,0xff,0xcc,0xff,0xd7,0xff,0xd4,0xff,' +` 0xde,0xff,0xec,0xff,0xf6,0xff,0xf5,0xff,' +` 0xf9,0xff,0xfa,0xff,0xfc,0xff,0xfe,0xff,' +` 0xff,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xfe,0xff,0xfe,0xff,0xfa,0xff,' +` 0xfc,0xff,0xeb,0xff,0xf3,0xff,0xd7,0xff,' +` 0xee,0xff,0xb6,0xff,0xeb,0xff,0x9c,0xff,' +` 0x18,0x00,0x58,0xff,0x10,0x00,0xc3,0xfe,' +` 0xe5,0xff,0xb8,0xfd,0xe9,0xfe,0x33,0xfb,' +` 0x89,0xfd,0x07,0xf7,0xee,0xfa,0x54,0xf2,' +` 0x80,0xf8,0xdc,0xeb,0xb5,0xf6,0xc8,0xe2,' +` 0x9e,0xf8,0x7b,0xcf,0x57,0x28,0x6b,0x41,' +` 0xd2,0xc5,0x53,0xf0,0x5e,0xd4,0xf6,0xe7,' +` 0x7a,0xd9,0x5b,0xe6,0x36,0xde,0x03,0xe8,' +` 0xc8,0xe3,0x74,0xec,0x66,0xea,0xd5,0xf0,' +` 0xd9,0xf0,0x52,0xf5,0x86,0xf5,0xef,0xf8,' +` 0x65,0xf9,0xc0,0xfb,0x49,0xfc,0xf4,0xfd,' +` 0x33,0xfe,0x13,0xff,0x39,0xff,0xab,0xff,' +` 0xba,0xff,0xe5,0xff,0xea,0xff,0xfc,0xff,' +` 0xfc,0xff,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x07,0x00,0x0b,0x00,' +` 0x12,0x00,0x16,0x00,0x23,0x00,0x32,0x00,' +` 0x49,0x00,0x60,0x00,0x8d,0x00,0xce,0x00,' +` 0x0e,0x01,0x55,0x01,0xb3,0x01,0x0c,0x02,' +` 0x8f,0x02,0x01,0x03,0x4a,0x03,0xc5,0x03,' +` 0x11,0x05,0xe1,0x06,0xa3,0x07,0xb5,0x08,' +` 0x94,0x09,0x91,0x0a,0x68,0x0b,0x39,0x0c,' +` 0xd1,0x0c,0x4b,0x0d,0x84,0x4d,0xb8,0x0d,' +` 0xb7,0x0d,0x77,0x0d,0x1b,0x0d,0x7d,0x0c,' +` 0xd7,0x0b,0xe9,0x0a,0x05,0x0a,0xd9,0x08,' +` 0xf5,0x07,0x2b,0x07,0x2b,0x06,0xac,0x04,' +` 0x6a,0x03,0xd1,0x02,0x28,0x02,0xab,0x01,' +` 0x3b,0x01,0xe4,0x00,0xa8,0x00,0x7e,0x00,' +` 0x51,0x00,0x36,0x00,0x20,0x00,0x13,0x00,' +` 0x08,0x00,0x03,0x00,0x01,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_48khz.m4 new file mode 100644 index 000000000000..727ce8628c53 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x03,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x02,0x00,0x05,0x00,0x0f,0x00,0x15,0x00,' +` 0x31,0x00,0x39,0x00,0x7b,0x00,0x78,0x00,' +` 0x04,0x01,0xd8,0x00,0xec,0x01,0x4f,0x01,' +` 0x64,0x03,0xa9,0x01,0xdc,0x05,0x18,0x01,' +` 0x32,0x0b,0x5e,0xf9,0x76,0x68,0x92,0x20,' +` 0x85,0xfc,0x05,0x13,0x92,0x03,0x3a,0x12,' +` 0xf2,0x06,0xa7,0x12,0x39,0x09,0x17,0x13,' +` 0xc2,0x0a,0x1a,0x13,0x92,0x0b,0x8e,0x12,' +` 0xbc,0x0b,0x71,0x11,0x52,0x0b,0xd6,0x0f,' +` 0x6b,0x0a,0xda,0x0d,0x2b,0x09,0xab,0x0b,' +` 0xb6,0x07,0x6d,0x09,0x30,0x06,0x4b,0x07,' +` 0xbb,0x04,0x64,0x05,0x6d,0x03,0xcb,0x03,' +` 0xf3,0x01,0xe6,0x01,0x18,0x01,0x2f,0x01,' +` 0xa6,0x00,0xad,0x00,0x5b,0x00,0x5a,0x00,' +` 0x2d,0x00,0x26,0x00,0x16,0x00,0x12,0x00,' +` 0x08,0x00,0x05,0x00,0x02,0x00,0x01,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfd,0xff,' +` 0xf8,0xff,0xf2,0xff,0xe4,0xff,0xda,0xff,' +` 0xbd,0xff,0xae,0xff,0x76,0xff,0x68,0xff,' +` 0x06,0xff,0x03,0xff,0x62,0xfe,0x83,0xfe,' +` 0x80,0xfd,0xf8,0xfd,0x5b,0xfc,0x85,0xfd,' +` 0xd3,0xfa,0x7e,0xfd,0x6f,0xf8,0x44,0xff,' +` 0xe9,0xf0,0x64,0x51,0x39,0x08,0x1a,0xf2,' +` 0x2a,0xfe,0x1d,0xf5,0x2e,0xfc,0x38,0xf6,' +` 0x75,0xfb,0x1c,0xf7,0x52,0xfb,0x09,0xf8,' +` 0x86,0xfb,0x13,0xf9,0xfa,0xfb,0x2f,0xfa,' +` 0x94,0xfc,0x4d,0xfb,0x3e,0xfd,0x5d,0xfc,' +` 0xe4,0xfd,0x50,0xfd,0x7a,0xfe,0x1d,0xfe,' +` 0xf7,0xfe,0xbf,0xfe,0x57,0xff,0x36,0xff,' +` 0x9c,0xff,0x89,0xff,0xcd,0xff,0xd2,0xff,' +` 0xea,0xff,0xe7,0xff,0xf7,0xff,0xf5,0xff,' +` 0xfd,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0xff,0xff,0xfd,0xff,0xfc,0xff,' +` 0xf4,0xff,0xf4,0xff,0xdf,0xff,0xe4,0xff,' +` 0xb6,0xff,0xc6,0xff,0x6e,0xff,0x96,0xff,' +` 0xf9,0xfe,0x50,0xff,0x48,0xfe,0xf5,0xfe,' +` 0x4b,0xfd,0x8b,0xfe,0xf1,0xfb,0x27,0xfe,' +` 0x1a,0xfa,0xfc,0xfd,0x96,0xf7,0x8a,0xfe,' +` 0xa6,0xf3,0x9d,0x01,0xe7,0xe9,0x45,0x1b,' +` 0x90,0x63,0x40,0xe0,0x43,0x03,0x36,0xed,' +` 0xd4,0xfc,0x65,0xf0,0x6f,0xfa,0x3c,0xf2,' +` 0x74,0xf9,0xdb,0xf3,0x56,0xf9,0x8d,0xf5,' +` 0xc4,0xf9,0x4a,0xf7,0x8a,0xfa,0x03,0xf9,' +` 0x7d,0xfb,0xa3,0xfa,0x7d,0xfc,0x15,0xfc,' +` 0x6e,0xfd,0x4c,0xfd,0x3e,0xfe,0x42,0xfe,' +` 0xe3,0xfe,0xf5,0xfe,0x5b,0xff,0x6f,0xff,' +` 0xaa,0xff,0xba,0xff,0xdb,0xff,0xe5,0xff,' +` 0xf3,0xff,0xf8,0xff,0xfd,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x04,0x00,0x07,0x00,0x0b,0x00,' +` 0x11,0x00,0x1a,0x00,0x25,0x00,0x34,0x00,' +` 0x46,0x00,0x5d,0x00,0x78,0x00,0x99,0x00,' +` 0xbf,0x00,0xeb,0x00,0x1c,0x01,0x53,0x01,' +` 0x8f,0x01,0xcf,0x01,0x13,0x02,0x59,0x02,' +` 0xa2,0x02,0xea,0x02,0x30,0x03,0x71,0x03,' +` 0xb0,0x03,0xe7,0x03,0x18,0x04,0x3e,0x04,' +` 0x5d,0x04,0x6f,0x04,0x64,0x44,0x72,0x04,' +` 0x66,0x04,0x4b,0x04,0x2a,0x04,0xfb,0x03,' +` 0xc8,0x03,0x8a,0x03,0x4a,0x03,0x03,0x03,' +` 0xbd,0x02,0x73,0x02,0x2d,0x02,0xe5,0x01,' +` 0xa4,0x01,0x64,0x01,0x2c,0x01,0xf7,0x00,' +` 0xc9,0x00,0xa0,0x00,0x7d,0x00,0x60,0x00,' +` 0x48,0x00,0x34,0x00,0x25,0x00,0x19,0x00,' +` 0x10,0x00,0x0a,0x00,0x06,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_16khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_16khz.m4 new file mode 100644 index 000000000000..f76cf9d3a4f9 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_16khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x04,0x00,0x08,0x00,0x13,0x00,' +` 0x22,0x00,0x3d,0x00,0x64,0x00,0xbb,0x00,' +` 0x00,0x01,0x8e,0x01,0x00,0x02,0xe9,0x02,' +` 0x86,0x03,0xdf,0x04,0x44,0x05,0x43,0x07,' +` 0x84,0x07,0x6d,0x0a,0x83,0x09,0x9a,0x0e,' +` 0x61,0x08,0x28,0x58,0xf5,0x16,0x0c,0x0c,' +` 0x2b,0x13,0x0b,0x0e,0x0d,0x12,0xb1,0x0d,' +` 0x74,0x10,0xba,0x09,0x02,0x09,0xd7,0x05,' +` 0x31,0x06,0x1e,0x03,0x74,0x03,0xc1,0x00,' +` 0x9d,0x01,0x9b,0xff,0x9c,0xff,0x85,0xfe,' +` 0xf6,0xfe,0x46,0xfe,0xcf,0xfe,0x76,0xfe,' +` 0xf2,0xfe,0x96,0xfe,0x07,0xff,0xfc,0xfe,' +` 0x55,0xff,0x59,0xff,0x94,0xff,0xa9,0xff,' +` 0xed,0xff,0xe5,0xff,0xf7,0xff,0xf3,0xff,' +` 0xfc,0xff,0xfa,0xff,0xfd,0xff,0xfd,0xff,' +` 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xfb,0xff,' +` 0xf6,0xff,0xe5,0xff,0xd3,0xff,0xa3,0xff,' +` 0x78,0xff,0x0b,0xff,0xba,0xfe,0xe1,0xfd,' +` 0x33,0xfd,0xba,0xfb,0x08,0xfb,0xca,0xf8,' +` 0x2e,0xf8,0xf8,0xf4,0xf4,0xf4,0x42,0xf0,' +` 0x57,0xf1,0x64,0xeb,0xd8,0xef,0x90,0xe6,' +` 0x26,0xf2,0x0d,0xde,0x06,0x0c,0x19,0x48,' +` 0xfd,0xd8,0xbc,0xfc,0xf7,0xe9,0xfa,0xfc,' +` 0x30,0xf3,0x33,0x01,0x25,0xfb,0x25,0x07,' +` 0xa6,0x02,0xbe,0x0a,0xe6,0x06,0xa5,0x0c,' +` 0x19,0x09,0xc8,0x0c,0xe2,0x09,0x6c,0x0b,' +` 0x1d,0x08,0xfb,0x08,0x22,0x06,0x56,0x06,' +` 0x0d,0x04,0xf7,0x03,0x47,0x02,0x16,0x02,' +` 0x0b,0x01,0xf5,0x00,0x59,0x00,0x55,0x00,' +` 0x05,0x00,0x16,0x00,0xfa,0xff,0xff,0xff,' +` 0xf5,0xff,0xfb,0xff,0xfa,0xff,0xfd,0xff,' +` 0xfe,0xff,0x00,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x01,0x00,0x05,0x00,0x08,0x00,' +` 0x17,0x00,0x20,0x00,0x4a,0x00,0x5a,0x00,' +` 0xb3,0x00,0xc7,0x00,0x65,0x01,0x6a,0x01,' +` 0x64,0x02,0x46,0x02,0x88,0x03,0xab,0x02,' +` 0x7c,0x04,0x82,0x02,0xdf,0x04,0x10,0x01,' +` 0x42,0x04,0xee,0xfc,0x7b,0x01,0x65,0xf6,' +` 0xc0,0xfe,0xf9,0xeb,0xd7,0xfe,0xd3,0xd4,' +` 0xf9,0x49,0xf0,0x1d,0x15,0xcc,0x48,0xed,' +` 0xbe,0xd2,0xcf,0xe2,0x8f,0xd3,0x8f,0xde,' +` 0xf5,0xd5,0x2d,0xe0,0x0e,0xdb,0x32,0xe3,' +` 0x01,0xe1,0x18,0xe8,0xc2,0xe7,0xcc,0xed,' +` 0x60,0xef,0x65,0xf4,0x27,0xf5,0xab,0xf8,' +` 0x78,0xf9,0xe1,0xfb,0x7c,0xfc,0xfe,0xfd,' +` 0x54,0xfe,0x28,0xff,0x58,0xff,0xc0,0xff,' +` 0xd0,0xff,0xfa,0xff,0xfa,0xff,0x03,0x00,' +` 0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x00,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xff,0xff,0xfe,0xff,0xfd,0xff,0xfa,0xff,' +` 0xf8,0xff,0xf3,0xff,0xef,0xff,0xeb,0xff,' +` 0xe7,0xff,0xde,0xff,0xdb,0xff,0xd4,0xff,' +` 0xdb,0xff,0xdc,0xff,0x03,0x00,0x2e,0x00,' +` 0x4c,0x00,0x9b,0x00,0x06,0x01,0x7d,0x01,' +` 0x2e,0x02,0xc0,0x02,0x27,0x04,0x66,0x06,' +` 0x44,0x07,0x6b,0x08,0x5d,0x09,0x5f,0x0a,' +` 0x30,0x0b,0xee,0x0b,0x63,0x4c,0xce,0x0c,' +` 0xe7,0x0c,0xc7,0x0c,0x7a,0x0c,0xef,0x0b,' +` 0x4b,0x0b,0x66,0x0a,0xda,0x09,0xf6,0x08,' +` 0xdf,0x07,0xcb,0x06,0xca,0x05,0xc5,0x04,' +` 0xf9,0x03,0xde,0x02,0x08,0x02,0xa1,0x01,' +` 0x2b,0x01,0xdd,0x00,0x96,0x00,0x68,0x00,' +` 0x42,0x00,0x2b,0x00,0x1e,0x00,0x12,0x00,' +` 0x09,0x00,0x05,0x00,0x02,0x00,0x01,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_48khz.m4 b/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_48khz.m4 new file mode 100644 index 000000000000..87160875557c --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_48khz.m4 @@ -0,0 +1,88 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x84,0x02,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x40,0x00,0x06,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x45,0x00,0xd7,0xff,0xc9,0x00,0x02,0x00,' +` 0xee,0x01,0x92,0x00,0x03,0x04,0xc8,0x01,' +` 0x5e,0x07,0xe5,0x03,0x43,0x0c,0x19,0x07,' +` 0xd1,0x12,0x76,0x0b,0xee,0x1a,0xdd,0x10,' +` 0x3d,0x24,0xfb,0x16,0x22,0x2e,0x4f,0x1d,' +` 0xd4,0x37,0x3a,0x23,0x2e,0x40,0xdc,0x1a,' +` 0xb5,0x34,0x8e,0x19,0x7a,0x36,0x9b,0x18,' +` 0x74,0x35,0x57,0x16,0x0b,0x32,0xf6,0x12,' +` 0xb7,0x2c,0xe1,0x0e,0x16,0x26,0x94,0x0a,' +` 0xde,0x1e,0x88,0x06,0xbd,0x17,0x1c,0x03,' +` 0x40,0x11,0x87,0x00,0xc7,0x0b,0xd7,0xfe,' +` 0xba,0x07,0x1d,0x01,0xd0,0x05,0x9d,0xfd,' +` 0x8c,0x02,0x04,0xfe,0x3c,0x01,0x7d,0xfe,' +` 0x85,0x00,0xf9,0xfe,0x2d,0x00,0x62,0xff,' +` 0x09,0x00,0xae,0xff,0xff,0xff,0xdd,0xff,' +` 0xfe,0xff,0xf5,0xff,0xff,0xff,0xfe,0xff,' +` 0x40,0x00,0x05,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xf9,0xff,0xe0,0xff,' +` 0xd2,0xff,0x74,0xff,0x83,0xff,0x6e,0xfe,' +` 0x2e,0xff,0x0c,0xfc,0x25,0x00,0x5e,0xf3,' +` 0x7a,0x48,0xf6,0x0d,0xef,0xeb,0x00,0x00,' +` 0xed,0xeb,0x87,0xfb,0x2a,0xe9,0x61,0xf8,' +` 0x39,0xe6,0x2f,0xf6,0x08,0xe4,0x24,0xf5,' +` 0x31,0xe3,0x7f,0xf5,0x14,0xe4,0x56,0xf7,' +` 0xcb,0xe6,0x8d,0xfa,0x2a,0xeb,0xcc,0xfe,' +` 0xbe,0xf0,0x90,0x03,0xe2,0xf6,0x3d,0x08,' +` 0xf8,0xff,0x60,0x0f,0x0d,0x05,0x98,0x11,' +` 0x93,0x08,0x72,0x12,0x9f,0x0a,0xec,0x11,' +` 0x3c,0x0b,0x3e,0x10,0xa5,0x0a,0xc3,0x0d,' +` 0x36,0x09,0xe6,0x0a,0x55,0x07,0x0b,0x08,' +` 0x5f,0x05,0x80,0x05,0x9b,0x03,0x73,0x03,' +` 0x30,0x02,0xf8,0x01,0x4f,0x01,0x00,0x01,' +` 0x8b,0x00,0x67,0x00,0x33,0x00,0x1f,0x00,' +` 0x0c,0x00,0x04,0x00,0x40,0x00,0x02,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,' +` 0xfa,0xff,0xfa,0xff,0xee,0xff,0xee,0xff,' +` 0xd1,0xff,0xd4,0xff,0x98,0xff,0xa4,0xff,' +` 0x32,0xff,0x57,0xff,0x89,0xfe,0xf0,0xfe,' +` 0x7c,0xfd,0x8b,0xfe,0xb8,0xfb,0xe0,0xfe,' +` 0xbd,0xf6,0xc4,0x44,0xf2,0x01,0xb9,0xf5,' +` 0xac,0xfb,0xe0,0xf5,0x3c,0xf9,0xfe,0xf4,' +` 0x71,0xf7,0x16,0xf4,0x1a,0xf6,0x72,0xf3,' +` 0x3e,0xf5,0x3a,0xf3,0xe9,0xf4,0x7e,0xf3,' +` 0x1e,0xf5,0x3e,0xf4,0xd0,0xf5,0x68,0xf5,' +` 0xe9,0xf6,0xdf,0xf6,0x45,0xf8,0x7e,0xf8,' +` 0xca,0xf9,0x57,0xfa,0x69,0xfb,0xd5,0xfb,' +` 0xb2,0xfc,0x1b,0xfd,0xc5,0xfd,0x1f,0xfe,' +` 0x9a,0xfe,0xe0,0xfe,0x32,0xff,0x63,0xff,' +` 0x96,0xff,0xb5,0xff,0xd1,0xff,0xe2,0xff,' +` 0xef,0xff,0xf7,0xff,0xfc,0xff,0xff,0xff,' +` 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,' +` 0x08,0x00,0x0d,0x00,0x13,0x00,0x24,0x00,' +` 0x34,0x00,0x45,0x00,0x5c,0x00,0x76,0x00,' +` 0x96,0x00,0xbb,0x00,0xe5,0x00,0x14,0x01,' +` 0x49,0x01,0x82,0x01,0xbf,0x01,0xff,0x01,' +` 0x42,0x02,0x85,0x02,0xc9,0x02,0x0a,0x03,' +` 0x49,0x03,0x81,0x03,0xb5,0x03,0xe0,0x03,' +` 0x03,0x04,0x1b,0x04,0x16,0x44,0x2d,0x04,' +` 0x26,0x04,0x11,0x04,0xf3,0x03,0xcb,0x03,' +` 0x9c,0x03,0x64,0x03,0x27,0x03,0xe5,0x02,' +` 0xa2,0x02,0x5d,0x02,0x18,0x02,0xd5,0x01,' +` 0x95,0x01,0x59,0x01,0x21,0x01,0xef,0x00,' +` 0xc2,0x00,0x9a,0x00,0x79,0x00,0x5c,0x00,' +` 0x45,0x00,0x32,0x00,0x25,0x00,0x19,0x00,' +` 0x10,0x00,0x0a,0x00,0x06,0x00,0x03,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x0f,0x00,0x0f,0x00,' +` 0x0f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/m4/tdfb/coef_line4_pass.m4 b/tools/topology/m4/tdfb/coef_line4_pass.m4 new file mode 100644 index 000000000000..34ad45921b02 --- /dev/null +++ b/tools/topology/m4/tdfb/coef_line4_pass.m4 @@ -0,0 +1,28 @@ +# Exported EQ 10-Sep-2020 +CONTROLBYTES_PRIV(DEF_TDFB_PRIV, +` bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,' +` 0xa4,0x00,0x00,0x00,0x00,0x00,0x01,0x03,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0xa4,0x00,0x00,0x00,0x04,0x00,0x04,0x00,' +` 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x04,0x00,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x04,0x00,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x04,0x00,0xff,0xff,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x04,0x00,0xff,0xff,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,' +` 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,' +` 0x02,0x00,0x03,0x00,0x01,0x00,0x02,0x00,' +` 0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,' +` 0x00,0x00,0x00,0x00"' +) diff --git a/tools/topology/platform/intel/intel-generic-dmic.m4 b/tools/topology/platform/intel/intel-generic-dmic.m4 index 9054e2b0df81..66d6f38c3544 100644 --- a/tools/topology/platform/intel/intel-generic-dmic.m4 +++ b/tools/topology/platform/intel/intel-generic-dmic.m4 @@ -16,6 +16,12 @@ ifdef(`DMIC_DAI_LINK_48k_NAME',`',define(DMIC_DAI_LINK_48k_NAME, `dmic01')) # define(DMIC_DAI_LINK_16k_NAME, `dmic16k') ifdef(`DMIC_DAI_LINK_16k_NAME',`',define(DMIC_DAI_LINK_16k_NAME, `dmic16k')) +# Handle possible different channels count for PCM and DAI +ifdef(`DMIC_DAI_CHANNELS', `', `define(DMIC_DAI_CHANNELS, CHANNELS)') +ifdef(`DMIC_PCM_CHANNELS', `', `define(DMIC_PCM_CHANNELS, CHANNELS)') +ifdef(`DMIC16K_DAI_CHANNELS', `', `define(DMIC16K_DAI_CHANNELS, CHANNELS)') +ifdef(`DMIC16K_PCM_CHANNELS', `', `define(DMIC16K_PCM_CHANNELS, CHANNELS)') + # # Define the pipelines # @@ -26,20 +32,32 @@ dnl period, priority, core, dnl pcm_min_rate, pcm_max_rate, pipeline_rate, dnl time_domain, sched_comp) -# Passthrough capture pipeline using max channels defined by CHANNELS. +# Passthrough capture pipeline using max channels defined by DMIC_PCM_CHANNELS. # Set 1000us deadline on core 0 with priority 0 -PIPELINE_PCM_ADD(sof/pipe-eq-iir-volume-capture.m4, - DMIC_PIPELINE_48k_ID, DMIC_DAI_LINK_48k_ID, CHANNELS, s32le, +ifdef(`DMICPROC_FILTER1', `define(PIPELINE_FILTER1, DMICPROC_FILTER1)') +ifdef(`DMICPROC_FILTER2', `define(PIPELINE_FILTER2, DMICPROC_FILTER2)') + +PIPELINE_PCM_ADD(sof/pipe-DMICPROC-capture.m4, + DMIC_PIPELINE_48k_ID, DMIC_DAI_LINK_48k_ID, DMIC_PCM_CHANNELS, s32le, 1000, 0, 0, 48000, 48000, 48000) +undefine(`PIPELINE_FILTER1') +undefine(`PIPELINE_FILTER2') + # Passthrough capture pipeline using max channels defined by CHANNELS. # Schedule with 1000us deadline on core 0 with priority 0 -PIPELINE_PCM_ADD(sof/pipe-eq-iir-volume-capture-16khz.m4, - DMIC_PIPELINE_16k_ID, DMIC_DAI_LINK_16k_ID, CHANNELS, s32le, +ifdef(`DMIC16KPROC_FILTER1', `define(PIPELINE_FILTER1, DMIC16KPROC_FILTER1)') +ifdef(`DMIC16KPROC_FILTER2', `define(PIPELINE_FILTER2, DMIC16KPROC_FILTER2)') + +PIPELINE_PCM_ADD(sof/pipe-DMIC16KPROC-capture-16khz.m4, + DMIC_PIPELINE_16k_ID, DMIC_DAI_LINK_16k_ID, DMIC16K_PCM_CHANNELS, s32le, 1000, 0, 0, 16000, 16000, 16000) +undefine(`PIPELINE_FILTER1') +undefine(`PIPELINE_FILTER2') + # # DAIs configuration # @@ -73,7 +91,7 @@ PCM_CAPTURE_ADD(DMIC16kHz, DMIC_DAI_LINK_16k_ID, concat(`PIPELINE_PCM_', DMIC_PI # dnl DAI_CONFIG(type, dai_index, link_id, name, ssp_config/dmic_config) -ifelse(CHANNELS, 4, +ifelse(DMIC_DAI_CHANNELS, 4, `DAI_CONFIG(DMIC, 0, DMIC_DAI_LINK_48k_ID, DMIC_DAI_LINK_48k_NAME, DMIC_CONFIG(1, 500000, 4800000, 40, 60, 48000, DMIC_WORD_LENGTH(s32le), 200, DMIC, 0, @@ -83,7 +101,7 @@ ifelse(CHANNELS, 4, DMIC_WORD_LENGTH(s32le), 200, DMIC, 0, PDM_CONFIG(DMIC, 0, STEREO_PDM0)))') -ifelse(CHANNELS, 4, +ifelse(DMIC16K_DAI_CHANNELS, 4, `DAI_CONFIG(DMIC, 1, DMIC_DAI_LINK_16k_ID, DMIC_DAI_LINK_16k_NAME, DMIC_CONFIG(1, 500000, 4800000, 40, 60, 16000, DMIC_WORD_LENGTH(s32le), 400, DMIC, 1, diff --git a/tools/topology/sof-apl-pcm512x.m4 b/tools/topology/sof-apl-pcm512x.m4 index 522980384546..fefb5e1c9054 100644 --- a/tools/topology/sof-apl-pcm512x.m4 +++ b/tools/topology/sof-apl-pcm512x.m4 @@ -2,6 +2,15 @@ # Topology for generic Apollolake UP^2 with pcm512x codec and HDMI. # +# if XPROC is not defined, define with default pipe +ifdef(`DMICPROC', , `define(DMICPROC, eq-iir-volume)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, eq-iir-volume)') + +# if CHANNELS is not defined, define with default 2ch. Note that +# it can be overrode with DMIC_DAI_CHANNELS, DMIC_PCM_CHANNELS +# in intel-generic-dmic.m4. Same macros exist for DMIC16K too. +ifdef(`CHANNELS', , `define(CHANNELS, 2)') + # Include topology builder include(`utils.m4') include(`dai.m4') @@ -78,12 +87,16 @@ PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, # platform/intel/intel-generic-dmic.m4 uses DAI link IDs for PCM IDs so we have # to use PCM1 and PCM2 for DMICs. -define(CHANNELS, `2') + +ifelse(CHANNELS, `0', , +` define(DMIC_PIPELINE_48k_ID, `7') define(DMIC_PIPELINE_16k_ID, `8') define(DMIC_DAI_LINK_48k_ID, `1') define(DMIC_DAI_LINK_16k_ID, `2') include(`platform/intel/intel-generic-dmic.m4') +' +) # # DAIs configuration diff --git a/tools/topology/sof-cml-rt1011-rt5682.m4 b/tools/topology/sof-cml-rt1011-rt5682.m4 index 9892c5141a01..6b592805d809 100644 --- a/tools/topology/sof-cml-rt1011-rt5682.m4 +++ b/tools/topology/sof-cml-rt1011-rt5682.m4 @@ -2,11 +2,16 @@ # Topology for Cometlake with rt1011 spk on SSP1 # +# if XPROC is not defined, define with default pipe +# Note: DMIC16KPROC is hard coded in sof-cml-rt5682-kwd.m4 +ifdef(`DMICPROC', , `define(DMICPROC, passthrough)') + # Include SOF CML RT5682 Topology # This includes topology for RT5682, DMIC and 3 HDMI Pass through pipeline include(`sof-cml-rt5682-kwd.m4') include(`abi.h') DEBUG_START + # # Define the Speaker pipeline # diff --git a/tools/topology/sof-cml-rt5682-kwd.m4 b/tools/topology/sof-cml-rt5682-kwd.m4 index e098f436fd24..c9bd645dc1db 100644 --- a/tools/topology/sof-cml-rt5682-kwd.m4 +++ b/tools/topology/sof-cml-rt5682-kwd.m4 @@ -23,11 +23,17 @@ define(KWD_PIPE_SCH_DEADLINE_US, 5000) DEBUG_START +# if XPROC is not defined, define with default pipe +ifdef(`HSMICPROC', , `define(HSMICPROC, volume)') +ifdef(`HSEARPROC', , `define(HSEARPROC, volume)') +ifdef(`DMICPROC', , `define(DMICPROC, passthrough)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, passthrough)') + # # Define the pipelines # # PCM0 <---> volume <----> SSP(SSP_INDEX, BE link 0) -# PCM1 <------------------ DMIC01 (dmic0 capture, , BE link 1) +# PCM1 <---- DMICPROC <--- DMIC01 (dmic0 capture, , BE link 1) # PCM2 ----> volume -----> iDisp1 (HDMI/DP playback, BE link 3) # PCM3 ----> volume -----> iDisp2 (HDMI/DP playback, BE link 4) # PCM4 ----> volume -----> iDisp3 (HDMI/DP playback, BE link 5) @@ -56,13 +62,19 @@ PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4, 1000, 0, 0, 48000, 48000, 48000) -# Passthrough capture pipeline 3 on PCM 1 using max 4 channels. +# DMICPROC capture pipeline 3 on PCM 1 using max 4 channels. # Schedule 1000us deadline on core 0 with priority 0 -PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, +ifdef(`DMICPROC_FILTER1', `define(PIPELINE_FILTER1, DMICPROC_FILTER1)') +ifdef(`DMICPROC_FILTER2', `define(PIPELINE_FILTER2, DMICPROC_FILTER2)') + +PIPELINE_PCM_ADD(sof/pipe-DMICPROC-capture.m4, 3, 1, 4, s32le, 1000, 0, 0, 48000, 48000, 48000) +undefine(`PIPELINE_FILTER1') +undefine(`PIPELINE_FILTER2') + # Low Latency playback pipeline 4 on PCM 2 using max 2 channels of s32le. # Schedule 1000us deadline on core 0 with priority 0 PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4, diff --git a/tools/topology/sof-cml-rt5682.m4 b/tools/topology/sof-cml-rt5682.m4 index c50463b56b50..6b1426e1d36e 100644 --- a/tools/topology/sof-cml-rt5682.m4 +++ b/tools/topology/sof-cml-rt5682.m4 @@ -23,8 +23,8 @@ DEBUG_START # if XPROC is not defined, define with default pipe ifdef(`HSMICPROC', , `define(HSMICPROC, volume)') ifdef(`HSEARPROC', , `define(HSEARPROC, volume)') -ifdef(`DMICPROC', , `define(DMICPROC, eq-iir-volume)') -ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, eq-iir-volume)') +ifdef(`DMICPROC', , `define(DMICPROC, passthrough)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, passthrough)') # # Define the pipelines diff --git a/tools/topology/sof-hda-asrc.m4 b/tools/topology/sof-hda-asrc.m4 index bfdf947b4795..f21b63ce3a3c 100644 --- a/tools/topology/sof-hda-asrc.m4 +++ b/tools/topology/sof-hda-asrc.m4 @@ -2,6 +2,10 @@ # Topology for SKL+ HDA for testing ASRC # +# if XPROC is not defined, define with default pipe +ifdef(`DMICPROC', , `define(DMICPROC, eq-iir-volume)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, eq-iir-volume)') + # Include topology builder include(`utils.m4') include(`dai.m4') diff --git a/tools/topology/sof-hda-generic-idisp.m4 b/tools/topology/sof-hda-generic-idisp.m4 index 6dd8e8efcb4c..feaec75c3032 100644 --- a/tools/topology/sof-hda-generic-idisp.m4 +++ b/tools/topology/sof-hda-generic-idisp.m4 @@ -2,6 +2,10 @@ # Topology for SKL+ HDA Generic machine w/ iDISP codec only # +# if XPROC is not defined, define with default pipe +ifdef(`DMICPROC', , `define(DMICPROC, eq-iir-volume)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, eq-iir-volume)') + # Include topology builder include(`utils.m4') include(`dai.m4') diff --git a/tools/topology/sof-hda-generic.m4 b/tools/topology/sof-hda-generic.m4 index 65087b611458..a27934e14d75 100644 --- a/tools/topology/sof-hda-generic.m4 +++ b/tools/topology/sof-hda-generic.m4 @@ -1,6 +1,10 @@ # Topology for SKL+ HDA Generic machine # +# if XPROC is not defined, define with default pipe +ifdef(`DMICPROC', , `define(DMICPROC, eq-iir-volume)') +ifdef(`DMIC16KPROC', , `define(DMIC16KPROC, eq-iir-volume)') + # Include topology builder include(`utils.m4') include(`dai.m4') diff --git a/tools/topology/sof/pipe-tdfb-capture-16khz.m4 b/tools/topology/sof/pipe-tdfb-capture-16khz.m4 new file mode 100644 index 000000000000..5f58d335cca4 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-capture-16khz.m4 @@ -0,0 +1,88 @@ +# Capture TDFB Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- TDFB 0 <-- B1 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`tdfb.m4') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- TDFB 0 <-- B1 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(1))')) + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(1)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') diff --git a/tools/topology/sof/pipe-tdfb-capture.m4 b/tools/topology/sof/pipe-tdfb-capture.m4 new file mode 100644 index 000000000000..5cd09ed545ba --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-capture.m4 @@ -0,0 +1,88 @@ +# Capture TDFB Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- TDFB 0 <-- B1 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`tdfb.m4') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough configuration is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- TDFB 0 <-- B1 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(1))')) + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(1)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, `S32_LE,S24_LE,S16_LE', PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') diff --git a/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture-16khz.m4 b/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture-16khz.m4 new file mode 100644 index 000000000000..fbd1f7b17561 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture-16khz.m4 @@ -0,0 +1,179 @@ +# Capture EQ Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- Volume <-- B1 <-- EQIIR <-- B2 <-- TDFB <-- B3 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`pga.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`mixercontrol.m4') +include(`tdfb.m4') +include(`eq_iir.m4') + +define(`PGA_NAME', Dmic1) +define(`CONTROL_NAME_VOLUME', 2nd Capture Volume) +define(`CONTROL_NAME_SWITCH', 2nd Capture Switch) +define(`CONTROL_NAME', `CONTROL_NAME_VOLUME') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# Volume Mixer control with max value of 32 +C_CONTROLMIXER(Capture Volume, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, + 256 binds the mixer control to volume get/put handlers, + 256, 256), + CONTROLMIXER_MAX(, 70), + false, + CONTROLMIXER_TLV(TLV 80 steps from -50dB to +20dB for 1dB, vtlv_m50s1), + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) + +undefine(`CONTROL_NAME') +define(`CONTROL_NAME', `CONTROL_NAME_SWITCH') + +# Switch type Mixer Control with max value of 1 +C_CONTROLMIXER(Capture Switch, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, 259 binds the mixer control to switch get/put handlers, 259, 259), + CONTROLMIXER_MAX(max 1 indicates switch type control, 1), + false, + , + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 2, 0), KCONTROL_CHANNEL(FR, 2, 1)), + "1", "1") + +# Volume Configuration +define(DEF_PGA_TOKENS, concat(`pga_tokens_', PIPELINE_ID)) +define(DEF_PGA_CONF, concat(`pga_conf_', PIPELINE_ID)) + +W_VENDORTUPLES(DEF_PGA_TOKENS, sof_volume_tokens, +LIST(` ', `SOF_TKN_VOLUME_RAMP_STEP_TYPE "0"' + ` ', `SOF_TKN_VOLUME_RAMP_STEP_MS "250"')) + +W_DATA(DEF_PGA_CONF, DEF_PGA_TOKENS) + +define(DEF_EQIIR_COEF, concat(`eqiir_coef_', PIPELINE_ID)) +define(DEF_EQIIR_PRIV, concat(`eqiir_priv_', PIPELINE_ID)) + +# By default, use 40 Hz highpass response with +0 dB gain for 48khz +# TODO: need to implement middle level macro handler per pipeline +ifdef(`PIPELINE_FILTER2', , `define(PIPELINE_FILTER2, eq_iir_coef_highpass_40hz_0db_16khz.m4)') +include(PIPELINE_FILTER2) + +# EQ Bytes control with max value of 255 +C_CONTROLBYTES(DEF_EQIIR_COEF, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS( + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 1024), + , + DEF_EQIIR_PRIV) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2, SCHEDULE_CORE) + +# "Volume" has 2 source and 2 sink periods +W_PGA(0, PIPELINE_FORMAT, 2, 2, DEF_PGA_CONF, SCHEDULE_CORE, + LIST(` ', "CONTROL_NAME_VOLUME", + "CONTROL_NAME_SWITCH")) + +# "EQ 0" has 2 sink period and 2 source periods +W_EQ_IIR(0, PIPELINE_FORMAT, 2, 2, SCHEDULE_CORE, + LIST(` ', "DEF_EQIIR_COEF")) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(2, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(3, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- Volume <-- B1 <-- EQIIR <-- B2 <-- TDFB <-- B3 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), PGA_NAME)', + `dapm(PGA_NAME, N_BUFFER(1))', + `dapm(N_BUFFER(1), N_EQ_IIR(0))', + `dapm(N_EQ_IIR(0), N_BUFFER(2))', + `dapm(N_BUFFER(2), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(3))')) + +undefine(`PGA_NAME') +undefine(`CONTROL_NAME') +undefine(`CONTROL_NAME_VOLUME') +undefine(`CONTROL_NAME_SWITCH') + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(3)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, CAPABILITY_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_PGA_TOKENS') +undefine(`DEF_PGA_CONF') +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') +undefine(`DEF_EQIIR_COEF') +undefine(`DEF_EQIIR_PRIV') diff --git a/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture.m4 b/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture.m4 new file mode 100644 index 000000000000..df2c0d7fdeb7 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-eq-iir-volume-capture.m4 @@ -0,0 +1,179 @@ +# Capture EQ Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- Volume <-- B1 <-- EQIIR <-- B2 <-- TDFB <-- B3 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`pga.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`mixercontrol.m4') +include(`tdfb.m4') +include(`eq_iir.m4') + +define(`PGA_NAME', Dmic0) +define(`CONTROL_NAME_VOLUME', Capture Volume) +define(`CONTROL_NAME_SWITCH', Capture Switch) +define(`CONTROL_NAME', `CONTROL_NAME_VOLUME') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# Volume Mixer control with max value of 32 +C_CONTROLMIXER(Capture Volume, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, + 256 binds the mixer control to volume get/put handlers, + 256, 256), + CONTROLMIXER_MAX(, 70), + false, + CONTROLMIXER_TLV(TLV 80 steps from -50dB to +20dB for 1dB, vtlv_m50s1), + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) + +undefine(`CONTROL_NAME') +define(`CONTROL_NAME', `CONTROL_NAME_SWITCH') + +# Switch type Mixer Control with max value of 1 +C_CONTROLMIXER(Capture Switch, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, 259 binds the mixer control to switch get/put handlers, 259, 259), + CONTROLMIXER_MAX(max 1 indicates switch type control, 1), + false, + , + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 2, 0), KCONTROL_CHANNEL(FR, 2, 1)), + "1", "1") + +# Volume Configuration +define(DEF_PGA_TOKENS, concat(`pga_tokens_', PIPELINE_ID)) +define(DEF_PGA_CONF, concat(`pga_conf_', PIPELINE_ID)) + +W_VENDORTUPLES(DEF_PGA_TOKENS, sof_volume_tokens, +LIST(` ', `SOF_TKN_VOLUME_RAMP_STEP_TYPE "0"' + ` ', `SOF_TKN_VOLUME_RAMP_STEP_MS "250"')) + +W_DATA(DEF_PGA_CONF, DEF_PGA_TOKENS) + +define(DEF_EQIIR_COEF, concat(`eqiir_coef_', PIPELINE_ID)) +define(DEF_EQIIR_PRIV, concat(`eqiir_priv_', PIPELINE_ID)) + +# By default, use 40 Hz highpass response with +0 dB gain for 48khz +# TODO: need to implement middle level macro handler per pipeline +ifdef(`PIPELINE_FILTER2', , `define(PIPELINE_FILTER2, eq_iir_coef_highpass_40hz_0db_48khz.m4)') +include(PIPELINE_FILTER2) + +# EQ Bytes control with max value of 255 +C_CONTROLBYTES(DEF_EQIIR_COEF, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS( + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 1024), + , + DEF_EQIIR_PRIV) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2, SCHEDULE_CORE) + +# "Volume" has 2 source and 2 sink periods +W_PGA(0, PIPELINE_FORMAT, 2, 2, DEF_PGA_CONF, SCHEDULE_CORE, + LIST(` ', "CONTROL_NAME_VOLUME", + "CONTROL_NAME_SWITCH")) + +# "EQ 0" has 2 sink period and 2 source periods +W_EQ_IIR(0, PIPELINE_FORMAT, 2, 2, SCHEDULE_CORE, + LIST(` ', "DEF_EQIIR_COEF")) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(2, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(3, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- Volume <-- B1 <-- EQIIR <-- B2 <-- TDFB <-- B3 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), PGA_NAME)', + `dapm(PGA_NAME, N_BUFFER(1))', + `dapm(N_BUFFER(1), N_EQ_IIR(0))', + `dapm(N_EQ_IIR(0), N_BUFFER(2))', + `dapm(N_BUFFER(2), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(3))')) + +undefine(`PGA_NAME') +undefine(`CONTROL_NAME') +undefine(`CONTROL_NAME_VOLUME') +undefine(`CONTROL_NAME_SWITCH') + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(3)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, CAPABILITY_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_PGA_TOKENS') +undefine(`DEF_PGA_CONF') +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') +undefine(`DEF_EQIIR_COEF') +undefine(`DEF_EQIIR_PRIV') diff --git a/tools/topology/sof/pipe-tdfb-playback.m4 b/tools/topology/sof/pipe-tdfb-playback.m4 new file mode 100644 index 000000000000..711103e32890 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-playback.m4 @@ -0,0 +1,88 @@ +# Low Latency Passthrough with volume Pipeline and PCM +# +# Pipeline Endpoints for connection are :- +# +# host PCM_P --> B0 --> TDFB 0 --> B1 --> sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`dai.m4') +include(`bytecontrol.m4') +include(`pipeline.m4') +include(`tdfb.m4') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# +# Components and Buffers +# + +# Host "TDFB Playback" PCM +# with 2 sink and 0 source periods +W_PCM_PLAYBACK(PCM_ID, TDFB Playback, 2, 0) + +# "TDFB 0" has x sink period and 2 source periods +W_TDFB(0, PIPELINE_FORMAT, DAI_PERIODS, 2, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Playback Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_HOST_MEM_CAP) +W_BUFFER(1, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(DAI_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), + PLATFORM_DAI_MEM_CAP) + +# +# Pipeline Graph +# +# host host PCM_P --> B0 --> TDFB --> B3 --> sink DAI0 + +P_GRAPH(pipe-tdfb-playback-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_BUFFER(0), N_PCMP(PCM_ID))', + `dapm(N_TDFB(0), N_BUFFER(0))', + `dapm(N_BUFFER(1), N_TDFB(0))')) + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SOURCE_', PIPELINE_ID), N_BUFFER(1)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), + TDFB Playback PCM_ID) + +# +# PCM Configuration + +# +PCM_CAPABILITIES(TDFB Playback PCM_ID, `S32_LE,S24_LE,S16_LE', + PCM_MIN_RATE, PCM_MAX_RATE, 2, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') diff --git a/tools/topology/sof/pipe-tdfb-volume-capture-16khz.m4 b/tools/topology/sof/pipe-tdfb-volume-capture-16khz.m4 new file mode 100644 index 000000000000..a0ff4de39b22 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-volume-capture-16khz.m4 @@ -0,0 +1,145 @@ +# Capture EQ Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- Volume 0 <-- B1 <-- TDFB 0 <-- B2 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`pga.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`mixercontrol.m4') +include(`tdfb.m4') + +define(`PGA_NAME', Dmic1) +define(`CONTROL_NAME_VOLUME', 2nd Capture Volume) +define(`CONTROL_NAME_SWITCH', 2nd Capture Switch) +define(`CONTROL_NAME', `CONTROL_NAME_VOLUME') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# Volume Mixer control with max value of 32 +C_CONTROLMIXER(Capture Volume, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, + 256 binds the mixer control to volume get/put handlers, + 256, 256), + CONTROLMIXER_MAX(, 70), + false, + CONTROLMIXER_TLV(TLV 80 steps from -50dB to +20dB for 1dB, vtlv_m50s1), + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) + +undefine(`CONTROL_NAME') +define(`CONTROL_NAME', `CONTROL_NAME_SWITCH') + +# Switch type Mixer Control with max value of 1 +C_CONTROLMIXER(Capture Switch, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, 259 binds the mixer control to switch get/put handlers, 259, 259), + CONTROLMIXER_MAX(max 1 indicates switch type control, 1), + false, + , + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 2, 0), KCONTROL_CHANNEL(FR, 2, 1)), + "1", "1") + +# Volume Configuration +define(DEF_PGA_TOKENS, concat(`pga_tokens_', PIPELINE_ID)) +define(DEF_PGA_CONF, concat(`pga_conf_', PIPELINE_ID)) + +W_VENDORTUPLES(DEF_PGA_TOKENS, sof_volume_tokens, +LIST(` ', `SOF_TKN_VOLUME_RAMP_STEP_TYPE "0"' + ` ', `SOF_TKN_VOLUME_RAMP_STEP_MS "250"')) + +W_DATA(DEF_PGA_CONF, DEF_PGA_TOKENS) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2, SCHEDULE_CORE) + +# "Volume" has 2 source and 2 sink periods +W_PGA(0, PIPELINE_FORMAT, 2, 2, DEF_PGA_CONF, SCHEDULE_CORE, + LIST(` ', "CONTROL_NAME_VOLUME", + "CONTROL_NAME_SWITCH")) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(2, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- Volume 0 <-- B1 <-- TDFB 0 <-- B2 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), PGA_NAME)', + `dapm(PGA_NAME, N_BUFFER(1))', + `dapm(N_BUFFER(1), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(2))')) + +undefine(`PGA_NAME') +undefine(`CONTROL_NAME') +undefine(`CONTROL_NAME_VOLUME') +undefine(`CONTROL_NAME_SWITCH') + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(2)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, CAPABILITY_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_PGA_TOKENS') +undefine(`DEF_PGA_CONF') +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') diff --git a/tools/topology/sof/pipe-tdfb-volume-capture.m4 b/tools/topology/sof/pipe-tdfb-volume-capture.m4 new file mode 100644 index 000000000000..649563e8cd60 --- /dev/null +++ b/tools/topology/sof/pipe-tdfb-volume-capture.m4 @@ -0,0 +1,145 @@ +# Capture EQ Pipeline and PCM, 48 kHz +# +# Pipeline Endpoints for connection are :- +# +# host PCM_C <-- B0 <-- Volume 0 <-- B1 <-- TDFB 0 <-- B2 <-- sink DAI0 + +# Include topology builder +include(`utils.m4') +include(`buffer.m4') +include(`pcm.m4') +include(`pga.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`bytecontrol.m4') +include(`mixercontrol.m4') +include(`tdfb.m4') + +define(`PGA_NAME', Dmic0) +define(`CONTROL_NAME_VOLUME', Capture Volume) +define(`CONTROL_NAME_SWITCH', Capture Switch) +define(`CONTROL_NAME', `CONTROL_NAME_VOLUME') + +# +# Controls +# + +define(DEF_TDFB_PRIV, concat(`tdfb_priv_', PIPELINE_ID)) + +# Define filter. A passthrough is set by default. +ifdef(`PIPELINE_FILTER1', , `define(PIPELINE_FILTER1, `tdfb/coef_line2_pass.m4')') +include(PIPELINE_FILTER1) + +# TDFB Bytes control with max value of 255 +define(DEF_TDFB_BYTES, concat(`tdfb_bytes_', PIPELINE_ID)) +C_CONTROLBYTES(DEF_TDFB_BYTES, PIPELINE_ID, + CONTROLBYTES_OPS(bytes, + 258 binds the mixer control to bytes get/put handlers, + 258, 258), + CONTROLBYTES_EXTOPS(258 binds the mixer control to bytes get/put handlers, + 258, 258), + , , , + CONTROLBYTES_MAX(, 4096), + , + DEF_TDFB_PRIV) + +# Volume Mixer control with max value of 32 +C_CONTROLMIXER(Capture Volume, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, + 256 binds the mixer control to volume get/put handlers, + 256, 256), + CONTROLMIXER_MAX(, 70), + false, + CONTROLMIXER_TLV(TLV 80 steps from -50dB to +20dB for 1dB, vtlv_m50s1), + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 1, 0), KCONTROL_CHANNEL(FR, 1, 1))) + +undefine(`CONTROL_NAME') +define(`CONTROL_NAME', `CONTROL_NAME_SWITCH') + +# Switch type Mixer Control with max value of 1 +C_CONTROLMIXER(Capture Switch, PIPELINE_ID, + CONTROLMIXER_OPS(volsw, 259 binds the mixer control to switch get/put handlers, 259, 259), + CONTROLMIXER_MAX(max 1 indicates switch type control, 1), + false, + , + Channel register and shift for Front Left/Right, + LIST(` ', KCONTROL_CHANNEL(FL, 2, 0), KCONTROL_CHANNEL(FR, 2, 1)), + "1", "1") + +# Volume Configuration +define(DEF_PGA_TOKENS, concat(`pga_tokens_', PIPELINE_ID)) +define(DEF_PGA_CONF, concat(`pga_conf_', PIPELINE_ID)) + +W_VENDORTUPLES(DEF_PGA_TOKENS, sof_volume_tokens, +LIST(` ', `SOF_TKN_VOLUME_RAMP_STEP_TYPE "0"' + ` ', `SOF_TKN_VOLUME_RAMP_STEP_MS "250"')) + +W_DATA(DEF_PGA_CONF, DEF_PGA_TOKENS) + +# +# Components and Buffers +# + +# Host "TDFB Capture" PCM +# with 0 sink and 2 source periods +W_PCM_CAPTURE(PCM_ID, TDFB Capture, 0, 2, SCHEDULE_CORE) + +# "Volume" has 2 source and 2 sink periods +W_PGA(0, PIPELINE_FORMAT, 2, 2, DEF_PGA_CONF, SCHEDULE_CORE, + LIST(` ', "CONTROL_NAME_VOLUME", + "CONTROL_NAME_SWITCH")) + +# "TDFB 0" has 2 sink period and x source periods +W_TDFB(0, PIPELINE_FORMAT, 2, DAI_PERIODS, SCHEDULE_CORE, + LIST(` ', "DEF_TDFB_BYTES")) + +# Capture Buffers +W_BUFFER(0, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(1, COMP_BUFFER_SIZE(2, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +W_BUFFER(2, COMP_BUFFER_SIZE(DAI_PERIODS, + COMP_SAMPLE_SIZE(PIPELINE_FORMAT), PIPELINE_CHANNELS, + COMP_PERIOD_FRAMES(PCM_MAX_RATE, SCHEDULE_PERIOD)), PLATFORM_PASS_MEM_CAP) + +# +# Pipeline Graph +# +# host PCM_C <-- B0 <-- Volume 0 <-- B1 <-- TDFB 0 <-- B2 <-- sink DAI0 + +P_GRAPH(pipe-pass-capture-PIPELINE_ID, PIPELINE_ID, + LIST(` ', + `dapm(N_PCMC(PCM_ID), N_BUFFER(0))', + `dapm(N_BUFFER(0), PGA_NAME)', + `dapm(PGA_NAME, N_BUFFER(1))', + `dapm(N_BUFFER(1), N_TDFB(0))', + `dapm(N_TDFB(0), N_BUFFER(2))')) + +undefine(`PGA_NAME') +undefine(`CONTROL_NAME') +undefine(`CONTROL_NAME_VOLUME') +undefine(`CONTROL_NAME_SWITCH') + +# +# Pipeline Source and Sinks +# +indir(`define', concat(`PIPELINE_SINK_', PIPELINE_ID), N_BUFFER(2)) +indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), TDFB Capture PCM_ID) + +# +# PCM Configuration +# + +PCM_CAPABILITIES(TDFB Capture PCM_ID, CAPABILITY_FORMAT_NAME(PIPELINE_FORMAT), PCM_MIN_RATE, + PCM_MAX_RATE, PIPELINE_CHANNELS, PIPELINE_CHANNELS, + 2, 16, 192, 16384, 65536, 65536) + +undefine(`DEF_PGA_TOKENS') +undefine(`DEF_PGA_CONF') +undefine(`DEF_TDFB_PRIV') +undefine(`DEF_TDFB_BYTES') diff --git a/tools/tune/eq/eq_fir_blob_quant.m b/tools/tune/eq/eq_fir_blob_quant.m index 541d45dc1dde..4a13827bf39b 100644 --- a/tools/tune/eq/eq_fir_blob_quant.m +++ b/tools/tune/eq/eq_fir_blob_quant.m @@ -1,4 +1,4 @@ -function fbr = eq_fir_blob_quant(b, bits) +function fbr = eq_fir_blob_quant(b, bits, strip_trailing_zeros) %% Quantize FIR coefficients and return vector with length, % out shift, and coefficients to be used in the setup blob. @@ -40,6 +40,10 @@ % Author: Seppo Ingalsuo % +if nargin < 3 + strip_trailing_zeros = 1; +end + if nargin < 2 bits = 16; end @@ -53,7 +57,7 @@ while bq(nz) == 0 nz = nz - 1; end -if nz < nf +if nz < nf && strip_trailing_zeros nb = nz + 1; fprintf(1, 'Note: Filter length was reduced '); fprintf(1, 'to %d -> %d due to trailing zeros.\n', nf, nb); diff --git a/tools/tune/tdfb/bf_array_circ.m b/tools/tune/tdfb/bf_array_circ.m new file mode 100644 index 000000000000..43d059b95d27 --- /dev/null +++ b/tools/tune/tdfb/bf_array_circ.m @@ -0,0 +1,28 @@ +% bf = bf_array_circ(bf) +% +% Inputs +% bf.mic_n ... number of microphones +% bf.mic_r ... radius of circular array [m] +% +% Outputs +% bf.mic_x ... x coordinates [m] +% bf.mic_y ... y coordinates [m] +% bf.mic_z ... z coordinates [m] + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_array_circ(bf) + +bf.mic_angle = (0:bf.mic_n-1)*360/bf.mic_n; % Mic 1 at 0 deg +idx = find(bf.mic_angle > 180); % wrap > 180 deg to -180 .. 0 +bf.mic_angle(idx) = bf.mic_angle(idx)-360; +bf.mic_x = bf.mic_r*cosd(bf.mic_angle); +bf.mic_y = bf.mic_r*sind(bf.mic_angle); +bf.mic_z = zeros(1,bf.mic_n); +bf.mic_d = sqrt((bf.mic_x(1)-bf.mic_x(2))^2+(bf.mic_y(1)-bf.mic_y(2))^2); + +end diff --git a/tools/tune/tdfb/bf_array_line.m b/tools/tune/tdfb/bf_array_line.m new file mode 100644 index 000000000000..67d377265e75 --- /dev/null +++ b/tools/tune/tdfb/bf_array_line.m @@ -0,0 +1,25 @@ +% bf = bf_array_line(bf) +% +% Inputs +% bf.mic_n ... number of microphones +% bf.mic_d ... distance between microphones [m] +% +% Outputs +% bf.mic_x ... x coordinates [m] +% bf.mic_y ... y coordinates [m] +% bf.mic_z ... z coordinates [m] + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_array_line(bf) + +bf.mic_y = linspace(0, -(bf.mic_n-1) * bf.mic_d, bf.mic_n) ... + + (bf.mic_n-1) * bf.mic_d / 2; +bf.mic_x = zeros(1, bf.mic_n); +bf.mic_z = zeros(1, bf.mic_n); + +end diff --git a/tools/tune/tdfb/bf_array_lshape.m b/tools/tune/tdfb/bf_array_lshape.m new file mode 100644 index 000000000000..c994c5f41fd9 --- /dev/null +++ b/tools/tune/tdfb/bf_array_lshape.m @@ -0,0 +1,44 @@ +% bf = bf_array_lshape(bf) +% +% Inputs +% bf.mic_nxy ... vector of two with number of microphones along x and y +% bf.mic_rxy ... vector of two with distance along x and y [m] +% +% Outputs +% bf.mic_x ... x coordinates [m] +% bf.mic_y ... y coordinates [m] +% bf.mic_z ... z coordinates [m] + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_array_lshape(bf) + +bf.mic_x = []; +bf.mic_y = []; + +bf.mic_n = sum(bf.mic_nxy) -1; +bf.mic_z = zeros(1, bf.mic_n); +n = 1; +for x = 0:(bf.mic_nxy(1) -1) + bf.mic_x(n) = 0; + bf.mic_y(n) = -x * bf.mic_dxy(1); + n = n + 1; +end + +for y = 1:(bf.mic_nxy(2) -1) + bf.mic_x(n) = -y * bf.mic_dxy(2); + bf.mic_y(n) = 0; + n = n + 1; +end + +bf.mic_x = bf.mic_x - mean(bf.mic_x); +bf.mic_y = bf.mic_y - mean(bf.mic_y); +bf.mic_z = bf.mic_z - mean(bf.mic_z); + +bf.mic_d = max(bf.mic_dxy); + +end diff --git a/tools/tune/tdfb/bf_array_rect.m b/tools/tune/tdfb/bf_array_rect.m new file mode 100644 index 000000000000..b32683b9378c --- /dev/null +++ b/tools/tune/tdfb/bf_array_rect.m @@ -0,0 +1,35 @@ +% bf = bf_array_rect(bf) +% +% Inputs +% bf.mic_nxy ... vector of two with number of microphones along x and y +% bf.mic_rxy ... vector of two with distance along x and y [m] +% +% Outputs +% bf.mic_x ... x coordinates [m] +% bf.mic_y ... y coordinates [m] +% bf.mic_z ... z coordinates [m] + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_array_rect(bf) + +bf.mic_x = []; +bf.mic_y = []; + +bf.mic_n = prod(bf.mic_nxy); +bf.mic_z = zeros(1, bf.mic_n); +for y = 1:bf.mic_nxy(2) + for x = 1:bf.mic_nxy(1) + n = x + bf.mic_nxy(1) * (y - 1); + bf.mic_y(n) = -x * bf.mic_dxy(1); + bf.mic_x(n) = y * bf.mic_dxy(2); + end +end + +bf.mic_d = max(bf.mic_dxy); + +end diff --git a/tools/tune/tdfb/bf_array_rot.m b/tools/tune/tdfb/bf_array_rot.m new file mode 100644 index 000000000000..850e4b52a59c --- /dev/null +++ b/tools/tune/tdfb/bf_array_rot.m @@ -0,0 +1,58 @@ +% bf = bf_array_rot(bf) +% +% Inputs +% bf.array_angle ... three element vector for x, y, z rotation [degrees] +% bf.mic_x ......... x coordinates of microphones in [m] +% bf.mic_y ......... y coordinates of microphones in [m] +% bf.mic_z ......... z coordinates of microphones in [m] +% +% Outputs +% bf.mic_x +% bf.mic_y +% bf.mic_z + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_array_rot(bf) + +% Equations reference +% https://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations + +% Rotate around X-axis +% +% | x' | | 1 0 0 | | x | +% | y' | = | 0 cosa -sina | | y | +% | z' | | 0 sina cosa | | z | +a = bf.array_angle(1) * pi/180; +y = bf.mic_y; +z = bf.mic_z; +bf.mic_y = cos(a) * y - sin(a) * z; +bf.mic_z = sin(a) * y + cos(a) * z; + +% Rotate around Y-axis +% +% | x' | | cosa 0 sina | | x | +% | y' | = | 0 1 0 | | y | +% | z' | | -sina 0 cosa | | z | +a = bf.array_angle(2) * pi/180; +x = bf.mic_x; +z = bf.mic_z; +bf.mic_x = cos(a) * x + sin(a) * z; +bf.mic_z = -sin(a) * x + cos(a) * z; + +% Rotate around Z-axis +% +% | x' | | cosa -sina 0 | | x | +% | y' | = | sina cosa 0 | | y | +% | z' | | 0 0 1 | | z | +a = bf.array_angle(3) * pi/180; +x = bf.mic_x; +y = bf.mic_y; +bf.mic_x = cos(a) * x - sin(a) * y; +bf.mic_y = sin(a) * x + cos(a) * y; + +end diff --git a/tools/tune/tdfb/bf_blob_pack.m b/tools/tune/tdfb/bf_blob_pack.m new file mode 100644 index 000000000000..7229f0d09dea --- /dev/null +++ b/tools/tune/tdfb/bf_blob_pack.m @@ -0,0 +1,138 @@ +function blob8 = bf_blob_pack(bf) + +%% Pack TDFB struct to bytes +% +% blob8 = bf_blob_pack(bf) +% +% bf ..... TDFB design data struct input +% blob8 .. Packed bytes blob output +% + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright(c) 2016 Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +%% Check for sane parameters +if bf.num_filters < 1 || bf.num_filters > 16 + error('Invalid number of filters'); +end + +if bf.num_output_channels < 1 || bf.num_output_channels > 8 + error('Invalid number of output channels'); +end + +if bf.num_output_streams < 1 || bf.num_output_streams > 8 + error('Invalid number of output streams'); +end + +if length(bf.input_channel_select) ~= bf.num_filters + error('input_channel_select length does not match'); +end + +if length(bf.output_channel_mix) ~= bf.num_filters + error('output_channel_mix length does not match'); +end + +if length(bf.output_stream_mix) ~= bf.num_filters + error('output_stream_mix length does not match'); +end + +%% Endianness of blob +switch lower(bf.endian) + case 'little' + sh16 = [0 -8]; + sh32 = [0 -8 -16 -24]; + case 'big' + sh16 = [-8 0]; + sh32 = [-24 -16 -8 0]; + otherwise + error('Unknown endianness'); +end + +%% Header format is +% uint32_t size; +% uint16_t num_filters; +% uint16_t num_output_channels; +% uint16_t num_output_streams; +% uint16_t reserved16; +% uint32_t reserved32[4]; +% int16_t data[]; +% +% data[] is +% int16_t fir_filter1[length_filter1]; Multiple of 4 taps and 32 bit align +% int16_t fir_filter2[length_filter2]; Multiple of 4 taps and 32 bit align +% ... +% int16_t fir_filterN[length_filterN]; Multiple of 4 taps and 32 bit align +% int16_t input_channel_select[num_filters]; 0 = ch0, 1 = 1ch1, .. +% int16_t output_channel_mix[num_filters]; +% int16_t output_stream_mix[num_filters]; + +%% Pack as 16 bits +nh16 = 14; +h16 = zeros(1, nh16, 'int16'); +nc16 = length(bf.all_filters); +nm16 = 3 * bf.num_filters; +nb16 = ceil((nh16 + nc16 + nm16)/2)*2; +h16(1) = 2 * nb16; +h16(2) = 0; +h16(3) = bf.num_filters; +h16(4) = bf.num_output_channels; +h16(5) = bf.num_output_streams; + +%% Merge header and coefficients, make even number of int16 to make it +% multiple of int32 +blob16 = zeros(1,nb16, 'int16'); +blob16(1:nh16) = h16; +i1 = nh16 + 1; +i2 = i1 + nc16 -1; +blob16(i1:i2) = int16(bf.all_filters); +i1 = i2 + 1; +i2 = i1 + bf.num_filters - 1; +blob16(i1:i2) = int16(bf.input_channel_select); +i1 = i2 + 1; +i2 = i1 + bf.num_filters - 1; +blob16(i1:i2) = int16(bf.output_channel_mix); +i1 = i2 + 1; +i2 = i1 + bf.num_filters - 1; +blob16(i1:i2) = int16(bf.output_stream_mix); + +%% Pack as 8 bits +nbytes_data = nb16 * 2; + +%% Get ABI information +[abi_bytes, nbytes_abi] = eq_get_abi(nbytes_data); + +%% Initialize uint8 array with correct size +nbytes = nbytes_abi + nbytes_data; +blob8 = zeros(1, nbytes, 'uint8'); + +%% Inset ABI header +blob8(1:nbytes_abi) = abi_bytes; +j = nbytes_abi + 1; + +%% Component data +for i = 1:length(blob16) + blob8(j:j+1) = w16b(blob16(i), sh16); + j = j+2; +end + +%% Done +fprintf('Blob size is %d bytes.\n', nbytes); + +end + +function bytes = w16b(word, sh) +bytes = uint8(zeros(1,2)); +bytes(1) = bitand(bitshift(word, sh(1)), 255); +bytes(2) = bitand(bitshift(word, sh(2)), 255); +end + +function bytes = w32b(word, sh) +bytes = uint8(zeros(1,4)); +bytes(1) = bitand(bitshift(word, sh(1)), 255); +bytes(2) = bitand(bitshift(word, sh(2)), 255); +bytes(3) = bitand(bitshift(word, sh(3)), 255); +bytes(4) = bitand(bitshift(word, sh(4)), 255); +end diff --git a/tools/tune/tdfb/bf_defaults.m b/tools/tune/tdfb/bf_defaults.m new file mode 100644 index 000000000000..83208914e3ed --- /dev/null +++ b/tools/tune/tdfb/bf_defaults.m @@ -0,0 +1,34 @@ +function bf = bf_defaults() + +% Recording array general setup +bf.fs = 16e3; % Design for 16 kHz sample rate +bf.c = 343; % Speed of sound in 20C +bf.steer_az = 0; % Azimuth 0 deg +bf.steer_el = 0; % Elevation 0 deg +bf.steer_r = 2.0; % Distance 2.0m +bf.fir_length = 64; % 64 tap FIR filters +bf.fir_beta = 10; % Beta for kaiser window method FIR design +bf.mu_db = -50; % dB of diagonal loading to noise covariance matrix +bf.do_plots = 1; +bf.plot_box = 0.3; +bf.array_id = ''; +bf.array_angle = [0 0 0]; % Array rotation angles for xyz +bf.tplg_fn = 'bf.m4'; +bf.sofctl_fn = 'bf.txt'; +bf.endian = 'little'; +bf.fn = 1; +bf.sinerot_a = 10^(-20/20); +bf.sinerot_f = 2e3; +bf.sinerot_t = 1.0; +bf.sinerot_az_step = 5; +bf.sinerot_az_start = -180; +bf.sinerot_az_stop = 180; +bf.sinerot_fn = ''; +bf.diffuse_fn = ''; +bf.diffuse_t = 1; +bf.diffuse_lev = -20; +bf.random_fn = ''; +bf.random_t = 1; +bf.random_lev = -20; + +end diff --git a/tools/tune/tdfb/bf_design.m b/tools/tune/tdfb/bf_design.m new file mode 100644 index 000000000000..bc900accd1dc --- /dev/null +++ b/tools/tune/tdfb/bf_design.m @@ -0,0 +1,362 @@ +% bf = bf_design(bf) +% +% This script calculates beamformer filters with superdirective design +% criteria. + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_design(bf) + +addpath('../../test/audio/test_utils'); +addpath('../../test/audio/std_utils'); +mkdir_check('plots'); +mkdir_check('data'); + +switch lower(bf.array) + case 'line' + bf = bf_array_line(bf); + case 'circular' + bf = bf_array_circ(bf); + case 'rectangle' + bf = bf_array_rect(bf); + case 'lshape' + bf = bf_array_lshape(bf); + case 'xyz' + bf = bf_array_xyz(bf); + otherwise + error('Invalid array type') +end + +bf = bf_array_rot(bf); + +%% Defaults +j = complex(0,-1); +fs = bf.fs; +%N = bf.fir_length; +N = 512; +N_half = N/2+1; +f = (0:N/2)*fs/N'; +phi_rad = (-180:180)*pi/180; +phi_rad = phi_rad(1:end-1); +n_phi = length(phi_rad); +steer_az = bf.steer_az*pi/180; +steer_el = bf.steer_el*pi/180; +mu = ones(1,N_half) * 10^(bf.mu_db/20); + +%% Source at distance r +[src_x, src_y, src_z] = source_xyz(bf.steer_r, steer_az, steer_el); + +%% Default frequency domain weights +W = zeros(N_half, bf.mic_n); + +%% Coherence matrix, diffuse field +% Equation 2.11 +Gamma_vv = zeros(N_half, bf.mic_n, bf.mic_n); +for n=1:bf.mic_n + for m=1:bf.mic_n + % Equation 2.17 + lnm = sqrt( (bf.mic_x(n) - bf.mic_x(m))^2 ... + +(bf.mic_y(n) - bf.mic_y(m))^2 ... + +(bf.mic_z(n) - bf.mic_z(m))^2); + Gamma_vv(:,n,m) = sinc(2*pi*f*lnm/bf.c); + end +end + +%% Delays from source to each mic +dt = delay_from_source(bf, src_x, src_y, src_z); +dt = dt-min(dt); + +%% Create array vector +tau0 = zeros(n_phi, bf.mic_n); +A = zeros(N_half, n_phi, bf.mic_n); +d = zeros(N_half, bf.mic_n); +for n=1:bf.mic_n + % Equation 2.27 + d(:,n) = exp(-j*2*pi*f*dt(n)); % Delays to steer direction + for ip = 1:n_phi; + phi = phi_rad(ip); + x_phi = bf.steer_r*cos(phi)*cos(steer_el); + y_phi = bf.steer_r*sin(phi)*cos(steer_el); + z_phi = bf.steer_r*sin(steer_el); + tau0(ip, n) = sqrt((x_phi-bf.mic_x(n))^2 ... + + (y_phi-bf.mic_y(n))^2 ... + + (z_phi-bf.mic_z(n))^2)/bf.c; + end +end +tau = tau0-min(min(tau0)); + +for n=1:bf.mic_n + for ip = 1:n_phi + % N_half x n_phi x Nm + A(:, ip, n) = exp(-j*2*pi*f*tau(ip, n)); + end +end + +%% Superdirective +for iw = 1:N_half + % Equation 2.33 + I = eye(bf.mic_n, bf.mic_n); + d_w = d(iw,:).'; + Gamma_vv_w = squeeze(Gamma_vv(iw, :, :)); + Gamma_vv_w_diagload = Gamma_vv_w + mu(iw)*I; + Gamma_vv_w_inv = inv(Gamma_vv_w_diagload); + num = Gamma_vv_w_inv * d_w; + denom1 = d_w' * Gamma_vv_w_inv; + denom2 = denom1 * d_w; + W_w = num / denom2; + W(iw, :) = W_w.'; +end + +%% Convert w to time domain +W_full = zeros(N, bf.mic_n); +W_full = W(1:N_half, :); +for i=N_half+1:N + W_full(i,:) = conj(W(N_half-(i-N_half),:)); +end +skip = floor((N - bf.fir_length)/2); +win = kaiser(bf.fir_length,bf.fir_beta); +bf.w = zeros(bf.fir_length, bf.mic_n); +for i=1:bf.mic_n + w_tmp = real(fftshift(ifft(W_full(:,i)))); + bf.w(:,i) = w_tmp(skip + 1:skip + bf.fir_length) .* win; +end + +%% Back to frequency domain to check spatial response +W2_full = zeros(N, bf.mic_n); +for i=1:bf.mic_n + % Zero pad + h2 = zeros(1,N); + h2(skip + 1:skip + bf.fir_length) = bf.w(:,i); + W2_full(:,i) = fft(h2); +end +W2 = W2_full(1:N_half, :); +B2 = zeros(N_half, n_phi); +for iw = 1:N_half + WT = (W2(iw,:)').'; + AS = squeeze(A(iw,:,:)).'; + WA = WT * AS; + B2(iw,:) = WA; +end +bf.resp_fa = B2'; +bf.resp_angle = phi_rad * 180/pi; + +%% Directivity in diffuse field +% Equation 2.18 +% DI(exp(j Omega) = 10*log10( abs(W^H d)^2 / (W^H Gamma_vv W)) +bf.f = f; +bf.di_db = zeros(1, N_half); +for iw = 1:N_half + W_w = W2(iw,:).'; + d_w = d(iw,:).'; + Gamma_vv_w = squeeze(Gamma_vv(iw,:,:)); + W_wh = W_w'; + num = abs(W_wh * d_w)^2; + denom1 = W_wh * Gamma_vv_w; + denom2 = denom1 * W_w; + di = num / denom2; + bf.di_db(iw) = 10*log10(abs(di)); +end + + +%% White noise gain +for iw = 1:N_half + % WNG = abs(^w^H d)^2/(w^H w); + W_w = W2(iw,:).'; + d_w = d(iw,:).'; + W_wh = W_w'; + num = abs(W_wh * d_w)^2; + denom = W_wh * W_w; + wng = num / denom2; + wng_db(iw) = 10*log10(abs(wng)); +end +bf.wng_db = wng_db; + +%% Info about filters for blob packing +bf.num_filters = bf.mic_n; + +if bf.do_plots + %% Array + bf.fh(1) = figure(bf.fn); + plot3(bf.mic_x(1), bf.mic_y(1), bf.mic_z(1), 'ro'); + hold on; + plot3(bf.mic_x(2:end), bf.mic_y(2:end), bf.mic_z(2:end), 'bo'); + plot3(src_x, src_y, src_z, 'gx'); + plot3([0 src_x],[0 src_y],[0 src_z],'c--') + for n=1:bf.mic_n + text(bf.mic_x(n), bf.mic_y(n), bf.mic_z(n) + 20e-3, ... + num2str(n)); + end + hold off + pb2 = bf.plot_box / 2; + axis([-pb2 pb2 -pb2 pb2 -pb2 pb2]); + axis('square'); + grid on; + xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)'); + view(-50, 30); + title(['Geometry ' bf.array_id], 'Interpreter','none'); + + %% Coef + bf.fh(2) = figure(bf.fn + 1); + plot(bf.w) + grid on; + xlabel('FIR coefficient'); ylabel('Tap value'); + title(['FIR filters ' bf.array_id], 'Interpreter','none'); + + %% DI + bf.fh(3) = figure(bf.fn + 2); + semilogx(bf.f(2:end), bf.di_db(2:end)) + xlabel('Frequency (Hz)'); ylabel('DI (dB)'); grid on; + legend('Suppression of diffuse field noise','Location','SouthEast'); + title(['Directivity Index ' bf.array_id], 'Interpreter','none'); + + %% WNG + bf.fh(4) = figure(bf.fn + 3); + semilogx(bf.f(2:end), bf.wng_db(2:end)) + xlabel('Frequency (Hz)'); ylabel('WNG (dB)'); grid on; + legend('Attenuation of uncorrelated noise','Location','SouthEast'); + title(['White noise gain ' bf.array_id], 'Interpreter','none'); + drawnow; + + %% 2D + bf.fh(5) = figure(bf.fn + 4); + colormap(jet); + phi_deg = phi_rad*180/pi; + imagesc(bf.f, bf.resp_angle, 20*log10(abs(bf.resp_fa)), [-30 0]); + set(gca,'YDir','normal') + grid on; + colorbar; + xlabel('Frequency (Hz)'); ylabel('Angle (deg)'); + title(['Spatial response ' bf.array_id], 'Interpreter','none'); + + %% Polar + bf.fh(6) = figure(bf.fn + 5); + flist = [1000 2000 3000 4000]; + idx = []; + for i = 1:length(flist) + idx(i) = find(f > flist(i), 1, 'first'); + end + bf.resp_polar = abs(B2(idx,:)); + if exist('OCTAVE_VERSION', 'builtin') + polar(phi_rad, bf.resp_polar); + else + polarplot(phi_rad, bf.resp_polar); + end + legend('1 kHz','2 kHz','3 kHz','4 kHz'); + title(['Polar response ' bf.array_id], 'Interpreter','none'); +end + +%% Create data for simulation 1s per angle + +if ~isempty(bf.sinerot_fn) + fprintf(1, 'Creating 360 degree sine source rotate...\n'); + fsi = 384e3; % Target interpolated rate + p = round(fsi / bf.fs); % Interpolation factor + fsi = p * bf.fs; % Recalculate high rate + ti = 1/fsi; % perid at higher rate + t_add = 10.0/bf.c; % Additional signal time for max 10m propagation + tt0 = bf.sinerot_t + t_add; % Total sine length per angle + nt = bf.fs * bf.sinerot_t; % Number samples output per angle + nti = p * nt; % Number samples output per angle at high rate + t_ramp = 20e-3; % 20 ms ramps to start and end of each angle tone + n_ramp = t_ramp * bf.fs; + win = ones(nt, 1); + win(1:n_ramp) = linspace(0, 1, n_ramp); + win(end-n_ramp+1:end) = linspace(1, 0, n_ramp); + si = multitone(fsi, bf.sinerot_f, bf.sinerot_a, tt0); + test_az = (bf.sinerot_az_start:bf.sinerot_az_step:bf.sinerot_az_stop) * pi/180; + test_n = length(test_az); + test_el = zeros(1, test_n); + [test_x, test_y, test_z] = source_xyz(bf.steer_r, test_az, test_el); + td = zeros(test_n * nt, bf.mic_n); + for i = 1:length(test_az) + dt = delay_from_source(bf, test_x(i), test_y(i), test_z(i)); + dn = round(dt / ti); + mi = zeros(nti, bf.mic_n); + for j = 1:bf.mic_n + mi(:,j) = mi(:,j) + si(dn(j):dn(j) + nti -1); + end + i1 = (i - 1) * nt + 1; + i2 = i1 + nt -1; + for j = 1:bf.mic_n + m = mi(1:p:end, j) .* win; + td(i1:i2, j) = m; + end + end + audiowrite(bf.sinerot_fn, td, bf.fs); +end + +if ~isempty(bf.diffuse_fn) + fprintf(1, 'Creating diffuse noise field...\n'); + fsi = 384e3; % Target interpolated rate + p = round(fsi / bf.fs); % Interpolation factor + fsi = p * bf.fs; % Recalculate high rate + ti = 1/fsi; % period at higher rate + t_add = 10.0/bf.c; % Additional signal time for max 20m propagation + t0 = bf.diffuse_t + t_add; % Total sine length per angle + n0 = floor(bf.fs * t0); + nt = floor(bf.fs * bf.diffuse_t); % Number samples output per angle + nti = p * nt; % Number samples output per angle at high rate + el = 0; + for az_deg = -160:20:180 % Azimuth plane only noise with sources + az = az_deg * pi/180; + [nx, ny, nz] = source_xyz(bf.steer_r, az, el); + dt = delay_from_source(bf, nx, ny, nz); + dn = round(dt / ti); + ns = rand(n0, 1) + rand(n0, 1) - 1; + nsi = interp(ns, p); + nmi = zeros(nti, bf.mic_n); + for j = 1:bf.mic_n + nmi(:,j) = nmi(:,j) + nsi(dn(j):dn(j) + nti -1); + end + end + nm = nmi(1:p:end, :); + nlev = level_dbfs(nm(:,1)); + nm = nm * 10^((bf.diffuse_lev - nlev)/20); + audiowrite(bf.diffuse_fn, nm, bf.fs); +end + +if ~isempty(bf.random_fn) + fprintf(1, 'Creating random noise ...\n'); + nt = bf.fs * bf.random_t; + rn = rand(nt, bf.mic_n) + rand(nt, bf.mic_n) - 1; + + nlev = level_dbfs(rn(:,1)); + rn = rn * 10^((bf.random_lev - nlev)/20); + audiowrite(bf.random_fn, rn, bf.fs); +end + + +if ~isempty(bf.mat_fn) + fprintf(1, 'Saving design...\n'); + save(bf.mat_fn, 'bf'); +end + +fprintf(1, 'Done.\n'); + +end + +%% Helper functions + +function [x, y, z] = source_xyz(r, az, el) + +x = r * cos(az) .* cos(el); +y = r * sin(az) .* cos(el); +z = r * sin(el); + +end + +function dt = delay_from_source(bf, src_x, src_y, src_z) + +dm = zeros(1,bf.mic_n); +for n=1:bf.mic_n + dm(n) = sqrt((src_x - bf.mic_x(n))^2 ... + + (src_y - bf.mic_y(n))^2 ... + + (src_z - bf.mic_z(n))^2); +end +dt = dm/bf.c; + +end diff --git a/tools/tune/tdfb/bf_export.m b/tools/tune/tdfb/bf_export.m new file mode 100644 index 000000000000..39bc69daa0d3 --- /dev/null +++ b/tools/tune/tdfb/bf_export.m @@ -0,0 +1,32 @@ +% bf_export(bf) +% +% Inputs +% bf.sofctl_fn ..... filename of ascii text format blob +% bf.tplg_fn ....... filename of topology m4 format blob +% bf ............... the design procedure output + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf_export(bf) + +% Use functionc from EQ tool +addpath('../eq'); + +%% Build blob +filters = []; +for i=1:bf.num_filters + bq = eq_fir_blob_quant(bf.w(:,i)', 16, 0); + filters = [filters bq ]; +end +bf.all_filters = filters; +bp = bf_blob_pack(bf); + +%% Export +eq_alsactl_write(bf.sofctl_fn, bp); +eq_tplg_write(bf.tplg_fn, bp, 'DEF_TDFB_PRIV'); + +end diff --git a/tools/tune/tdfb/bf_filenames_helper.m b/tools/tune/tdfb/bf_filenames_helper.m new file mode 100644 index 000000000000..a6b074364634 --- /dev/null +++ b/tools/tune/tdfb/bf_filenames_helper.m @@ -0,0 +1,38 @@ +% bf = bf_filenames_helper(bf, tplg_path, ctl_path, data_path) +% +% Automatically defines output files names based on array geometry +% and steer angle. + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bf = bf_filenames_helper(bf, tplg_path, ctl_path, data_path) + + +bf.array_id = sprintf('%s %d mic %d mm (%d, %d) deg', ... + bf.array, bf.mic_n, bf.mic_d * 1e3, ... + bf.steer_az, bf.steer_el); + +idstr = sprintf('%s%d_%dmm_az%sel%sdeg_%dkhz', ... + bf.array, bf.mic_n, round(bf.mic_d * 1e3), ... + numpm(bf.steer_az), numpm(bf.steer_el), round(bf.fs/1e3)); + +bf.sofctl_fn = fullfile(ctl_path, sprintf('coef_%s.txt', idstr)); +bf.tplg_fn = fullfile(tplg_path, sprintf('coef_%s.m4', idstr)); +bf.mat_fn = fullfile(data_path, sprintf('tdfb_coef_%s.mat', idstr)); +bf.sinerot_fn = fullfile(data_path, sprintf('simcap_sinerot_%s.raw', idstr)); +bf.diffuse_fn = fullfile(data_path, sprintf('simcap_diffuse_%s.raw', idstr)); +bf.random_fn = fullfile(data_path, sprintf('simcap_random_%s.raw', idstr)); + +end + +function nstr = numpm(n) + if n < 0 + nstr = sprintf('m%d', -round(n)); + else + nstr = sprintf('%d', round(n)); + end +end diff --git a/tools/tune/tdfb/bf_merge.m b/tools/tune/tdfb/bf_merge.m new file mode 100644 index 000000000000..87c8e65febaa --- /dev/null +++ b/tools/tune/tdfb/bf_merge.m @@ -0,0 +1,52 @@ +% bfm = bf_merge(bf1, bf2, bf3, bf4) + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +function bfm = bf_merge(bf1, bf2, bf3, bf4) + +if nargin > 2 + error('Current implementation can merge only two beams configuration'); +end + +% Check that filter lengths match +s1 = size(bf1.w); +n1 = s1(2); +s2 = size(bf2.w); +n2 = s2(2); +if s1(1) ~= s2(1) + error(); +end + +% Get data from bf1, then update fields impacted by merge +bfm = bf1; + +% Merge coefficients +bfm.w = zeros(s1(1), n1 + n2); +for i = 1:n1 + bfm.w(:,i) = bf1.w(:,i); +end +for i = 1:n2 + bfm.w(:,n1 + i) = bf2.w(:,i); +end + +% Merge filter inputs specification +bfm.input_channel_select = [bf1.input_channel_select bf2.input_channel_select]; + +% Merge filter outputs specification +bfm.output_channel_mix = [bf1.output_channel_mix bf2.output_channel_mix]; +bfm.output_stream_mix = [bf1.output_stream_mix bf2.output_stream_mix]; + +bfm.num_filters = bf1.num_filters + bf2.num_filters; +bfm.num_output_channels = floor(log(max(union(bf1.output_channel_mix, bf2.output_channel_mix)))/log(2)) + 1; +bfm.num_output_streams = max(union(bf1.output_stream_mix, bf2.output_stream_mix)) + 1; + +fprintf(1, 'Merge is ready\n'); +fprintf(1, 'Number of filters %d\n', bfm.num_filters); +fprintf(1, 'Number of output channels %d\n', bfm.num_output_channels); +fprintf(1, 'Number of output streams %d\n', bfm.num_output_streams); + +end diff --git a/tools/tune/tdfb/example_line_array.m b/tools/tune/tdfb/example_line_array.m new file mode 100644 index 000000000000..8691b308c7fe --- /dev/null +++ b/tools/tune/tdfb/example_line_array.m @@ -0,0 +1,90 @@ +function example_line_array() + +% example_line_array() +% +% Creates a number of line array configuration blobs for devices +% with 2 microphones with spacing of 50 mm and 67 mm +% with 4 microphones with spacing of 28 mm and 78 mm + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +% Paths +p.tplg_path = '../../topology/m4/tdfb'; +p.sofctl_path = '../../ctl/tdfb'; +p.data_path = './data'; +addpath('../../test/audio/test_utils'); + +mkdir_check(p.tplg_path); +mkdir_check(p.sofctl_path); + +%% 2 mic arrays +for fs = [16e3 48e3] + for az = [0 10 25 90 -10 -25 -90] + for d = [50e-3 67e-3]; + close all; + line2_one_beam(fs, d, az, p); + end + end +end + +%% 4 mic arrays +for fs = [16e3 48e3] + for az = [0 10 25 90 -10 -25 -90] + for d = [28e-3 78e-3]; + line4_one_beam(fs, d, az, p); + end + end +end + +end + +function line2_one_beam(fs, d, az, p); + +% Get defaults +bf = bf_defaults(); +bf.input_channel_select = [0 1]; % Input two channels +bf.output_channel_mix = [3 3]; % Mix both filters to channels 0 and 1 (2^ch) +bf.output_stream_mix = [0 0]; % Mix both filters to stream 0 +bf.num_output_channels = 2; % Two channels +bf.num_output_streams = 1; % One sink stream +bf.array = 'line'; % Calculate xyz coordinates for line +bf.mic_n = 2; % with two microphones + +% From parameters +bf.fs = fs; +bf.mic_d = d; +bf.steer_az = az; + +% Design +bf = bf_filenames_helper(bf, p.tplg_path, p.sofctl_path, p.data_path); +bf = bf_design(bf); +bf_export(bf); +end + +function line4_one_beam(fs, d, az, p); + +% Get defaults +bf = bf_defaults(); +bf.input_channel_select = [ 0 1 2 3]; % Input four channels +bf.output_channel_mix = [15 15 15 15]; % Mix filters to channel 2^0, 2^1, 2^2, 2^3 +bf.output_stream_mix = [ 0 0 0 0]; % Mix filters to stream 0 +bf.num_output_channels = 4; % Four channels +bf.num_output_streams = 1; % One sink stream +bf.array = 'line'; % Calculate xyz coordinates for line +bf.mic_n = 4; % with two microphones + +% From parameters +bf.fs = fs; +bf.mic_d = d; +bf.steer_az = az; + +% Design +bf = bf_filenames_helper(bf, p.tplg_path, p.sofctl_path, p.data_path); +bf = bf_design(bf); +bf_export(bf); + +end diff --git a/tools/tune/tdfb/example_pass_config.m b/tools/tune/tdfb/example_pass_config.m new file mode 100644 index 000000000000..db58c82e4545 --- /dev/null +++ b/tools/tune/tdfb/example_pass_config.m @@ -0,0 +1,58 @@ +function example_pass_config() + +% example_pass_config() +% +% Creates a number for topologies a special configuration blob +% that instantiates two min. length filters and configures +% each channel to pass. + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +% Paths +tplg_path = '../../topology/m4/tdfb'; +sofctl_path = '../../ctl/tdfb'; +addpath('../../test/audio/test_utils'); + +% Setup for two channels +bf.input_channel_select = [0 1]; % Input two channels +bf.output_channel_mix = [1 2]; % Filter1 -> ch0, filter2 -> ch1 +bf.output_stream_mix = [0 0]; % Mix both filters to stream 0 +bf.num_output_channels = 2; % Two channels +bf.num_output_streams = 1; % One sink stream + +% Minimal manual design fields for successful export +bf.num_filters = 2; +bf.w = [1 0 0 0; 1 0 0 0]'; % Two FIR filters with first tap set to one +bf.endian = 'little'; + +% Files +bf.sofctl_fn = fullfile(sofctl_path, 'coef_line2_pass.txt'); +bf.tplg_fn = fullfile(tplg_path, 'coef_line2_pass.m4'); +mkdir_check(tplg_path); +mkdir_check(sofctl_path); +bf_export(bf); + +% Setup for four channels +bf.input_channel_select = [0 1 2 3]; % Input two channels +bf.output_channel_mix = [1 2 4 8]; % Filter1 -> ch0, filter2 -> ch1 +bf.output_stream_mix = [0 0 0 0]; % Mix both filters to stream 0 +bf.num_output_channels = 4; % Four channels +bf.num_output_streams = 1; % One sink stream + +% Minimal manual design fields for successful export +bf.num_filters = 4; +bf.w = [1 0 0 0; 1 0 0 0; 1 0 0 0; 1 0 0 0]'; % Four FIR filters with first tap set to one +bf.endian = 'little'; + +% Files +bf.sofctl_fn = fullfile(sofctl_path, 'coef_line4_pass.txt'); +bf.tplg_fn = fullfile(tplg_path, 'coef_line4_pass.m4'); +mkdir_check(tplg_path); +mkdir_check(sofctl_path); +bf_export(bf); + +end diff --git a/tools/tune/tdfb/example_two_beams.m b/tools/tune/tdfb/example_two_beams.m new file mode 100644 index 000000000000..40ee472cfd44 --- /dev/null +++ b/tools/tune/tdfb/example_two_beams.m @@ -0,0 +1,135 @@ +function example_two_beams() + +% example_two_beams() +% +% Creates configuration files for a two beams design, one +% points to -90 or -25 degrees and other to +90 or +25 degrees +% direction for 50 mm spaced two microphones configuration. The +% beams are output to stereo and left right channels. +% +% The four channels version is for 28 mm mic spacing. The +% first beam is copied to channels 1 and 3. The second +% beam is copied to channels 2 and 4. + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2020, Intel Corporation. All rights reserved. +% +% Author: Seppo Ingalsuo + +%% Paths +p.tplg_path = '../../topology/m4/tdfb'; +p.sofctl_path = '../../ctl/tdfb'; +p.data_path = './data'; + +addpath('../../test/audio/test_utils'); +mkdir_check(p.tplg_path); +mkdir_check(p.sofctl_path); +for fs = [16e3 48e3] + for az = [10 25 90] + %% Close all plots to avoid issues with large number of windows + close all; + + %% 2 mic 50 mm array + tplg_fn = sprintf('coef_line2_50mm_pm%ddeg_%dkhz.m4', az, fs/1e3); + sofctl_fn = sprintf('coef_line2_50mm_pm%ddeg_%dkhz.txt', az, fs/1e3); + d = 50e-3; % 50 mm spacing + a1 = az; % Azimuth +az deg + a2 = -az; % Azimuth -az deg + line2_two_beams(fs, d, a1, a2, tplg_fn, sofctl_fn, p); + + %% 4 mic 28 mm spaced array + tplg_fn = sprintf('coef_line4_28mm_pm%ddeg_%dkhz.m4', az, fs/1e3); + sofctl_fn = sprintf('coef_line4_28mm_pm%ddeg_%dkhz.txt', az, fs/1e3); + d = 28e-3; % 28 mm spacing + a1 = az; % Azimuth +az deg + a2 = -az; % Azimuth -az deg + line4_two_beams(fs, d, a1, a2, tplg_fn, sofctl_fn, p); + end +end + +end + +function line2_two_beams(fs, d, a1, a2, tplg_fn, sofctl_fn, p); + +% Get defaults +bf1 = bf_defaults(); +bf1.fs = fs; + +% Setup array +bf1.array='line'; % Calculate xyz coordinates for line +bf1.mic_n = 2; +bf1.mic_d = d; + +% Copy settings for bf2 +bf2 = bf1; + +% Design beamformer 1 (left) +bf1.steer_az = a1; +bf1.input_channel_select = [0 1]; % Input two channels +bf1.output_channel_mix = [1 1]; % Mix both filters to channel 2^0 +bf1.output_stream_mix = [0 0]; % Mix both filters to stream 0 +bf1.fn = 10; % Figs 10.... +bf1 = bf_filenames_helper(bf1, p.tplg_path, p.sofctl_path, p.data_path); +bf1 = bf_design(bf1); + +% Design beamformer 2 (right) +bf2.steer_az = a2; +bf2.input_channel_select = [0 1]; % Input two channels +bf2.output_channel_mix = [2 2]; % Mix both filters to channel 2^1 +bf2.output_stream_mix = [0 0]; % Mix both filters to stream 0 +bf2.fn = 20; % Figs 20.... +bf2 = bf_filenames_helper(bf2, p.tplg_path, p.sofctl_path, p.data_path); +bf2 = bf_design(bf2); + +% Merge two beamformers into single description, set file names +bfm = bf_merge(bf1, bf2); +bfm.sofctl_fn = fullfile(p.sofctl_path, sofctl_fn); +bfm.tplg_fn = fullfile(p.tplg_path, tplg_fn); + +% Export files for topology and sof-ctl +bf_export(bfm); + +end + +function line4_two_beams(fs, d, a1, a2, tplg_fn, sofctl_fn, p); + +% Get defaults +bf1 = bf_defaults(); +bf1.fs = fs; + +% Setup array +bf1.array='line'; % Calculate xyz coordinates for line +bf1.mic_n = 4; +bf1.mic_d = d; + +% Copy settings for bf2 +bf2 = bf1; + +% Design beamformer 1 (left) +bf1.steer_az = a1; +bf1.input_channel_select = [0 1 2 3]; % Input four channels +bf1.output_channel_mix = [5 5 5 5]; % Mix filters to channel 2^0 and 2^2 +bf1.output_stream_mix = [0 0 0 0]; % Mix filters to stream 0 +bf1.fn = 10; % Figs 10.... +bf1 = bf_filenames_helper(bf1, p.tplg_path, p.sofctl_path, p.data_path); +bf1 = bf_design(bf1); + +% Design beamformer 2 (right) +bf2.steer_az = a2; +bf2.input_channel_select = [ 0 1 2 3]; % Input two channels +bf2.output_channel_mix = [10 10 10 10]; % Mix filters to channel 2^1 and 2^3 +bf2.output_stream_mix = [ 0 0 0 0]; % Mix filters to stream 0 +bf2.fn = 20; % Figs 20.... +bf2 = bf_filenames_helper(bf2, p.tplg_path, p.sofctl_path, p.data_path); +bf2 = bf_design(bf2); + +% Merge two beamformers into single description, set file names +bfm = bf_merge(bf1, bf2); +bfm.sofctl_fn = fullfile(p.sofctl_path, sofctl_fn); +bfm.tplg_fn = fullfile(p.tplg_path, tplg_fn); + +% Export files for topology and sof-ctl +bf_export(bfm); + +end