Created
March 17, 2024 08:10
-
-
Save ZetaTom/ff7bf4be87d8e9e461d12dcd7eb8d38c to your computer and use it in GitHub Desktop.
Framework 13 PipeWire Speaker EQ (without EasyEffects)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ### 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