ASIO und Clocking

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

Beitrag von uli.brueggemann »

Bernd Peter hat geschrieben: Die Clockwahl erfolgt über die RME-DSP-Settings, das ist die firefaceusb.exe: Settingsdialog.
Bernd Peter,

ich hab mal grad meine Fireface angekurbelt. Der Settingsdialog ist ein (weiteres) Programm, um Einstellungen an der Soundkarte vorzunehmen. Bezgl. der Clock gibt es ein Panel Clock Mode. Da kann vorgegeben werden:
Samplerate: von 32 kHz bis 192 kHz
Clock Source:
- ADAT (Sync auf ADAT Eingang)
- spdif (Sync auf spdif Eingang)
- Word (Sync auf Wordclockeingang)
- LTC (Sync auf Time Code, dazu ist ein optionales Modul TCO nötig, speziell für Filmanwendung)
- internal (der Takt wird entsprechend der Sampleratevorgabe intern erzeugt)
Pitch: es können Taktabweichungen bis 4% vorgegeben werden

Ok, wenn ich nun die Samplerate mit dem Settingsdialog auf 192 kHz stelle, dazu die Synchronisation auf ADAT, den Pitch auf +2.5% und dazu mit Foobar eine 44.1 kHz flac auf spdif ausgebe, was tut sich dann? :mrgreen:
Richtig: dem Soundkartentreiber wird mitgeteilt, dass er gefälligst die flac-Daten unter Nichtbeachtung von der 192 kHz-Einstellung, der ADAT-Frequenz und der Pitchvorgabe mit Hilfe seiner internen Clock mit 44.1 kHz auf spdif rausschiebt.
Egal ob da nun der Treiber *.sys (WDM) oder *.dll (ASIO) aktiviert ist. Ergo gibt der Treiber an, was da rauskommt. Er setzt die Clock entsprechend um.
Ausnahme: es kann passieren dass der WDM-Treiber 48 kHz raustut. Weil ihm von Windows-System (kmixer & Co.) die 48 kHz vorgegeben werden. Weil Windows eben meint, dass 48 kHz richtiger sind, es könnten ja vielleicht noch Systemklänge dazu gemixt werden. Die mit 48 kHz vorliegen und dann wird eben die flac dahin gewandelt, auf Teufel komm raus. Aber, es kann, es muss nicht.
ASIO sieht nur die 44.1 kHz.

Grüsse, Uli
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 3995
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Uli,

Thema ist damit durch.

War aber auch interessant und hat durchaus Arbeit gemacht.

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 Uli & Bernd Peter

Nun bitte nicht diesen Thread mit ADAT, LTC usw. noch mehr durcheinander bringen...
-es sind doch schon viel zu viele technische Begriffe gefallen die nichts mit diesem Thema zu tun hat.

Für die einigen vielleicht noch mitlesen und sich schlauer machen wollen, könnte es hilfreich sein mal zu einen (ungefähren) Konsens mit ASIO & Clocking zu kommen.....
Bild
Unicos
Aktiver Hörer
Beiträge: 805
Registriert: 22.06.2008, 20:38
Wohnort: NRW

Beitrag von Unicos »

Hi,

ich bin immer noch der Meinung, dass man das mal grafisch darstellen sollte.
Ich habe immer noch das Gefuehl, dass da ein wenig aneinander vorbei geredet wird....

Auch wenn es immer ein wenig verwirrend ist, kommen durch die Verschiedenen Erklaerungsansaetze viele Punkte zum Vorschein, die ich vorher noch nie beachtet hatte.

Weiter so, aber immer dran denken. Ist alles ein Hobby mit verschiedenen Ansaetzen die zum Schluss zum Ziel der "reinen" Musik fuehren sollen.

Eine Wertung besser/schlechter gibt es fuer mich nicht, weil der eine legt Wert auf Einfachheit, der andere auf Preiswert, der naechste auf Flexibilitaet etc.
Btw. Seit wann ist der Big Ben ein Consumer Geraet? :-)

@Henryk Ich hatte die Grafik angefragt :-)

LG aus dem Zug

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

Beitrag von play-mate »

Hallo Thomas & Henryk

es gibt leider nicht viel zu ASIO im WWW da jeder Hersteller und der Entwickler sich damit ein wenig verdeckt hält, aber dass ist legitim.
Das Prinzip ist seit langem Standard und auch bekannt (ausser hier :D ).

Es gibt aber einige Grafiken dazu hier :

http://www.tnt-audio.com/clinica/diginterf1_e.html

...ist eine Serie, also weiterblättern.

Das ASIO protokoll ist vergleichbar mit dem I2S in der Grafik.

Leif
Bild
wgh52
Aktiver Hörer
Beiträge: 5623
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Leif,

ich meld' mich doch nochmal. Denn...
play-mate hat geschrieben:Das ASIO protokoll ist vergleichbar mit dem I2S in der Grafik.
... stimmt eben GENAU NICHT: ASIO ist eine SOFTWARE, die eine Soundkarte mit Daten versorgt. Die SOUNDKARTE schiebt diese Daten (unabhängig von ASIO - nach eigenem oder von aussen eingespeistem Takt - zumindest letzteres wäre ja "asynchron vom PC Takt") durch IHR Hardware-Interface auf die (USB oder SPDIF) Leitungen! Auch USB an sich funktioniert soweit ich weis nicht wie I²S...

My 2 cents worth.

Gruß,
Winfried

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

Beitrag von play-mate »

Okay Winfried

die Grafik ist nicht für ASIO zuständig & war auch nicht als solches gewählt. Dazu bezieht sich der Artikel auch nicht.

Ich habe 200 Google-Seiten durchforstet und es gibt nicht eine Einzige grafische Darstellung von ASIO, sonst wäre sie schon vor langem hier abgebildet. Ich habe gesagt die Grafik ist vergleichbar mit ASIO (da asynchron).

Da es aber mittlerweile nicht darum geht ASIO zu verstehen oder aufzuklären, beende ich hiermit meine weitere Beteiligung.

Das ist mir ganz einfach zu blöd!
Bild
gregor
Aktiver Hörer
Beiträge: 669
Registriert: 08.03.2010, 20:08

Beitrag von gregor »

Werte PC-Hörer,

dieser Thread ist mehr als interessant; zwar wäre mir lieber, wir diskutierten über CoreAudio, aber im Kern scheint es bei ASIO um eine mehr als artverwandte Problematik zu gehen. Auch wenn sich hier für mich immer noch kein Ergebnis abzeichnet, verdient diese Diskussion Beachtung!

Gleichzeitig will ich zugeben, dass ich Leif zunächst fälschlich auf "gute Kombination aus angepasstem Rechner und DAC/Soundkarte ist billiger" reduziert habe. Sorry.

Da hier im Forum anscheinend noch niemand selbst einen ASIO-Treiber programmiert hat (oder dies aus rechtlichen Gründen nicht zugeben darf), will ich mich mal wieder äußerst weit aus dem Fenster lehnen und hier mal meinen Reim auf ASIO vorstellen:

in den frühen 1990ern durfte ich damals mit einem 80286/10 MHz Messungen mit einem physikalischen Messinterface unternehmen. Der Rechner war jedoch zu langsam für das komplexe Interface, daher ergaben sich zu große Messfehler oder es ging auch gelegentlich gar nichts. Es stellte sich heraus, dass die Schnittstelle zum Interface einerseits als Protokoll definiert, andererseits komplett in Turbo Pascal geschrieben war. Es zeigte sich auch, dass der Hersteller des Interface zwar sehr gute Ingenieure, aber auch weniger talentierte Programmierer mit der Entwicklung des Interface betraut hatte.

In den nächsten Wochen schrieb ich die komplette Treibersoftware neu, indem ich alle relevanten Routinen durch Assembler ersetzte und alles objektorientiert strickte. Durch die hardwarenahen Befehle weiß man dann sogar in Echtzeit, wie viele Taktzyklen eine Routine benötigt. Durch Einfügen von "waitstates" konnte man den Zeitpunkt abwarten, zu dem das Interface mit einem Messzyklus (Takt) fertig war und dann abfragen… Die maximale Messgenauigkeit ergab sich also aus dem Abgleich der Arbeitsgeschwindigkeit der einzelnen Interfacemodule und der CPU des Rechners. Das Übergabeprotokoll zum Rechner blieb übrigens exakt gleich. Sobald man die CPU über das BIOS auf 8 MHz heruntergetaktet hatte, klappte es oft nicht mehr…

Die Frage ist nun, ob sich Erfahrungen aus dem MS-DOS-Zeitalter und einer RS-232 auf heutige Verhältnisse übertragen lassen.

Die Analogie scheint für mich zu sein, dass ASIO an der Oberfläche gleich ASIO ist, dahinter kann dann wohl allerhand stecken und das kann unterschiedlich gut gemacht sein. Auch scheint mir, dass der weitere Weg durch den Rechner heute komplexer ist als bei MS-DOS und RS-232 (Datenrahmen und Timing sind da fix). Es bleiben daher für mich noch zahlreiche Unbekannte (neben dieser Spekulation) und die wurden in diesem Thread bereits benannt.

Beste Grüße :cheers:

gregor

P. S.: Ich habe viel Mühe, ich bereite meinen nächsten Irrtum vor.
Bild
SirAeleon
Aktiver Hörer
Beiträge: 203
Registriert: 21.01.2008, 13:07

Beitrag von SirAeleon »

Hallo zusammen,

alles ruft nach Grafiken, drum habe ich mal eine gebastelt, von der ich hoffe, dass sie wenigstens halbwegs passt:

Bild

Ich denke nämlich auch, hier wird über zwei verschiedene Baustellen diskutiert:

1) Wie kommt das Signal überhaupt aus der Playersoftware am "jitterfreiesten" zur Soundkarte und
2) Wie geht's nach dem Digitalausgang der Soundkarte weiter.

Für 1) ist wohl unstrittig ASIO der beste Weg, sogar mit der Option, den Takt/die Clock der Soundkarte zu "parametrisieren" (wenn ich Uli hier richtig verstanden habe).
Aber bei 2) liest definitv die Soundkarte im Takt ihrer Clock den Ausgangsbuffer und sendet die Daten über den SPdif-Transmitter raus.

Hier setzen Fujak, Gert und alle anderen an, um das dort anliegende Signal nochmals durch Reclocking aufzuwerten, bevor es zum DAC kommt.

Die untere Hälfte berücksichtig den Fall, dass die Soundkarte extern ist und am USB-Kabel hängt. Sie könnte sogar Teil des DACs sein, so dass es nur eine Clock (die des DACs) gibt. Hier entfällt dann natürlich ein Reclocking, es sei denn der DAC akzeptiert eine externe Wordclock. Dann wird in der Tat (wenn ich hier Leif richtig verstanden habe) der "DAC" mit ASIO über USB-Kabel angesprochen.

Ist das so richtig?

Chris
Bild
wgh52
Aktiver Hörer
Beiträge: 5623
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

play-mate hat geschrieben:Okay Winfried

die Grafik ist nicht für ASIO zuständig & war auch nicht als solches gewählt. Dazu bezieht sich der Artikel auch nicht.

Ich habe 200 Google-Seiten durchforstet und es gibt nicht eine Einzige grafische Darstellung von ASIO, sonst wäre sie schon vor langem hier abgebildet. Ich habe gesagt die Grafik ist vergleichbar mit ASIO (da asynchron).

Da es aber mittlerweile nicht darum geht ASIO zu verstehen oder aufzuklären, beende ich hiermit meine weitere Beteiligung.

Das ist mir ganz einfach zu blöd!
Hat jemand diese Reaktion verstanden? Ich nicht, würde ich aber gerne ... Es scheint als meinte Leif wir wären "Ignoranten", oder was? Aber eigentlich wollten wir doch nur die behaupteten Zusammenhänge verstehen ... Jetzt habe ich gerade gelesen, daß sich Leif aus dem Forum zurückgezogen hat. Alles etwas eigenartig. :roll:

Gruß,
Winfried
1720
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Winfried,

de facto birgt ASIO etwas Geheimnisvolles. Eigentlich ist ASIO prima dokumentiert. Steinberg hat hierzu ein Software Development Kit (SDK) veröffentlicht. In diesem SDK finden sich Programme und ein Hadbuch, wie man die ASIO-Schnittstelle korrekt bedient. Also alles dokumentiert?

Nein. Das SDK beschreibt nur, wie man die ASIO-Treiber anspricht. Nicht jedoch die Treiber selbst. Diese gehören proprietät zu jeder Soundkarte dazu und sie sind nicht veröffentlicht. Die Treiber müssen auch nicht alle Funktionen erfüllen, die im SDK-Handbuch beschrieben sind. RME bedient z.B. nicht den Aufruf des Control Panels der Soundkarte.

Und wie nun die jeweiligen ASIO-Treiber entstehen, wie sie in das Betriebssystem eingebunden werden und dabei gewisse Kernel-Funktionen umgehen und wie das im Übereinklang mit Richtlinien von Microsoft passiert (ansonsten könnte ja jeder auf low-level-Ebene im Betriebssystem herumpfuschen) - das ist nun einmal nicht öffentlich dokumentiert. Das kann sich auch von Soundkarte zu Soundkarte unterscheiden hinsichtlich der Qualität. Rein theoretisch könnte der ASIO-Treiber intern auch Standardfunktionen des Betriebssystems nutzen - und keiner merkt es. Nur weil der Treiber eben nicht im Windows-Mixer bzw. in der Systemsteuerung - Sound auftaucht.

Insofern bin ich sehr vorsichtig mit Aussagen zu dem was ASIO nun genau tut. Wir können es nämlich nicht belegen. Und wir finden somit auch keine Diagramme. Google ist da mehr bei Doktorarbeiten nützlich :mrgreen:

Was aber des weiteren möglich ist: über den Gartenzaun gucken und mal sehen was ALSA unter Linux macht. Und siehe da, die Treiber lesen von der Soundkarte Informationen zu den Eigenschaften und bedienen diese dann jeweils. Da gibt es gewisse Standards, die seitens der Hardware einzuhalten sind. So dass Treiber mit minimalen Änderungen an unterschiedlicher Hardware laufen.
Soweit ich weiss, ist da kein Treiber, der nun das Signal und eine zusätzliche Clock ausgibt.

Für mich erweitert sich das alles zu der Vermutung: ASIO bedient die Soundkarte wia andere Treiber auch, es stehen da keine Extras zur Verfügung (die Hardware kennt keine ASIO-Betriebsart). Was vermutlich ausgeschlossen ist: Durchleitung der Information über Treiber, die alle Soundinformationen, z.B. Systemklänge oder Volumenregelung, verarbeiten müssen. So dass eben Bit für Bit mögichst identisch rausgeht. Nothing else.

Just my 2 Cents.

Grüsse, Uli
Bild
matadoerle
Aktiver Hörer
Beiträge: 35
Registriert: 05.04.2011, 14:23

Beitrag von matadoerle »

play-mate hat geschrieben:Da es aber mittlerweile nicht darum geht ASIO zu verstehen oder aufzuklären, beende ich hiermit meine weitere Beteiligung.

Das ist mir ganz einfach zu blöd!
Hallo Leif,

jetzt habe ich mir gestern im Cabrio die Pläte verbrannt und mich ins schattige Zimmer verkrochen; das Thema und dein Engagement zur Aufklärung genossen. Bitte gib doch nicht einfach auf, wenn es eventuell zu Mißverständnissen kommt - schließlich sind die dafür da, ausgeräumt zu werden. :cheers:

Meines Wissens nach ist ASIO zuallererst einmal einfach ein Protokoll - simpel gesagt eine Vereinbarung, wie digitale Musikdaten ohne verschlimmbessernde Beeinflussung seitens des Betriebssystems Windows von der Datenquelle zum Digital-Analog-Wandler kommt. Und das Entwicklungsziel war vorrangig, wenn ich es richtig verstehe, die Latenzzeiten unter Kontrolle zu halten. Denn die sind bei der Musikproduktion und vor allem bei der Abmischung der Hasenfuß, der das bestklingendste System ins Aus schieben kann. Das ist allerdings für die reine Reproduktion nicht so elementar kritisch.

ASIO gewährleistet aber im Sinne geringer Latenz, daß der musikalische Inhalt so direkt und auch unverändert wie möglich von der Quelle zum DAC durchgeschliffen wird, verringert also die Gefahr externen Störfeuers (Betriebssystem/Interrupts/etc.). Es dürfte vollkommen unstrittig sein, daß ASIO auf einem Windows-PC tatsächlich das bevorzugte Verfahren darstellt, um auf alle Parameter der Übertragung bis zur Wandlung einen durchgehenden und vor allem zielgerichteten Einfluß zu nehmen. ASIO macht nicht nur Sinn, es ist wohl zu Recht in der professionellen Welt unter Windows der Standard.

Nun habe ich ein M-Audio FireWire 1814 Audio-Interface an meinem Vista-Rechner (vorher unter XP), und da kann ich via ASIO tatsächlich innerhalb einer Kontroll-Oberfläche alle Parameter vom Interface aus zielgerichtet einstellen und nutze das natürlich auch. Bei meinem Interface bestehen mehrere Möglichkeiten der Taktung, nämlich intern (Clock des DAC bzw. Interface) oder extern (beispielsweise via S/P-DIF angeschlossene Laufwerke/Quellen) oder Wordclock (extra Eingang).

Nach meinem Verständnis läßt sich mit ASIO bestimmt alles steuern, aber bestimmt nicht der Jitter am DAC beeinflussen. Die resultierende Performance der analogen Ausgabe wird zwar durch den definierten und kontrollierten Datenkanal von der Quelle bis zum DAC ermöglicht, der Klang selber jedoch sicherlich durch die physikalischen Eigenschaften des Wandlers und der Clock maßgeblich mitbestimmt.

Die Frage also, ob Reclocking innerhalb der Datenübertragung oder externe Steuerung über Wordclock sinnvoll oder überflüssig sind, läßt sich nicht mit Verweis auf ASIO klären. ASIO gewährleistet aber, daß das Datenformat von der Quelle bis zum Wandlungsprozess bestmöglich und unbehelligt erhalten bleibt. Die Frage lautet also nicht ASIO oder Reclock, sondern ASIO und interne Clock ODER externe Clock. Die Antwort dürfte von der Qualität der Ausgabegeräte und des Wandlers abhängen. ASIO selber dürfte kaum in Frage gestellt werden, jedenfalls nicht auf einem Windows PC.

Ich bitte um Korrektur, wenn ich etwas falsch verstanden oder dargestellt habe. Wünsche noch frohe Sonnenstunden ...

Gruß Thorsten
Bild
wgh52
Aktiver Hörer
Beiträge: 5623
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Hallo Thorsten,

danke vielmals für Deine betont unaufgeregte und gut nachvollziehbare Zusammenfassung. Wohltuend! :cheers:

Ich denke genau hier
matadoerle hat geschrieben:Die Frage also, ob Reclocking innerhalb der Datenübertragung oder externe Steuerung über Wordclock sinnvoll oder überflüssig sind, läßt sich nicht mit Verweis auf ASIO klären. ASIO gewährleistet aber, daß das Datenformat von der Quelle bis zum Wandlungsprozess bestmöglich und unbehelligt erhalten bleibt. Die Frage lautet also nicht ASIO oder Reclock, sondern ASIO und interne Clock ODER externe Clock. Die Antwort dürfte von der Qualität der Ausgabegeräte und des Wandlers abhängen. ASIO selber dürfte kaum in Frage gestellt werden, jedenfalls nicht auf einem Windows PC.
ist die Fragestellung richtig getroffen. Ich hatte versucht herauszufinden WIE ein Softwareprotokoll Jitter verringern könnte, wenn man gerade vom PC Takt unabhängg clocken will. Aber vielleicht ist Deine Fragestellung einfach besser geeignet. :)

Mal sehen, vielleicht kommen wir der Antwort ja noch auf die Spur.

Gruß,
Winfried
1721
Bild
derdoctor
Aktiver Hörer
Beiträge: 17
Registriert: 22.03.2009, 22:56
Wohnort: 46348

Beitrag von derdoctor »

Ich habe mit grossem Interesse diesen Thread, wie auch viele andere die sich mit dem Thema Jitter und PC Audio im Allgemeinen beschäftigen gelesen.

Auch habe ich versucht die Erklärungen zum Thema Jitter von Gert und anderen versucht zu verstehen und glaube dabei einigermaßen erfolgreich gewesen zu sein.

Ich habe Gert so verstanden, das insbesondere der Jitter bei der D/A Wandlung von großer Relevanz ist, da die Rekonstruktion des Analogsignals größter Präzison bedarf. Dies sollte doch eigentlich ungeachtet dessen, aus welcher Quelle (Computerbusse, SPDIF, AES3, MADI...) die Daten stammen, durch eine nahe am DAC liegende Taktquelle gegeben sein. Ich bin bislang immer davon ausgegangen, das die Audiointerfaces, ob nun USB, Firewire oder PCI Soundkarten, die für sie bestimmte Daten über einen FIFO Puffer aus dem PCI, USB, Firewire "Stream" auslesen neu takten - nach den Erfordernissen des DAC bzw des Audiosignals- und dann eben Digital Analog wandeln. Was ja dann Gerts Prinzipien grob entspräche.

Gut, wenn man über das Windows Multimedia Gedöns geht fängt man sich wegen der SRC und en anderen Fiesen Sachen die Windows mit dem K Mixer noch so veranstaltet jede Menge Latenz ein. Aber Jitter? Das ist doch erstmal nur Software, oder? Wenn ich hier völlig danebenliege bin ich für neue Erkenntnisse offen.

Ebenfalls bin ich davon ausgegangen, das ASIO zum Zwecke der Umgehung des seit Windows NT eingeführten HAL (Hardware Abstraction Layer) dient. Um eben die Speicherzugriffe unabhängiger vom OS zu halten damit man die Puffer und damit die Latenz klein halten kann. Denn bei einer DAW mit der man Multrackrecording macht kann man keine Latenzen gebrauchen. Von verringertem Jitter durch ASIO höre ich nun zum ersten Mal, wobei ich nicht auschliessen möchte das damit Jitter verringert werden kann.

Aber unter diesen Umständen habe ich ein kleines Problem den Zusammenhang zwischen dem vielleicht verjitterten Systemtakt der PC Hardware und dem Audiodevice zu sehen. Oder sollte es etwa Soundkarten geben die ihren DAC-Takt aus den 33/66mHz des PCI Bus generieren?

Müsste sich Jitter auf den Datenleitungen des PC insbesondere der der CPU und des Speichers aufgrund der mittlerweile doch recht hohen Taktraten nicht generell Negativ auf das gesamte System Computer auswirken?
Und sich somit nicht die Notwendigkeit einer sehr genauen>jitterarmen Clock ergeben?

Ich bitte mich nicht falsch zu verstehen, ich will das Thema des Threads nicht in Frage stellen!

Ich habe immer versucht mit möglichst nativen Mitteln meine Audiohardware anzubinden, also bei den PCX Karten mittels der NPTreiber und eben bei anderen Soundkarten wie RME oder so eben per Asio, dies aber immer eher im Hinblick auf Latenz und Umgehung der Verbiegungen durch Direct Sound und andere lustige Spielchen in Windows und auch MacOS. Soundblaster, Onboard-Audio und Co. waren für mich auch nie ein diskussionswürdiges Thema.

Vielen Dank für die vielen guten Anstösse hier im Forum
Bild
Antworten