F40 | How to Enable PipeWire Filter Chain

Still trying to wrap my head around pipewire, but essentially I just want to enable the
/usr/share/pipewire/filter-chain/source-rnnoise.conf (unmodified) file that ships with Pipewire on Fedora.

Basics:

pipewire --version
pipewire
Compiled with libpipewire 1.0.7
Linked with libpipewire 1.0.7

I am trying to follow best practices, so I copied the file to ~/.config/pipewire/filter-chain.conf.d/source-rnnoise.conf.

I has some issues when testing the file directly, and ended up installing a copr in order get the correct ladspa library.

sudo dnf install --enablerepo=copr:copr.fedorainfracloud.org:ycollet:audinux ladspa-noise-suppression-for-voice

So far so good. When testing the filter file directly, this happens (also weirdly I had to use absolute paths), even though the Native module is loaded.

rijnhard@elite-rijn:~$ pipewire -vvvc /home/rijnhard/.config/pipewire/filter-chain.conf.d/source-rnnoise.conf
[E][19195.049541] pw.core      | [          core.c:  373 core_new()] 0x55f27fc36380: can't find protocol 'PipeWire:Protocol:Native': Operation not supported
[E][19195.049571] mod.filter-chain | [module-filter-ch: 3099 pipewire__module_init()] can't connect: Operation not supported

rijnhard@elite-rijn:~$ pw-cli info libpipewire-module-protocol-native
        id: 2
        permissions: r--m-
        type: PipeWire:Interface:Module/3
        name: "libpipewire-module-protocol-native"
        filename: "/usr/lib64/pipewire-0.3/libpipewire-module-protocol-native.so"
        args: "{
            # List of server Unix sockets, and optionally permissions
            #sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
        }"
*       properties:
*               module.name = "libpipewire-module-protocol-native"
*               object.id = "2"
*               object.serial = "2"
*               module.author = "Wim Taymans <wim.taymans@gmail.com>"
*               module.description = "Native protocol using unix sockets"
*               module.version = "1.0.7"

rijnhard@elite-rijn:~$ pw-cli list-objects | grep -i protocol
                module.name = "libpipewire-module-protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"
                pipewire.protocol = "protocol-native"

But by default it seems pipewire doesn’t load /usr/share/pipewire/filter-chain.conf.

It feels like I’m missing something obvious, because:

  1. Why is running the filter directly breaking?
  2. Why isn’t it loading the filters by default?

Added audio, kde-plasma and removed kde, server