pipewire: Add a Parametric equalizer using filter-chain
EQ Preset used is from Oratory1990 with Harman target and worn earpads. https://old.reddit.com/r/oratory1990/wiki/index/list_of_presets https://www.dropbox.com/s/mejnlwpqm7uxtly/Beyerdynamic%20DT770%20%28old%20earpads%29.pdf?dl=0
This commit is contained in:
parent
90f94b527f
commit
42799da2d1
2 changed files with 101 additions and 67 deletions
101
pipewire/.config/pipewire/pipewire.conf.d/dt770-sink.conf
Normal file
101
pipewire/.config/pipewire/pipewire.conf.d/dt770-sink.conf
Normal file
|
@ -0,0 +1,101 @@
|
|||
# 10 band sink equalizer for DT 770 80 Ohms
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-filter-chain
|
||||
args = {
|
||||
node.description = "DT770 Equalizer Sink"
|
||||
media.name = "DT770 Equalizer Sink"
|
||||
filter.graph = {
|
||||
nodes = [
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_1
|
||||
label = bq_highshelf
|
||||
control = { "Freq" = 0 "Q" = 1.0 "Gain" = -2.6 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_2
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 45.0 "Q" = 0.2 "Gain" = -5.2 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_3
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 75.0 "Q" = 1.4 "Gain" = 2.0 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_4
|
||||
label = bq_lowshelf
|
||||
control = { "Freq" = 105.0 "Q" = 0.71 "Gain" = 5.5 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_5
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 210.0 "Q" = 1.4 "Gain" = 4.0 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_6
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 2400.0 "Q" = 3.5 "Gain" = -2.3 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_7
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 3800.0 "Q" = 1.0 "Gain" = 3.0 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_8
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 4200.0 "Q" = 4.0 "Gain" = -1.3 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_9
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 6400.0 "Q" = 4.0 "Gain" = -6.2 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_10
|
||||
label = bq_peaking
|
||||
control = { "Freq" = 8400.0 "Q" = 4.0 "Gain" = -1.4 }
|
||||
}
|
||||
{
|
||||
type = builtin
|
||||
name = eq_band_11
|
||||
label = bq_highshelf
|
||||
control = { "Freq" = 10000.0 "Q" = 0.71 "Gain" = -4.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" }
|
||||
{ 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" }
|
||||
]
|
||||
}
|
||||
audio.channels = 2
|
||||
audio.position = [ FL FR ]
|
||||
capture.props = {
|
||||
node.name = "dt770_effect_input.eq11"
|
||||
media.class = Audio/Sink
|
||||
}
|
||||
playback.props = {
|
||||
node.name = "dt770_effect_output.eq11"
|
||||
node.passive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
|
@ -84,18 +84,11 @@ context.modules = [
|
|||
# flags = [ ifexists nofail ]
|
||||
#}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# The profile module. Allows application to access profiler
|
||||
# and performance data. It provides an interface that is used
|
||||
# by pw-top and pw-profiler.
|
||||
{ name = libpipewire-module-profiler }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
# Creates a factory for making devices that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-device-factory }
|
||||
|
@ -104,15 +97,6 @@ context.modules = [
|
|||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-node-factory }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# Allows creating devices that run in the context of the
|
||||
# client. Is used by the session manager.
|
||||
{ name = libpipewire-module-client-device }
|
||||
|
||||
# The portal module monitors the PID of the portal process
|
||||
# and tags connections with the same PID as portal
|
||||
# connections.
|
||||
|
@ -188,55 +172,4 @@ context.objects = [
|
|||
node.freewheel = true
|
||||
}
|
||||
}
|
||||
# This creates a new Source node. It will have input ports
|
||||
# that you can link, to provide audio for this source.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = support.null-audio-sink
|
||||
# node.name = "my-mic"
|
||||
# node.description = "Microphone"
|
||||
# media.class = "Audio/Source/Virtual"
|
||||
# audio.position = "FL,FR"
|
||||
# }
|
||||
#}
|
||||
|
||||
# This creates a single PCM source device for the given
|
||||
# alsa device path hw:0. You can change source to sink
|
||||
# to make a sink in the same way.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = api.alsa.pcm.source
|
||||
# node.name = "alsa-source"
|
||||
# node.description = "PCM Source"
|
||||
# media.class = "Audio/Source"
|
||||
# api.alsa.path = "hw:0"
|
||||
# api.alsa.period-size = 1024
|
||||
# api.alsa.headroom = 0
|
||||
# api.alsa.disable-mmap = false
|
||||
# api.alsa.disable-batch = false
|
||||
# audio.format = "S16LE"
|
||||
# audio.rate = 48000
|
||||
# audio.channels = 2
|
||||
# audio.position = "FL,FR"
|
||||
# }
|
||||
#}
|
||||
]
|
||||
|
||||
context.exec = [
|
||||
#{ path = <program-name> [ args = "<arguments>" ] }
|
||||
#
|
||||
# Execute the given program with arguments.
|
||||
#
|
||||
# You can optionally start the session manager here,
|
||||
# but it is better to start it as a systemd service.
|
||||
# Run the session manager with -h for options.
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire-media-session" args = "" }
|
||||
#
|
||||
# You can optionally start the pulseaudio-server here as well
|
||||
# but it is better to start it as a systemd service.
|
||||
# It can be interesting to start another daemon here that listens
|
||||
# on another address with the -a option (eg. -a tcp:4713).
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
|
||||
]
|
Loading…
Reference in a new issue