From 15181e4ecc7b000fad115c6c8a3edf62daa3ce05 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 18:55:48 +0300 Subject: [PATCH 01/10] Audio: Move FIR core to math library This patch enables FIR filter core usage independently from FIR equalizer component. The inline of FIR core is removed to reduce the code size when FIR is used from several components. Each component also typically used inline FIR version for each supported PCM format that increased further the size. Most of the changes are due to rename and directory move of some FIR data structures and macros. The code functionality is not changed. Signed-off-by: Seppo Ingalsuo --- src/audio/CMakeLists.txt | 2 +- src/audio/Kconfig | 11 ++ src/audio/eq_fir/CMakeLists.txt | 2 +- src/audio/eq_fir/eq_fir.c | 51 ++----- src/audio/eq_fir/{fir.c => eq_fir_generic.c} | 54 +------ .../{fir_hifi2ep.c => eq_fir_hifi2ep.c} | 99 ++----------- .../eq_fir/{fir_hifi3.c => eq_fir_hifi3.c} | 102 +++---------- src/include/sof/audio/eq_fir/eq_fir.h | 50 +++++++ src/include/sof/audio/eq_fir/fir.h | 115 --------------- .../sof/{audio/eq_fir => math}/fir_config.h | 0 src/include/sof/math/fir_generic.h | 46 ++++++ src/include/sof/math/fir_hifi2ep.h | 61 ++++++++ src/include/sof/math/fir_hifi3.h | 67 +++++++++ src/include/user/eq.h | 19 --- src/include/user/fir.h | 32 ++++ src/math/CMakeLists.txt | 8 +- src/math/fir_generic.c | 121 ++++++++++++++++ .../fir_hifi2ep.h => math/fir_hifi2ep.c} | 130 ++++++++--------- .../eq_fir/fir_hifi3.h => math/fir_hifi3.c} | 137 ++++++++---------- 19 files changed, 570 insertions(+), 537 deletions(-) rename src/audio/eq_fir/{fir.c => eq_fir_generic.c} (62%) rename src/audio/eq_fir/{fir_hifi2ep.c => eq_fir_hifi2ep.c} (65%) rename src/audio/eq_fir/{fir_hifi3.c => eq_fir_hifi3.c} (75%) create mode 100644 src/include/sof/audio/eq_fir/eq_fir.h delete mode 100644 src/include/sof/audio/eq_fir/fir.h rename src/include/sof/{audio/eq_fir => math}/fir_config.h (100%) create mode 100644 src/include/sof/math/fir_generic.h create mode 100644 src/include/sof/math/fir_hifi2ep.h create mode 100644 src/include/sof/math/fir_hifi3.h create mode 100644 src/include/user/fir.h create mode 100644 src/math/fir_generic.c rename src/{include/sof/audio/eq_fir/fir_hifi2ep.h => math/fir_hifi2ep.c} (64%) rename src/{include/sof/audio/eq_fir/fir_hifi3.h => math/fir_hifi3.c} (61%) diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt index c5de90c3a1e9..c0418669b580 100644 --- a/src/audio/CMakeLists.txt +++ b/src/audio/CMakeLists.txt @@ -125,7 +125,7 @@ set(sof_audio_modules volume src asrc eq-fir eq-iir dcblock crossover) 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) diff --git a/src/audio/Kconfig b/src/audio/Kconfig index aa255382d4ca..20bbda541c06 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 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/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/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/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__ */ From 4ca520ec76ff2952ceb66c52d33cca37ee8b1693 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 19:19:11 +0300 Subject: [PATCH 02/10] Audio: Add Time Domain Fixed Beamformer (TDFB) processing component This patch adds the multi-microphone beamforming component. It enhances microphone capture via spatial noise suppression. The component is a quite generic FIR time domain filter bank and the fixed filter band needs to be programmed with super directive or other beamformer criteria filter coefficients. The coefficients are fixed but they can be re-programmed during run-time. The component reuses the FIR filter core but has different inputs selection and outputs mixing features than FIR EQ so it is made a separate new processing component. Signed-off-by: Seppo Ingalsuo --- CODEOWNERS | 1 + src/arch/xtensa/configs/baytrail_defconfig | 1 + .../xtensa/configs/baytrail_gcc_defconfig | 1 + src/arch/xtensa/configs/cherrytrail_defconfig | 1 + .../xtensa/configs/cherrytrail_gcc_defconfig | 1 + src/audio/CMakeLists.txt | 6 +- src/audio/Kconfig | 14 + src/audio/tdfb/CMakeLists.txt | 3 + src/audio/tdfb/tdfb.c | 549 ++++++++++++++++++ src/audio/tdfb/tdfb_generic.c | 209 +++++++ src/audio/tdfb/tdfb_hifi3.c | 232 ++++++++ src/audio/tdfb/tdfb_hifiep.c | 216 +++++++ src/include/sof/audio/tdfb/tdfb_comp.h | 80 +++ src/include/user/tdfb.h | 44 ++ 14 files changed, 1357 insertions(+), 1 deletion(-) create mode 100644 src/audio/tdfb/CMakeLists.txt create mode 100644 src/audio/tdfb/tdfb.c create mode 100644 src/audio/tdfb/tdfb_generic.c create mode 100644 src/audio/tdfb/tdfb_hifi3.c create mode 100644 src/audio/tdfb/tdfb_hifiep.c create mode 100644 src/include/sof/audio/tdfb/tdfb_comp.h create mode 100644 src/include/user/tdfb.h 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 c0418669b580..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,7 +122,7 @@ 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) @@ -129,6 +132,7 @@ 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 20bbda541c06..f3b04e893afb 100644 --- a/src/audio/Kconfig +++ b/src/audio/Kconfig @@ -300,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/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/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/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__ */ From ae881ea5c81df4ee561df532117215f18e0c55f2 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 19:27:27 +0300 Subject: [PATCH 03/10] Tools: Tune: Add TDFB configuration tool This patch adds the tool for creating beamformer configurations. The microphone array geometry and beam angle (azimuth, elevation) need to be specified. See the example scripts and sample array helper functions. The FIR blob quantize function needed a minor change to prevent strip of trailing zero coefficients. The beamformer filter bank needs to use equal length filters. Signed-off-by: Seppo Ingalsuo --- tools/tune/eq/eq_fir_blob_quant.m | 8 +- tools/tune/tdfb/bf_array_circ.m | 28 ++ tools/tune/tdfb/bf_array_line.m | 25 ++ tools/tune/tdfb/bf_array_lshape.m | 44 ++++ tools/tune/tdfb/bf_array_rect.m | 35 +++ tools/tune/tdfb/bf_array_rot.m | 58 +++++ tools/tune/tdfb/bf_blob_pack.m | 138 ++++++++++ tools/tune/tdfb/bf_defaults.m | 34 +++ tools/tune/tdfb/bf_design.m | 362 ++++++++++++++++++++++++++ tools/tune/tdfb/bf_export.m | 32 +++ tools/tune/tdfb/bf_filenames_helper.m | 38 +++ tools/tune/tdfb/bf_merge.m | 52 ++++ tools/tune/tdfb/example_line_array.m | 90 +++++++ tools/tune/tdfb/example_pass_config.m | 58 +++++ tools/tune/tdfb/example_two_beams.m | 135 ++++++++++ 15 files changed, 1135 insertions(+), 2 deletions(-) create mode 100644 tools/tune/tdfb/bf_array_circ.m create mode 100644 tools/tune/tdfb/bf_array_line.m create mode 100644 tools/tune/tdfb/bf_array_lshape.m create mode 100644 tools/tune/tdfb/bf_array_rect.m create mode 100644 tools/tune/tdfb/bf_array_rot.m create mode 100644 tools/tune/tdfb/bf_blob_pack.m create mode 100644 tools/tune/tdfb/bf_defaults.m create mode 100644 tools/tune/tdfb/bf_design.m create mode 100644 tools/tune/tdfb/bf_export.m create mode 100644 tools/tune/tdfb/bf_filenames_helper.m create mode 100644 tools/tune/tdfb/bf_merge.m create mode 100644 tools/tune/tdfb/example_line_array.m create mode 100644 tools/tune/tdfb/example_pass_config.m create mode 100644 tools/tune/tdfb/example_two_beams.m 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 From c495a3dc5537d4da0c1d3e9d4e7c2daca8f27b78 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 3 Sep 2020 18:49:36 +0300 Subject: [PATCH 04/10] Topology: Add support for DMICPROC macro to intel-generic-dmic.m4 This patch adds support to define from CMakeLists.txt or a higher level platform topology file the definition of DMICPROC and DMIC16KPROC to select desired capture processing algorithms pipeline from pipe-x-capture.m4 and pipe-x-capture-16khz.m4 macros instead of hard coded processing eq-iir-volume. It is preparation to add support for beamformer processing for microphones. The impacted platforms are sof-hda-generic, sof-cml-rt5682, and sof-apl-pcm512x. This patch does not change built topologies. Signed-off-by: Seppo Ingalsuo --- tools/topology/CMakeLists.txt | 14 ++++---- .../platform/intel/intel-generic-dmic.m4 | 32 +++++++++++++++---- tools/topology/sof-apl-pcm512x.m4 | 15 ++++++++- tools/topology/sof-cml-rt1011-rt5682.m4 | 5 +++ tools/topology/sof-cml-rt5682-kwd.m4 | 18 +++++++++-- tools/topology/sof-cml-rt5682.m4 | 4 +-- tools/topology/sof-hda-asrc.m4 | 4 +++ tools/topology/sof-hda-generic-idisp.m4 | 4 +++ tools/topology/sof-hda-generic.m4 | 4 +++ 9 files changed, 80 insertions(+), 20 deletions(-) diff --git a/tools/topology/CMakeLists.txt b/tools/topology/CMakeLists.txt index 5a341e5a7e7f..53673112bc51 100644 --- a/tools/topology/CMakeLists.txt +++ b/tools/topology/CMakeLists.txt @@ -103,12 +103,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 +204,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/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') From c2e329274f5e7881e685573c52694dfa3eaa6f2c Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 10 Sep 2020 18:36:27 +0300 Subject: [PATCH 05/10] Topology: Add TDFB setup m4 data blobs for mic arrays These are data files created by the example scripts in tools/tune/tdfb. The generation is time consuming and requires Octave or Matlab. Signed-off-by: Seppo Ingalsuo --- .../tdfb/coef_line2_50mm_az0el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az0el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az10el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az10el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az25el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az25el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az90el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_az90el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm10el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm10el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm25el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm25el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm90el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_50mm_azm90el0deg_48khz.m4 | 49 ++++++ .../m4/tdfb/coef_line2_50mm_pm10deg_16khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line2_50mm_pm10deg_48khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line2_50mm_pm25deg_16khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line2_50mm_pm25deg_48khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line2_50mm_pm90deg_16khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line2_50mm_pm90deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line2_67mm_az0el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az0el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az10el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az10el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az25el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az25el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az90el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_az90el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm10el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm10el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm25el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm25el0deg_48khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm90el0deg_16khz.m4 | 49 ++++++ .../tdfb/coef_line2_67mm_azm90el0deg_48khz.m4 | 49 ++++++ tools/topology/m4/tdfb/coef_line2_pass.m4 | 19 ++ .../tdfb/coef_line4_28mm_az0el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az0el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az10el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az10el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az25el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az25el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az90el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_az90el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm10el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm10el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm25el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm25el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm90el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_28mm_azm90el0deg_48khz.m4 | 88 ++++++++++ .../m4/tdfb/coef_line4_28mm_pm10deg_16khz.m4 | 165 ++++++++++++++++++ .../m4/tdfb/coef_line4_28mm_pm10deg_48khz.m4 | 165 ++++++++++++++++++ .../m4/tdfb/coef_line4_28mm_pm25deg_16khz.m4 | 165 ++++++++++++++++++ .../m4/tdfb/coef_line4_28mm_pm25deg_48khz.m4 | 165 ++++++++++++++++++ .../m4/tdfb/coef_line4_28mm_pm90deg_16khz.m4 | 165 ++++++++++++++++++ .../m4/tdfb/coef_line4_28mm_pm90deg_48khz.m4 | 165 ++++++++++++++++++ .../tdfb/coef_line4_78mm_az0el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az0el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az10el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az10el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az25el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az25el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az90el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_az90el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm10el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm10el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm25el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm25el0deg_48khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm90el0deg_16khz.m4 | 88 ++++++++++ .../tdfb/coef_line4_78mm_azm90el0deg_48khz.m4 | 88 ++++++++++ tools/topology/m4/tdfb/coef_line4_pass.m4 | 28 +++ 70 files changed, 5401 insertions(+) create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az0el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_az90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_azm90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm10deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm25deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_50mm_pm90deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az0el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_az90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_67mm_azm90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line2_pass.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az0el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_az90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_azm90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm10deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm25deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_28mm_pm90deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az0el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_az90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm10el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm25el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_16khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_78mm_azm90el0deg_48khz.m4 create mode 100644 tools/topology/m4/tdfb/coef_line4_pass.m4 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"' +) From 7b8f20a1c0dff365d3452682bf1d8c6f23d8499f Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 19:24:13 +0300 Subject: [PATCH 06/10] Topology: Add pipelines and topologies build for TDFB component This patch adds the playback (for test only) and capture pipelines with Time Domain Fixed Beamformer (TDFB) component. Topologies variants to test capture with beamformer are built for sof-hda-generic and sof-apl-pcm512x platforms. The beam direction is +/- 10 degrees as compromise between notebook camera and stereo capture. The dual beams preserve the stereo characteristic. The beamformers are added to both 48 kHz and 16 kHz DMIC capture pipelines. Signed-off-by: Seppo Ingalsuo --- tools/topology/CMakeLists.txt | 2 + tools/topology/m4/tdfb.m4 | 65 +++++++ tools/topology/sof/pipe-tdfb-capture-16khz.m4 | 88 +++++++++ tools/topology/sof/pipe-tdfb-capture.m4 | 88 +++++++++ .../pipe-tdfb-eq-iir-volume-capture-16khz.m4 | 179 ++++++++++++++++++ .../sof/pipe-tdfb-eq-iir-volume-capture.m4 | 179 ++++++++++++++++++ tools/topology/sof/pipe-tdfb-playback.m4 | 88 +++++++++ .../sof/pipe-tdfb-volume-capture-16khz.m4 | 145 ++++++++++++++ .../topology/sof/pipe-tdfb-volume-capture.m4 | 145 ++++++++++++++ 9 files changed, 979 insertions(+) create mode 100644 tools/topology/m4/tdfb.m4 create mode 100644 tools/topology/sof/pipe-tdfb-capture-16khz.m4 create mode 100644 tools/topology/sof/pipe-tdfb-capture.m4 create mode 100644 tools/topology/sof/pipe-tdfb-eq-iir-volume-capture-16khz.m4 create mode 100644 tools/topology/sof/pipe-tdfb-eq-iir-volume-capture.m4 create mode 100644 tools/topology/sof/pipe-tdfb-playback.m4 create mode 100644 tools/topology/sof/pipe-tdfb-volume-capture-16khz.m4 create mode 100644 tools/topology/sof/pipe-tdfb-volume-capture.m4 diff --git a/tools/topology/CMakeLists.txt b/tools/topology/CMakeLists.txt index 53673112bc51..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" 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/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') From 4a5feb7396e9df3cd32700f6889dd4133d79e0c2 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 19:38:37 +0300 Subject: [PATCH 07/10] Tools: Test: Create TDFB component test topologies The patch adds the playback and capture test pipelines. The configuration is set to `tdfb_coef_line2_50mm_pm90deg_16khz.m4'. A mistake in PIPELINE_FILTERx macro defining is fixed for IIR and FIR. The pipeline macros expect it to contain an include file or no macro defined at all. Defining it for empty string caused fail in topologies build when PIPELINE_FILTER1 is used for TDFB. Signed-off-by: Seppo Ingalsuo --- tools/test/topology/test-capture.m4 | 6 ++++++ tools/test/topology/test-playback.m4 | 5 +++-- tools/test/topology/tplg-build.sh | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) 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) From e374e7747c047e93807294ea230bff253be7afdd Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 11 May 2020 19:51:30 +0300 Subject: [PATCH 08/10] Tools: Test: Add TDFB tests scripts for testbench runs The script adds tdfb_test.m to check the TDFB beam pattern versus theoretical. It also measures the noise suppression capability of the test beamformer in simulated diffuse and random noise field. As simple quick test this patch adds TDFB to cell array of accepted components for process test. Note: There tests can't be used until load of UUID based non-legacy components is added to testbench. The scripts were used with earlier legacy mode version of the component. Signed-off-by: Seppo Ingalsuo --- tools/test/audio/process_test.m | 14 +-- tools/test/audio/tdfb_run.sh | 26 +++++ tools/test/audio/tdfb_test.m | 190 ++++++++++++++++++++++++++++++++ 3 files changed, 220 insertions(+), 10 deletions(-) create mode 100755 tools/test/audio/tdfb_run.sh create mode 100644 tools/test/audio/tdfb_test.m 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 From 5f93f77a6e58ac641fe8791fa51b8181c6e464cb Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 8 Sep 2020 19:44:25 +0300 Subject: [PATCH 09/10] Tools: Testbench: Add TDFB component UUID information This patch adds the needed information to testbench to load the TDFB component. Signed-off-by: Seppo Ingalsuo --- tools/testbench/include/testbench/common_test.h | 2 +- tools/testbench/testbench.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) 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 */ From 47ea071199f51ec6258e26391c1b47c6f416ac7c Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Wed, 9 Sep 2020 11:46:48 +0300 Subject: [PATCH 10/10] Tools: Testbench: Fix mistake in topology component load by UUID The if test needs to be done for comp_type. The index does not refer to comp types but items in lib_table that is not correct. As result testbench loads crossover for all UUID based components. The load of beamformer works correctly with this change. Signed-off-by: Seppo Ingalsuo --- tools/testbench/topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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;