ASIO und asynchrone Übertragung

play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Bernd Peter,

Nein, diese zwei Aussagen wiedersprechen sich nicht, denn es geht um das Clocking der Playersoftware..... :P

Ein ASIO Gerät hat per Design das Sagen im Bezug auf das Takten, und dies ist auch warum ASIO so entscheidend ist.
Nehmen wir das Beispiel womit die Diskussion angefangen ist : ASUS DAC.
Eigentlich ist dieser DAC eine externe Neuauflage einer ASUS ASIO-Soundkarte.

Das ASIO-Protokoll sieht vor das die Soundkarte das Clocking für den Computer stellt.
Dies heisst dass die Playersoftware UND die Soundkarte den selben zeitlichen Referenzpunkt haben.
Das Protokoll bestimmt das die Soundkarte der Master ist.
Wenn die Soundkarte nun ein digitales S/PDIF ausgibt, so ist der ASIO Modus (von dort an) nicht mehr oder weniger als ein normales S/PDIF Signal. Aber das wichtige ist das Clocking des ASIO Gerätes, und das der Computer sich diesem unterliegt/folgt.

Der besprochene ASUS DAC behält jedoch den ASIO Modus bzw. das Masterclocking ganz bis zum Wandlerchip (auch wenn dieser extern in einem Gehäuse ausserhalb des Computers sitzt).
Weil USB ein Bus ist, kann mit dem ASIO-Protokoll die Taktung des Computers vom ASUS DAC erfolgen.

Dies ist prinzipiell das selbe was unter dem Begriff "asynchones USB" geht, und das Apple´s & Linux´s USB Audio Class 2 ohne Treiber bewerkstelligen.
Weil USB ja eine Plug´n Play Funktion hat, erkennt diese ein asynchrones USB automatisch und stellt sich darauf ein.
Bis Win8 auf den Markt kommt, unterstützt Windows nicht diese AudioClass 2 Technologie.

Hat das geholfen ?

Gruss (Professor) Leif :cheers:
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4013
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Leif,

hoffe, der Hörsaal ist immer voll.

Für mich der wichtigste Punkt bei ASIO:

Programme, die über Steinbergs Schnittstelle ASIO verfügen, erreichen (für Windowsverhältnisse) sehr niedrige Latenzen bei Aufnahme/Wiedergabe, da sie unter Umgehung des Betriebssystems/Kmixer direkt auf die Hardware (Soundkarte) zugreifen können.

Normalerweise ist vorgesehen, daß der Kmixer als Teil des Betriebssystems zwischen Audioprogramm/Player und dem Treiber vermittelt. Und das bremst eben.

Wo ich Verständnisprobleme habe:
Das ASIO-Protokoll sieht vor, daß die Soundkarte das Clocking für den Computer stellt.
Das ist immer so vorgesehen, jede Musikdatei wird - egal mit welchem Treiber oder Protokoll - vom Player geöffnet und an die Soundkarte/Soundchip zur Musiktaktung weitergegeben. Der Player taktet mW nicht!

Gruß

Bernd Peter
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Bernd Peter,

Es ist richtig dass ASIO als sollches, für niedrigste Latenzzeiten entwickelt worden ist und auch diese im Vordergrund der algemeinen Wahrnehmung steht. Aber das Clocking ist ein zentraler Punkt.

Wenn man ASIO fährt so ist die Konfiguration des Computers "Single Client". D.h. die Soundkarte hat die Taktung der im Computer laufenden Software in der Hand. Dies ist auch der Grund warum ASIO auf der Hardwareabstraktionsschicht aufsetzt; also unterhalb der Windows Software.

Bei Windows APIs und asio4all läuft der Computer für die Software dagegen seine eigene Clock, und gibt ein zeit-kritischen Stream über den Treiber (also adaptiv) an die angeschlossene Soundkarte ab. Es sind somit 2 Clocks am werkeln: die des Computers und die der Soundkarte.

Die Verzerrung die dabei auftritt, nennt man "Clock-Scew" und ist unter Audiotechniker wohlbekannt. Daher ist es in einem digitalen Domain immer am besten nur eine, sogenannte Masterclock zu verwenden um die exakte Synchonisierung sicherzustellen.

Mehr zum Thema hier : http://db.audioasylum.com/mhtml/m.html? ... %3DDESC%26

Viele Grüsse Leif
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4013
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Leif,

sind wir uns einig, daß es einen Übertragungstakt im PC (mit dem arbeitet der Player) zur Soundkarte gibt - dessen mindere Qualität nicht weiter stört, da die in den Datenblöcken eingelagerte Musik noch nicht getaktet ist?

Gruß

Bernd Peter
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Bernd Peter

Bei ASIO gibt es keinen Takt der übertragen wird.
Bei anderen Treiber hingegen schon.

L.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4668
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Einfach mal drei Grundfragen an unseren ASIO-"Spezialisten" zum Thema Soundausgabe:
  1. Wenn auf einer Soundkarte Quarzclocks drauf sind, ist es dann erlaubt, diese auszulöten? Wenn das Windows-API ja angeblich getaktet ausgibt, müsste das doch ohne weiteres gehen, die Oszillatoren sind ja obsolet. Gibt es eigentlich Soundkarten ohne Oszillatoren (Windows erledigt das ja schon und dann wäre es doch preiswerter)?
  2. Offensichtlich ist der Scheduler in einem Betriebssystem der Prozess mit der höchsten Priorität, er teilt ja die zur Verfügung stehende Rechenkapazität jeweils auf und den jeweiligen aktiven Prozessen zu. Dahinter steckt sicherlich reichlichst Knoffhoff. Die Verwaltung innerhalb Windows unterliegt dabei ganz klar den Richtlinien von MS. Sonst könnte doch ja jeder Prozess kommen und ...

    Wie kommt es nun, dass da eine Fa. Steinberg so einfach ein Protokoll macht, welches schlichtweg am Kernel vorbeigeht? Und kann nun der Soundkartenhersteller seinen ASIO-Treiber beliebig schreiben, er muss sich ja nicht mehr am Betriebssystem orientieren? Was tut eigentlich der Scheduler wenn ASIO aktiv ist? Wieso lässt MS das einfach so zu?
  3. Es scheint ja gute und schlechte Software zu geben, siehe all die Diskussionen zu Foobar, JPlay, Kernel Mixer, Windows API, ASIO ...

    Nun hat wohl bisher keiner hier im Forum jemals den Quelltext eines ASIO-Treibers zu einer oder mehreren Soundkarten jemals gesehen und studiert. Wieso wird grundsätzlich davon ausgegangen, dass derjenige, der einen solchen Treiber verfasst hat, nun einen optimalen Treiber verfasst hat? Viel besser als das die MS-Leute können? Wieso gibt es dann auch bei ASIO-Treibern Updates?
Beim Nachdenken über solche Fragen erscheinen mir doch einige Beiträge als bloßes Geschwätz.

Grüsse
Uli
Bild
vincent kars
Aktiver Hörer
Beiträge: 154
Registriert: 15.03.2011, 16:50
Kontaktdaten:

Beitrag von vincent kars »

uli.brueggemann hat geschrieben:1. Wenn auf einer Soundkarte Quarzclocks drauf sind, ist es dann erlaubt, diese auszulöten? Wenn das Windows-API ja angeblich getaktet ausgibt, müsste das doch ohne weiteres gehen, die Oszillatoren sind ja obsolet. Gibt es eigentlich Soundkarten ohne Oszillatoren (Windows erledigt das ja schon und dann wäre es doch preiswerter)?
:cheers:

I’m afraid the “software clock” only exist in the imagination of our "professor".
uli.brueggemann
Aktiver Hersteller
Beiträge: 4668
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

play-mate hat geschrieben:Bei ASIO gibt es keinen Takt der übertragen wird.
Bei anderen Treiber hingegen schon.
Es macht vielleicht Sinn, sich doch einmal das WASAPI-Beispiel Rendering a Stream von MS anzuschauen. Ich seh da klar, dass da ebenfalls ein Puffer zur Übergabe von Daten an den Treiber verwendet wird. Ein logischer Unterschied besteht darin, dass der Puffer immer nach einer bestimmten Zeit (ca. 1/2 Zeitbedarf zum vollständigen Leeren des Puffers) geprüft und wiederaufgefüllt wird. ASIO verwendet da einen Doppelpuffer, zwischen dem immer hin-und hergeschaltet wird. De facto wird also in beiden Fällen immer in einen Speicherbereich geschrieben, während aus dem anderen ausgelesen wird.

Es wird in beiden Fällen jedoch kein Takt übertragen.

Grüsse
Uli
Bild
analog+
Aktiver Hörer
Beiträge: 102
Registriert: 04.02.2011, 11:40

Beitrag von analog+ »

Hallo Uli, liebe Leute;

Mein Gott, was wird hier plötzlich Staub aufgewirbelt...

Logischerweise wird in einem Datenprotokoll kein Takt übertragen - ich sehe auch nicht, wo das behauptet wurde. Ebensowenig, wie die Clock des einen Rechners (Dac) die eines anderen "abschalten" und via Software durch seine eigene ersetzen soll. Über solchen Unsinn braucht sich also niemand zu mokieren.

Im Gegenteil: Der von Leif gepostete Link beschreibt mMn sehr gut wie Asio und Asio4all (Asio2KS für billige Soundkarten) funktionieren. Hier ist er nochmal, er sollte ruhig mal gelesen werden:

http://db.audioasylum.com/mhtml/m.html? ... %3DDESC%26.


Und wo bleibt denn bei alledem die Praxis?

Hier ist meine:

1. Dac direkt an SPDIF
2. Dac wie 1. aber mit Reclocker : BigBen und dcs Puccini
3. Dac an USB über eigenen Asiotreiber (nicht Asio4all).

Die Dacs waren:
Dr.Dac Prime, Asus Xonar Essence, Mytek 192.
Alle liefen am cmp-Rechner, konfiguriert wie auf der Webseite beschrieben, SPDIF-Ausgabe über EsiJuli (mit eigener linearer Stromversorgung). Kabel von Funk, Supra und Sommerfeld (SPDIF) und Belkin Gold (USB).

Das Resultat in Kurzfassung:
Asus und Mytek über USB-Asio am besten, Dac Prime über SPDIF aus Juli am besten.
Die deutlich beste Leistung dieser Setups liefert der Mytek über USB (Flow, Tonalität), dann Asus und dann DacPrime; (mit dem kann man aber gut aufnehmen: Über USB mit Samplitude, Treiber von Samplitude).
In keinem Fall brachte hier das Reclocking Vorteile, der dcs verschlechterte sogar das Ergebnis.

Und nochwas:
Hervorragend spielte die Lynx Aurora, über Firewire direkt am Mainboard. Zu der hatte ich aber noch nicht den Mytek im Vergleich. Dennoch würde ich sie in Summe über dem Mytek einsortieren.

Quod erat demonstrandum?
Na klar, einfach mal ausprobieren!

Viele jitterarme Grüße
Roland
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4668
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

analog+ hat geschrieben: Logischerweise wird in einem Datenprotokoll kein Takt übertragen - ich sehe auch nicht, wo das behauptet wurde.
Roland,

ich habs doch zitiert. So wie Dich. Siehe bitte nochmal das Posting http://www.aktives-hoeren.de/viewtopic. ... 103#p53103

Und der Audioasylum-Beitrag glänzt m.E. auch nicht mit korrektem Wissen. ASIO4All verwendet intern die Windows-API und gaukelt dem Benutzer eine ASIO-Schnittstelle vor. Schalt doch einfach mal den Windows-Sound im Lautstärkemixer ab, dann erfolgt auch keine Ausgabe per ASIO4All mehr.

Ich hab auch bereits einige virtuellen Soundkarten getestet. Und mit einem Anbieter begonnen, was in Richtung bittransparenter Ausgabe zu tun (was die Anbieter virtueller Treiber zwar behaupten, was jedoch nicht passt). Wenn man nämlich Daten virtueller Soundkarten verarbeiten will, steckt man ganz schnell wieder in der Windows-API, die aufgrund der vielfältigen Möglichkeiten eben auch vielfältige Fallstricke bietet. Übrigens: Auch Windows erlaubt den exklusiven Modus unter Umgehung des Mixers. Es wird dann genauso wie bei ASIO einem Prozess genau eine Soundkarte zugewiesen. Und es wird auch entsprechend gepuffert.

Ansonsten bin ich eigentlich eher frustriert über die ganzen immer wiederholten Behauptungen, wo einer den anderen zitiert, dies aber nicht durch Fakten belegt ist. Zumeist von Leuten, die mit Goldohren nachvollziehen, wie sich die eine oder andere Parametereinstellung bzw. Treiberwahl als hervorglänzend herausstellt. Das gilt dann aber nur bis zum nächstenmal. Dann gibt es einen neuen Parameter oder einen anderen Player ...

Bringt mir doch mal einer was Konkretes zum Nachvollziehen. Wie z.B. so ein realer Soundkartentreiber wirklich aussieht und funktioniert. Die Argumentationen hören doch immer vor dem Treiber auf. Der seinerseits ebenfalls Software ist. Was die dann wirklich tut, steht nach wie vor in den www-Sternen. Stell Dir mal vor, der Soundkarten-ASIO-Treiber ruft intern die Windows-API exklusiv auf und keiner merkt es. :mrgreen:

Gib mir doch mal einer Antworten auf die Fragen in http://www.aktives-hoeren.de/viewtopic. ... 106#p53106

Grüsse
Uli
Bild
analog+
Aktiver Hörer
Beiträge: 102
Registriert: 04.02.2011, 11:40

Beitrag von analog+ »

Uli,

ASIO4All verwendet intern die Windows-API und gaukelt dem Benutzer eine ASIO-Schnittstelle vor

Genau; so steht doch in dem Artikel...?

Ansonsten kann ich Dir die Fragen nicht beantworten: Ich habe im Leben noch keine Treiber programmiert und logischerweise auch keinen Asio-Treiber.

Ich habe mich bemüht, für meine Hörerfahrungen eine Begründung zu erhalten. Sicherlich stecke ich wie wahrscheinlich auch andere hier nun wirklich nicht in den (Un-)Tiefen von Windows.

Ich denke aber, das sollte uns nicht vom Experimentieren abhalten und auch nicht davon, weiterhin unseren Wissensdurst zu befriedigen.

Grüße
Roland
Bild
mm2
Aktiver Hörer
Beiträge: 295
Registriert: 17.05.2010, 22:12
Wohnort: München

Beitrag von mm2 »

Hallo Roland,
analog+ hat geschrieben:Das Resultat in Kurzfassung:
Asus und Mytek über USB-Asio am besten
würde mich freuen, wenn Du hier: http://www.aktives-hoeren.de/viewtopic.php?f=23&t=2410

oder hier: http://www.aktives-hoeren.de/viewtopic.php?f=30&t=2515

mehr über Deinen Vergleich berichten könntest. :cheers:

Für welchen DAC hast Du Dich entschieden?

Viele Grüße
Maximilian
Bild
analog+
Aktiver Hörer
Beiträge: 102
Registriert: 04.02.2011, 11:40

Beitrag von analog+ »

Hallo Maximilian,

mache ich morgen Nachmittag - jetzt ist es mir etwas zu spät, hatte einen langen Tag.

Viele Grüße
Roland
Bild
veloplex
Aktiver Hörer
Beiträge: 360
Registriert: 23.01.2010, 13:41
Wohnort: Berlin

Beitrag von veloplex »

Hallo,

Interessant, was und wie Daniel Fuchs von RME zu diesem Thema zu sagen hat
You may be referring to the different transfer modes for USB audio that are somtimes discussed in esoteric Hifi circles. This is of no relevance here at all...
http://www.rme-audio.de/forum/viewtopic.php?id=15310

Gruß Christoph
Bild
nightingale
Aktiver Hörer
Beiträge: 156
Registriert: 10.01.2012, 14:30
Wohnort: Wien

Beitrag von nightingale »

Ja, aber meine eigentliche Frage hinsichtlich FF400 und firewire (asynchron vs isochron) hat RME bis dato nicht beantwortet :mrgreen:
Bild
Antworten