Skip to content

Instantly share code, notes, and snippets.

@DanShaders
Last active July 8, 2024 14:49
Show Gist options
  • Save DanShaders/c1e5c8d046fd9f8c193b6687a13ae7a3 to your computer and use it in GitHub Desktop.
Save DanShaders/c1e5c8d046fd9f8c193b6687a13ae7a3 to your computer and use it in GitHub Desktop.
PipeWire Equalizer Settings for Dell XPS 15 (2023)
# 6 band sink equalizer
#
# Copy this file into a conf.d/ directory such as
# ~/.config/pipewire/filter-chain.conf.d/
#
context.modules = [
{ name = libpipewire-module-filter-chain
args = {
node.description = "Internal Speakers Equalizer Sink"
media.name = "Internal Speakers Equalizer Sink"
filter.graph = {
nodes = [
{
type = builtin
name = eq_band_1
label = bq_peaking
control = { "Freq" = 119.0 "Q" = 1.5 "Gain" = 11.0 }
}
{
type = builtin
name = eq_band_2
label = bq_peaking
control = { "Freq" = 238.0 "Q" = 1.5 "Gain" = 2.0 }
}
{
type = builtin
name = eq_band_3
label = bq_peaking
control = { "Freq" = 475.0 "Q" = 1.5 "Gain" = -11.0 }
}
{
type = builtin
name = eq_band_4
label = bq_peaking
control = { "Freq" = 947.0 "Q" = 1.5 "Gain" = -11.0 }
}
{
type = builtin
name = eq_band_5
label = bq_peaking
control = { "Freq" = 1890.0 "Q" = 1.5 "Gain" = -2.0 }
}
{
type = builtin
name = eq_band_6
label = bq_peaking
control = { "Freq" = 3771.0 "Q" = 1.5 "Gain" = 2.0 }
}
{
type = builtin
name = eq_band_7
label = bq_peaking
control = { "Freq" = 7524.0 "Q" = 1.5 "Gain" = 9.0 }
}
{
type = builtin
name = eq_band_8
label = bq_peaking
control = { "Freq" = 15012.0 "Q" = 1.5 "Gain" = 10.0 }
}
]
links = [
{ 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" }
]
}
audio.channels = 2
audio.position = [ FL FR ]
capture.props = {
node.name = "internal_speaker"
media.class = Audio/Sink
}
playback.props = {
node.name = "internal_speaker_equalizer_output"
node.passive = true
node.target = "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
}
}
}
]
@cesorious
Copy link

Hello, does this still work? I Tried, but can't seem to set the default device to internal_speaker in pulsemixer nothing shows up either.

@DanShaders
Copy link
Author

Yes, this still works for me. Do sinks show up in the output of wpctl status -n? For example, on my machine, it is

...
Audio
 ├─ Devices:
 │      54. alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic [alsa]
 │  
 ├─ Sinks:
 │     127. alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI1__sink [vol: 1.00]
 │     136. alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink [vol: 1.00]
 │     148. alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI2__sink [vol: 1.00]
 │     150. alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink [vol: 1.00]
 │  
 ├─ Sources:
 │  *   58. alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source [vol: 0.46]
 │     119. alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic2__source [vol: 1.00]
 │  
 ├─ Filters:
 │    - filter-chain-2113-29                                        
 │  *   36. internal_speaker                                             [Audio/Sink]
 │      37. internal_speaker_equalizer_output                            [Stream/Output/Audio]
 │  
 └─ Streams:
...

@cesorious
Copy link

Sorry for the noise, I placed the file in filter-chain.conf.d, but was supposed to place it in pipewire.conf.d, my bad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment