From 1218c95eaa5de33a300073367d823089c9f0b1e5 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Wed, 7 Dec 2022 19:44:40 +0200 Subject: [PATCH] Tools: Remove dependency to SOF from check_volume_levels.m This patch adds local functions multitone() and level_dbfs() to script check_volume_levels.m to avoid need for SOF repository. The added functions are small and simple so the duplication is not an issue. Signed-off-by: Seppo Ingalsuo --- tools/check_volume_levels.m | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/tools/check_volume_levels.m b/tools/check_volume_levels.m index b6f16b17..baa8e751 100755 --- a/tools/check_volume_levels.m +++ b/tools/check_volume_levels.m @@ -22,9 +22,6 @@ function check_volume_levels(cmd, fn1, fn2, fn3, do_plot) do_plot = 0; end - addpath('../../sof/tools/test/audio/std_utils'); - addpath('../../sof/tools/test/audio/test_utils'); - if exist('OCTAVE_VERSION', 'builtin') pkg load signal end @@ -282,3 +279,29 @@ function plot_levels(meas, tc, lm) y(:,j) = filter(b, a, x(:,j)); end end + +% This function is copy of +% sof/tools/test/audio/test_utils/multitone.m +function x = multitone( fs, f, amp, tlength ) + n = round(fs*tlength); + t = (0:n-1)/fs; + nf = length(f); + if nf > 1 + ph = rand(nf, 1)*2*pi; + else + ph = 0; + end + + x = zeros(n, 1); + for i=1:length(f) + x = x + amp(i)*sin(2*pi*f(i)*t+ph(i))'; + end +end + +% This function is copy of +% sof/tools/test/audio/std_utils/level_dbfs.m +function dbfs = level_dbfs(x) + %% Reference AES 17 3.12.3 + level_ms = mean(x.^2); + dbfs = 10*log10(level_ms + 1e-20) + 20*log10(sqrt(2)); +end