From ce1b17e1795553f9bb9f1ac9d8b9171a02a94814 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 21 May 2026 15:52:27 +0300 Subject: [PATCH 1/3] Audio: Selector: Add blob for stereo to double mono This patch adds build of blob downmix_stereo_to_mono.conf. It is useful for processing mono input for MFCC. The sum of left and right multiplied by 0.5 is passed to both left and right sink channels. The comment in blobs export is also updated to current path of the script. Signed-off-by: Seppo Ingalsuo --- src/audio/selector/tune/sof_selector_blobs.m | 13 +++++++++- .../micsel/downmix_stereo_to_doublemono.conf | 26 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf diff --git a/src/audio/selector/tune/sof_selector_blobs.m b/src/audio/selector/tune/sof_selector_blobs.m index 1b370d4030de..b2f70069ee0b 100644 --- a/src/audio/selector/tune/sof_selector_blobs.m +++ b/src/audio/selector/tune/sof_selector_blobs.m @@ -23,6 +23,7 @@ function sof_selector_blobs() IPC4_CHANNEL_CONFIG_STEREO = 1; IPC4_CHANNEL_CONFIG_QUATRO = 5; IPC4_CHANNEL_CONFIG_5_POINT_1 = 8; + IPC4_CHANNEL_CONFIG_DUAL_MONO = 9; IPC4_CHANNEL_CONFIG_7_POINT_1 = 12; % Matrix for 1:1 pass-through @@ -39,6 +40,16 @@ function sof_selector_blobs() sel.coeffs(1, 2) = 0.7071; stereo_to_mono_pack8 = write_blob(sel, "downmix_stereo_to_mono"); + % Stereo to dual-mono downmix + sel.ch_count = [2 2]; + sel.ch_config = [IPC4_CHANNEL_CONFIG_STEREO IPC4_CHANNEL_CONFIG_DUAL_MONO]; + sel.coeffs = zeros(8,8); + sel.coeffs(1, 1) = 0.5; + sel.coeffs(1, 2) = 0.5; + sel.coeffs(2, 1) = 0.5; + sel.coeffs(2, 2) = 0.5; + stereo_to_doublemono_pack8 = write_blob(sel, "downmix_stereo_to_doublemono"); + % 5.1 to stereo downmix sel.ch_count = [6 2]; sel.ch_config = [IPC4_CHANNEL_CONFIG_5_POINT_1 IPC4_CHANNEL_CONFIG_STEREO]; @@ -189,7 +200,7 @@ function write_8bit_packed(pack8, blobname) blob8 = sof_selector_build_blob(pack8); str_config = "selector_config"; str_exported = "Exported with script sof_selector_blobs.m"; - str_howto = "cd tools/tune/selector; octave sof_selector_blobs.m"; + str_howto = "cd src/audio/selector/tune; octave sof_selector_blobs.m"; sof_tools = '../../../../tools'; sof_tplg = fullfile(sof_tools, 'topology'); sof_tplg_selector = fullfile(sof_tplg, 'topology2/include/components/micsel'); diff --git a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf new file mode 100644 index 000000000000..e9e2d1e78608 --- /dev/null +++ b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf @@ -0,0 +1,26 @@ +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m +Object.Base.data."selector_config" { + bytes " + 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0x84,0x00,0x00,0x00,0x01,0xd0,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00" +} From a64f3cb82c03b7adf2a1e26344001b633ec63f17 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 26 May 2026 15:24:15 +0300 Subject: [PATCH 2/3] Tools: Topology: Update Micsel configuration blob comments The location of the Micsel blobs export script changed. This patch updates the comment text in each configuration blob to show the correct path to the script. Signed-off-by: Seppo Ingalsuo --- .../components/micsel/downmix_51_to_mono_with_lfe.conf | 4 ++-- .../components/micsel/downmix_51_to_stereo_with_lfe.conf | 4 ++-- .../topology2/include/components/micsel/downmix_71_to_51.conf | 4 ++-- .../components/micsel/downmix_71_to_mono_with_lfe.conf | 4 ++-- .../components/micsel/downmix_71_to_stereo_with_lfe.conf | 4 ++-- .../include/components/micsel/downmix_stereo_to_mono.conf | 4 ++-- .../topology2/include/components/micsel/passthrough.conf | 4 ++-- .../components/micsel/stereo_endpoint_playback_updownmix.conf | 4 ++-- .../topology2/include/components/micsel/upmix_mono_to_51.conf | 4 ++-- .../topology2/include/components/micsel/upmix_mono_to_71.conf | 4 ++-- .../include/components/micsel/upmix_mono_to_stereo.conf | 4 ++-- .../include/components/micsel/upmix_stereo_to_51.conf | 4 ++-- .../include/components/micsel/upmix_stereo_to_71.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_llrr.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_lrlr.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_rrll.conf | 4 ++-- 16 files changed, 32 insertions(+), 32 deletions(-) diff --git a/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf index 76aa09754ebe..ccfac873938d 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf index 0fb37e1d840b..b6e3ed571a74 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf index 93fe5fb1c3f9..75eab9b56b07 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf index 1e67d36bf839..ae3961a4af49 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf index b94ea59c1a9e..aab7d42c792b 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf index 510d303eb2d9..8eeb50cc9a96 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/passthrough.conf b/tools/topology/topology2/include/components/micsel/passthrough.conf index 0b795084ba29..23e1c7335bc0 100644 --- a/tools/topology/topology2/include/components/micsel/passthrough.conf +++ b/tools/topology/topology2/include/components/micsel/passthrough.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf b/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf index 70500ef0e0fa..1acc3f93eed6 100644 --- a/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf +++ b/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 10-Mar-2026 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf index c19828913473..ee8a11355c89 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf index c19828913473..ee8a11355c89 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf index 33ef4a7672f2..12a956940eaf 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf index b411410cab70..4cfb29e5af54 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf index b411410cab70..4cfb29e5af54 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf index 4b4be2b34840..110c98de9eb6 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf index 70489a0a0040..967e7327132b 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf index d88ba2063cd6..cf277480ecf7 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, From 31b42795497c0b763585588e81bc6f81d02d3d1e Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 21 May 2026 16:21:36 +0300 Subject: [PATCH 3/3] Tools: Topology: Add Micsel module to MFCC capture pipeline This patch adds the Micsel (or Selector) module with a configuration blob for stereo to double mono to source of MFCC. The Micsel module has better input select capabilities than bare MFCC module. The sum of L+R provides a slightly better SNR than the single (left) channel pick with MFCC for it's mono processing. It will reduce a bit noise in the audio features and possibly improve speech recognition quality. The previous pipeline class host-gateway-src-mfcc-capture.conf is removed because there is no other use for it. Signed-off-by: Seppo Ingalsuo --- tools/topology/topology2/cavs-sdw.conf | 2 +- ...host-gateway-src-micsel-mfcc-capture.conf} | 40 +++++++++++++++---- .../intel/sdw-dmic-audio-feature.conf | 11 ++++- .../intel/sdw-jack-audio-feature.conf | 11 ++++- 4 files changed, 54 insertions(+), 10 deletions(-) rename tools/topology/topology2/include/pipelines/cavs/{host-gateway-src-mfcc-capture.conf => host-gateway-src-micsel-mfcc-capture.conf} (69%) diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index 6932543c06e5..10768b3f9683 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -27,7 +27,7 @@ - + diff --git a/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf b/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf similarity index 69% rename from tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf rename to tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf index 793f71b883ab..21b8170d393b 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf @@ -1,13 +1,13 @@ # -# SRC-MFCC capture pipeline +# SRC-Micsel-MFCC capture pipeline # # This class provides host pipeline for capture with MFCC audio features input. # All attributes defined herein are namespaced by alsatplg to -# "Object.Pipeline.host-gateway-src-mfcc-capture.N.attribute_name". +# "Object.Pipeline.host-gateway-src-micsel-mfcc-capture.N.attribute_name". # -# Usage: host-gateway-src-mfcc-capture pipeline object can be instantiated as: +# Usage: host-gateway-src-micsel-mfcc-capture pipeline object can be instantiated as: # -# Object.Pipeline.host-gateway-src-mfcc-capture."N" { +# Object.Pipeline.host-gateway-src-micsel-mfcc-capture."N" { # period 1000 # time_domain "timer" # } @@ -20,9 +20,10 @@ + -Class.Pipeline."host-gateway-src-mfcc-capture" { +Class.Pipeline."host-gateway-src-micsel-mfcc-capture" { @@ -32,8 +33,8 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { ] # - # host-gateway-src-mfcc-capture objects instantiated within the same alsaconf - # node must have unique pipeline_id attribute + # host-gateway-src-micsel-mfcc-capture objects instantiated within the + # same alsaconf node must have unique pipeline_id attribute # unique "instance" } @@ -70,6 +71,27 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { ] } + micsel."1" { + num_input_audio_formats 1 + num_output_audio_formats 1 + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_rate 16000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_rate 16000 + out_channels 2 + out_ch_cfg $CHANNEL_CONFIG_DUAL_MONO + } + ] + } + mfcc."1" { num_input_audio_formats 1 num_output_audio_formats 1 @@ -123,6 +145,10 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { !route [ { source src.$index.1 + sink micsel.$index.1 + } + { + source micsel.$index.1 sink mfcc.$index.1 } ] diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf index 87039b261597..a7baa1d283b7 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf @@ -6,7 +6,7 @@ Define { SDW_DMIC_AUDIO_FEATURE_CAPTURE_PIPELINE_ID 131 } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_DMIC_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -15,6 +15,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_DMIC_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_DMIC_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { Object.Control { bytes."1" { diff --git a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf index 9645199d6907..f50733c21c3a 100644 --- a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf +++ b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf @@ -6,7 +6,7 @@ Define { SDW_JACK_AUDIO_FEATURE_CAPTURE_PIPELINE_ID 130 } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_JACK_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -15,6 +15,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_JACK_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_JACK_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { Object.Control { bytes."1" {