Eine kleine Kunde von der Latenz in DAWs

Was ist Latenz und wie kommt sie in einer Produktionsumgebung zustande? Warum kann man sie mit den Treibereinstellungen beeinflussen? Warum wird die Latenz geringer, wenn man die Samplerate am Audio-Interface erhöht? Und so weiter. Das sind die essentiellen Fragen, mit denen wir uns heute beschäftigen wollen.

Ursachen der Latenz

Das was wir als Systemlatenz bezeichnen, hat verschiedene Ursachen. Die Hauptursache ist die Latenz des Audio-Interfaces bzw. dessen Treibers. Der Datenstrom, der an den Rechner geliefert wird ist kein kontinuierlicher Datenstrom, sondern es sind Datenpakete.

Man muss sich das wie eine Wasserkette vorstellen. Der Eimer ist der Puffer des Treibers und jeder Wassertropfen ein Sample. Der Eimer wird aber erst weitergereicht, wenn er voll ist. Heißt also, dass der Puffer des Treibers erst angefüllt werden muss, bevor es weiter geht. Das braucht eben seine Zeit. Diese Zeit lässt sich sogar ausrechnen.

Sagen wir mal, ihr habt euren Treiber auf eine Puffergröße von 512 Samples eingestellt. Die Abtastrate beträgt 44,1 kHz also 44100 Hz. Es kommen also 44100 Samples in der Sekunde beim Treiber an. Wie lange dauert es, bis der Puffer voll ist und der Inhalt zur Verarbeitung weitergereicht wird?

512 ÷ 44100 = 0,0116099773 Sekunden – Also rund 11,6 Millisekunden

Hier haben wir auch gleich den Grund, weswegen eine höhere Abtastrate geringere Latenzen verursacht. Bei höheren Abtastraten ist der Puffer einfach schneller voll, weil mehr Samples in der Sekunde ankommen. Also gleiches Beispiel bei 96 kHz also 96000 Hz.

512 ÷ 96000 = 0,005333333 Sekunden – Also rund 5,3 Millisekunden

Allerdings geht das natürlich zu Lasten der CPU, weil diese dann in der gleichen Zeit mehr Daten verarbeiten muss. Und auch wenn keine Plugins gerade zu berechnen sind, muss der Datenstrom gehandelt werden.

Reduziert man nun die Puffergröße des Treibers, wird die Latenz verringert, weil der Eimer kleiner wird und dadurch schneller voll ist. Das kann allerdings, sollte man den Puffer zu klein einstellen, zu einem instabilen Verhalten der DAW führen. Wie weit man mit der Puffergröße runter kann, hängt von der Qualität des Treibers ab. Es gibt Interfaces mit denen man auf 1-2 Millisekunden Latenz runter kommt, ohne das es zu Instabilitäten kommt. Dann wiederum gibt es welche, die fangen schon bei 5 Millisekunden an rumzueiern. (siehe unten „Qualität des Treibers“)

Dann kommt natürlich auch der Rückweg dazu. Also Daten die vom Rechner kommen, um hörbar gemacht zu werden. Auch hier wird der Puffer des Treibers erst wieder gefüllt, bevor der Treiber den Datensatz an das Audio-Interface weiterreicht. Die Rechnung dabei ist die selbe. Also verdoppelt sich die Latenz bei einem sogenannten Roundtrip (also Rundgang). Man spricht dabei von der Roundtrip-Latency oder Roundtrip-Latenz.

Diese Regel ist immer gleich. Egal ob PC oder Mac und ebenso egal wie gut oder teuer das Audio-Interface ist. Diese Latenzzeiten ändern sich nicht, was schlicht an der paketweisen Datenverarbeitung liegt.

Weitere Faktoren der Latenz

Ein weiterer wesentlicher Faktor sind dann die Plugins. Die CPU benötigt für die Rechenaufgaben jedes Plugins eine gewisse Zeit. Dabei ist die Berechnung selbst das geringste Problem. Aber jedes Plugin arbeitet auch mit Datenpaketen und hat oftmals einen Puffer, welcher auch wieder erst mal gefüllt werden muss, bevor das Plugin den Datensatz zur Berechnung weitergibt. Wie groß dieser Puffer ist, hängt vom jeweiligen Plugin ab. Mal sind die Puffergrößen verschwindend gering, sodass es fast keine Latenz gibt und dann wiederum gibt es Plugins, bei denen die Puffergrößen astronomisch sind und die Berechnung eine gefühlte Ewigkeit dauert.

Die Berechnung der Verzögerung ist dabei die gleiche wie bei der Ein- & Ausgangslatenz.

Puffergröße in Samples ÷ Abtastrate = Latenz in Sekunden

Sollte euch eure DAW also diese Größen anzeigen können oder ihr kennt diese Größe aus den Specs des Plugins, könnt ihr die Verzögerung einfach berechnen.

Da wir ja meistens mehr als ein Plugin in einem Projekt haben, addieren sich diese Latenzen auch noch hoch, was bei großen Projekten mit vielen Plugins schon mal zu Problemen führen kann. Dürfte eigentlich nicht sein, weil die Plugins im Normalfall ihre eigene Latenz an die DAW melden und die DAW dies, durch vorgezogene Wiedergabe (Latenzkompensation), ausgleicht. Aber manchmal sind die gemeldeten Zahlen nicht korrekt oder so hoch, dass die DAW das nicht ausgleichen kann. Dann wird es lustig.

Man muss natürlich nicht erwähnen, dass Plugins mit extrem hohen Puffergrößen eher nicht für die Echtzeitverarbeitung eines Eingangssignales dienen können. Ein Gitarrist kann schwer einspielen, wenn er sein eigenes Signal erst mit 20 Millisekunden Latenz zu hören bekommt.

Summa Summarum

Aus diesen Hauptfaktoren ergibt sich erst mal eine grobe, projektabhänige Systemlatenz. Projektabhängig deshalb, weil ja die Anzahl und Arten der Plugins zwischen den Projekten variieren.
Eingangspuffer + Plugins + Ausgangspuffer = Projektlatenz

Dazu kommen noch einige minder schwere Faktoren wie:

CPU-Leistung: Wie lang benötigt die CPU, um die Rechenaufgaben zu bewältigen.
1 Hz Prozessortaktung = 1 Operation pro Sekunde
Man kann sich ausrechnen, dass aktuelle CPUs da eigentlich kaum eine Rolle spielen, wenn man bedenkt das 1 GHz gleich 1.000.000.000 Operationen sind und man heutzutage gleich mehrere Kerne mit Taktungen im Rechner hat, die 3 GHz übersteigen. Es sei denn sie kommen mit den Rechenaufgaben nicht hinterher, wenn einmal zu viel berechnet werden muss. Was dann passiert, kennen wir alle. Entweder beginnt die Wiedergabe zu stottern oder man hat gleich einen Dropout, weil die CPU der DAW sagt: „Warte mal kurz! Ich brauch noch einen Moment!“

Hier ist es eher noch wichtig wie das Threat-Handling seitens der DAW funktioniert, also wie die Arbeitsprozesse auf die einzelnen Kerne verteilt werden. Je besser das von der DAW gehandhabt wird, desto besser kann die Leistung der CPU ausgenutzt werden.

Geschwindigkeit des Busses: Wie schnell ist der Datenverkehr zwischen den Komponenten. Auch zu vernachlässigen. Auch USB2.0 ist mit real zu erreichenden 30-40 Megabyte pro Sekunde schnell genug, um den Datenstrom zu handeln, wenn man bedenkt, dass 1 Minute Stereo-Wave bei 44.1 kHz ca. 10 MB sind. Und wenn es da mal klemmt, wartet die DAW auch nicht, sondern produziert wieder einen Aussetzer.

Qualität des Treibers: Hier kann es dann und wann schon mal zu Problemen kommen. Schlechter Treiber, schlechte Performance. Je mehr Sorgfalt der Hersteller bei der Entwicklung und Programmierung des Treibers an den Tag legt, desto besser wird die Performance des Treibers auch sein. Auch bestimmt die Qualität des Treibers, wie weit man die Puffergröße reduzieren kann, ohne das das System anfängt instabil zu werden.

Dann gibt es wiederum noch Unterschiede in der Qualität der weiteren Hardwarekomponenten des Rechners, welche das gesamte DAW-System beeinflussen. Auch die Grafikkarte kann zum Problem werden. Das auseinander zu klamüsern würde jedoch hier ein wenig zu weit gehen. Für den normalen Anwender und Hobby-Musiker ist ein Rechner von der Stange grundsätzlich eine brauchbare Wahl. Für den Profi sieht das etwas anders aus. Wir beispielsweise bauen unsere Systeme grundsätzlich selbst zusammen. Aber das ist eine andere Geschichte.

In diesem Sinne….Wenn’s mal wieder etwas länger dauert….

Share Button