Used by EasyEffects: results in occasional audio stutter
Downstream: https://bugs.archlinux.org/task/79461
Description:
Equalizer in EasyEffects uses lsp-plugins-v2. Version lsp-plugins-lv2 1.2.10-1 results in occasional stuttering in the audio output. Downgrading to 1.2.8-1 fixes the issue.
Additional info:
EasyEffects 7.0.7-1 lsp-plugins-lv2 1.2.10-1
Steps to reproduce:
Install EasyEffects and the optional dependency lsp-plugins-lv2 1.2.10-1. Turn on Equalizer in EasyEffects and play audio. Occasional audio stutter could occur once every few minutes.
The equalizer-related code did not include any changes in 1.2.10. There also are no related changes in lsp-dsp-lib and lsp-dsp-units. There also were no noticeable stutters in Ardour DAW with LV2 equalizer for hours.
Need more detailed information about the problem: configuration, CPU load, etc.
@wwmm any ideas?
Version lsp-plugins-lv2 1.2.10-1 results in occasional stuttering in the audio output. Downgrading to 1.2.8-1 fixes the issue.
Hum... So far I do not see any problems when using the equalizer in LSP 1.2.10. @road2react it would really help if you were able to record a video or audio showing what is happening. Usually when people have stuttering/crackling PipeWire's dynamic latency/rate switching is involved. But LV2 plugins in general handle dynamic changes to latency on their own. So the only case where EasyEffects reinitializes the plugin is when PipeWire changes sampling rate. But it does not change sampling rate as often as it changes latency.
any ideas?
Unless something changed in LSP in how on the fly changes to latency(audio buffer size) are handled I do not see how the plugin could be doing it. Sounds more like PipeWire switching sampling rate and EasyEffects being forced to destroy and recreate the plugin or something else in PipeWire/drivers.
@road2react take a look at https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Guide-Latency and temporarily set a fixed quantum(latency) value like 1024 or 2048. This way we can rule out dynamic latency switching being involved.
Need more detailed information about the problem: configuration, CPU load, etc.
Another common situation where stuttering/crackling happen is when PipeWire dynamically switches to a latency that is too low for the user system to handle. And having a powerful cpu may not always solve this. The soundcard driver also matters. There is a way to know what is the current latency set by PipeWire. Run pw-top while playing audio. Its output columns will not only allow the server latency to be estimated but also show if xrun errors are happening.
Looked again at the change list. The only changes are:
- fixed 'Inspect' button;
- added several filter types.
Nothing that should break the DSP processing.
This is the EasyEffects list of plugins:
record a video or audio showing what is happening
I'll try to record the stutter, but it's hard to reliably reproduce. I'll upload a recording as soon as I can.
As a side note: all of these packages were downgraded at the same time: lsp-plugins-lv2 liblsp-r3d-glx-lib lsp-plugins-clap lsp-plugins-ladspa lsp-plugins-standalone lsp-plugins-vst (not sure if this is relevant).
This is the EasyEffects list of plugins
Our current convolver plugin is known to not play nice with PipeWire's dynamic latency and sampling rate changes. So remove it from the pipeline before doing any test.