mirror of https://github.com/thesofproject/sof.git
Tools: Topology2: Add high-pass IIR to HDA headset capture
This patch includes to sof-hda-generic.conf the new highpass-capture-be.conf as passthrough-capture-be.conf replacement that adds to DAI copier pipeline the IIR high-pass filter. The response is hard coded to 0 dB amplification and 40 Hz cut-off. The analog microphone headsets creates a strong DC input when the bias voltage settles. It can be even full-scale and sound very loud. The high-pass filter suppresses such input signal. Fixes #7116 Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This commit is contained in:
parent
8d5e3a8b52
commit
7564e5fc8c
|
@ -70,7 +70,7 @@ Object.Pipeline {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
passthrough-capture-be [
|
highpass-capture-be [
|
||||||
{
|
{
|
||||||
index 4
|
index 4
|
||||||
direction capture
|
direction capture
|
||||||
|
@ -89,6 +89,11 @@ Object.Pipeline {
|
||||||
dma_buffer_size "$[$ibs * 2]"
|
dma_buffer_size "$[$ibs * 2]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Object.Widget.eqiir.1 {
|
||||||
|
Object.Control.bytes."1" {
|
||||||
|
name '4 Main capture Iir Eq'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -125,6 +130,10 @@ Object.Base.route [
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
source 'copier.HDA.4.1'
|
source 'copier.HDA.4.1'
|
||||||
|
sink 'eqiir.4.1'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source 'eqiir.4.1'
|
||||||
sink 'copier.host.3.1'
|
sink 'copier.host.3.1'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
#
|
||||||
|
# BE DAI highpass pipeline for capture
|
||||||
|
#
|
||||||
|
# All attributes defined herein are namespaced by alsatplg to
|
||||||
|
# "Object.Pipeline.highpass-be-capture.N.attribute_name"
|
||||||
|
#
|
||||||
|
# Usage: highpass-capture-be pipeline object can be instantiated as:
|
||||||
|
#
|
||||||
|
# Object.Pipeline.highpass-capture-be."N" {
|
||||||
|
# direction "capture"
|
||||||
|
# period 1000
|
||||||
|
# time_domain "timer"
|
||||||
|
# channels 2
|
||||||
|
# rate 48000
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# Where N is the unique pipeline ID within the same alsaconf node.
|
||||||
|
#
|
||||||
|
|
||||||
|
<include/common/audio_format.conf>
|
||||||
|
<include/components/copier.conf>
|
||||||
|
<include/components/pipeline.conf>
|
||||||
|
<include/controls/bytes.conf>
|
||||||
|
<include/components/eqiir.conf>
|
||||||
|
|
||||||
|
Class.Pipeline."highpass-capture-be" {
|
||||||
|
|
||||||
|
DefineAttribute."index" {}
|
||||||
|
|
||||||
|
<include/pipelines/pipeline-common.conf>
|
||||||
|
|
||||||
|
attributes {
|
||||||
|
!constructor [
|
||||||
|
"index"
|
||||||
|
]
|
||||||
|
|
||||||
|
unique "instance"
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.Widget {
|
||||||
|
copier."1" {
|
||||||
|
type dai_in
|
||||||
|
num_audio_formats 1
|
||||||
|
num_input_audio_formats 1
|
||||||
|
num_output_audio_formats 1
|
||||||
|
|
||||||
|
Object.Base.audio_format.1 {
|
||||||
|
in_bit_depth 32
|
||||||
|
in_valid_bit_depth 32
|
||||||
|
out_bit_depth 32
|
||||||
|
out_valid_bit_depth 32
|
||||||
|
dma_buffer_size "$[$obs * 2]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
eqiir."1" {
|
||||||
|
num_audio_formats 1
|
||||||
|
num_input_audio_formats 1
|
||||||
|
num_output_audio_formats 1
|
||||||
|
|
||||||
|
Object.Base.audio_format.1 {
|
||||||
|
in_bit_depth 32
|
||||||
|
in_valid_bit_depth 32
|
||||||
|
out_bit_depth 32
|
||||||
|
out_valid_bit_depth 32
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.Control.bytes."1" {
|
||||||
|
<include/components/eqiir/highpass_40hz_0db_48khz.conf>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pipeline."1" {
|
||||||
|
priority 0
|
||||||
|
lp_mode 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
time_domain "timer"
|
||||||
|
dynamic_pipeline 1
|
||||||
|
channels 2
|
||||||
|
channels_min 2
|
||||||
|
channels_max 2
|
||||||
|
rate 48000
|
||||||
|
rate_min 48000
|
||||||
|
rate_max 48000
|
||||||
|
}
|
|
@ -21,6 +21,7 @@
|
||||||
<deepbuffer-playback.conf>
|
<deepbuffer-playback.conf>
|
||||||
<passthrough-be.conf>
|
<passthrough-be.conf>
|
||||||
<passthrough-capture-be.conf>
|
<passthrough-capture-be.conf>
|
||||||
|
<highpass-capture-be.conf>
|
||||||
<data.conf>
|
<data.conf>
|
||||||
<pcm.conf>
|
<pcm.conf>
|
||||||
<pcm_caps.conf>
|
<pcm_caps.conf>
|
||||||
|
|
Loading…
Reference in New Issue