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/sof_dcblock_build_blob.m similarity index 94% rename from tools/tune/dcblock/dcblock_build_blob.m rename to src/audio/dcblock/tune/sof_dcblock_build_blob.m index 0b4293054f57..df4722cd8f10 100644 --- a/tools/tune/dcblock/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/sof_dcblock_paths.m b/src/audio/dcblock/tune/sof_dcblock_paths.m new file mode 100644 index 000000000000..fffb360511e4 --- /dev/null +++ b/src/audio/dcblock/tune/sof_dcblock_paths.m @@ -0,0 +1,18 @@ +function sof_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/tools/tune/dcblock/dcblock_plot_stepfn.m b/src/audio/dcblock/tune/sof_dcblock_plot_stepfn.m similarity index 90% rename from tools/tune/dcblock/dcblock_plot_stepfn.m rename to src/audio/dcblock/tune/sof_dcblock_plot_stepfn.m index e0c7c3d14db3..4a93f310eece 100644 --- a/tools/tune/dcblock/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/tools/tune/dcblock/dcblock_plot_transferfn.m b/src/audio/dcblock/tune/sof_dcblock_plot_transferfn.m similarity index 89% rename from tools/tune/dcblock/dcblock_plot_transferfn.m rename to src/audio/dcblock/tune/sof_dcblock_plot_transferfn.m index 513a291f666b..6c420a242ce2 100644 --- a/tools/tune/dcblock/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/tools/tune/dcblock/example_dcblock.m b/src/audio/dcblock/tune/sof_example_dcblock.m similarity index 68% rename from tools/tune/dcblock/example_dcblock.m rename to src/audio/dcblock/tune/sof_example_dcblock.m index 5e1d022c8e61..139f812ee869 100644 --- a/tools/tune/dcblock/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 = []; @@ -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"; @@ -49,32 +52,32 @@ function dcblock_blob_calculate(prm) R_coeffs = R * ones(1, channels); end -addpath ./../common +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); -rmpath ./../common +sof_dcblock_paths(false); end