Unexpected audio delay is observed while using EasyEffects

There is a bit of an audio delay and sometimes the playback fails. This only happens when I use easyeffects for crystal audio and bass enhancement effects over the pipewire+wireplumber setup on my desktop.

[srpx31@SRPx-PC1 ~]$ inxi -A
Audio:
Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio
driver: snd_hda_intel
Device-2: Intel 8 Series/C220 Series High Definition Audio
driver: snd_hda_intel
API: ALSA v: k6.1.26-1-lts status: kernel-api
Server-1: PipeWire v: 0.3.70 status: active

[srpx31@SRPx-PC1 ~]$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 1181
Tile Size: 65472
Host Name: SRPx-PC1
Server Name: PulseAudio (on PipeWire 0.3.70)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.5.analog-stereo
Default Source: alsa_input.pci-0000_00_1b.0.5.analog-stereo
Cookie: 05d8:4675

Set minimum playback buffer size
If you would rather have the audio buffer size set systemwide instead of applying it on a per-application basis, in pipewire-pulse.conf change:

#pulse.min.req = 256/48000              # 5ms

to

pulse.min.req = 1024/48000              # 21ms, see: https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio#playback-buffering-options

Restart pipewire to apply.

I would advise against setting this any higher as it can cause some issues, if there are applications that need 40ms latency, you really should just set those manually instead.

The above only requests 21ms latency though, applications can still force a lower latency so this is a sort of soft setting for the minimum buffer size. Even then, on my system this setting helped a lot.

(Source.)

1 Like