.TH "libpipewire-module-parametric-equalizer" 7 "1.4.7" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME libpipewire-module-parametric-equalizer \- Parametric-Equalizer .SH DESCRIPTION .PP The \fRparametric-equalizer\fP module loads parametric equalizer configuration generated from the AutoEQ project or Squiglink\&. Both the projects allow equalizing headphones or an in-ear monitor to a target curve\&. While these generate a file for parametric equalization for a given target, but this is not a format that can be directly given to filter chain module\&. .PP A popular example of the above being EQ'ing to the Harman target curve or EQ'ing one headphone/IEM to another\&. .PP For AutoEQ, see https://github.com/jaakkopasanen/AutoEq\&. For SquigLink, see https://squig.link/\&. .PP Parametric equalizer configuration generated from AutoEQ or Squiglink looks like below\&. .PP .PP .nf Preamp: \-6\&.8 dB Filter 1: ON PK Fc 21 Hz Gain 6\&.7 dB Q 1\&.100 Filter 2: ON PK Fc 85 Hz Gain 6\&.9 dB Q 3\&.000 Filter 3: ON PK Fc 110 Hz Gain \-2\&.6 dB Q 2\&.700 Filter 4: ON PK Fc 210 Hz Gain 5\&.9 dB Q 2\&.100 Filter 5: ON PK Fc 710 Hz Gain \-1\&.0 dB Q 0\&.600 Filter 6: ON PK Fc 1600 Hz Gain 2\&.3 dB Q 2\&.700 .fi .PP .PP Fc, Gain and Q specify the frequency, gain and Q factor respectively\&. The fourth column can be one of PK, LSC or HSC specifying peaking, low shelf and high shelf filter respectively\&. More often than not only peaking filters are involved\&. .PP This module parses a configuration like above and loads the filter chain module with the above configuration translated to filter chain arguments\&. .PP .SH "MODULE NAME" .PP .PP \fRlibpipewire-module-parametric-equalizer\fP .PP .SH "MODULE OPTIONS" .PP .PP Options specific to the behaviour of this module .PP .IP "\(bu" 2 \fRequalizer\&.filepath = \fP path of the file with parametric EQ .IP "\(bu" 2 \fRequalizer\&.description = \fP: Name which will show up in .IP "\(bu" 2 \fRaudio\&.channels = \fP: Number of audio channels, default 2 .IP "\(bu" 2 \fRaudio\&.position = \fP: Channel map, default "[FL, FR]" .IP "\(bu" 2 \fRremote\&.name = \fP: environment with remote name, default "pipewire-0" .IP "\(bu" 2 \fRcapture\&.props = {}\fP: properties passed to the input stream, default \fR{ media\&.class = "Audio/Sink", node\&.name = "effect_input\&.eq" }\fP .IP "\(bu" 2 \fRplayback\&.props = {}\fP: properties passed to the output stream, default \fR{ node\&.passive = true, node\&.name = "effect_output\&.eq" }\fP .PP .PP .SH "GENERAL OPTIONS" .PP .PP Options with well-known behaviour: .PP .IP "\(bu" 2 \fBaudio.channels\fP .IP "\(bu" 2 \fBaudio.position\fP .IP "\(bu" 2 \fBremote.name\fP .PP .PP .SH "EXAMPLE CONFIGURATION" .PP .PP .PP .nf # ~/\&.config/pipewire/pipewire\&.conf\&.d/my\-parametric\-equalizer\&.conf context\&.modules = [ { name = libpipewire\-module\-parametric\-equalizer args = { #remote\&.name = "pipewire\-0" #equalizer\&.filepath = "/a/b/EQ\&.txt" #equalizer\&.description = "Parametric EQ Sink" #audio\&.channels = 2 #audio\&.position = [FL, FR] #capture\&.props = { # node\&.name = "Parametric EQ input" #} #playback\&.props = { # node\&.name = "Parametric EQ output" #} } } ] .fi .PP .PP \fBSince\fP .RS 4 1\&.0\&.6 .RE .PP