akls Blog

    Update4: 18.3.13: Informationen vom ASIO4ALL FAQ hinzugefügt im neuen Kapitel "ASIO4ALL FAQ". Kapitel "Musikplayer, die ASIO unterstützen" ergänzt.


    Update3. Formatierung; MP3 Player, die ASIO unterstützen, Link auf meinen Blog Eintrag, wie man einen Windows 7 PC für Audio optimiert.

    Update2: Tippfehler Bereinigung und Kosmetik/Satzbau.


    Update1: weitere Vorteile ASIO/ASIO4ALL Treiber (Vermeidung Audio Aussetzer)


    In meinem heutigen Blog Eintrag möchte ich Euch einen Überblick über die verschiedenen Windows Audio Treiber geben und erklären, welche Treiber vorzugsweise fürs Recording zu verwenden sind.

    Vx\D - das älteste M$ Treiber Modell, konnte noch bis Windows 98/ME eingesetzt werden. Hat heutzutage keine Relevanz mehr.


    WDM - "Windows Driver Model", aka "Win32 Driver Model". Ein neues Treiber Modell seit Windows 98, das "Vx\D" abgelöst hat. Dadurch wurden die Treiber unterschiedlicher Windows Produktlinien vereinheitlicht. Dieses Treibermodell ist gegenwärtig immer noch im Einsatz. Kritikpunkte: Probleme bei der Interaktion mit Power Management und Plug und Play, Schwierigkeiten bei I/O cancellation, programmierintensiv ("1000s of lines of code"), "user-mode" Treiber nicht möglich.


    Windows Driver Foundation - ein neues Treiber Framework. Die Treiber unterteilen sich nun in 2 Komponenten: KMDF (Kernel Mode Driver Framework) und UMDF (User Mode Driver Framework). Seit Windows Vista ist beides unterstützt (WDM und Windows Driver Foundation). KMDF gibts es auch zum Download für XP und 2000, sowie auch UMDF für XP.


    KMDF Treiber sind betriebssystem-nah und kompakter geschrieben. Man kann sie als ein "API" (Applicaion Programming Interface) betrachten, denn sie können von WDM und UMDF Treibern verwendet werden.


    Vorteile: wenn WDM oder UMDF Treiber nun KMDF für den exklusiven ("low level") Hardware Zugriff verwenden, dann ist die Gefahr minimiert, dass schlecht geschriebene Treiber das ganze System aufhängen, denn Hardware Zugriff benötigt exklusive Systemrechte. Um es anders zu formulieren .. Programme sollten am besten im user mode laufen (UMDF) und sich des hardware nah geschriebenen APIs KMDF bedienen. Erste Versionen von UMDF sind zusammen mit Windows Media Player 10 installiert worden. Aber wie erwähnt, auch WDM Treiber profitieren davon ausgereifte/stabile KMDF routinen zu verwenden.


    Die letzte UMDF Version ist 1.11 und wurde kurz nach Windows 8 herausgegeben. Es ist zum download verfügbar für Windows Vista / Windows  Server 2008 und spätere Windows Versionen.


    Windows Treiber, zusammengefasst:


    Die modernen Versionen von Windows (7,8) verwenden i.d.R. WDM Treiber, die auf KMDF zugreifen. Es gibt sicherlich noch eine Vielzahl von WDM Treibern, die selber für direkten Hardware Zugriff sorgen. In dem Fall mit den damit verbundenen Nachteilen: Komplexität, Fehleranfälligkeit, Probleme mit Power Management und Ausnahmebehandlung (z.B. i/o Unterbrechung), etc.... Modernere Treiberdesigns sollten also dem neuen Windows "Driver Foundation Framework" folgen und sich in zwei Komponenten unterteilen, eine Kernel-nahe KMDF- und eine User-nahen UMDF-Treiber Komponente.


    WARUM ASIO ?


    Obwohl die Windows Treiber (WDM, KMDF/UMDF) immer besser und strukturierter werden, sind sie für das Recording immer noch nicht ideal, weil sie einfach nicht für beste Qualität und geringste(n) Latenzen/Jitter optimiert sind. Bei den WDM Treibern gehen die Audio Signale durch so viele interne Subsysteme, u.a. dem Windows eigenen Mixer, dass man bei Latenzzeiten von weit über 90ms auskommt und das ist eine ganze Menge. Die andere Frage ist, inwieweit dadurch auch das Audiosignal verfälscht wird. Zudem sind Audio Aussetzer dabei auch wahrscheinlicher.


    EDIT1: Weitere Vorteile: durch diesen optimierten Treiber ist die Wahrscheinlichkeit von Audio Aussetzern / Knacksern geringer. Durch sinnvoll gewählte Einstellung der ASIO Buffersize (auf Deutsch: Puffergröße), beispielsweise 32..2048 Audio Samples). kann man den ASIO Treiber auf die Bedürfnisse der Rekording Situation gezielt einstellen und zwar je nach Projektgröße (Anzahl der Spuren, VSTs) und Anwendungszweck.


    Wenn man mit geringstmöglicher Latenz aufnehmen möchte, ohne Gefahr zu laufen, Audio Aussetzer zu bekommen, dann muss man sich langsam an die magische Grenze herantasten, wann es anfängt Audioaussetzer zu geben.


    Man reduziert dazu Schritt für Schritt die Puffergröße. Wenn es Audio-Aussetzer gibt, dann muss man sich entscheiden, wieviele Samples mehr man zur Sicherheit konfigurieren möchte. Beispiel: wenn 64 Samples zu wenig Puffer sind, dann sollte man halt 128 oder 256 Samples sicherheitshalber verwenden.


    Dabei sind Werte zwischen 32 und 96 schon hervorrangend (über USB und Firewire).


    EDIT3: Windows Optimieren: Zur Erreichung solch geringer Puffergrössen könnte es aber auch erforderlich werden, die Windows Installation zu optimieren, denn viele Hintergrundprogramme (die unter Umständen nicht wirklich gebraucht werden) oder schlechte Treiber, die die CPU zu lange in Beschlag nehmen, halten die CPU bzw Windows unnötig auf und können zu Aussetzern im Audio Stream führen.


    In diesem Blog Artikel (im PDF file) gibt es viele Hinweise auf Mess- und Optimierungsmöglichkeiten unter Windows. Da kann man noch eine Menge aus seinem PC herausholen:recording.de/Community/Userblogs/View/2378/blog.html


    Es kann auch gut möglich sein, dass man sich 128 oder 256 oder gar 512 samples begnügen muss. Fürs normale Recording kein Ding. Aber wenn man als Gitarrist eine Amp Simulation mit Effekten direkt beim Spielen mithören will, dann wäre das nicht sehr schön durch die spürbaren Verzögerungen.


    Einfache Faustregel: je größer die ASIO Buffersize, desto geringer die CPU Belastung und desto geringer die Gefahr von Audio Aussetzern. Beispiel: wenn man einfach nur viele Spuren, Effekte, VSTs hat und einfach mixen und mastern möchte, dann kann man die CPU sinnvoll entlasten, indem man moderate Puffergrößen von 512 - 1024 oder in Ausnahmefällen 2048 Samples einrichtet.


    ASIO Treiber - "Audio Stream Input/Output"


    Der ASIO Treiber wurde von der Firma Steinberg entwickelt. Dabei handelt es sich um ein mehrkanalfähiges Audiotransfer-Protokoll. Mittels ASIO wird es einer Audio Software (Programm, DAW, das selbst ASIO unterstützen muss) ermöglicht, auf die Multi-Channel Fähigkeiten von Sound- und Recording-Karten zuzugreifen. ASIO ermöglicht den für den professionellen Einsatz geforderten geringen Latenzzeiten bis auf wenige Milisekunden.


    Unter Windows ist ASIO der Quasi Standard für echtzeitfähige Audiobearbeitung.


    Open Source Programme, wzB. Audacity, dürfen aus lizenzrechtlichen Gründen nicht mit ASIO Unterstützung zum Download bereitgestellt werden. Es steht jedoch jedem Anwender frei, sich bei Steinberg zu registrieren, das ASIO SDK über das "SDK Download Portal" herunterzuladen und sich selber eine Version zu übersetzen. Dazu sollte man jedoch über Kenntnisse im Bereich "Development" verfügen. Dieses "Audacity ASIO Wiki" gibt eine Übersicht darüber wie das geht, der volle Umfang ist jedoch auf dieser Webpage besser auf einen Blick ersichtlich.


    ASIO4ALL


    Wenn man für sein Interface keinen eigenen "reinrassigen" ASIO Treiber bekommen kann, dann besteht noch die Möglichkeit, sich ASIO4ALL zu installieren. Informationen bekommt man hier: ASIO4ALL Homepage. Derzeit neuste Version (Feb 2013) ist die 2.10, eine 2.11 Beta1 ist gerade verfügbar.


    ASIO4ALL ist ein universeller ASIO Treiber der auf WDM aufsetzt. ASIO4ALL ist kein Treiber im eigentlichen Sinne, sondern eine Zwischenschicht, die auf dem vorhandenen WDM Treiber aufsetzt und ihm somit das ASIO Protokoll beibringt.


    Das bedeutet, dass ASIO4ALL sehr von der Güte des WDM Treibers abhängt !!!


    EDIT1: Eine Konfiguration von ASIO Buffersizes ist hier auch möglich, aber das optimierungspotential ist nur begrenzt, weil alles immer noch über den WDM Treiber läuft. Trotzdem muss man darauf achten, nicht zu geringe Buffersizes zu konfigurieren, um kein Audio Aussetzer auf diesem "Layer" zu produzieren.


    ASIO4ALL FAQ


    Das FAQ zu ASIO4ALL enthält viele nützliche Informationen, das sollte man sich ruhig mal ansehen.


    "Fehlermeldung: Could not start ASIO": manchmal kann ASIO4ALL das Windows Audio device nicht mehr für sich reservieren weil es schon blockiert ist. Ein typisches Szenario ist, wenn eine Applikation auf das Midi Gerät zugreift, das als Standard Ausgabeport den "Microsoft GS Software Wavetable Synth" hat.

    Das soll bei ASIO4ALL Version 2.x nicht mehr so häufig vorkommen.


    Aus diesem Statement leitet sich ab, dass ASIO4ALL das Windows Audio device für sich reservieren muss und dazu darf es nicht bereits in Gebrauch oder blockiert sein.


    Überblick

    Es gibt consumer-grade und professionelle Audio Karten für PCs. Die etwas besseren Audio Karten bzw Recording Interfaces werden mit ASIO und WDM Treiber ausgeliefert. Zum einen kann man mit seiner DAW (Cubase, etc..) über den ASIO Treiber ideal (latenzarm) direkt mit der Karte arbeiten und wenn man mal unter Windows über den Media Player ein mp3 ausgeben will, dann wird der entsprechende WDM Treiber aktiv. Im letzteren Fall ist dann die Karte / das Recording Interface als das Standard Audio Device unter Windows installiert.


    Wenn man keinen ASIO Treiber für seine "consumer-grade" AUDIO Karte hat, dann kann also man versuchen, mittels ASIO4ALL mit geringeren Latenzzeiten auf sein Audio Interface zuzugreifen.


    Es kann aber durchaus sein, dass das Ergebnis mit dem Windows WDM Treiber u.U. besser ist.


    Es kann auch sein, dass Deine Audio Software Optimierungen für WDM eingebaut hat, man könnte sagene eine Art "eingebautes" ASIO4ALL.


    Fazit


    Wenn man also keinen ASIO Treiber für sein Interface hat, dann probiert man am besten mit seinem Recording Programm aus, was am besten funktioniert.


    Entweder ASIO4ALL (mit dem WDM Treiber darunterliegend) oder der WDM Treiber alleine ohne ASIO4ALL.


    Einige DAWs zeigen die Latenzzeiten an, wzB Cubase. Je niedriger der Wert ist, desto besser, am besten unter 10ms.


    Weitere Vorteile von ASIO4ALL


    Audio Programme (DAW, ..) können über einen ASIO Treiber nur ein einziges Interface ansprechen. Mittels ASIO4ALL kann man mehrere Soundkarten/Audio-Interfaces zusammen in einem Programm verwenden.


    Das ist auch der Grund, warum USB Mikrofone für das professionelle Recording sehr ungeeignet sind. Der einzig mögliche ASIO Treiber wird von dem "non-USB" Mikrofon oder anderen Audio-Quellen in Beschlag genommen und dann kann man vom Recording Programm aus keine weitere Verbindung zum USB Mikrofon mehr herstellen.


    Tip: darum am besten keine USB Mikrofone holen, wenn irgend geht, denn wenn man mal später auf ein besseres Recording Interface umsteigen und aus mehreren Micros / Audioquellen aufnehmen möchte, dann ist das USB Mikro nutzlos, weil man nicht drauf zugreifen kann.


    Audio Programme, die ASIO unterstützen


    Natürlich all die bekannten DAWs: Cubase, Nuendo, Pro Tools, Cakewalk, Ableton, Logic, Garageband, etc... (siehe auch in Wikipedia: en, de).


    Musik Player, die ASIO unterstützen


    Musik Bee hat ein sehr schönes User Interface und unterstützt von Hause aus auch ASIO Treiber. Damit holt man die beste Sound Qualität raus beim Abspielen von seinen Audio files. Am besten hören sich natürlich die Sachen an, die man selber in einem lossless Format gerippt hat (z.B.: FLAC, APE). Es gibt noch andere Player wie z.B. AIMP und Media Monkey. Ich kenne nur den Media Monkey, da ist die Implementierung nicht native und die Plugin Installation ist da etwas umständlich gelöst.


    Music Bee gibts hier:getmusicbee.com/


    Zusammenfassung

    Ich hoffe dieser Überblick hat euch gefallen und hilft Euch, die ganzen Begrifflichkeiten besser zu verstehen.


    Jetzt sollte klar sein, dass es am besten ist:

    - sich direkt ein Recording Interface mit ASIO Treiber zu besorgen und


    - dass man am besten nur mit ASIO Treibern aufnimmt


    Darum braucht ihr auch ein Recording Programm, das ASIO unterstützt


    Grüße
    Andreas


    P.S.: über einen Klick auf den Danke Button würde ich mich sehr freuen, wenn Dir dieser Artikel gefallen hat, danke Lächeln

    danke
    Bitte einloggen oder registrieren, um diesen Beitrag zu kommentieren.
    • Rex
    • Avatar Rex
    • rang_star
    • User seit: 19.07.2012
    • Punkte: 1817
    • 24.02.2013, 14:03
    • Klasse Überblick!
    PM schreiben
    • octay
    • Avatar octay
    • rang_star
    • User seit: 03.01.2005
    • Punkte: 10872
    • 24.02.2013, 15:04
    • meine ich auch Rex
    PM schreiben
    • 04.03.2013, 19:24
    • vielen Dank! Lächeln
    PM schreiben
    • 10.03.2013, 19:26
    • Schöner Bericht. Es wäre da übrigens auch noch AIMP, als Player mit ASIO Unterstützung. Ist eh zu empfehlen. Durch Zufall mal getestet und seit dem nie wieder abgelegt.
    PM schreiben
    • 10.10.2013, 12:28
    • Hallo!
      Also kann ich die Mackie 24-Bit/96kHz FireWire-Karte, sitzt im einem ONYX 1640, nicht mit einem Roland FA 66 FireWire-Audio-Interface kaskadieren ?
      Das Kaskadieren zweier Mackie FireWire-Karte, funktioniert laut Beschreibung.

      Grüße aus dem Ruhpott
    PM schreiben