Skip to content

Instantly share code, notes, and snippets.

@ZetaTom
Created March 17, 2024 08:10
Show Gist options
  • Select an option

  • Save ZetaTom/ff7bf4be87d8e9e461d12dcd7eb8d38c to your computer and use it in GitHub Desktop.

Select an option

Save ZetaTom/ff7bf4be87d8e9e461d12dcd7eb8d38c to your computer and use it in GitHub Desktop.
Framework 13 PipeWire Speaker EQ (without EasyEffects)
# ### Credits ###
# This config uses the parameters published by user Philonmetal
# on https://community.frame.work/t/speakers-sound-quality.
#
# ### Installation ###
# 1. Download this file
# 2. Install it into ~/.config/pipewire/pipewire.conf.d/
# 3. Restart your machine (or PipeWire itself)
#
# ### Usage ###
# Set full volume for your actual speakers and select the
# "Speakers - Equalizer Sink" device as your new output device.
#
# ### Device Name ###
# This config as been tested and is working on Fedora
# Workstation 39. It may be necessary to adjust the target.object.
# Use `pw-link -iol` to list all available devices and replace
# the target accordingly.
context.modules = [
{
name = libpipewire-module-filter-chain
args = {
node.description = "Speakers - Equalizer Sink"
media.name = "Speakers - Equalizer Sink"
filter.graph = {
nodes = [
{
type = builtin
name = eq_band_0
label = bq_highpass
control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 }
}
{
type = builtin
name = eq_band_1
label = bq_highpass
control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 }
}
{
type = builtin
name = eq_band_2
label = bq_highpass
control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 }
}
{
type = builtin
name = eq_band_3
label = bq_highpass
control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 }
}
{
type = builtin
name = eq_band_4
label = bq_peaking
control = { "Freq" = 150.0 "Q" = 3.0 "Gain" = 4.02 }
}
{
type = builtin
name = eq_band_5
label = bq_peaking
control = { "Freq" = 600.0 "Q" = 4.0 "Gain" = -5.07 }
}
{
type = builtin
name = eq_band_6
label = bq_peaking
control = { "Freq" = 1200.0 "Q" = 4.17 "Gain" = -3.49 }
}
{
type = builtin
name = eq_band_7
label = bq_peaking
control = { "Freq" = 2000.0 "Q" = 4.0 "Gain" = 1.43 }
}
{
type = builtin
name = eq_band_8
label = bq_peaking
control = { "Freq" = 5300.0 "Q" = 2.64 "Gain" = 3.84 }
}
{
type = builtin
name = eq_band_9
label = bq_highshelf
control = { "Freq" = 6000.0 "Q" = 4.36 "Gain" = 4.02 }
}
{
type = builtin
name = eq_band_10
label = bq_peaking
control = { "Freq" = 7500.0 "Q" = 3.0 "Gain" = -2.09 }
}
{
type = builtin
name = eq_band_11
label = bq_peaking
control = { "Freq" = 8000.0 "Q" = 4.36 "Gain" = 2.01 }
}
{
type = builtin
name = eq_band_12
label = bq_peaking
control = { "Freq" = 900.0 "Q" = 5.91 "Gain" = -4.12 }
}
]
links = [
{ output = "eq_band_0:Out" input = "eq_band_1:In" }
{ output = "eq_band_1:Out" input = "eq_band_2:In" }
{ output = "eq_band_2:Out" input = "eq_band_3:In" }
{ output = "eq_band_3:Out" input = "eq_band_4:In" }
{ output = "eq_band_4:Out" input = "eq_band_5:In" }
{ output = "eq_band_5:Out" input = "eq_band_6:In" }
{ output = "eq_band_6:Out" input = "eq_band_7:In" }
{ output = "eq_band_7:Out" input = "eq_band_8:In" }
{ output = "eq_band_8:Out" input = "eq_band_9:In" }
{ output = "eq_band_9:Out" input = "eq_band_10:In" }
{ output = "eq_band_10:Out" input = "eq_band_11:In" }
{ output = "eq_band_11:Out" input = "eq_band_12:In" }
]
}
audio.channels = 2
audio.position = [ FL FR ]
capture.props = {
node.name = "effect_input.eq12"
media.class = Audio/Sink
}
playback.props = {
target.object = "alsa_output.pci-0000_c1_00.6.analog-stereo"
node.passive = true
}
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment