Linux & Audio

SPDIF-Ton unter Linux verzögert: Warum der erste Ton fehlt und was hilft

Lokaler Fix ohne Audio-Upload

Die Skripte arbeiten mit deinem lokalen Audiosystem. Sie laden keine Tonaufnahmen zu einem Dienst hoch; der Keepalive erzeugt sein Testsignal selbst.

In diesem Artikel
  1. Aufwachverzögerung oder dauerhafte Audio-Latenz?
  2. Das Problem zunächst reproduzieren
  3. Der SoX-Keepalive als gezielter Test
  4. Was verändert das interaktive Menüskript?
  5. Die wichtige Grenze bei PipeWire und WirePlumber
  6. Konfiguration vorher sichern und Rückweg prüfen
  7. Datenschutz und lokaler Betrieb
  8. Häufige Fragen
  9. Projekt und technische Quellen

Du klickst auf ein kurzes Video und die ersten Silben fehlen. Ein Benachrichtigungston ist ganz verschwunden, während längere Musik anschließend normal läuft. Bei einem über SPDIF angeschlossenen Verstärker kann dahinter das Aufwachen des Audiogeräts oder das erneute Erkennen des digitalen Signals stecken.

Mein SPDIF-Fix-Projekt enthält zwei lokale Ansätze: ein Menüskript für Änderungen an der Audiokonfiguration und einen kleinen SoX-Keepalive. Dieser Ratgeber hilft dir, zuerst das passende Fehlerbild zu erkennen und anschließend gezielt zu testen.

Aufwachverzögerung oder dauerhafte Audio-Latenz?

S/PDIF überträgt digitales Audio, häufig über ein optisches TOSLINK-Kabel oder eine koaxiale Verbindung. Nach einer stillen Phase kann das Audiosystem ein Gerät suspendieren. Auch der Empfänger braucht unter Umständen Zeit, um sich wieder auf das Signal einzustellen. Dann geht gerade ein sehr kurzer Ton am Anfang verloren.

BeobachtungWas du zuerst untersuchen solltest
Nur der erste Ton nach einer Pause fehltSuspend oder Wiedererkennen des Signals
Ton ist während des gesamten Videos versetztWiedergabe-Latenz und Synchronisation
Dauerhafte Aussetzer oder KnackenRouting, Format, Treiber und Audiopuffer
Auch laufende Musik bleibt stummAusgang, Profil, Lautstärke und Verbindung

Ein Keepalive zielt auf das erste Fehlerbild. Er repariert weder ein defektes Kabel noch jede Form von Audio-Latenz. Der Vergleich verhindert, dass du für ein anderes Problem unnötig die gesamte Audiokonfiguration änderst.

Das Problem zunächst reproduzieren

  1. Wähle deinen tatsächlichen SPDIF-Ausgang und prüfe ihn mit einem längeren Musikstück.
  2. Beende die Wiedergabe und warte bis zu dem Zustand, in dem der Fehler normalerweise auftritt.
  3. Spiele einen kurzen Ton ab und höre ihn kurz darauf erneut. Fehlt nur der Anfang des ersten Durchlaufs?
  4. Vergleiche das Verhalten mit und ohne laufenden Keepalive. Ändere während dieses Vergleichs keine weiteren Einstellungen.

Bei vorhandener PulseAudio-Schnittstelle zeigt dir dieser Befehl Informationen über den Soundserver und den Standardausgang:

pactl info

PipeWire kann die PulseAudio-Schnittstelle bereitstellen. Ein funktionierendes pactl allein bedeutet deshalb nicht, dass ein eigenständiger PulseAudio-Server läuft. Nutzt dein System WirePlumber und steht das Werkzeug bereit, hilft zusätzlich:

wpctl status

Der SoX-Keepalive als gezielter Test

Der Helfer soundfixforautostart.sh wartet drei Sekunden und startet anschließend play aus SoX. Er erzeugt einen fortlaufenden Stereo-Sinuston mit sehr niedrigem Pegel (gain -100). Das ist ein erzeugtes Signal, keine Audioaufnahme und keine perfekte digitale Stille.

Wenn dein Empfänger dadurch das Signal aktiv hält, können kurze Töne nach einer Pause wieder vollständig hörbar sein. Das hängt von Ausgang, Routing und Hardware ab. Der Helfer nutzt den Ausgang, den SoX in deiner Sitzung auswählt; prüfe also, ob er tatsächlich über SPDIF läuft.

Lade bei installiertem Git das Projekt:

git clone https://github.com/dennishilk/spdif-fix.git

Wechsle in den Ordner:

cd spdif-fix

Wenn SoX und sein Befehl play installiert sind, starte den Helfer zunächst in einem Terminal deiner normalen Benutzersitzung:

bash ./soundfixforautostart.sh

Beende den Test mit Strg + C im selben Terminal. Vergleiche erneut das Verhalten nach einer Pause. Richte einen Autostart erst ein, wenn der Unterschied nachvollziehbar ist und das Signal über den richtigen Ausgang läuft.

Das Offenhalten des Audiopfads kann verhindern, dass Gerät oder Verstärker in ihren sparsameren Ruhezustand wechseln. Bei exklusiver Audioausgabe oder Bitstream-Passthrough passt eine zusätzlich laufende Wiedergabe möglicherweise nicht zu deinem Setup.

Das Skript spdif-fix.sh bietet „Fix anwenden“, „Fix zurücksetzen“ und „Beenden“. Lies seinen Quellcode, bevor du Konfigurationsänderungen ausführst. Es arbeitet abhängig von erkannten Prozessen an unterschiedlichen Stellen:

  • PulseAudio: Es versucht, module-suspend-on-idle zu entladen, sichert eine vorhandene /etc/pulse/default.pa als .bak und kommentiert passende Zeilen aus.
  • PipeWire: Es erstellt gegebenenfalls eine Benutzerkopie von pipewire.conf, sichert sie und kommentiert Zeilen mit suspend-on-idle aus.
  • ALSA: Wenn noch keine ~/.asoundrc existiert, legt es eine Definition namens spdif_keepalive an. Diese Definition startet selbst keine kontinuierliche Wiedergabe.

Anschließend versucht es, erkannte Soundserver neu zu starten. Dabei kann laufende Wiedergabe unterbrochen werden. Starte das Menü in deiner normalen Benutzersitzung; für die systemweite PulseAudio-Datei fordert das Skript gezielt sudo an:

bash ./spdif-fix.sh

Die wichtige Grenze bei PipeWire und WirePlumber

Auf heutigen PipeWire-Systemen verwaltet häufig WirePlumber den Ruhezustand der Audiogeräte. Seine dokumentierte Eigenschaft session.suspend-timeout-seconds kann diesen Suspend steuern; der Wert 0 deaktiviert ihn für den betroffenen Knoten.

Das vorhandene Menüskript legt keine solche WirePlumber-Regel an. Eine auskommentierte Zeile in pipewire.conf muss daher auf deinem System keine Wirkung haben. Auch die Meldung „Fix angewendet“ bestätigt noch keinen erfolgreichen Hörtest.

Wenn du eine dauerhafte WirePlumber-Anpassung brauchst, prüfe deine installierte Version und die offizielle Dokumentation. Dort werden Konfigurationsfragmente beschrieben. Eine gezielte Regel für den tatsächlichen SPDIF-Ausgang ist sinnvoller als eine pauschale Änderung aller Geräte.

Konfiguration vorher sichern und Rückweg prüfen

Bewahre vorhandene Audiokonfigurationen vor dem Menütest separat auf. Die vom Skript erzeugten .bak-Dateien sind keine fortlaufende Versionshistorie; erneutes Anwenden kann sie überschreiben.

Die Reset-Option entfernt eine vorhandene ~/.asoundrc, ohne zu unterscheiden, wer sie angelegt hat. Sie ist deshalb kein verlässlicher vollständiger Rückweg für eine schon vorher individuell konfigurierte ALSA-Datei. Vergleiche die Änderungen und nutze deine eigene Sicherung, wenn du eine solche Konfiguration hast.

Der Keepalive-Test ist für einen ersten Vergleich übersichtlicher: Er läuft als Wiedergabeprozess und lässt sich beenden, ohne diese Dateien zu ändern.

Datenschutz und lokaler Betrieb

Die Skripte greifen auf lokale Audiofunktionen und Konfigurationsdateien zu. Der SoX-Helfer erzeugt sein Signal selbst; er nimmt dein Mikrofon nicht auf und lädt keine Audiodateien hoch. Zum Herunterladen des Projekts und gegebenenfalls zum Installieren von SoX brauchst du eine Verbindung zu GitHub beziehungsweise deinen Paketquellen.

Wenn du um Hilfe bittest, reichen oft Soundserver, Ausgangsprofil und das genaue Fehlerbild. Prüfe Terminalausgaben und Screenshots vor dem Teilen auf persönliche Angaben.

Häufige Fragen

Funktioniert der Fix auf jedem Linux-System?

Das lässt sich nicht zusagen. Audiostack, Konfigurationsversion, Routing und Empfänger bestimmen den Effekt. Vor allem der Menüweg ist kein universeller WirePlumber-Fix.

Ist der Keepalive komplett lautlos?

Er erzeugt einen sehr leisen Sinuston. Ob davon etwas hörbar wird, hängt auch von Verstärkung und Hardware ab. Prüfe ihn in deinem eigenen Setup.

Muss ich beide Ansätze gleichzeitig verwenden?

Beginne mit einem einzelnen Test. So erkennst du, welche Änderung das Verhalten beeinflusst. Ein nachweislich funktionierender Keepalive braucht nicht automatisch zusätzliche Konfigurationsänderungen.

Projekt und technische Quellen

Die Beschreibung wurde mit den Skripten abgeglichen. Stand: 6. Oktober 2026.