blob: 46ad11302c4386e5892ddf0eb5d8267e92bf76c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# WirePlumber daemon context configuration #
context.properties = {
## Properties to configure the PipeWire context and some modules
# 1=error/critical/warning, 2=message, 3=info, 4=debug, 5=trace
log.level = 2
wireplumber.script-engine = lua-scripting
}
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.
#
api.alsa.* = alsa/libspa-alsa
api.bluez5.* = bluez5/libspa-bluez5
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ ifexists ] [ nofail ] ]
#}
#
# PipeWire modules to load.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# 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 }
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
{ name = libpipewire-module-filter-chain
args = {
node.description = "Equalizer Sink"
media.name = "Equalizer Sink"
filter.graph = {
nodes = [
{
type = builtin
name = bass
label = bq_lowshelf
# the cut off freq of the bass filter can be adjusted here.
control = { "Freq" = 250.0 "Q" = 1.0 "Gain" = 0.0 }
}
{
type = builtin
name = treble
label = bq_peaking
# the cut off freq of the treble filter can be adjusted here.
control = { "Freq" = 6000.0 "Q" = 1.0 "Gain" = 0.0 }
}
]
links = [
{ output = "bass:Out" input = "treble:In" }
]
}
audio.channels = 2
audio.position = [ FL FR ]
capture.props = {
node.name = "eq-sink"
media.class = Audio/Sink
# select the endpoint to which the node is attached
target.endpoint = "endpoint.multimedia"
node.passive = true
}
playback.props = {
node.name = "eq-output-stream"
node.passive = true
}
}
}
]
wireplumber.components = [
#{ name = <component-name>, type = <component-type> }
#
# WirePlumber components to load
#
# The lua scripting engine
{ name = libwireplumber-module-lua-scripting, type = module }
# The lua configuration file(s)
# Other components are loaded from there
{ name = host.lua, type = config/lua }
]
|