filter-chain: add example

run with pipewire -c filter-chain/demonic.conf
This commit is contained in:
Wim Taymans 2021-05-07 16:27:06 +02:00
parent f9a29c5424
commit a595f88cf1
4 changed files with 118 additions and 0 deletions

View file

@ -0,0 +1,100 @@
# filter-chain example config file for PipeWire version @VERSION@ #
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
}
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
support.* = support/libspa-support
}
context.modules = [
# Uses RTKit to boost the data thread priority.
{ name = libpipewire-module-rtkit
args = {
#nice.level = -11
#rt.prio = 88
#rt.time.soft = 200000
#rt.time.hard = 200000
}
flags = [ ifexists nofail ]
}
# 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 }
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-filter-chain
args = {
#audio.format = F32
#audio.rate = 48000
audio.channels = 2
#audio.position = [ FL FR ]
node.name = "filter-chain-demonic"
node.description = "Demonic example"
media.name = "Demonic example"
filter.graph = {
nodes = [
{
name = rev
type = ladspa
plugin = revdelay_1605
label = revdelay
control = {
"Delay Time (s)" = 2.0
}
}
{
name = pitch
type = ladspa
plugin = am_pitchshift_1433
label = amPitchshift
control = {
"Pitch shift" = 0.6
}
}
{
name = rev2
type = ladspa
plugin = g2reverb
label = G2reverb
control = {
"Reverb tail" = 0.5
"Damping" = 0.9
}
}
]
links = [
{ output = "rev:Output" input = "pitch:Input" }
{ output = "pitch:Output" input = "rev2:In L" }
]
inputs = [ "rev:Input" ]
outputs = [ "rev2:Out L" ]
}
capture.props = {
#media.class = Audio/Sink
}
playback.props = {
#media.class = Audio/Source
}
}
}
]

View file

@ -0,0 +1,10 @@
conf_files = [
[ 'demonic.conf', 'demonic.conf' ],
]
foreach c : conf_files
configure_file(input : c.get(0),
output : c.get(1),
configuration : conf_config,
install_dir : conf_install_dir / 'filter-chain')
endforeach

View file

@ -87,6 +87,7 @@ custom_target('pipewire-uninstalled',
# )
#endif
subdir('filter-chain')
if not get_option('media-session').disabled()
subdir('media-session.d')
endif