Commit Graph

114 Commits

Author SHA1 Message Date
Seppo Ingalsuo ae4c30207e Tools: Tune: Fix typos tools/tune/*
This patch fixes the typos in the setup tools Matlab code.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-02-09 09:52:17 +00:00
Seppo Ingalsuo 4a2d69b50b Tools: Topology: Updated TDFB macro files
The tdfb_controls.m4 is changed for better 15 degree control enum
spacing for beam direction. The file is with this change dedicated
for line arrays with physical limitation to -90 to +90 degrees that
is just achievable with 16 max. enum values.

The new tdfb_controls360.m4 uses the previous 30 degree spacing for
360 degrees arrays such as circular. The pipeline macros for 360
degrees are added to pipelines macros. The difference is only include
of 360 degrees controls version.

The topology development CMakeList.txt is changed to build topologies
with TDFB with single dual mono -90 to +90 degree angle steerable
beam. The stereo dual beam setup files are preserved and updated but
currently used only for testbench test for more complex configuration.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-02-08 09:14:20 +00:00
Seppo Ingalsuo 7d05389b63 Tools: Tune: EQ: Add legend to frequency response plot
This patch adds legend to plot since it was difficult to see to
which play/capture channel which curve corresponded to. In script
selftest case a label called Reference is added to the legend.

Also an indentation issue is fixed in the script.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-01-25 15:53:09 +00:00
Seppo Ingalsuo 6e2084ee8e Tools: Tune: EQ: In mls_freq_resp wait longer for capture to end
The 3s wait was not enough long time to wait for recording to complete
before copy for analysis so the wait is increased to 5s. The total
recording lengths were variable and not same 7s for a completed
recording.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-01-25 15:53:09 +00:00
Seppo Ingalsuo a9fb42836f Tools: Tune: EQ: Improve robustness of mls_freq_resp script
This patch increases end marker seek length from 3s to 5s to
allow more drift for arecord and aplay timing for test signal.
The captured waveform is now always plotted and when start
and end markers are found the test signal is plotted with green
color.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-01-25 15:53:09 +00:00
Seppo Ingalsuo 387d74ea6d Tools: Tune: EQ: Fix script compatibility with Matlab
The script mls_freq_resp.m has worked previously with Octave
while failed with Matlab because it does not have source
command. This patch ads function get_config() that reads
the configuration file, evaluates it, and returns the
needed variable.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-01-25 15:53:09 +00:00
Seppo Ingalsuo f976333a81 Tools: Tune: TDFB: Updates to design scripts for sound direction estimate
This patch contains improvements to TDFB setup scripts and examples
those are related to sound direction estimation. The changes are add
of 15 degree angle spacing to enum control, add of rotated noise sound
create for sound direction testing in simulated acoustics.

The example line, circular, and xyz array scripts are updated for single
dual mono beam that is controllable in 15 degree or 30 degree steps. All
the two beam design examples are moved into example_two_beams.m.

The patch also contains noise field covariance matrix diagonal load
increase to -40 dB. I noticed uneven frequency response in some
designs due to numerical instability. The increased diagonal load makes
the automatic design procedure more robust at minimal hit in noise
suppression performance.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-01-25 15:50:54 +00:00
Seppo Ingalsuo 0d296ce7d1 Tools: Tune: Make example FIR response long for large IPC test
The loudness EQ is changed to 250 taps to create large IPC
message type. It also improves subjective quality of this
effect with better bass response. The earlier version was
made very short to fit the that time IPC size limit.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-12-20 22:33:06 +00:00
Brent Lu 8ed1e90b5c topology: pipe-demux-eq-iir-playback: change slot mapping
Change the default slot mapping from L_lo-L_hi-R_lo-R_hi to
L_lo-R_lo-L_hi-R_hi so slot 0/1 is for woofer and slot 2/3 is for
tweeter.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2021-11-25 16:41:37 +00:00
Seppo Ingalsuo 3eeda96c0c Test: Add cmocka test case for IIR equalizer
This patch adds for the IIR equalized component a test with
comparison 100 ms of Octave generated output to output of the
component. The test signal is a full scale chirp signal. The
IIR response is both amplifying and attenuating to trigger as
much as possible issues with internal overflows.

All test data was generated by Octave script
cmocka_data_eq_iir.m. Re-run of script updates the used header
files the in cmocka tests directory.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-11-08 12:14:43 +00:00
ShriramShastry 3d674bca57 TDFB Improve directivity index and WNG
Added singular value decomposition algorithm
	for diagonal matrix calculation. Added filters for side
	lobe artifacts.

Signed-off-by: ShriramShastry <malladi.sastry@intel.com>
2021-08-30 11:00:52 +01:00
Seppo Ingalsuo 23c7e4739c Topology: Add development example of demux and EQ band-split pipeline
This patch adds topologies sof-apl-nocodec-demux-eq-2ch4ch.tplg and
sof-apl-nocodec-demux-eq-4ch4ch.tplg. Playback of 2ch creates 4ch
output in format L_lo, L_hi, R_lo, and R_hi. An example band-split
at 2 kHz is configured for EQ processing. The low band contains
an additional 80 Hz high-pass.

The pipeline was tested in UP2 device. The nocodec topology enables
an useful SPP loopback mode. The capture PCM is connected to DAI
loopback so this pipeline can be tested with simultaneous 2ch aplay
and 4ch arecord.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-08-26 09:57:35 +01:00
Seppo Ingalsuo 4c376680f5 Tools: Fix topology1 path in Matlab language scripts
The change for topology1 was missing from various tuning
and testing scripts those access binary blob data from
topology m4 directories.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-21 12:13:36 +01:00
Seppo Ingalsuo bd6db82eeb Tools: Tune: TDFB: Do not include plot figures to saved .mat files
This saves disk space from unnecessary data.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo a5fc4a643f Tools: Tune: Update TDFB topology include files location
Topologies 1.0 location has been changed. This update allows the
tool to create the files into correct path.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo b9a14709bf Tools: Tune: Add option for delay-and-sum to beamformer design
The delay-and-sum beamformer has highest white noise gain (WNG)
performance. It's good id suppressing microphone self noise. The
beam is steered with pure delay adjust in the all-pass filter
bank. Default type is still super directive. Use DSB or SDB
as beamformer type to select.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo deb7849f76 Tools: Fixes to TDFB tune and test scripts
Matlab does not support isfile(), so another command is used to
check if a file exists. The new way works both in Octave and Matlab.

The bf_defaults.m is fixed to properly initialize empty strings
to cell arrays. It's needed with minimal command like usage
as shown in SOF Docs examples.

In bf_design.m the num_filters determination is moved after array
helpers because other than line and circle do not use mic_n parameter.
The bug resulted to zero num_filters.

In bf_merge.m the unused bf3 and bf4 are removed.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo 46d52efdd8 Tools: Tune: Add multiple angles and beam off settings add to TDFB blob
This patch essentially adds support for steer_az/steer_el to be
vector instead of scalar. The beam off preset is added by default
automatically for N-channel in N-channel out configurations. Microphone
(x,y,z) coordinates are passed in to blob for direction of arrival
reporting.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo 92ddb0d137 Tools: Tune: Fix beamformer rotate and diffuse simulation data generate
This patch fixes the incorrect delaying of simulation input signal to
microphones. Instead of delaying the old code advanced the input the
more the larger the input is. E.g. It caused the tests for line arrays
to show a mirrored beam pattern.

The num_filters is replaced by mic_n (microphones count). It is the
correct count to use here though usually filters count is the same.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo 53c7ea6dd1 Tools: Tune: Add frequency response and group delay plots
The plots help to understand beamformer channel filters characteristic.
Frequency response is usually all-pass type and group delays match
the delays need to time-align the waveforms from steer angle.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Seppo Ingalsuo 064285e19c Tools: Tune: Center the beamformer impulse responses
This patch improves the beamformer performance (vs. tap count) by
shifting the extract window location for IFFT output by mean of
all impulse responses center. Previously the first filter was centered
and other filters were more towards start or end of impulse response.
The change helps to cope with smaller filter length with larger size
arrays with steer angles those spread the impulse response further
away time-wise from each other.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2021-07-14 15:59:24 +01:00
Iuliana Prodan 3472ae1d6e tools: update SRC tool for 96 kHz mode, for tiny profile
This patch adds 96 kHz into SRC generator script for tiny
profile.

I've added 96 kHz in src_tiny_int16.m and follow the steps
from https://thesofproject.github.io/latest/algos/src/sample_rate_conversion.html
to generate the coefficients.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2021-04-09 13:54:34 +01:00
sriram a47a8a6a21 audio: tools: fix matlab/octave directory compatibility
To support exist function - fullfile() path addition is to prevent Matlab (differently than Octave)
to give false positive with some other directory location with it's search path

Added correction to isempty.

Signed-off-by: ShriramShastry <malladi.sastry@intel.com>
2021-01-22 15:28:32 +00:00
Pin-chih Lin 9dc85454be tools: tune: Add tools to generate ctrl bytes for Multiband DRC
This commit adds the tools to generate the control bytes for the
multiband_drc component. To generate the control bytes, run the
example_multiband_drc.m script.

To tweak the parameters modify the values in example_multiband_drc.m
and run it.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2020-12-28 13:19:54 -08:00
Seppo Ingalsuo 51b64f460a Tools: Tune: Add variable initialize to EQ blobs plotter
This fix adds initialization and declaration of variable f_single
to avoid a previously overlooked error when accessing it in the
end of script. It produces the plot but with a warning print.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-12-15 13:39:06 +00:00
Seppo Ingalsuo da9e0d3c41 Tools: Tune: Add tool for DMIC FIR filters setup
This patch adds the the Matlab script dmic_init() that simulates
initialization of the Intel PDM digital microphones decimation
block. The tool computes the needed FIR filters and exports
them as C header files. The script dmic_batch computes all the
currently used decimation settings.

The generated header files from subdirectory include need to be
manually copied to src/include/sof/audio/coefficients/pdm_decim/
and the header file pdm_decim_table.h edited manually if the
header file names were changed due to different filter characteristic
(band frequencies, stop-band attenuation).

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-11-20 11:42:24 +00:00
Pin-chih Lin 51c034c408 tools: tune: Generate ctrl bytes from params for DRC
Used the similar parameter set as the DRC kernel in CRAS to generate ctrl
bytes for DRC component.

Plotted input-output dB response curve with the specific parameter set.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2020-11-05 11:35:40 -08:00
Seppo Ingalsuo 0963d88ba3 Tools: Tune: TDFB: Simplify typical usage of bf_design(), bf_export()
The bf_defaults() now sets the default directory locations for
for bf_export() so it does not need to be set in every script.

Also the defaults for input channels and output mixing are set to
that in typical design they do not need to be set.

The default distance for look direction is set to 5.0m so it is better
guaranteed in far field for even relatively large arrays. The far field
assumes planar sound waves. The design equations do not fully support
near field with spherical waves.

The FFT length is changed to 1024 to enable design of longer filter bank
filters. There's no compromise in performance for for e.g. length 64.

The incorrect use of mic_n (number of microphones) is replaced by
num_filters. It's possible define beamformer that ignores some mic
channels so these are not the same.

The automatic systematic design file names are now created for all array
types, not just line.

The script is made more flexible to run without need to export data and
clutter just to quickly interactively check from plots what kind of
beam pattern and other characteristic some array, e.g. circular with
some radius and mic count gives.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-10-30 13:45:29 +00:00
Seppo Ingalsuo d88e36987b Tools: Tune: TDFB: Fix typo in copyright text year
This patch fixes the small mistake.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-10-30 13:45:29 +00:00
Seppo Ingalsuo bede56972c Tools: Tune: TDFB: Updates for array geometry helpers and add 3D array
This patch adds the missing XYZ 3D array helper and does minor fixes
for two others. The L-shape microphones orientation is made similar as
in rectangular array by inverting the y-axis. The missing centering
of rectangular array is added.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-10-30 13:45:29 +00:00
Pin-chih Lin 68553688f7 tools: tune: Add tools to generate ctrl bytes for DRC
This commit adds the tools to generate the control bytes for the
drc component. To generate the control bytes, run the example_drc.m
script.

To tweak the parameters modify the values in example_drc.m and run it.

This is still WIP. A fixed set of coefficients is temporarily used in
drc_generate_config.m

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2020-10-08 11:51:16 +01:00
Seppo Ingalsuo d9de74b231 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 <seppo.ingalsuo@linux.intel.com>
2020-09-13 15:52:24 +01:00
Sebastiano Carlucci 408d735068 tools: tune: Add tools to generate ctrl bytes for Crossover
This commit adds the tools to generate the control bytes for the
crossover component. To generate the control bytes, run the
example_crossover.m script.

The parameters of the crossover components are:
- number of outputs
- sink assignments (routing crossover output to different pipelines)
- frequency cutoffs

To tweak the parameters modify the values in example_crossover.m and run
it.

Refer to sof/src/include/user/crossover.h for more information on how
the crossover config is structured and how sink assignments are done.

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-09-02 14:31:25 +01:00
Seppo Ingalsuo 145d9aa09f Tools: Tune: Improve robustness of remote audio measure
Frequency response measure script mls_freq_resp.m could fail due to
network or ssh execution delays. This patch increases the recording
time by 3 seconds to ensure that remote device playback via ssh for
the relevant parts is within the local capture window.

Also the start marker search is done for first 5 seconds of captured
test signal. The script exits cleanly if the start and end markers
were not found and the captured waveform is shown to help understand
the possible network delays caused issue.

The BSD-3-Clause text is updated to short version.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-29 15:59:33 +01:00
Seppo Ingalsuo efbfa2c4dd Tools: Tune: Add generation for SRC profile small int32
This patch adds script src_small_int32.m to generate the intermediate
size SRC coefficients set. The export functions are updated for
short BSD copyright and to output licence text and needed header
files inclusions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-21 09:37:36 +01:00
Seppo Ingalsuo 33e642795f Topology: Add EQ IIR presets bundle coefficients blob data and tool
This patch adds for EQ tests and presets switch development a
bundle with five presets: flat, loudness, bass-boost, band-pass,
and high-pass. The m4 file is used by including to topologies. The
text format file is for sof-ctl.

The added code to script example_iir_eq.m is included. The blob is
also useful for testing multi-part IPC for EQ component. The existing
examples were not large enough to exercise the feature.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-18 14:42:46 +01:00
Seppo Ingalsuo 3e7edf4e02 Tools: Tune: Fix mistake in EQ blob plot function
The case where blob decoding is requested for single frequency,
e.g. 1 kHz the magnitude and group delay vectors did not have
size of one frequency. This patch fixes the issue.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-05-07 17:30:40 +01:00
Seppo Ingalsuo 594e031b6e Tools: Tune: Improve EQ blob decode scripts
This patch adds user friendly function eq_blob_plot(file) to
plot the IIR or FIR equalizer response that will be applied for
each channel.

The IIR and FIR decoders are modified to better support the higher
level script.

The copyright texts in impacted scripts are are updated to short
BSD-3-Clause style.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-16 11:48:22 +01:00
Seppo Ingalsuo 365ffbd02f Tools: Tune: Suppress sof-ctl text output when getting ABI header
This patch reduces amount of printed text to screen when Matlab/Octave
EQ tool needs configuration blob header information. The output is
redicted to /dev/null.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-16 11:48:22 +01:00
Seppo Ingalsuo 32f3b31345 Tools: Tune: Cleanup for example speaker EQ script
This patch updates the generated file names and locations. The
private data names for topology are changed to DEF_EQIIR_PRIV
and DEF_EQFIR_PRIV to work with updated private date naming scheme.

The copyright text is updated to short BSD-3-Clause text version.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Seppo Ingalsuo 2831f463db Tools: Tune: Clean and improve example FIR EQ generator script
This patch cleans the FIR examples generation with more consistent
directories output and file names. The EQ private data name is
renamed for a more consistent scheme into DEF_EQFIR_PRIV for all
generated coefficient data files.

The copyright text is updated to new shorter BSD-3-Clause version.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Seppo Ingalsuo b7d7d9dc62 Tools: Tune: Cleanup of example IIR responses generator script
This patch makes the script more consistent with file names
and paths lets the script to output more useful example IIR
responses into m4 directory for usage with topologies and
testing.

The not consistent naming of IIR private data is aligned. The
label DEF_EQIIR_PRIV is used always that should be macro replaced
by pipeline specific name prior to including them into topology to
enable several EQ instances to be set up with different filter
coefficients.

The copyright text for updated files is updated to short BSD-3-Clause
version.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Seppo Ingalsuo c186cbed97 Tools: Tune: Fix wrong gain in IIR high-pass responses generator
This patch fixes the issue in script example_iir_eq.m with gain
parameter for function hp_iir_eq(). The last parameter was hard
coded to 0 that caused all 20 dB labeled topologies to to have in
reality 0 dB gain.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Sebastiano Carlucci c6f83acd0e tools: tune: Add tools to generate bytes control
This commits adds the scripts to generate the bytes control blob
for the DCB. It also provides some generic scripts to convert
valid binary blob to a csv or binary file (usable by sof-ctl)
or an m4 byte control topology file.

This commit adds two new folders under tools/tune
- dcblock: scripts to generate the blob in Octave
- common: scripts to convert any generic blob to a config file.

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-03-26 16:49:37 +00:00
Seppo Ingalsuo 6a3b2a9f46 Tune: Fix help text for SRC generator
This patch corrects the shown parameters orders for help text
and updates the copyright text style.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-29 14:30:53 +00:00
Seppo Ingalsuo 6f99d71d58 Tune: SRC: Fix rate exclusion in generator script
This patch fixes a mistake that forces generation of rate into
fs_inout matrix diagonal. The purpose of this test is to enable
SRC to pass equal input and output rate, so in case not equal
input and output rates the generator would not disable such
conversion if requested.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-29 14:30:53 +00:00
Seppo Ingalsuo e0a9afe6a7 Topology: Apply high-pass for HDA capture streams
This patch replaces in topology sof-hda-generic.m4 the use of macro
pipe-volume-capture.m4 usage with a new macro pipe-highpass-capture.m4.
The used 40 Hz cut-off is sufficient to suppress the DC pulse in the
beginning of capture from headset with minimal impact to other
applications such as recording music.

The capture volume ramp length is changed from 250 ms to 400 ms. The
longer ramp is feasible because the microphone path seems to open
at 500 ms from capture. It helps to attenuate the remaining noises
in the beginning of capture.

The patch also adds additional high-pass responses macros for
topology with different 20-50 Hz cut-off frequencies into
SOF/tools/topology/m4.

The changes for Matlab/Octave script example_iir_eq.m that
generated the filter coefficients are included here as well.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-16 19:48:33 +00:00
Seppo Ingalsuo f7b9e6270f Tools: EQ: Make a light FIR configuration to test with GCC build
The Xtensa GCC build on APL platform can process about 40 taps
FIR filter so it is useful to have one such configuration. The
eq_fir_mid.txt is be applied with sof-ctl tool.

The patch contains the Octave script modification. The print of final
filter length is added to blob packer script to see the resulting
length when the filter is generated. The small filter spec change
helps the filter tool to achieve result that is close to requested
shape.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-12-20 13:47:18 +00:00
Curtis Malainey c1be04e64c EQ: GUI: Remove globals
Globals should not exist if they don't have to, they are limiting to
extensibility

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 64f60cdad3 EQ: GUI: Add remote deployment
Add function to deploy eq automatically to dut at runtime

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 33048b7f72 EQ: GUI: Load dsp.ini from ChromeOS
Add function that parses dsp.ini files into the GUI format and then into
SOF format.

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 50e27a10b0 EQ: GUI: Add external control window
Add window for controlling loading and deployment

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey fe2d9c197f EQ: Handle edge case in peaking filter
Handle div by 0 case for gui

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 30bbfb49bb EQ: Add chromium signal processing elements
Add modules for signal processing of biquad filters needed for chromium

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 65c6da750a EQ: Add gui for IIR filters
Recreate gui for audio-tuning.appspot.com using SOF config. For IIR
filters only currently. Once DRC is ported then GUI can be ported as
well.

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Seppo Ingalsuo 92ec08dad5 Tools: Tune: Fix file paths for example FIR script
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-09-13 10:25:58 +01:00
Seppo Ingalsuo fa2f3a51ad Tools: Tune: Get SOF ABI header for EQs with sof-ctl
This patch avoids the need to main SOF ABI version information in
Matlab/Octave file eq_get_abi.m for equalizer tools. The ABI
header is fetched via new "-p" command line option for sof-ctl.

The BSD 3 clause copyright text is also updated to new short style.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-09-13 10:25:58 +01:00
Seppo Ingalsuo 92b23fa856 Tools: EQ: Don't force upper case EQ response name
The existing IIR response names are not all upper case. This patch
removes the conversion to upper case to be able to automatically
generate the topology m4 syntax example equalizers.

Without this patch run of example_iir_eq.m script causes successive
topologies build to fail.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-09-08 13:19:48 +01:00
Seppo Ingalsuo c55aed4793 Tune: Update file path for demo EQ responses
This patch fixes the wrong file path to output example EQs and places
an identifier string to high-pass responses used in topology embedded
filter setup. The identifier is needed to correctly refer in topology
to right response when there are several similar type EQs in the
topology e.g. two separate IIR filters.

A new 16 kHz rate high-pass filter export is added into the script to
be used in voice pipelines.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-08-19 09:47:04 +02:00
Seppo Ingalsuo ee5c247c57 SRC: Add attenuation of -1 dB into processing to avoid saturation
This patch replaces all the filter coefficients to avoid the
unpleasant effect of samples saturation that the previous 0 dB max.
gain scaled coefficients could cause. The saturation of transients
may still happen but it should be more rare.

The filter coefficients scaling is changed from fixed pass band peak
align (to 0 dB) into DC gain controllable via new parameter gain in
src_param.m.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-03-04 15:08:06 +00:00
Seppo Ingalsuo dd8cfda311 EQ: Update ABI version number in configuration to match current version
This patch updates the provided example responses as data for
sof-eqctl and in the include files for topologies. The updates into
Matlab scripts are included also. The FIR and IIR example script is
updated to contain all examples.

The patch includes also a bug fix into IPC handler where the check
against SOF_IPC_MSG_MAX_SIZE is off by one and caused it to reject
all set data commands (to the EQs).

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-12-19 10:28:25 +00:00
Seppo Ingalsuo 0526077c87 Tools: Update SRC tool for 50 kHz modes, SRC testbench, add topology
This patch adds 50 kHz into SRC generator script for std and tiny
profiles. The src generator script is cleaned up and the default
conversion matrix is moved into caller script for easier maintenance.
The plots appearance is improved and the generated coefficients code
look is improved to pass the git pre- and post-commit script
requirements.

The SRC test bench scripts are updated for changed locations. A SRC
playback topology is used for test bench and real device usage.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-12-18 11:29:32 +00:00
Seppo Ingalsuo cc6c76f1de Tools: Tune: Update EQ tools for new user ABI plus other cleanup
This patch adds into filter tools retrieving of ABI version from a
single function (a quick solution) and updates all configuration
data tools to apply the user ABI header.

The confusing platform_max_channels struct field is renamed to
channels_in_config (the EQ channel map) that creates many updates. The
EQ response plot title is fixed.

Finally new functions to decode IIR and FIR settings blobs is added.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-11-30 17:19:59 +02:00
Curtis Malainey 5b5888ce07 Move SOFT into sub folder for SOF merge
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
2018-11-24 23:27:24 -08:00