exaplain how to control ports of the filter in the filter chain
pipewire 0.3.58
Hi! I've noticed that the filter-chain
module supports ladspa and lv2, from that I understand that pipewire natively can act as a host to these types of plugins. I've attached a simple eg-amp
(from the official LV2 repository) plugin to the filter chain with success with below config file:
context.modules = [
{
name = libpipewire-module-filter-chain
args = {
node.description = "Example amplifier"
media.name = "Example amplifier"
filter.graph = {
nodes = [
{
type = lv2
name = eg-amp
plugin = "http://lv2plug.in/plugins/eg-amp"
label = eg-amp
control = {
"gain" 5.0
}
}
]
}
capture.props = {
node.name = "input.eg-amp"
node.passive = true
}
playback.props = {
node.name = "output.eg-amp"
media.class = Audio/Source
}
}
}
]
There's no errors about the gain
control, but there's this, I don't know if that's something serious.
mod.filter-chain: error id:2 seq:18 res:-2 (No such file or directory): no node available
So my question is, how does one control the gain
control port during the plugin runtime? How can for example a value of 5.0
be set?
Inspecting the filter-chain node with pw-cli enum-params
I've got to below, I think that may help.
...
Object: size 64, type Spa:Pod:Object:Param:Props (262146), id Spa:Enum:ParamId:Props (2)
Prop: key Spa:Pod:Object:Param:Props:params (524289), flags 00000000
Struct: size 40
String "eg-amp:gain"
Float 5,000000
...
I see that this can be used with pw-cli set-param
, but my best attempt is one level to high in the POD chierarchy:
$ pw-cli set-param 33 Props { "eg-amp:gain" 0.0}
Object: size 8, type Spa:Pod:Object:Param:Props (262146), id Spa:Enum:ParamId:Props (2)
This command does not get to change the gain
parameter. Is there an alternative of running this command with a SPA API?