From 7453cd1a8f56977f7217ad2eab55443166849e5d Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 3 Jun 2024 11:55:01 +0300 Subject: [PATCH 1/4] Audio: DCblock: Tune: Move dcblock setup scripts to module directory The change is done to consolidate the files belonging to the module. This patch only moves the files to a new location. Successive patches address the issues caused by this move. Signed-off-by: Seppo Ingalsuo --- {tools/tune/dcblock => src/audio/dcblock/tune}/README.md | 0 .../tune/dcblock => src/audio/dcblock/tune}/dcblock_build_blob.m | 0 .../tune/dcblock => src/audio/dcblock/tune}/dcblock_plot_stepfn.m | 0 .../dcblock => src/audio/dcblock/tune}/dcblock_plot_transferfn.m | 0 {tools/tune/dcblock => src/audio/dcblock/tune}/example_dcblock.m | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename {tools/tune/dcblock => src/audio/dcblock/tune}/README.md (100%) rename {tools/tune/dcblock => src/audio/dcblock/tune}/dcblock_build_blob.m (100%) rename {tools/tune/dcblock => src/audio/dcblock/tune}/dcblock_plot_stepfn.m (100%) rename {tools/tune/dcblock => src/audio/dcblock/tune}/dcblock_plot_transferfn.m (100%) rename {tools/tune/dcblock => src/audio/dcblock/tune}/example_dcblock.m (100%) diff --git a/tools/tune/dcblock/README.md b/src/audio/dcblock/tune/README.md similarity index 100% rename from tools/tune/dcblock/README.md rename to src/audio/dcblock/tune/README.md diff --git a/tools/tune/dcblock/dcblock_build_blob.m b/src/audio/dcblock/tune/dcblock_build_blob.m similarity index 100% rename from tools/tune/dcblock/dcblock_build_blob.m rename to src/audio/dcblock/tune/dcblock_build_blob.m diff --git a/tools/tune/dcblock/dcblock_plot_stepfn.m b/src/audio/dcblock/tune/dcblock_plot_stepfn.m similarity index 100% rename from tools/tune/dcblock/dcblock_plot_stepfn.m rename to src/audio/dcblock/tune/dcblock_plot_stepfn.m diff --git a/tools/tune/dcblock/dcblock_plot_transferfn.m b/src/audio/dcblock/tune/dcblock_plot_transferfn.m similarity index 100% rename from tools/tune/dcblock/dcblock_plot_transferfn.m rename to src/audio/dcblock/tune/dcblock_plot_transferfn.m diff --git a/tools/tune/dcblock/example_dcblock.m b/src/audio/dcblock/tune/example_dcblock.m similarity index 100% rename from tools/tune/dcblock/example_dcblock.m rename to src/audio/dcblock/tune/example_dcblock.m From 980a1ea7d7e1f632ac873ce33f7c4145915b3512 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 3 Jun 2024 12:08:53 +0300 Subject: [PATCH 2/4] Audio: DCblock: Fix search path to common functions A function dcblock_paths.m is added to handle add and remove of path. Signed-off-by: Seppo Ingalsuo --- src/audio/dcblock/tune/dcblock_paths.m | 18 ++++++++++++++++++ src/audio/dcblock/tune/example_dcblock.m | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/audio/dcblock/tune/dcblock_paths.m diff --git a/src/audio/dcblock/tune/dcblock_paths.m b/src/audio/dcblock/tune/dcblock_paths.m new file mode 100644 index 000000000000..26b679374270 --- /dev/null +++ b/src/audio/dcblock/tune/dcblock_paths.m @@ -0,0 +1,18 @@ +function dcblock_paths(enable) + +% dcblock_paths(enable) +% enable - set to true to enable needed search path +% set to false to disable the search paths +% + +% SPDX-License-Identifier: BSD-3-Clause +% +% Copyright (c) 2024, Intel Corporation. All rights reserved. + + common = '../../../../tools/tune/common'; + if enable + addpath(common); + else + rmpath(common); + end +end diff --git a/src/audio/dcblock/tune/example_dcblock.m b/src/audio/dcblock/tune/example_dcblock.m index 5e1d022c8e61..65f16a1c5c02 100644 --- a/src/audio/dcblock/tune/example_dcblock.m +++ b/src/audio/dcblock/tune/example_dcblock.m @@ -49,7 +49,7 @@ function dcblock_blob_calculate(prm) R_coeffs = R * ones(1, channels); end -addpath ./../common +dcblock_paths(true); blob8 = dcblock_build_blob(R_coeffs, endian); blob8_ipc4 = dcblock_build_blob(R_coeffs, endian, 4); @@ -74,7 +74,7 @@ function dcblock_blob_calculate(prm) figure dcblock_plot_stepfn(R_coeffs(1), fs); -rmpath ./../common +dcblock_paths(false); end From d43d7d413df129e0dfe44f317f50051968c761aa Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 3 Jun 2024 12:29:47 +0300 Subject: [PATCH 3/4] Audio: DCblock: Fix blob export paths after move The paths for exported blobs for topology and for sof-ctl need to be fixed after directory move. Signed-off-by: Seppo Ingalsuo --- src/audio/dcblock/tune/example_dcblock.m | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/audio/dcblock/tune/example_dcblock.m b/src/audio/dcblock/tune/example_dcblock.m index 65f16a1c5c02..7dd8d5ddddbe 100644 --- a/src/audio/dcblock/tune/example_dcblock.m +++ b/src/audio/dcblock/tune/example_dcblock.m @@ -31,13 +31,16 @@ function example_dcblock() function dcblock_blob_calculate(prm) % Set the parameters here -tplg1_fn = sprintf("../../topology/topology1/m4/dcblock_coef_%s.m4", prm.id); % Control Bytes File -tplg2_fn = sprintf("../../topology/topology2/include/components/dcblock/%s.conf", prm.id); +sof_tools = '../../../../tools'; +sof_tplg = fullfile(sof_tools, 'topology'); +sof_ctl = fullfile(sof_tools, 'ctl'); +tplg1_fn = sprintf("%s/topology1/m4/dcblock_coef_%s.m4", sof_tplg, prm.id); % Control Bytes File +tplg2_fn = sprintf("%s/topology2/include/components/dcblock/%s.conf", sof_tplg, prm.id); % Use those files with sof-ctl to update the component's configuration -blob3_fn = sprintf("../../ctl/ipc3/dcblock/coef_%s.blob", prm.id); % Blob binary file -alsa3_fn = sprintf("../../ctl/ipc3/dcblock/coef_%s.txt", prm.id); % ALSA CSV format file -blob4_fn = sprintf("../../ctl/ipc4/dcblock/coef_%s.blob", prm.id); % Blob binary file -alsa4_fn = sprintf("../../ctl/ipc4/dcblock/coef_%s.txt", prm.id); % ALSA CSV format file +blob3_fn = sprintf("%s/ipc3/dcblock/coef_%s.blob", sof_ctl, prm.id); % Blob binary file +alsa3_fn = sprintf("%s/ipc3/dcblock/coef_%s.txt", sof_ctl, prm.id); % ALSA CSV format file +blob4_fn = sprintf("%s/ipc4/dcblock/coef_%s.blob", sof_ctl, prm.id); % Blob binary file +alsa4_fn = sprintf("%s/ipc4/dcblock/coef_%s.txt", sof_ctl, prm.id); % ALSA CSV format file endian = "little"; From 8264c2616fb49cc7120b907b6faa8ffb6e91c685 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Mon, 3 Jun 2024 13:29:21 +0300 Subject: [PATCH 4/4] Audio: DCblock: Tune: Prefix top level functions with sof_ This patch renames with prefix sof_ all the top level functions for dcblock blobs design. Signed-off-by: Seppo Ingalsuo --- ..._build_blob.m => sof_dcblock_build_blob.m} | 2 +- .../{dcblock_paths.m => sof_dcblock_paths.m} | 2 +- ...lot_stepfn.m => sof_dcblock_plot_stepfn.m} | 2 +- ...sferfn.m => sof_dcblock_plot_transferfn.m} | 2 +- ...xample_dcblock.m => sof_example_dcblock.m} | 22 +++++++++---------- 5 files changed, 15 insertions(+), 15 deletions(-) rename src/audio/dcblock/tune/{dcblock_build_blob.m => sof_dcblock_build_blob.m} (94%) rename src/audio/dcblock/tune/{dcblock_paths.m => sof_dcblock_paths.m} (90%) rename src/audio/dcblock/tune/{dcblock_plot_stepfn.m => sof_dcblock_plot_stepfn.m} (90%) rename src/audio/dcblock/tune/{dcblock_plot_transferfn.m => sof_dcblock_plot_transferfn.m} (89%) rename src/audio/dcblock/tune/{example_dcblock.m => sof_example_dcblock.m} (86%) diff --git a/src/audio/dcblock/tune/dcblock_build_blob.m b/src/audio/dcblock/tune/sof_dcblock_build_blob.m similarity index 94% rename from src/audio/dcblock/tune/dcblock_build_blob.m rename to src/audio/dcblock/tune/sof_dcblock_build_blob.m index 0b4293054f57..df4722cd8f10 100644 --- a/src/audio/dcblock/tune/dcblock_build_blob.m +++ b/src/audio/dcblock/tune/sof_dcblock_build_blob.m @@ -1,4 +1,4 @@ -function blob8 = dcblock_build_blob(R_coeffs, endian, ipc_ver) +function blob8 = sof_dcblock_build_blob(R_coeffs, endian, ipc_ver) %% Settings qy_R = 30; diff --git a/src/audio/dcblock/tune/dcblock_paths.m b/src/audio/dcblock/tune/sof_dcblock_paths.m similarity index 90% rename from src/audio/dcblock/tune/dcblock_paths.m rename to src/audio/dcblock/tune/sof_dcblock_paths.m index 26b679374270..fffb360511e4 100644 --- a/src/audio/dcblock/tune/dcblock_paths.m +++ b/src/audio/dcblock/tune/sof_dcblock_paths.m @@ -1,4 +1,4 @@ -function dcblock_paths(enable) +function sof_dcblock_paths(enable) % dcblock_paths(enable) % enable - set to true to enable needed search path diff --git a/src/audio/dcblock/tune/dcblock_plot_stepfn.m b/src/audio/dcblock/tune/sof_dcblock_plot_stepfn.m similarity index 90% rename from src/audio/dcblock/tune/dcblock_plot_stepfn.m rename to src/audio/dcblock/tune/sof_dcblock_plot_stepfn.m index e0c7c3d14db3..4a93f310eece 100644 --- a/src/audio/dcblock/tune/dcblock_plot_stepfn.m +++ b/src/audio/dcblock/tune/sof_dcblock_plot_stepfn.m @@ -1,4 +1,4 @@ -function dcblock_plot_stepfn(R, fs) +function sof_dcblock_plot_stepfn(R, fs) % Plot the step response of a DC Blocking Filter % For a DC Blocking filter: H(z) = (1-1/z)/(1 - R/z) % Therefore the coefficients are b = [1 -1], a = [1 -R] diff --git a/src/audio/dcblock/tune/dcblock_plot_transferfn.m b/src/audio/dcblock/tune/sof_dcblock_plot_transferfn.m similarity index 89% rename from src/audio/dcblock/tune/dcblock_plot_transferfn.m rename to src/audio/dcblock/tune/sof_dcblock_plot_transferfn.m index 513a291f666b..6c420a242ce2 100644 --- a/src/audio/dcblock/tune/dcblock_plot_transferfn.m +++ b/src/audio/dcblock/tune/sof_dcblock_plot_transferfn.m @@ -1,4 +1,4 @@ -function dcblock_plot_transferfn(R, fs) +function sof_dcblock_plot_transferfn(R, fs) % Plot the transfer function. % For a DC Blocking filter: H(z) = (1-1/z)/(1 - R/z) % Therefore the coefficients are b = [1 -1], a = [1 -R] diff --git a/src/audio/dcblock/tune/example_dcblock.m b/src/audio/dcblock/tune/sof_example_dcblock.m similarity index 86% rename from src/audio/dcblock/tune/example_dcblock.m rename to src/audio/dcblock/tune/sof_example_dcblock.m index 7dd8d5ddddbe..139f812ee869 100644 --- a/src/audio/dcblock/tune/example_dcblock.m +++ b/src/audio/dcblock/tune/sof_example_dcblock.m @@ -1,4 +1,4 @@ -function example_dcblock() +function sof_example_dcblock() % Default blob, about 150 Hz cut-off @ 48 kHz prm.fc = []; @@ -52,32 +52,32 @@ function dcblock_blob_calculate(prm) R_coeffs = R * ones(1, channels); end -dcblock_paths(true); +sof_dcblock_paths(true); -blob8 = dcblock_build_blob(R_coeffs, endian); -blob8_ipc4 = dcblock_build_blob(R_coeffs, endian, 4); +blob8 = sof_dcblock_build_blob(R_coeffs, endian); +blob8_ipc4 = sof_dcblock_build_blob(R_coeffs, endian, 4); % Generate output files tplg_write(tplg1_fn, blob8, "DCBLOCK", ... - "Exported with script example_dcblock.m", ... - "cd tools/tune/dcblock; octave example_dcblock.m"); + "Exported with script sof_example_dcblock.m", ... + "cd tools/tune/dcblock; octave sof_example_dcblock.m"); sof_ucm_blob_write(blob3_fn, blob8); alsactl_write(alsa3_fn, blob8); tplg2_write(tplg2_fn, blob8_ipc4, "dcblock_config", ... - "Exported with script example_dcblock.m" , ... - "cd tools/tune/dcblock; octave example_dcblock.m"); + "Exported with script sof_example_dcblock.m" , ... + "cd tools/tune/dcblock; octave sof_example_dcblock.m"); sof_ucm_blob_write(blob4_fn, blob8_ipc4); alsactl_write(alsa4_fn, blob8_ipc4); % Plot Filter's Transfer Function and Step Response % As an example, plot the graphs of the first coefficient fs = 48e3; -dcblock_plot_transferfn(R_coeffs(1), fs); +sof_dcblock_plot_transferfn(R_coeffs(1), fs); figure -dcblock_plot_stepfn(R_coeffs(1), fs); +sof_dcblock_plot_stepfn(R_coeffs(1), fs); -dcblock_paths(false); +sof_dcblock_paths(false); end