Renoise crackling: is PipeWire buggy?

Per Renoise-crackle and Linux-RT handling, I’ve narrowed a problem with Renoise crackling. After partial-progress and topic creep, I’m marking those resolved and continuing here.

Manjaro 6.9.3.3 GNOME
Running Renoise 3.4.4 (purchased) for Linux, I’m getting no error messages, but only still bad crackling in rendered audio. It was installed with makepkg; makepkg -i from the renoiseAUR helper.

Renoise 3.4.4 in Windows on the same machine works find.

rtcqs output:

rtcqs - version 0.6.2

Root User
=========
[ OK ] Not running as root.

Group Limits
============
[ OK ] User jc is member of a group that has sufficient rtprio (98) and memlock (unlimited) limits set.

CPU Frequency Scaling
=====================
[ WARNING ] The scaling governor of one or more CPUs is not set to 'performance'. You can set the scaling governor to 'performance' with 'cpupower frequency-set -g performance' or 'cpufreq-set -r -g performance' (Debian/Ubuntu). See also https://wiki.linuxaudio.org/wiki/system_configuration#cpu_frequency_scaling

Kernel Configuration
====================
[ OK ] Valid kernel configuration found.

High Resolution Timers
======================
[ OK ] High resolution timers are enabled.

Tickless Kernel
===============
[ OK ] System is using a tickless kernel.

Preempt RT
==========
[ WARNING ] Kernel 6.9.3-3-MANJARO without 'threadirqs' parameter or real-time capabilities found. See also https://wiki.linuxaudio.org/wiki/system_configuration#do_i_really_need_a_real-time_kernel

Spectre/Meltdown Mitigations
============================
[ WARNING ] Kernel with Spectre/Meltdown mitigations found. This could have a negative impact on the performance of your system. See also https://wiki.linuxaudio.org/wiki/system_configuration#disabling_spectre_and_meltdown_mitigations

RT Priorities
=============
[ OK ] Realtime priorities can be set.

Swappiness
==========
[ WARNING ] vm.swappiness is set to 60 which is too high. Set swappiness to a lower value by adding 'vm.swappiness=10' to /etc/sysctl.conf and run 'sysctl --system'. See also https://wiki.linuxaudio.org/wiki/system_configuration#sysctlconf

Filesystems
===========
[ OK ] The following mounts can be used for audio purposes: /

IRQs
====
[ OK ] Soundcard snd_hda_intel:card0 with IRQ 139 does not share its IRQ.
[ OK ] USB port xhci_hcd with IRQ 125 does not share its IRQ.

Power Management
================
[ OK ] Power management can be controlled from user space. This enables DAWs like Ardour and Reaper to set CPU DMA latency which could help prevent xruns.

Troubleshooting: each was done…

CPU Frequency Scaling

  • Solved: sudo cpupower frequency-set -g performance

Preempt RT

==========
[ WARNING ] Kernel 6.9.3-3-MANJARO without 'threadirqs' parameter or real-time capabilities found. See also https://wiki.linuxaudio.org/wiki/system_configuration#do_i_really_need_a_real-time_kernel

No, nowadays you don’t need realtime kernels. Maybe that’s needed when you record a lot of live instruments with super low latencies, but not for electronic music with Renoise.

  • I added threadirqs to the linux cmdline line in /boot/grub/grub.cfg
    • After reboot, it threadirqs loaded: cat /proc/cmdline: BOOT_IMAGE=/boot/vmlinuz-6.9-x86_64 root=UUID=my-53cr47-l0nG-d81v-3ye0ee rw quiet splash apparmor=1 security=apparmor udev.log_priority=3 threadirqs
    • Also added to /etc/default/grub & update-grub
    • Still no success with Renoise crackles.

Swappiness

  • Solved: sudo echo 'vm.swappiness=10' >> /etc/sysctl.d/swappiness.conf

Spectre/Meltdown Mitigations

============================
[ WARNING ] Kernel with Spectre/Meltdown mitigations found. This could have a negative impact on the performance of your system. See also https://wiki.linuxaudio.org/wiki/system_configuration#disabling_spectre_and_meltdown_mitigations
  • I added mitigations=off to the linux line, though it is highly discouraged.
    • Added to /etc/default/grub & update-grub

Results: at;sf

(all tried; still fail)

Still, Renoise has only crackle sounds.

cat /proc/cmdline :

BOOT_IMAGE=/boot/vmlinuz-6.9-x86_64 root=UUID=my-53cr47-l0nG-d81v-3ye0ee rw quiet splash apparmor=1 security=apparmor udev.log_priority=3 mitigations=off threadirqs

rtcqs new output with no warnings:

rtcqs - version 0.6.2

Root User
=========
[ OK ] Not running as root.

Group Limits
============
[ OK ] User jc is member of a group that has sufficient rtprio (98) and memlock (unlimited) limits set.

CPU Frequency Scaling
=====================
[ OK ] The scaling governor of all CPUs is set to performance.

Kernel Configuration
====================
[ OK ] Valid kernel configuration found.

High Resolution Timers
======================
[ OK ] High resolution timers are enabled.

Tickless Kernel
===============
[ OK ] System is using a tickless kernel.

Preempt RT
==========
[ OK ] Kernel 6.9.3-3-MANJARO is using threaded IRQs.

Spectre/Meltdown Mitigations
============================
[ OK ] Spectre/Meltdown mitigations are disabled. Be warned that this makes your system more vulnerable to Spectre/Meltdown attacks.

RT Priorities
=============
[ OK ] Realtime priorities can be set.

Swappiness
==========
[ OK ] Swappiness is set at 10.

Filesystems
===========
[ OK ] The following mounts can be used for audio purposes: /

IRQs
====
[ OK ] Soundcard snd_hda_intel:card0 with IRQ 139 does not share its IRQ.
[ OK ] USB port xhci_hcd with IRQ 125 does not share its IRQ.

Power Management
================
[ OK ] Power management can be controlled from user space. This enables DAWs like Ardour and Reaper to set CPU DMA latency which could help prevent xruns.

Conclusions so far

So, none of the above suggestions solved anything, and I did all of them.

Even if they were the solution, manually adjusting /etc/default/grub shouldn’t become standard for everyone using Renoise when other DAWs work fine.

Generally, using a relatively recent version of any DAW, in which FL Studio already works via wine, and in which the DAW works in Windows on the same machine, we shouldn’t need so much work just to get one DAW working. Even then, after all the recommended changes, it still doesn’t work.

This seems to me like either:

  1. A bug that needs properly reporting.
  2. A special problem with my hardware that rtcqs can’t even detect.

To this point, I’ve spent 10 hours trying other people’s untried suggestions. I want working solutions only. Renoise was working on Manjaro in 2021 with a simple pipewire install. So, it’s possible.

Renoise is the DAW made for Linux. A viable OOB Linux distro (like Manjaro aims for) needs to work with it better than a wine Windows DAW. Manjaro doesn’t need to be child-proof, but if a Linux DAW doesn’t work OOB on Manjaro, the PM team will want to know.

  • Are there successful install instructions for the current Manjaro I’ve missed?
  • What working solution gets Renoise to render sound without crackles?
  • Does this need to become a bug report?
  • Pipewire is aiming to replace both JACK and PulseAudio, but it’s not quite there yet, and won’t be for a while. Definitely don’t treat it as “the next big thing everyone agrees on” (think Wayland) - treat it as “an upcoming big thing that might just be worth the tradeoffs” (think systemd)

I would not describe what is said there as “highly discouraged”.
And:
mitigations=off
is the parameter that you add to the
GRUB_CMDLINE_LINUX_DEFAULT
in /etc/default/grub and then run update-grub

I use this myself as I have determined (for myself - not as a general recommendation) that I’d rather use the full potential in exchange for very marginal risk in my case (single user laptop).
Although I doubt that the performance impact caused by this is the reason for your problems.

/etc/default/grub is the place to add this, if you want it to be permanent, but how you did it works as well as a temporary “solution”

1 Like

Unless this is causing obvious issues, I’d tend to ignore this, especially considering it only constitutes a warning (much like: Look for oncoming traffic before crossing the road).

Cheers.

1 Like

I did it anyway like you suggest; still no help.

I updated the original post to show that I indeed tried everything.

Problem persists, all suggestions tried.

at;sf

Pipewire is aiming to replace both JACK and PulseAudio, but it’s not quite there yet,

I have been using JACK + ALSA for many years to produce live audio and podcasts. Both still work flawlessly, so do not need pipewire-pulse tribute replacement service

PipeWire - Wiki - FAQ - Will PipeWire Ever Be As Good As JACK?

there are some things that JACK can optimize for, like:

  • JACK is simpler because it can simply configure ALSA in IRQ modes with a fixed period size. PipeWire needs to manage both timer based scheduling and IRQ based scheduling with dynamic switching when allowed.
  • It does not need to care about security and can simply allocate all objects in one fixed piece of shared memory, this makes it much faster to get to the data you need and to introspect objects.
  • It does not need to care about negotiation of data formats or buffers, which makes it faster to build the graph and start processing.
  • It has a lot of support and history.
  • We might not want to support some JACK features, like session management.

I used PulseAudio (with JACK + ALSA) only since it was required for Skype. Early versions (up to v5.0) were not reliable for live broadcasting. The main reason I switched from AVLInux to Manjaro was to get a later version of PulseAudio. I have been running a minimised PulseAudio alongside JACK and ALSA with no problems on Manjaro (using IRQ scheduling like JACK and ALSA) and do not need pipewire-pulse replacement service

PipeWire - Wiki - FAQ - Why is PipeWire So much worse than JACK? Why do I get so many xruns?

It depends on the hardware and drivers. Some people can get lower latencies with JACK, others with PipeWire.

I suggest:

  • Use Renoise with jack2 (or just ALSA if possible) instead of pipewire-jack
  • Use a different DAW or no DAW with pipewire-jack to rule out any problems with Renoise

Good for the Manjaro team to know.

Also good for the Manjaro team to know.

:confused: Did you see the part in the post where it said " Running Renoise 3.4.4 (purchased) for Linux"? :wink:

I made a needed update to the question to request “working solutions only”. It should have been there up front.

LMK if you get a demo working off a fresh, current Manjaro install. I’ll want to know, Renoise users will want to know, and the Manjaro team will want to know more than any of us want to.

Some Renoise forum users don’t need to know about PipeWire replacement services

How to set up Pipewire for Renoise on Linux? - Renoise Forums

I don’t use PipeWire nor JACK and Renoise works amazingly for me in this regard.

Have you tried just using ALSA… …if that functions properly in that way first, then you could try getting it up and running with PipeWire etc.

Manjaro PipeWire packages are inherited from Arch
Manjaro Team may not be able to help much with inherited packages
Best place to report an issue with pipewire-pulse would be upstream

1 Like