Compare commits
3 commits
5af13bb98f
...
38aaff30b3
Author | SHA1 | Date | |
---|---|---|---|
Sanchayan Maity | 38aaff30b3 | ||
Sanchayan Maity | 15fe363d7d | ||
Sanchayan Maity | b53015dc7d |
|
@ -9,3 +9,6 @@ GST_DEBUG_DUMP_DOT_DIR=/tmp/gst-dot
|
||||||
GHCUP_USE_XDG_DIRS=1
|
GHCUP_USE_XDG_DIRS=1
|
||||||
|
|
||||||
DEBUGINFOD_URLS="https://debuginfod.archlinux.org/"
|
DEBUGINFOD_URLS="https://debuginfod.archlinux.org/"
|
||||||
|
|
||||||
|
DISABLE_RTKIT=1
|
||||||
|
PIPEWIRE_LOG_COLOR=force
|
||||||
|
|
|
@ -1,101 +0,0 @@
|
||||||
# 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,33 +0,0 @@
|
||||||
context.modules = [
|
|
||||||
{ name = libpipewire-module-filter-chain
|
|
||||||
args = {
|
|
||||||
node.description = "Noise Canceling Source"
|
|
||||||
media.name = "Noise Canceling Source"
|
|
||||||
filter.graph = {
|
|
||||||
nodes = [
|
|
||||||
{
|
|
||||||
type = ladspa
|
|
||||||
name = rnnoise
|
|
||||||
plugin = /usr/lib/ladspa/librnnoise_ladspa.so
|
|
||||||
label = noise_suppressor_mono
|
|
||||||
control = {
|
|
||||||
"VAD Threshold (%)" = 50.0
|
|
||||||
"VAD Grace Period (ms)" = 200
|
|
||||||
"Retroactive VAD Grace (ms)" = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
capture.props = {
|
|
||||||
node.name = "capture.rnnoise_source"
|
|
||||||
node.passive = true
|
|
||||||
audio.rate = 48000
|
|
||||||
}
|
|
||||||
playback.props = {
|
|
||||||
node.name = "rnnoise_source"
|
|
||||||
media.class = Audio/Source
|
|
||||||
audio.rate = 48000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,175 +1,5 @@
|
||||||
context.properties = {
|
context.properties = {
|
||||||
## Configure properties in the system.
|
|
||||||
#library.name.system = support/libspa-support
|
|
||||||
#context.data-loop.library.name.system = support/libspa-support
|
|
||||||
#support.dbus = true
|
|
||||||
#link.max-buffers = 64
|
|
||||||
link.max-buffers = 16 # version < 3 clients can't handle more
|
|
||||||
#mem.warn-mlock = false
|
|
||||||
#mem.allow-mlock = true
|
|
||||||
#mem.mlock-all = false
|
|
||||||
#clock.power-of-two-quantum = true
|
|
||||||
#log.level = 2
|
|
||||||
|
|
||||||
core.daemon = true # listening for socket connections
|
|
||||||
core.name = pipewire-0 # core name and socket name
|
|
||||||
|
|
||||||
## Properties for the DSP configuration.
|
|
||||||
## For iFi Zen DAC V2
|
## For iFi Zen DAC V2
|
||||||
default.clock.rate = 192000
|
default.clock.rate = 192000
|
||||||
default.clock.allowed-rates = [ 48000 88200 96000 176400 192000 352800 384000 ]
|
default.clock.allowed-rates = [ 48000 88200 96000 176400 192000 352800 384000 ]
|
||||||
#default.clock.quantum = 1024
|
|
||||||
#default.clock.min-quantum = 32
|
|
||||||
#default.clock.max-quantum = 8192
|
|
||||||
#default.video.width = 640
|
|
||||||
#default.video.height = 480
|
|
||||||
#default.video.rate.num = 25
|
|
||||||
#default.video.rate.denom = 1
|
|
||||||
#
|
|
||||||
# These overrides are only applied when running in a vm.
|
|
||||||
vm.overrides = {
|
|
||||||
default.clock.min-quantum = 1024
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
context.spa-libs = {
|
|
||||||
#<factory-name regex> = <library-name>
|
|
||||||
#
|
|
||||||
# Used to find spa factory names. It maps an spa factory name
|
|
||||||
# regular expression to a library name that should contain
|
|
||||||
# that factory.
|
|
||||||
#
|
|
||||||
audio.convert.* = audioconvert/libspa-audioconvert
|
|
||||||
api.alsa.* = alsa/libspa-alsa
|
|
||||||
api.v4l2.* = v4l2/libspa-v4l2
|
|
||||||
api.libcamera.* = libcamera/libspa-libcamera
|
|
||||||
api.bluez5.* = bluez5/libspa-bluez5
|
|
||||||
api.vulkan.* = vulkan/libspa-vulkan
|
|
||||||
api.jack.* = jack/libspa-jack
|
|
||||||
support.* = support/libspa-support
|
|
||||||
#videotestsrc = videotestsrc/libspa-videotestsrc
|
|
||||||
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
|
||||||
}
|
|
||||||
|
|
||||||
context.modules = [
|
|
||||||
#{ name = <module-name>
|
|
||||||
# [ args = { <key> = <value> ... } ]
|
|
||||||
# [ flags = [ [ ifexists ] [ nofail ] ]
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# Loads a module with the given parameters.
|
|
||||||
# If ifexists is given, the module is ignored when it is not found.
|
|
||||||
# If nofail is given, module initialization failures are ignored.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Uses RTKit to boost the data thread priority.
|
|
||||||
{ name = libpipewire-module-rtkit
|
|
||||||
args = {
|
|
||||||
#nice.level = -11
|
|
||||||
#rt.prio = 88
|
|
||||||
#rt.time.soft = 2000000
|
|
||||||
#rt.time.hard = 2000000
|
|
||||||
}
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set thread priorities without using RTKit.
|
|
||||||
#{ name = libpipewire-module-rt
|
|
||||||
# args = {
|
|
||||||
# nice.level = -11
|
|
||||||
# rt.prio = 88
|
|
||||||
# rt.time.soft = 2000000
|
|
||||||
# rt.time.hard = 2000000
|
|
||||||
# }
|
|
||||||
# flags = [ ifexists nofail ]
|
|
||||||
#}
|
|
||||||
|
|
||||||
# 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 }
|
|
||||||
|
|
||||||
# Creates a factory for making devices that run in the
|
|
||||||
# context of the PipeWire server.
|
|
||||||
{ name = libpipewire-module-spa-device-factory }
|
|
||||||
|
|
||||||
# Creates a factory for making nodes that run in the
|
|
||||||
# context of the PipeWire server.
|
|
||||||
{ name = libpipewire-module-spa-node-factory }
|
|
||||||
|
|
||||||
# The portal module monitors the PID of the portal process
|
|
||||||
# and tags connections with the same PID as portal
|
|
||||||
# connections.
|
|
||||||
{ name = libpipewire-module-portal
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# The access module can perform access checks and block
|
|
||||||
# new clients.
|
|
||||||
{ name = libpipewire-module-access
|
|
||||||
args = {
|
|
||||||
# access.allowed to list an array of paths of allowed
|
|
||||||
# apps.
|
|
||||||
#access.allowed = [
|
|
||||||
# /usr/bin/pipewire-media-session
|
|
||||||
#]
|
|
||||||
|
|
||||||
# An array of rejected paths.
|
|
||||||
#access.rejected = [ ]
|
|
||||||
|
|
||||||
# An array of paths with restricted access.
|
|
||||||
#access.restricted = [ ]
|
|
||||||
|
|
||||||
# Anything not in the above lists gets assigned the
|
|
||||||
# access.force permission.
|
|
||||||
#access.force = flatpak
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Makes a factory for wrapping nodes in an adapter with a
|
|
||||||
# converter and resampler.
|
|
||||||
{ name = libpipewire-module-adapter }
|
|
||||||
|
|
||||||
# Makes a factory for creating links between ports.
|
|
||||||
{ name = libpipewire-module-link-factory }
|
|
||||||
|
|
||||||
# Provides factories to make session manager objects.
|
|
||||||
{ name = libpipewire-module-session-manager }
|
|
||||||
]
|
|
||||||
|
|
||||||
context.objects = [
|
|
||||||
#{ factory = <factory-name>
|
|
||||||
# [ args = { <key> = <value> ... } ]
|
|
||||||
# [ flags = [ [ nofail ] ]
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# Creates an object from a PipeWire factory with the given parameters.
|
|
||||||
# If nofail is given, errors are ignored (and no object is created).
|
|
||||||
#
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
|
|
||||||
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
|
||||||
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
|
||||||
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
|
||||||
|
|
||||||
# A default dummy driver. This handles nodes marked with the "node.always-driver"
|
|
||||||
# property when no other driver is currently active. JACK clients need this.
|
|
||||||
{ factory = spa-node-factory
|
|
||||||
args = {
|
|
||||||
factory.name = support.node.driver
|
|
||||||
node.name = Dummy-Driver
|
|
||||||
node.group = pipewire.dummy
|
|
||||||
priority.driver = 20000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ factory = spa-node-factory
|
|
||||||
args = {
|
|
||||||
factory.name = support.node.driver
|
|
||||||
node.name = Freewheel-Driver
|
|
||||||
priority.driver = 19000
|
|
||||||
node.group = pipewire.freewheel
|
|
||||||
node.freewheel = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
# 7 band sink equalizer for Truthear Zero:Red using Oratory1990 target
|
|
||||||
context.modules = [
|
|
||||||
{ name = libpipewire-module-filter-chain
|
|
||||||
args = {
|
|
||||||
node.description = "Zero:Red Equalizer Sink"
|
|
||||||
media.name = "Zero:Red Equalizer Sink"
|
|
||||||
filter.graph = {
|
|
||||||
nodes = [
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_1
|
|
||||||
label = bq_highshelf
|
|
||||||
control = { "Freq" = 0 "Q" = 1.0 "Gain" = -3.5 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_2
|
|
||||||
label = bq_lowshelf
|
|
||||||
control = { "Freq" = 100.0 "Q" = 0.71 "Gain" = 2.0 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_3
|
|
||||||
label = bq_peaking
|
|
||||||
control = { "Freq" = 140.0 "Q" = 0.9 "Gain" = 3.0 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_4
|
|
||||||
label = bq_peaking
|
|
||||||
control = { "Freq" = 780.0 "Q" = 2.0 "Gain" = 0.6 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_5
|
|
||||||
label = bq_peaking
|
|
||||||
control = { "Freq" = 1350.0 "Q" = 1.8 "Gain" = -1.4 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_6
|
|
||||||
label = bq_highshelf
|
|
||||||
control = { "Freq" = 3000.0 "Q" = 0.71 "Gain" = 0.0 }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = builtin
|
|
||||||
name = eq_band_7
|
|
||||||
label = bq_highshelf
|
|
||||||
control = { "Freq" = 10000.0 "Q" = 0.71 "Gain" = 0.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" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
audio.channels = 2
|
|
||||||
audio.position = [ FL FR ]
|
|
||||||
capture.props = {
|
|
||||||
node.name = "zerored_effect_input.eq7"
|
|
||||||
media.class = Audio/Sink
|
|
||||||
}
|
|
||||||
playback.props = {
|
|
||||||
node.name = "zerored_effect_output.eq7"
|
|
||||||
node.passive = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
Loading…
Reference in a new issue