Topic: The (Mostly Working), Long-Awaited Guide for RME + Linux
Sick of Windows garbage? Maybe you also didn't take a liking to Windows 11. It really sucks; no desktop customization whatsoever. Meanwhile, over in KDE/GNOME land (I should specify Wayland), we have all the customization we could ever want. Rainmeter? Not really the same as having a native Desktop manager. And does it irk anyone else that Microsoft watches everything we do via its invasive telemetry?
I took the plunge a few weeks ago, and I have an even more reliable system now. Even though I get xruns still, when I do, I don't get a BSOD; instead, the Linux kernel keeps on ticking, brushing it all off. Windows VSTs? Sure. Kontakt 6? Sure. Latency? Well... it fluctuates...
Before I get in to the real meat of this tutorial, I'll stipulate that running Windows probably still works the best and has the best performance over Linux; getting all the plugins to work takes time, and if you work in pro audio as a career and you have limited knowledge of working with Terminal, then probably better to stay away from this. This is still an experiment, but it works. So try at your own risk.
1. Install Manjaro. I choose to go with Manjaro after tinkering for a few months with KDE Neon as my main driver and landed on it because it supports changing kernels easily. If you do have an existing Linux Mint install or other debian-based distro, then check out the licorix kernels; with pipewire, I think they'd work very well, though I have only tested so far with jack2/jackd.
2. Follow this guide here: https://github.com/ElizabethHarmon/ManjaroProAudio. Elect to follow the pipewire instructions/setup. I had issues with far more xruns using jack/carla, but there's also an equivalent audio guide for Ubuntu users here: https://github.com/ElizabethHarmon/UbuntuProAudio. It's probably because the buffer size varies from app to app, so every app doesn't have to match the global buffer size. Speaking of buffer sizes, I just set the global buffer size to 128 and the sample rate to 48000.
3. Install and configure wine-staging as per the guide. Map a shared drive in the wine config to wherever you store your VST plugins.
winecfg
4. Import your Windows plugins:
yabridgectl add "/run/media/seang/Installed Games and Applications/Backups/VST2/"
(you can find the full path in Dolphin and copy-paste that path in, as in the examples above)
5. Generate the linux .so files for the imported Windows VST plugins:
yabridgectl sync
6. Install ffado-mixer and monitoring friends. You can use the built-in package manager to install ffado-mixer and qpwgraph at the very least.
7. Configure ffado-mixer to always launch when the PC launches. Without this, you won't be able to adjust the mic gains and perform routing like you would normally do in TotalMix. In fact, ffado-mixer is very close to a full replacement of TotalMix!
For example, you can perform full routing and send from inputs to outputs via the routing matrix:
8. Open up your DAW of choice and profit. Make sure to use the ALSA drivers for output device (for example in REAPER). Play around with the settings here. I've actually completely frozen Manjaro from here by using basic settings here: 3 frames at 128 buffer size and 48000. Play around with the RT priority, but probably 90 at least.
Known Bugs
1. Mic gains do not persist after reboot and reset to 0db, so we need to manually reset them on boot (hence step 7).
2. Audio delay when watching videos. I think this has to do with the Clock Source not set to "Internal" as it would be in Windows. Looking at that now, but if you experience delay in this way, try using mpv to watch your videos (or vlc), and adjust audio delay accordingly
3. xruns when playing video games -- and in real-time priority tasks. With proton + wine working quite well, note that you'll get sync issues until I can figure out how to use the RME interface with "Internal" clock source.
4. Audio not at 100% quality; I do notice a slight "tinniness" to the audio on Linux. Perhaps not the full spectral range or suppressed sample rate differences with aliasing or something to that effect. I had much worse before when using PulseAudio and ffado, so pipewire really does sound much better than ALSA + Pulseaudio.
Pleasant Surprises
1. Volume rocker(s) on keyboards work as expected
2. Mute button works as expected
3. MIDI and audio inputs work out of the box without requiring any configuration; simply select your audio interface as the input device, and you should be good to go
4. Surround/quad/5.1 works, but the configuration of outputs slightly differs from Windows. Thankfully, you can visually configure this in qpwgraph.
Further Troubleshooting
1. Force your buffer size to 128:
pw-metadata -n settings 0 clock.force-quantum 128
2. Monitor your app for xruns (errors):
pw-top
3. Visualize the patchbay in qpwgraph or Helvum