beim DIY-Projekt High Performance Audio PC mit hochwertiger Verkabelung habe ich gute Erfahrungen bei der Optimierung der Latenzen gemacht. Meines Erachtens eine oft unterschätzte Baustelle. Dieser etwas längere Bericht soll Anregungen für Problemlösungen und Eigenoptimierungen geben. Selbstverständlich sind andere Meinungen oder Ergänzungen/Richtigstellungen willkommen.
Auswirkungen von Latenzen
Jeder, der digital Musik streamt hat es vielleicht schon erlebt: Aussetzer, Klicks oder Knackser. Die Ursachen können in verlorenen Datenpaketen liegen, weil die Latenzen zu hoch sind. Zu hohe Latenzen sind meines Erachtens aber auch verantwortlich für einen undynamischen zweidimensionalen Sound.
Definition von Latenzen
Latenz bedeutet zeitliche Verzögerung. Latenzen sind überall vorhanden. In der digitalen Musikwelt ist es zum Beispiel die Zeitdauer für die Digital-/Analog Codierung (DAC) oder bei der Musikproduktion umgekehrt: Analog-/Digital Codierung (ADC). In der Musikproduktion sind niedrige Latenzen wichtig. Wenn ein Musiker die Instrumente der anderen zu spät hört, hat das natürlich Auswirkungen. Zur Einordnung:
Ganz unabhängig von der Quelle breitet Schall sich mit einer Geschwindigkeit von 343,2 Metern pro Sekunde (in trockener Luft von 20 °C) aus, was einer Latenz von rund 2,9 Millisekunden (ms) pro Meter entspricht. Für die meisten Musikerinnen und Musiker sind Latenzzeiten unter 5 ms in Ordnung und zwischen 5 und 15 ms noch akzeptabel. Ab 20 ms wirkt es sich sehr störend aus.
Nun wird gelegentlich folgendes Argument genannt: Wenn der Audio PC die Musik nur wiedergibt spielt es keine Rolle, ob der Ton nach dem Klick auf Play Sekunden später erklingt. Das ist grundsätzlich richtig. Viele Player laden den Stream sogar in den Arbeitsspeicher, um das Signal besser verarbeiten zu können. Nur hat die Pufferung im RAM mit der Pufferung in Audiokarten nichts zu tun. Der Arbeitsspeicher hat im Gegensatz zu anderen Speichermedien sogar sehr geringe Latenzen. Deshalb laden viele das Betriebssystem gleich ganz vom Arbeitsspeicher und das ist eine gute Sache. Als reine Musikhörer sind uns deshalb andere Dinge wichtig:
Die störenden Latenzen liegen im Datenstrom und in der Datenverarbeitung des Audio PCs begründet. Beim Rendern von Audiosignalen (z. B. von Flac in PCM oder DSD) und der Übertragung dieser Daten entstehen Latenzen. Sie ergeben sich aus der von der Soft- und Hardware benötigten Zeit, die Daten zu verarbeiten. Bei der Datenübertragung spielen zudem der Sample-Puffer (engl. Buffer) eine Rolle, die bei Audiokarten überlicherweise im Bereich zwischen 64 und 512 Samples liegen, um ein Abreißen des Datenstroms zu verhindern.
Samplingraten und Puffer bestimmen die Latenzen
Ein Sample ist die kleinste Einheit bei der Audio-Abtastung. Bei 44,1 kHz (CD) sind es z.B. 44.100 Samples pro Sekunde. Daraus lässt sich die Latenz errechnen.
Latenzen bei CD mit Standardpuffereinstellung:
44.100 Samples = 1.000 ms
256 Samples = 5,8 ms (1000*256/44.100)
Die 256 Samples stellen in den USB oder Ethernet-Treibern den sogenannten Puffer dar. Je größer der Puffer ist, desto größer sind die Latenzen. Dafür wird die CPU weniger belastet. Umgekehrt führt ein sehr geringer Puffer zu sehr geringen Latenzen. Jedoch wird die CPU mehr belastet, da häufiger gerechnet werden muss.
Beispiel für sehr geringe Latenzen:
44.100 Samples = 1.000 ms
52 Samples = 1,18 ms (1000*52/44.100)
Eine weitere Abhängigkeit besteht in der Höhe der Samplingraten. Bei gleicher Latenz von 1,18 ms wird der Puffer erhöht.
Beispiel Upsampling auf das 16fache einer CD mit sehr geringe Latenzen:
705.600 Samples = 1.000 ms
834 Samples = 1,18 ms (1000*843/705.600)
Bandbreite vs. Latenzen
Oft wird die Bandbreite einer Datenleitung, beziehungsweise die Datenübertragungsgeschwindigkeit mit den Latenzen verwechselt. Natürlich muss eine Datenleitung einen ausreichenden Datendurchsatz ermöglichen. Oft reichen hier schon 100 Mbit/s. Die Fans eines EtherREGEN – UpTone Audio schwören darauf (die sogenannte B-Seite).
Beispiel CD
44.100 x 16 Bit x 2 (Stereo) = 1.411.200 Bits = 1,41 Mbit/s
Beispiel Upsampling 16fache einer CD mit hoher Bittiefe
705.600 x 32 Bit x 2 (Stereo) = 45.158.400 Bits = 45,16 Mbit/s
Für die Latenzen ist die vorhandene Bandbreite in der Regel völlig ausreichend. Beim Upsampling oder PCM zu DSD Konvertierung sollte besser eine 1,0 GBit/s Leitung verwendet werden.
Latenzen in der Hardware
Bisher wurden nur die USB- und Ethernetverbindungen betrachtet. Nach meiner Erfahrung ist es wichtig die weitere Hardware ebenfalls mit niedrigen Latenzen auszuwählen.
CPU
In letzter Zeit liefern sich die beiden großen Chiphersteller Intel und AMD einen Wettbewerb um die beste Performance. Die neuen AMD Ryzen 9 5950X oder AMD Ryzen 7 5800X sind nicht nur in der Fertigungsarchitektur (7nm satt 14nm) besser, sondern glänzen auch in vielen anderen Benchmarks wie hohe Leistung, mehr Kerne und bessere Effizienz-Werte. Nicht jedoch in den Latenzen, wie die nachfolgende Grafik zeigt. Auch die Zuverlässigkeit und Fertigungsqualität scheint gemäß Forenberichten aktuell ein Problem zu sein. Für mich sind deshalb die Intel Prozessoren immer noch die erste Wahl.
Quelle: Hardwareluxx Generations-Nachzügler: AMD Ryzen 9 5950X und Ryzen 7 5800X im Test
Speichermedien
Die Lese- und Schreibgeschwindigkeiten halte ich für nicht so wichtig, dafür umsomehr die Latenzen. Aus der unteren Grafik sind von links nach rechts die Latenzen sortiert. Die CPU hat natürlich mit ihren internen L1-L3 Caches die niedrigsten Latenzen. Ich schaue mir deshalb bei der Auswahl einer CPU auch die L1-L3 Speichergrößen an, denn was da schon zwischengespeichert werden kann muss nicht mehr in die langsameren Speicher. Dann folgen mit immer noch sehr geringen Latenzen der Arbeitsspeicher (RAM) und Intel Optane Speicher.
Quelle: PC Perspective INTEL’S OPTANE DC PERSISTENT MEMORY DIMMS PUSH LATENCY CLOSER TO DRAM
Bei der Auswahl des RAM ist die Kombination zwischen CAS Latenz (CL) und Geschwindigkeit wichtig.
Beispiel CL10@2.400 MHz Speicher
1.000/2.400*10 = 8,33 Nanosekunden (0.00000833 ms)
Die 2.400 MHz sind nicht der Burner aber in Kombination mit dem CL Wert sind die Latenzen sensationell niedrig. Die Latenz kann jeder hier berechnen: https://notkyon.moe/ram-latency.htm
PCIe-Karten
Ich berichtete von meiner Neuanschaffung: XILINX Solarflare Flareon Ultra SFN8522 - LWL Netzwerkadapter
Diese Karte hat angabengemäß eine sehr niedrige Latenz von unter 1 μsec (0,001 ms). Dies hängt auch mit der Architektur zusammen: Alle acht PCIe Lanes werden für die Datenanbindung an die CPU genutzt, daher wird ein Slot mit Direktanbindung zur CPU empfohlen. RSS nutzt alle 16 logische Prozessoren meiner i9-9900K CPU. RSS ermöglicht die empfangsseitige Skalierung und verteilt eingehenden Datenverkehr auf mehrere CPUs oder CPU-Kerne.
Latenzen in der Software
In der Software sind oft Administrationsmöglichkeiten für die Verkürzung von Latenzen vorhanden.
Optimierungstools
Fidelizer ermöglicht die Vorgabe der Windows Timer Resolution auf den niedrigsten möglichen Wert = 0,5 ms.
Wer kein Geld in Fidelizer investieren möchte kann das kostenlose Windows System Timer Tool verwenden. Mit einer .bat-Datei unter Autostart kann die gewünschte Einstellung automatisch geladen werden:
Code: Alles auswählen
start "" "C:\...\TimerTool.exe" -t 0.5 -minimized
exit
Wie oben bereits beschrieben ermöglichen die ASIO Treiber oft die Puffer Vorgabe. Für DSD 256 wählte ich den niedrigsten möglichen Wert. Die Eingangs-Latenz beträgt sehr niedrige 1,17 ms und die Ausgangslatenz 1,50 ms.
Ethernet Puffer Settings
Bei typischen Intel Netzwerkkartenadapter kann der Eingangs- und Übertragungspuffer auf den niedrigsten Wert (bei mir 80) gesetzt werden.
Test der Latenzen
Um mögliche Probleme im Vorfeld zu identifizieren nutze ich gern das kostenlose Tool LatencyMon. Die neuere Version 7.0 unterstützt kein Remote mehr. Ich verwende daher weiter die Version 6.71.
LatencyMon prüft, ob das Windows System für die Verarbeitung von Echtzeit-Audio und anderen Aufgaben geeignet ist. Dabei analysiert die Software mögliche Ursachen von Pufferüberläufen, indem es die Kernel-Timer-Latenzen misst und DPC- und ISR-Ausführungszeiten meldet. Die Prozess Latenz liegt beim fis Audio PC bei sehr niedrigen 9 µs (0.009 ms), das ist absolut Großartig. Der Balken wird rot, wenn 2000 µs (2 ms) überschritten werden. Oft sind veraltete Treiber Schuld an hohen Latenzen. Auch waren die Optimierungen von AudiophilOptimizer 3.00 nicht immer hilfreich.
Zusammenfassung
Welche Latenzeinstellung ist die Beste? Unter der Annahme, dass sich geringe Latenzen am besten anhören die niedrigste, die keine Probleme verursacht! Wer keine schnelle CPU hat wird schnell an seine Grenzen stoßen. Denn je geringer die Latenzen sind, desto mehr muss der Prozessor arbeiten.
Bei der Zusammenstellung eines Audio PCs soll bereits ein Augenmerk auf eine Hardware mit geringen Latenzen gerichtet werden. Dies fängt schon mit der CPU an. Auch ein Audio PC macht nichts anderes als das Lesen und Schreiben von Daten. Daher ist die Auswahl von Speichermedien besonders wichtig. Das Empfangen und Senden von Musikfiles ist eine der Hauptaufgaben und sollte mit entsprechend hochwertigen PCIe-Karten unterstützt werden.
Ein Feintuning ist mit den Einstellungen in der Software möglich. Außer ein wenig Mühe kostet das nichts. Kann aber eine Menge bringen. DIe Optimierung der Latenzen sorgen in meinem System für einen dynamischeren hochauflösenden Sound ohne digitale Härten.
Grüße Gabriel