Unter dieser Rubrik möchten wir einige
Testmöglichkeiten aufzeigen, um ein gutes Audio-Interfaces von
einem Schlechteren unterscheiden zu können. Ein
häufig angesprochenes Thema ist dabei die Latenz. Es ist sehr
wichtig diesen Begriff genauer zu definieren.
Dies sind die wichtigsten Latenzarten:
- Bearbeitungslatenz der DAW Software oder des Plug-in Host bzw. Standalone Plug-in
- I/O Latenz auf Audiotreiberebene (z.B. ASIO, WDM, Core Audio)
- I/O Latenz auf Schnittstellenebene (z.B. PCIe, FireWire, USB)
- I/O Latenz auf Prozessoreben auf der Audiokarte, wie DSP etc.
- Latenz bei der AD/DA Wandlung
- Gesamtlatenz (Roundloop): Sequenzer spielt ab und nimmt gleichzeitig die selbe Spur wieder auf
Das ganze muss teilweise im Rahmen der, der DAW zugewiesen
Interface-Latenz (z.B. Asio) berechnet werden. Oft spielt es dabei kaum
eine Rolle, dass es Audio-Interfaces gibt, die auch bei 32 Samples
arbeiten können, da der Host in diesem Rahmen nicht
hinterherkommt, besonders wenn komplexe Plug-ins ins Spiel kommen.
Wir bitten an dieser Stelle zu entschuldigen, dass wir nicht an jeder
Stelle ins Detail gehen werden. In diesem Blog stehen die Erfahrungen
im Vordergrund, die wir im Laufe der letzten 10 Jahre durch "Trial and
Error" gesammelt haben. Wer Treiber programmieren kann, wird sicher ein
erweitertes Wissen haben.
In diesem Blog-Artikel geht vor allem es um die so genannte DPC Latenz,
die maßgeblich von Prozessen abhängig ist, welche
vom System nicht rechtzeitig ausgeführt werden
können. Diese Prozesse ereignen sich in der Kernel-Ebene und
verhindern einen reibungslosen Audio-Betrieb. In einigen
Fällen kann durch die Erhöhung der Audio-Interface
Treiberlatenz solche erheblich Fehler ausgleichen, in vielen
Fällen hilft dieser Schritt nicht weiter.
Was passiert, wenn das Audiosignal "Knackser" hat? Ein
schlecht programmierter Treiber kann in einem bestimmten Zeitrahmen
einen Prozess nicht mehr ausführen, blockiert dabei alle
weiteren Prozesse und so auch eine Echtzeitanwendung wie Cubase. Das
führt ganz simpel zu einem Aussetzer, "Drop-Out" also einem
Knackser. Das Gleiche passiert auch wenn der Fehlerkorrekturpuffer
eines CD-Spielers überläuft.
Selbstverständlich sind die Treiber professioneller
Audiointerfaces so programmiert, dass ein Puffer nicht
überläuft. Aber in einem komplexeren System wie einer
DAW erzeugen die nicht echtzeitkritische Treiber wie Ethernet- oder
Maustreiber oft erheblich Probleme. So ist das typische Durchschnitts-
Notebook aus dem "Technik-Markt" für den Audio-Betrieb meist
völlig ungeeignet. Mit etwas Glück kann man bei
diesen Geräten durch Treiber Updates nachhelfen. Es gibt aber
auch Computer, bei denen nur noch der Sondermüll hilft.
Um dieses Problem zu erkennen gibt es ein sehr einfaches Tool, den DPC Latency Checker
Hier ein Screenshot meines Macbook Air unter Windows 7:
Erzeugt ein Treiber auf Kernel-Ebene eine zeitliche
Verzögerung, wird ein hoher Ausschlag angezeigt. Hier sehen
Sie rote, gelbe und grüne Balken. Die Balken sind für
den Leerlauf schon so hoch, dass dieses Gerät, zumindest in
der Konfiguration für Audioanwendungen, nahezu unbrauchbar ist.
In vielen Fällen hat man Glück und kann durch simples
Abschalten nicht benötigter Geräte im
Geräte-Manager Abhilfe schaffen.
Folgende Geräte lassen sich nicht
im Betrieb abschalten:
- Jedes Gerät, das im Geräte-Manager unter "Systemgeräte" oder "Computer"
- Die Festplatte, auf der das Betriebssystem installiert ist
- Die IDE/ATAPI- oder SATA-Controller, über den die Festplatte angeschlossen ist
- Benötigte Eingabegeräte wie Tastatur und Maus
- Der USB-Controller, über den die Eingabegeräte angeschlossen sind
- Die Grafikkarte, an dem der Bildschirm angeschlossen ist
Einige Geräte lassen sich ebenfalls direkt im BIOS abschalten.
Kommt man mit dieser Methode nicht weiter, bleibt in den meisten
Fällen nur die restlichen Treiber zu tauschen. Hilft das alles
nicht, bleibt oft nur die Geräte auszutauschen. Testen wir ein
Audio-Interface, so gehen wir sicher, dass die DPC Latenzwerte absolut
identisch sind und vor allem gleichmäßig.
Was sind DPC Latenzen denn nun genau?
Die Verarbeitung von Daten in Echtzeit ist eine Herausforderung
für Windows-basierte Anwendungen und Treiber. Windows ist von
seiner Konstruktion her einfach nicht darauf ausgelegt
Echtzeitanwendungen zu unterstützen und kann daher nicht
garantieren, dass bestimmte periodische Aktionen zu einem bestimmten
Zeitpunkt ausgeführt werden.
Audio- und Video-Datenströme, die von einem, oder zu einem
externen Gerät übertragen werden, werden
typischerweise von einem Kernel-Mode-Treiber verwaltet. Die externe
Hardware löst in regelmäßigen
Abständen einen "Interrupt" aus, also eine Unterbrechung des
laufenden Prozesses, um den nächsten Datenblock vom Treiber
anzufordern bzw. einen eigenen Datenblock ans System zu liefern. Diese
Unterbrechung wird jedoch nicht sofort vom System angenommen. In
Betriebssystemen, die auf Windows NT aufbauen, wie auch das heutzutage
verwendete Windows 7, gibt es dazu eine spezifische Methode, um solche
Interrupts zu handhaben. Diese sieht vor, dass der Treiber einen
"Deferred Procedure Call" (DPC) beim System anmeldet.
Die DPCs der verschiedenen Gerätetreiber werden vom System in
einer Art Warteschlange verwaltet. In regelmäßigen
Abständen kontrolliert der Kernel die Warteschlange. Wird
gerade kein anderer DPC verarbeitet, wird der nächste
DPC-Aufruf angenommen und ausgeführt. Dieses Prinzip der
Warteschlange führt dazu, dass ein sehr lange laufender DPC
die Ausführung der anderen hinauszögert.
Man kann die Latenz eines spezifischen DPCs also definieren, als die
Summe der Laufzeiten aller vor dem auszuführenden DPC
liegenden DPCs.
Mit anderen Worten: Schlecht programmierte Treiber, die
unnötig viel Zeit beanspruchen, stören
sämtliche anderen Treiber. Wird bei einer Aufnahme das Abrufen
der Audio-Daten am Interface zu lange verzögert, reicht der
Pufferspeicher im Interface nicht mehr aus, um die Daten vorzuhalten
und an das System zu übergeben. Eine Signalunterbrechung ist
die Folge, ein Knacksen ist zu hören. Umgekehrt gilt dies
natürlich auch. Wenn dem Interface nicht ermöglicht
wird, schnell genug neue Daten vom Rechner abzufragen, wird die
Wiedergabe gestört. So kann es passieren, dass ein simpler
Maustreiber das Arbeiten unmöglich macht.
Mehr zum Thema Audio Interface: Link Audio Interface