Schluss mit Xruns - Wie ich Renoise unter Linux auf 2,6 ms Latenz gebracht habe

Veröffentlicht am 2026-01-09 15:00:31


Musikproduktion unter Linux ist eine Geschichte, die doch ein wenig über das hinausgeht, was man normalerweise mit diesem Betriebssystem verbindet. Linux selbst ist fantastisch optimiert, aber wenn man spezielle Dinge tun will, kommt man nicht darum herum, Anpassungen vorzunehmen. Ich hatte das jetzt beim Musikmachen in Renoise, aber alles, was ich hier schreibe, passt auch wunderbar zu Reaper, Bitwig oder jeder anderen DAW.

Ich hatte in letzter Zeit massiv mit Xruns in Renoise zu kämpfen. Das Absurde daran: Auf exakt demselben Rechner lief unter Windows alles butterweich. Da ich Renoise in- und auswendig kenne, wusste ich sofort: Es liegt nicht an der DAW. Das Problem ist das Betriebssystem, beziehungsweise wie es standardmäßig mit unseren Ressourcen umgeht.

Aber wir wären ja keine Linux-User, wenn wir das nicht fixen könnten. Spoiler: Mittlerweile arbeite ich mit einer Latenz von 2,6 ms. 2 ms sind auch stabil drin, es geht vermutlich sogar noch weniger, aber ich finde, dass 2,6 ms der beste Kompromiss zwischen Leistung und Systemlast ist.

Hier ist mein Guide für ein stabiles Linux-Audio-Setup.

Schritt 1: Realtime-Prioritäten und cpupower

Zuerst müssen wir dem System beibringen, dass Audio wichtiger ist als das Hintergrundrauschen von Systemdiensten. Da ich (wie viele von euch vermutlich auch) auf einem Arch-basierten System unterwegs bin, nutzen wir yay.

Wir installieren realtime-privileges und cpupower:

yay -Syu realtime-privileges cpupower

Das Paket realtime-privileges erstellt eine Gruppe für User, die Echtzeit-Prioritäten anfordern dürfen. Da müssen wir rein. Ersetzt $USER durch euren Benutzernamen, falls die Variable nicht gesetzt ist.

sudo usermod -aG realtime $USER

WICHTIG: Damit das greift, müsst ihr NEUSTARTEN. Kein Ausloggen, kein Rumtricksen. Reboot. Jetzt.

Schritt 2: Weg mit dem Energiespar-Management

Moderne Desktop-Umgebungen wie KDE und Gnome nutzen den power-profiles-daemon, um die CPU-Einstellungen zu steuern. Das ist nett für Laptops im Café, um Akku zu sparen, aber wir wollen Leistung. Wir wollen die Kontrolle über cpupower.

(Kleiner Exkurs: cpupower hilft übrigens auch beim Gaming. Von Feral gibt es eine Software namens gamemode, die setzt die CPU zur Laufzeit eines Spiels ebenfalls auf Performance und danach wieder runter. Wir wollen das hier aber permanent für die Audio-Session.)

Also maskieren wir den Daemon, damit er uns nicht dazwischenfunkt:

sudo systemctl mask power-profiles-daemon

Schritt 3: CPU-Governor auf "Performance" setzen

Jetzt bearbeiten wir die Konfigurationsdatei von cpupower. Wir wollen, dass die CPU permanent im Performance-Modus läuft und nicht erst hochtaktet, wenn es eigentlich schon zu spät ist.

Das Problem beim Standard-Modus ("Ondemand" oder "Schedutil"): Angenommen, dein Song läuft ruhig mit einem Klaviersound (wenig Last) und plötzlich setzen 30 Streicherspuren und Effekte ein. Die CPU merkt zwar, dass sie hochtakten muss, aber in der Millisekunde, die sie dafür braucht, knackt der Audio-Buffer schon. Das wollen wir verhindern.

Öffnet die Datei:

sudo nano /etc/default/cpupower

In meiner Arch-Version ist es die dritte Zeile. Sucht nach governor (entfernt das Kommentarzeichen #, falls vorhanden) und setzt es auf performance:

governor='performance'

Speichern (STRG+O) und Ende (STRG+X). Jetzt aktivieren wir den Dienst:

sudo systemctl enable --now cpupower.service

Um sicherzugehen, dass eure CPU jetzt auch wirklich rennt, könnt ihr das hiermit prüfen:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Wenn hier überall "performance" steht, habt ihr es geschafft.

Schritt 4: Renoise und PipeWire tunen

Jetzt geht es an die DAW. Ihr könnt Umgebungsvariablen direkt im Desktop-Launcher setzen oder Renoise über das Terminal starten, um PipeWire zu zwingen, bestimmte Puffergrößen zu nutzen.

Ein guter Startwert für knackige Latenz ist ein 128 Byte Buffer bei 48 kHz:

PIPEWIRE_LATENCY=128/48000 renoise

Damit startet Renoise direkt mit diesen Einstellungen. Ihr könnt mit den Werten spielen – geht ruhig tiefer mit den Buffern (64, 32), wenn eure Hardware mitspielt. Es sind Latenzen bis zu 0,5 ms technisch möglich, aber ich hatte in diesem Bereich Probleme mit einigen VST-Effekten, weshalb ich wieder auf 128 hochgegangen bin.

Die 48000 Hz sind natürlich abhängig von eurer Soundhardware. 44100, 96000 oder sogar 192000 Hz könnt ihr dort ebenfalls eintragen, sofern eure Soundkarte das unterstützt.

Die "Hardcore"-Variante: Full ALSA Mode

Wenn ihr wirklich das allerletzte bisschen Latenz rausholen wollt und euch PipeWire oder Jack egal sind: Geht auf "Full ALSA".

Der Haken: Ihr habt dann keinen Sound von anderen Apps (Browser, Spotify etc.), während Renoise läuft, weil es sich exklusiv den Zugriff auf die Soundkarte krallt.

  1. Geht in die Renoise Preferences -> Audio.
  2. Wählt als Device ALSA aus (nicht Jack, nicht PipeWire).
  3. Wählt eure HARDWARE-Soundkarte aus (nicht "Default" oder "Pulse" Wrapper).
  4. Renoise wird eventuell meckern, dass es das Gerät nicht initialisieren kann. Klickt auf Rescan und et voilà: Es läuft.

Hier könnt ihr die Buffer so weit runterschrauben, bis es kracht und knackt.

Fazit

Ganz ehrlich? Ich bin mittlerweile mit PipeWire/Jack und meinen gut 2 ms Latenz wunschlos glücklich. Das System ist stabil, die Xruns sind Geschichte und ich kann mich endlich wieder auf das konzentrieren, was zählt: Musik machen.