Ich möchte mal einen kleinen Beitrag zum Thema ASIO, WDM / WDM KS und ASIO4all schreiben:
ASIO und Audiostreams
Jedes Betriebssystem ob WIN oder MAC OS hat eine sogenannte Kernelebene (untere Ebene) und eine Anwendungsebene (obere Ebene). Auf Basis der Kernelebene finden alle direkten Verbindungen bzw. Kommunikationen von Hardware mit dem Kern(el) des Betriebssystems statt, während die Anwendungsebene eine Art übergelagerte Nutzerebene darstellt, auf der die Software läuft. Zwischen den beiden Ebenen wird ständig hin und her kommuniziert.
Erstmal kurz zum Kernel:
Wenn man z.B. mit Winamp, Wavelab usw. (Anwendungsebene) im DirectSound - Modus eine Musikdatei im Format – sagen wir mal 16bit, 44,1KHz abspielt, passiert folgendes:
Der Audiostream läuft Windows-Intern über den so genannten Kernelmixer (Anwendungsebene). Dieser wandelt das ursprüngliche Format 16Bit/44,1KHz auf das Windows – Standardformat 16Bit/48KHz (Standard wegen DVD) um, fügt diverse EQ – Änderungen, Lautstärkeänderung usw. dazu, wandelt den Stream dann wieder in 16Bit/44,1KHz zurück und gibt den Audiostream dann wieder zurück in die Kernel-Ebene, wo dieser dann über die Ausgänge der Audiohardware letztendlich den PC verlässt.
Dieser ganze Rattenschwanz an softwareinterner Umwandlung kostet eine Menge Zeit und stellt letztendlich den Grund für die großen Latenzzeiten dar, den wir als Musiker merken. Übrigens klingt die Musik dadurch natürlich auch ganz anders. Wenn man statt dem DirectSound mal die ASIO – Plugintreiber für WINAMP nutzt merkt man das sehr gut. Dann findet nämlich die Windows-eigene Konvertierung, die sonst IMMER da ist, nicht mehr statt.
ASIO lohnt sich daher also ganz besonders auch für Bearbeitungssoftware wie Wavelab, obwohl es hier eigentlich gar nicht auf die Latenz ankommt. Trotzdem wird der Sound immer verfälscht, wenn man keine ASIO oder WDM-KS Treiber nutzt.
1996, als Steinberg die ASIO Schnittstelle entwarf, gab es für große und schnelle Audiostreams noch keine direkte Verbindung zwischen diesen beiden Ebenen im Betriebssystem (Videostreams hatten übrigens das gleiche Problem). Der Trick mit dem Steinberg arbeitet kann man sich ungefähr so vorstellen, dass ASIO eine Art Softwaregerüst aufspannt, das intern wie eine direkte Autobahn zwischen beiden Ebenen fungiert. UND somit bleibt ASIO eine betriebssystemunabhängige Softwareemulation – was dadurch sichtbar wird, dass ASIO sowohl auf MAC wie auch auf Windows-Basis arbeitet.
Ich hoffe also es wird deutlich, dass ASIO die Umwandlung, die der Windows – Kernel Mixer vornimmt, vollständig umgeht und so den direkten Zugriff vom Programm auf die Sound - Hardware erlaubt. Wie der Kernel Mixer beim MAC funktioniert kann ich nicht 100% sagen, bis zur Einführung von CoreAudio war es aber sehr ähnlich.
So und nun zu WDM-KS
WDM-KS (explizit gemeint ist hier das Kernelstreaming) wurde von Cakewalk spezifiziert und nicht WDM wie einige hier im Forum teilweise geschrieben haben. Diese Spezifikation wurde dann von Microsoft offiziell übernommen.
Die Grundidee dahinter ist fast identisch zu ASIO – nur hier braucht es kein Softwaregerüst àla ASIO, sondern hier geht’s direkt von der Musiksoftware zum Kernel des Betriebssystems. Anders als bei ASIO sind die WDM-KS – Treiber nun aber gebunden an das Betriebssystem wie sich jeder sicher denken kann. Denn nun muss der Treiber direkt mit dem jeweiligen Betriebssystem kommunizieren. CORE Audio beim MAC und WDM-KS sind funktional also (fast) identisch. Auch da mussten die Hersteller von der Soundhardware erst entsprechende Treiber entwickeln. Es war bei MAC aber mehr eine politische Entscheidung, ASIO aus dem Rennen zu nehmen und alles auf CORE Audio auszurichten. Der Vorteil ist sicherlich, dass alle Hersteller von Software und Hardware gleichermassen auf diesen Zug aufspringen mussten, während bei Windows WDM-KS immer noch ein Schattendasein fristet. Sicherlich hat auch die Firma Steinberg kein zu großes Interesse mit ASIO eines ihrer Zugpferde zu verlieren – bei MAC konnten sie nicht anders.
In der Theorie zumindest ist WDM-KS schneller und leistungsfähiger als ASIO. Da aber gerade bei ASIO eine große Verbreitung vorherrscht und viele Softwareanbieter nicht unnötig Entwicklungsarbeit in eine neue Schnittstelle stecken wollen, wird es wohl noch eine Weile dauern bis sich das Kernel-Streaming auch bei Windows durchsetzt. (Vielleicht also mal ein Anstoß für alles mit Cakewalk zu arbeiten.....)
Was ist nun jetzt ASIO4all?
Also ASIO4all ist quasi die Kombination aus ASIO – Schnittstelle auf Anwendungsebene (z.B. Musiksoftware) und der Kernel – Ebene auf Basis des WDM - Treibers + Kernel-Streaming. Mit einfachen Worten ausgedrückt: ASIO4all dockt am Sequenzer via dem weit verbreiteten ASIO-Protokoll an, steuert die dahinter liegende Soundkarte aber auf Basis der WDM – Treiber an und nutzt zum schnellen Datentransport das KernelStreaming. ASIO4all ist also noch eine Stufe mehr Software wie ASIO. Denn dort wo ASIO noch das Vorhandensein von ASIO-Treibern in der Hardware voraussetzte, braucht ASIO4all diesen Treiber nicht mehr denn es nutzt ja die Standard WDM - Treiber die bei jeder Hardware unter Windows dabei sind. Zusätzlich setzt ASIO4all nach unten hin (also zur Kernel – Ebene des Betriebssystems) auf das KernelStreaming. Fertig ist eine recht fixe Anbindung jeder nur lauffähigen Soundhardware unter Windows an eine ASIO – fähige Software.
So – ich hoffe mal nun ist klar warum ASIO4all zunächst auch Multiclient – fähig ist. Aber es ist hoffentlich jetzt auch klar, dass ASIO4all selbst nicht synchronisiert und daher die möglichen parallelen Audio – Streams zeitlich versetzt werden können. Sowohl bei Aufnahme wie auch beim Abspielen. Das kann gut gehen – ist aber bei weitem nicht so sicher wie eine ordentliche Soundkarte mit genügend Ein/Ausgängen. Spielt bei Multimediaanwendungen keine Rolle aber für eine ernsthafte Musikproduktion würde ich das nicht nutzen wollen.
So – ich habe fertig. Schönen Abend noch
Viele Grüße