Veröffentlicht am

Audio-Streaming mag keine Interrupts

Interrupt klingt vielleicht nach Computer-Nerd, aber jeder Prozessor wird ständig im Ausführen von Befehlen „unterbrochen“. Bei der Musikwiedergabe sollte man die Schwankungen, die durch Interrupts ausgelöst werden, so gering wie möglich halten.

In den Grundlagen gehe ich kurz auf die Interrupts in Prozessoren ein und im Praxisteil gebe ich dir Tipps, wie du die Interrupts im Audio PC bei der Musikwiedergabe verringerst.


Grundlagen

Interrupts im Prozessor

Ein Interrupt tritt bei einem Ereignis auf, dass die normale Ausführung eines Programms unterbrechen soll. Dieses Ereignis kann beispielsweise das Drücken einer Taste auf der Tastatur, das Eintreffen einer Netzwerknachricht oder das Ablaufen eines Timers sein. Interrupts ermöglichen es dem Computer, auf Echtzeitereignisse zu reagieren, ohne dass dafür kontinuierlich nach Ereignissen gesucht werden muss. Das ist durchaus so gewollt, denn ohne Interrupts wären beispielsweise Multitasking-Betriebssysteme unmöglich, da Programme ohne sie nicht mehr unterbrochen und Ein-/Ausgabegeräte nicht mehr bedient werden könnten.

Sobald ein Interrupt ausgelöst wird, stoppt der Prozessor seine aktuelle Aufgabe und springt zu einem speziellen Interrupt-Handler, der das Ereignis behandelt. Der Interrupt-Handler führt den erforderlichen Code aus, um auf das Ereignis zu reagieren. Dies kann beispielsweise das Lesen von Daten von einem Eingabegerät, das Aktualisieren von Informationen im Arbeitsspeicher oder das Starten eines bestimmten Programms sein.

Nachdem der Interrupt-Handler abgeschlossen ist, kehrt der Prozessor zur vorherigen Aufgabe zurück und setzt seine normale Ausführung fort.

Leider neigen Betriebssysteme wie Windows dazu, alle möglichen Interrupts zuzulassen. Die Musikwiedergabe kann beeinträchtigt werden, weil zum Beispiel die internetfähige Waschmaschine meldet, dass die Wäsche fertig ist. Schuld daran ist Broadcast. Das ist in einem Rechnernetz eine Nachricht, bei der Datenpakete von einem Punkt aus an alle Teilnehmer eines Nachrichtennetzes übertragen werden. Siehe Audio PC Netzwerk. Vor allem die vielen Dienste, die mit der Audiowiedergabe nichts zu tun haben, können Interrupts auslösen. Zum Beispiel weil das Betriebssystem der Meinung ist unbedingt während der Musikwiedergabe ein Update durchzuführen.

Mögliche klangliche Auswirkungen von Interrupts

Wer regelmäßig Musik streamt kennt das. Es kommt manchmal zu kurzen Aussetzern. Das sind die offensichtlichen Probleme. Komisch wird es, wenn die Musik nicht klingen will. Sich die Bühne einfach nicht öffnet.

Stell dir vor du sitzt im Auto und möchtest auf der Autobahn bei Tempo 130 km/h dahingleiten. Plötzlich schert ein anderes Fahrzeug aus und du musst scharf abbremsen. Dann ist die Autobahn wieder frei und du gibst wieder Gas. Der Vorgang wiederholt sich permanent und die Geräusche beim Gas geben nerven. Damit wirst nicht nur du gestresst, sondern natürlich auch der Motor, das Bremssystem und die Karosserie. Der Verschleiß wird unweigerlich erhöht.

So ähnlich kannst du dir das bei einem Prozessor vorstellen. Der wird auch von permanenten Interrupts gestresst und fährt laufend hoch und runter. Vor allem sorgen Einergieeinsparungsoptionen für starke Schwankungen. Hier sorgen Sensoren und Algorithmen für die Interrupts, welche die Rechenlast bei Leerläufen besser verteilen. Die wechselnde Last sorgt jedoch für erhöhtes Rauschen und elektromagnetische Interferrenzen (EMI). Das Grundrauschen nimmt zu oder wird zumindest unbeständig.

Störungen können auch die Signalintegrität beeinflussen, so dass der Cotroller die 0 von der 1 im Spannungsverlauf nicht mehr zuverlässig voneinander unterscheiden kann. Die Folge sind neue Paketanforderungen und erhöhte Leistungsaufnahme im Prozessor.


Praxis

Die nachfolgenden Tipps beziehen sich zwar auf das Betriebssystem Winows 10/11 Pro, können aber natürlich auch für andere Betriebssystem angewendet werden, sofern notwendig und möglich.

Energiesparoptionen ausschalten

Unter Windows kannst du in der Systemsteuerung die Energieoptionen verwalten. Klicke zuerst auf „Einige Einstellungen sind momentan nicht verfügbar“, damit die Energieoptionen ausgewählt werden können. Für niedrigste Latenzen und weniger Interrupts wähle „Höchstleistung“ oder „Ultimative Leistung“ aus.

Zu erwähnen ist, dass es die Energiespareinstellungen auch beim Netzwerkadapter gibt. Diese sollst du deaktivieren.

Praxisvalidierung mit der Energieoption „Ausbalanciert (empfohlen)“

Du glaubst nicht an den Nutzen? Dann teste die verschieden Energieoptionen mit dem kostenlosen Analyse-Tool: LatencyMon. Siehe auch Latenzen im Audio PC selbst messen.

Es ist manchmal erschreckend, was Windows Standardeinstellungen für Schaden anrichten können. Im Bild unten siehst du gravierende Probleme bei der Audio Wiedergabe. Die Latenzen steigen auf bis zu 13.687,70 µs. Als Maßeinheiten dienen: 1 s (Sekunde) entspricht 1000 ms (Millisekunden) entspricht 1.000.000 µs (Mikrosekunden). Schuld daran ist der Kernel-Treiber (ntoskrnl.exe). Das Programm ntoskrnl.exe ist nicht sichtbar, jedoch einer der wichtigsten Prozesse von Windows, der für verschiedene Windows-Prozesse, wie Hardware-Virtualisierung, Prozess- und Speichermanagement eine entscheidende Rolle spielt.

Im Windows Task-Manager sind die erheblichen Schwankungen der einzelnen Kerne über den Zeitverlauf gut zu sehen:

Praxisvalidierung mit der Energieoption „Ultimative Leistung“

Diese Einstellung „Ultimative Leistung“ hat zwar einen hohen Energieverbrauch, bringt aber einiges für die Musikwiedergabe. Insbesondere die Taktfrequenz der Cores schwankt nicht mehr, sondern wird auf dem Höchstwert festgenagelt. Um Übertreibungen zu vermeiden, muss im BIOS die Taktfrequenz limitiert werden, was wir beim fis Audio PC natürlich machen. So sinken die Latenzen auf sehr niedrige 48,10 µs und pendeln meist um die 16,50 µs. Damit ist eine störungsfreie Musikwiedergabe problemlos möglich. Siehe auch Grundlagen Audio PC Latenzen.

Im Windows Task-Manager ist eine deutliche Beruhigung der Core-Auslastung zu sehen. Die Sprünge von 0% auf 100% Auslastung wie oben fehlen komplett.

System-Timer auf kurzes Interrupt Standardintervall setzen

Windows ist kein Echtzeitbetriebssystem. Das Interrupt Standardintervall beträgt 15,625 ms (1.000 ms geteilt durch 64). Für Audio ist es im Allgemeinen besser das Intervall so kurz wie möglich zu halten, weil sich dadurch die Latenzen verringern. Unter Windows 10/11 sind als Minimum 0,5 ms möglich. Mit einem Programm wie zum Beispiel TimerTool kann das Intervall neu eingestellt werden. Ich verwende dafür das Programm Process Lasso und ich habe die System-Timer-Auflösung auf 0,5 ms eingestellt. Damit werden auftretende Interrupts schneller abgearbeitet.

Noch besser ist das HQPlayer OS. Dessen Betriebssystem hat als Basis einen Linux Echtzeit-Kernel oder zumindestens einen Kernel mit geringsten Latenzen. Dort stellen sich diese Probleme nicht.

Nicht benötigte Programme dauerhaft abschalten

Es gibt viele sinnfreie Windows Dienste, die bei einem Audio PC nicht benötigt werden. Zum Beispiel für die Synchronisierung von nicht vorhandenen Mails, Kontakten, Kalendern und anderen User-Infos. Diese Dienste wachen irgendwann auf und sorgen für Interrupts. Leider lassen sie sich nicht einfach abschalten, stattdessen muss tief in die Windows Registry eingegriffen werden. Siehe Windows Registry reduzieren.

Hier ist das HQPlayer OS wieder positiv zu erwähnen. Statt rund 170 Prozesse wie in Windows gibt es dort nur rund 20 Prozesse. Je weniger Prozesse im Hintergrund laufen, desto weniger kann stören.

Ethernet (LAN) auf Echtzeit umstellen

Beim Download von einem Streaming-Anbieter wie Qobuz oder Tidal soll der Netzwerkverkehr für deine Musikfiles oberste Priorität haben. Zwar ist das Internet mit seiner asynchronen Datenübertragung recht robust und fordert fehlerhafte Datenpakete neu an. Aber was nutzt dir das, wenn die Zeit dafür nicht mehr ausreicht?

Die Prioritäten-Klasse für das Netzwerk und Roon habe ich mit Process Lasso auf „Echtzeit“ eingestellt. Dafür sortierst du unter „Benutzer“ die Prozesse alphabetisch und hast dann die Prozesse für den Netzwerkdienst untereinander. Klicke den Prozess mit der rechten Maustaste an und ändere die Priorität wie folgt: CPU-Priorität > Immer > Echtzeit.

Die Erhöhung der CPU Priorität hilft gegen Interrupts, weil die meisten Unterbrechungsaufforderungen eine niedrigere Priorität haben und deshalb nicht durchkommen.

Roon habe ich ebenfalls priorisiert. Es ergab sich dann ein verblüffender Effekt: Alle Musikfiles werden nun in einem Rutsch geladen. Unten im Bild siehst du nur eine schlanke Spitze, dass heißt der Download erfolgt in Sekundenschnelle. Das Musikfile steht dann im schnellen Arbeitsspeicher für das Abspielen zur Verfügung. Beim Senden ist dagegen eine ruhige Linie (gestrichelt) mit sehr geringen Schwankungen das Ergebnis, weil genügend Daten zur Verfügung stehen.

USB-Latenzen verringern

Ich bin ein großer Fan von Acourate für die Raum- und Lautsprechermessung und Korrektur. Der Entwickler Dr. Ulrich Brüggemann hat aber immer auch etwas Neues auf Lager. So hat er im Januar 2025 ein neues Tool „AsioTimeTest“ zur kostenlosen Nutzung zur Verfügung gestellt. Das Programm gibt es als Setupdatei oder als portable 7zip-Version (Achtung die Links können veraltet sein, dann bitte direkt bei Audio Vero anfragen).

Die übliche USB-Schnittstelle zwischen dem Audio PC und dem DAC wird unter Windows mit dem ASIO-Treiber zur Verfügung gestellt. Bei Linux ist es ALSA. ASIO arbeitet mit einem Wechselpuffer-Prinzip. Während der Player Daten in den einen Puffer schreibt, liest der Treiber den anderen Puffer und gibt die Daten an die entsprechende Hardware weiter.

Der Renderer muss schnell genug schreiben, dann kann der Puffer umgeschaltet werden. Wird z.B. ein ASIO-Puffer von 512 Byte bei 44100 Hz verwendet, so muss alle 512/44,1 = ca. 11,6 Millisekunden ein Pufferwechsel stattfinden. Das Timing wird vom ASIO-Treiber vorgegeben.

Mit dem Programm „ASIO Timing Test“ können Schwankungen im Timing grafisch dargestellt werden. Ich wollte nun wissen, wie der fis Audio PC abschneidet. Denn dieser ist natürlich hochoptimiert. Ich habe dafür den USB-Treiber von thesycon (T+A DAC 200) verwendet. In meinen Experimenten habe ich mit den Buffersize-Werten gespielt. Außerdem testete ich mit dem Programm CPU-Z, ob eine hohe Auslastung die Datenübertragung beeinträchtigt.

Buffersize 512

Der Signalfluss ist sehr homogen und stabil, aber es gibt Ausfransungen zu sehen, die im nächsten Bild besser zu sehen sind.

CPU-Z Stresstest mit Buffersize 512

Die Belastung habe ich mit CPU-Z zwischen 1.000 und 3.000 deutlich erhöht. Etwas reingezoomt gab es keinerlei Auswirkungen beim fis Audio PC. Zu sehen sind jedoch die oben erwähnten Ausfransungen, also Schwankungen im Timing.

Buffersize 256

Mit einer Reduzierung des Puffers auf die Hälfte ergeben sich weniger Schwankungen.

Buffersize 64

Mit einer Reduzierung des Puffers um 1/8 im Vergleich zum Buffersize 512 werden die Schwankungen noch geringer.

Buffersize 8

Bei diesem sehr geringen Puffer müssen der Prozessor und der Speicher sehr schnell sein, sonst reißt der Datenstrom ab. Da hilft nur eigenes Experimentieren.

Etwas reingezoomt: keinerlei Schwankungen und ein stabiler Signalfluss beim fis Audio PC.

Abhängigkeit der Puffereinstellungen mit den Latenzen

Je geringer der Puffer ist, desto geringer werden auch die Latenzen. Unten im Bild werden die Zusammenhänge deutlich. Wie die Versuche mit dem Programm „ASIO Timing Test“ oben gezeigt haben, wird das Signal mit den geringstmöglichen Puffereinstellungen im Timing schwankungsunanfälliger. Solange die CPU schnell genug ist, empfehle ich niedrige Puffereinstellungen.

Zusammenfassung

In jedem Streaminggerät oder Audio PC steckt ein Prozessor, der mit Interrupts umgehen können muss. Sonst könntest du zum Beispiel die laufende Musikwiedergabe nicht unterbrechen. Die möglichen klanglichen Auswirkungen liegen in der Häufigkeit von Interrupts und den damit verbundenen Schwankungen im Strom- und Signalfluss begründet.

Während die Einstellungsmöglichkeiten bei fertigen Streamern und Playern sehr begrenzt sind, hast du im fis Audio PC alle Möglichkeiten. In der Praxis hat es sich bewährt, Energiesparoptionen auszuschalten. Stelle die Systemzeit zur Verringerung von Latenzen auf ein kurzes Intervall ein. Deaktiviere dauerhaft nicht benötigte Programme. Oder nimm gleich ein schlankes Betriebssystem wie zum Beispiel das HQPlayer OS.

Stelle dein Ethernet (LAN) auf Echtzeit um und die Musikfiles werden künftig aus dem RAM gespielt. Durch die Reduzierung der USB-Latenz erreichst du einen störungsfreien Datenfluss ohne Schwankungen.


Du hast Fragen oder möchtest etwas beitragen? Schreibe uns: Kontaktformular
Oder schreibe per E-Mail an: info@griggaudio.de


Disclaimer

Alle Informationen, die du unter Grigg Audio Solutions findest, wurden nach besten Wissen und Gewissen sorgfältig recherchiert und mit Quellenangaben belegt. Irrtümer sind jedoch nie auszuschließen. Wenn du die Informationen für eigene Nachbauten oder Softwareeinstellungen verwendest, machst du das immer auf eigene Gefahr. Wenn du Fehler findest oder dir etwas unklar ist: Melde dich!


Offenlegung finanzieller Interessen

Grigg Audio Solutions bietet Lösungen für die digitale Musikwiedergabe an. Aufgrund der Vielzahl von Lösungswegen und unterschiedlichen Zielbilder kann nur eine bestimmte Auswahl der Hardware und der Software vorgestellt und besprochen werden. Grigg Audio Solutions ist ein gewinnorientiertes Einzelunternehmen. Auch wenn Grigg Audio Solutions Wert auf eine faire ausgewogene Informationsweitergabe legt, soll jeder Leser aus Transparenzgründen wissen, wo die Berichte finanzielle Interessen berühren können.

Damit du die Berichte besser einschätzen kannst, machen wir dich auf die Marken aufmerksam, mit denen Grigg Audio Solutions in Geschäftsverbindung steht, beziehungsweise du deren Produkte bei Grigg Audio Solutions kaufen kannst: