If anyone is using Pipewire and suffering from EasyEffects or JamesDSP being killed by the system:
Install realtime-privileges
package then add user to realtime
group and reboot.
Disable Pipewire Suspend on Idle to avoid audio pops, delays, and white noise
start by copying an existing alsa config script over to the right place, after which we can make our own modifications to it:
sudo cp -a /usr/share/wireplumber/main.lua.d/50-alsa-config.lua /etc/wireplumber/main.lua.d/50-alsa-config.lua
At the very end of this file, you’ll notice the
session.suspend-timout-seconds
value that, by default, is set to 5 seconds. There’s a note there that already mentions what we want to achieve, so let’s un-comment-out that line and change its value to read 0 instead:alsa_monitor.rules = { -- (...abbreviated for legibility...) { apply_properties = { -- (...abbreviated for legibility...) ["session.suspend-timeout-seconds"] = 0, -- default is 5 }, }, }
restart the wireplumber service and it should immediately pick up on this new configuration:
systemctl --user restart wireplumber
I could not find the lua file anymore at this path: /usr/share/wireplumber/main.lua.d/50-alsa-config.lua
And no folder main.lua.d
folder
According to the reference page: The configuration file — WirePlumber 0.5.6 documentation “Lua configuration files are no longer supported” and I got none.
I did reset Pipewire and Wireplumber Restoring PipeWire and Wireplumber settings to default - #4 by nikgnomic but crackling still occurs.
Any ideas where I could put the session.suspend-timout-seconds
value to 0?
According to Migrating configuration from 0.4 — WirePlumber 0.5.6 documentation, you first need to completely remove (or rename) the old wireplumber.conf
file:
If you attempt to start it with a
wireplumber.conf
that still listsconfig/lua
components in itswireplumber.components
section, you will see the following error message on the output:Failed to load configuration: The configuration file at ‘…’ is likely an old WirePlumber 0.4 config and is not supported anymore. Try removing it.
As the message says, to resolve this you should remove the old
wireplumber.conf
file from the designated location. This should allow the new WirePlumber to start using the default configuration that it ships with.
Where the new configuration files go (if the configuration is to apply to an individual user account):
The first thing you need to know is that the new files should be placed in the
~/.config/wireplumber/wireplumber.conf.d/
directory instead of~/.config/wireplumber/main.lua.d/
and such …In addition, since the new files are in the SPA-JSON format, they should have the
.conf
extension instead of.lua
.
For a system-wide configuration, according to Changes in wireplumber 0.5 and settings / Multimedia and Games / Arch Linux Forums, you should place the wireplumber configuration files in:
/etc/wireplumber/wireplumber.conf.d/
(you may need to create that directory).
The suspend configuration file (from the same Arch Forum post):
51-disable-suspension.conf
monitor.alsa.rules = [
{
matches = [
{
node.name = "~alsa_input.*"
}
{
node.name = "~alsa_output.*"
}
]
actions = {
update-props = {
session.suspend-timeout-seconds = 0
}
}
}
]
Thank you for your explanations.
I’ve really tried to understand all this mess… but now I gave up.
I’m now thinking to get rid of pipewire and wireplumber and to go back to old good Jack and pulseaudio