Software zur Latenzmessung gesucht - Sequencer ohne Latenzkorrektur?

  • Ersteller ars ultima
  • Erstellt am
ars ultima
ars ultima
HCA Recording
HCA
Zuletzt hier
24.03.18
Registriert
19.03.05
Beiträge
16.528
Kekse
36.403
Ort
Düsseldorf
Beim ständigen Gerede über Latenzen und irgendwelche Werte interessiert mich dann doch mal meine tatsächliche Latenzzeit in diversen Situationen. Es gibt da Messgeräte, aber die kaufe ich mir nicht extra... Nun könnte man einfach Soundkartenein- und Ausgang kurzschließen und eine Spur abspielen und auf einer zweite aufnehmen. Habe ich auch schon gemacht - um dann aber festzustellen, dass Samplitude, Reaper und Kristal eine funktionierende Latenzkorrektur haben :) Audacity macht die "manuell" (durch verschieben der Spur), also da kann man tatsächlich ablesen, wie stark die Verschiebung zwischen den Spuren ist. Aber Audacity arbeitet ohne ASIO-Treiber, die Info über die dort auftretende Latenz bringt mir also nicht viel.

Hat da jemand eine Idee? Wäre mal interessant, ob da nun zu der Latenz, die sich aus dem ASIO-Puffer ergibt, noch etwas dazukommt. Und ob das bei PCI anders ist als USB oder FireWire. Und dann könnte ich auch mal eindeutig sagen, bei wieviel Millisekunden Latenz ich noch Gitarre spielen kann, ohne dass ich das störend bemerke.
 
Eigenschaft
 
Kannst nicht irgendwo einen Oszi ausleihen? Damit könntest dann einfach Eingang gegen Ausgang messen und würdest die Latenz sofort sehen.
 
Naja, also "einfach einen Oszi ausleihen" ist jetzt für so eine Kleinigikeit, die mich einfach mal privat interessieren würde vielleicht doch etwas aufwändig ;) Ich wüsste auch grad nicht genau, wie ich das mit einem Oszilloskop dann praktisch machen würde? An sich muss ich doch ein Signal senden und dann die Zeit stoppen, wann es wieder zurück ankommt. Es gibt spezielle Geräte die das machen (und somit Eingangs+Ausganglatenz messen), aber per Software geht das ja auch (da misst man halt Ausgang+Einagng, aber die Summe ist ja die gleiche). Und kostenlose Software gibt es ja eher als kostenlose Hardware :) So eine Software kann ja sehr simpel sein - vielleciht muss ich nur besser google.

Aber trotzdem Danke für die Antwort.
 
Du könntest mit einem (2-kanal) Oszi gleichzeitig Ein- und Ausgang abgreifen und messen, den Versatz siehst dann bereits auf dem Bildschirm. Da könntest dann zwei Marker setzen und die Zeitdifferenz wird angezeigt. Einfacher und genauer geht es kaum. So schwer ist ein Oszi nicht zu finden :)
 
So schwer ist ein Oszi nicht zu finden
Noch einfacher ist es, Software zu finden :D
http://www.centrance.com/products/ltu/
Die macht genau das, was ich will. Na ja fast - eine Sache ist sehr mysteriös. Man muss halt Eingang und Ausgang der Soundkarte miteinander verbinden. Bei meiner M-Audio Delta 1010LT (ohne Patchbay...) muss ich dazu unter den Schreibttisch klettern. Blöderweise kann man aber (obwohl das in der Hilfe angesprochen wird, dass man das tun soll) die Ein- Ausgänge nicht wählen. Welchen der 8 soll ich bei mir dann nehmen? Möglicherweise wird automatisch der erste genommen (ich glaube das ist bei Revalver auch so; da wähle ich nur "M-Audio Delta ASIO" und keinen Ein/Ausgang, es geht aber nur der erste.). Oder alle. Meine ersten sind naürlich mit Abhöre und Eingänge verkabelt, ich würde dafür lieber welche nehmen, die noch frei sind. Daher hatte ich jetzt zunächst keine Lust überhaupt einen solchen "Kurzschluss" zu basteln. Hab dann aber doch einfach mal auf "Messen" geklickt um zu kucken, was passiert - und es hat dennoch funktioniert :eek: Und mit einem realistischen Wert.

Hab mir die Frage jetzt quasi selbst beantwortet, aber da kann ja ein Thread rauswerden, bei dem andere mit machen. Bei der Latenzdiskussion habe ich immer betont (obwohl ich da nie sicher war, ob ich 100% im Recht war), dass ein Interface nicht "Latenz hat", sondern dass es darum geht, dass man mit einer bestimmten PUffergröße, die man selbst einstellt, noch flüssig spielen kann. Das könnte man ja jetzt mal hiermit klären. Ja, die Latenz ist etwas größer als der Puffer, aber das ist ja er minimal (bzw. wäre das halt die Frage, ob bei anderen Interfaces da mehr Differenz zwischen theoretioschem und praktischen Wert liegt.), also eigentlich zu vernachlässigen. Naja, andererseits würde dieses Tool ja keinen Sinn machen, wenn einem die Info über Puffersize reichen würde. Wenn ich die Eingänge wählen könnte würde ich auch mal analoge Anschlüsse mit digitalen vergleichen. Theoretisch müsste ja durch die Wandlung die analoge verbindung mindestens 2 Samples mehr Latenz haben.

Die Frage, ob man bei der Latenz noch spielen kannn (also es keine Knackser etc. gibt), kann man natürlich jetzt so nicht vergleichend stellen, aber darum geht es erstmal nicht. Ich mach mal den Anfang (obwohl es ja eigentlich nicht gehen dürfte, weil ich gar kein Kabel gesteckt habe - ich werde gleich nochmal alles nachkucken, ob da nicht doch irgendeine Verbindung besteht...). Problematisch könnte sein, dass man bei manchen Treibern nicht direkt die Puffergröße, sondern die Latenz über so Werte wie "Hi", "MIddle" und "Low" einstellt. Wir nehmen mal alle 512 Samples und 44,1KHz, das sollte überall knackfrei gehen. Etwas verwirrend ist auch, dass man die Puffergröße direkt einstellt, und das dann irgendwie zu Konflikten kommt, weil man ja im Controlpanel der Soundkarte sie auch einstellt.

M-Audio Delta 1010LT
1031 Samples
 
Die 0,045 ms für zwei Samples kann das Teil mit Sicherheit nicht rausmessen ;)
 
Die 0,045 ms für zwei Samples kann das Teil mit Sicherheit nicht rausmessen
Wieso, es misst doch samplegenau. Die Millisekunden rechnet es ja erst nachher aus. Messtechnich sind die zwei Stellen hinterm Komma, die eher auch angibt, natürlich "verboten genau", weil er ja ein Sample Messungenauigkeit hat. Ok, so gesehen würde der Unterschied wohl in der MEssgenauigkeit untergehen. Bei der analogen Aufnahme können aber eh gewisse ungenauigkeiten auftreten, weil der Wandler nicht so perfekt ist, sprich: Der Impuls sieht nachher etwas anders aus. Die perfekt steile Flanke des Mess-Impulses ist nachher eventuell nicht ganz so steil; auch bei menen manuellen Messung (wo ich per Auge Samples gezählt habe) ist das da nicht immer so samplegenau.

Ich hab übrigens rausgefunden, warum er auch ohne Kabelverbindung etwas gemessen hat: Er schickt das Signal an alle Ausgangskanäle, und empfängt auch von allen Eingängen. Meine Soundkarte hat da einen DSP-Monitoring-Mixer - und dessen Ausgang ist auch ein Aufnahmekanal. SO bestand schon quasi intern dieser INput-Output-Kurzschluss.

Den hab ich dann aber gemutet und nun mal richtig übers analoge Kabel gemessen.

Athlon XP 1600+, 512MB RAM, VIA-KT266A Chipsatz Windows XP SP3

M-Audio Delta 1010 LT mit M-Audio-ASIO-Treiber:
1089 Samples (24,69 ms)

VIA AC' 97 (Onboard-Sound) mit ASIO4ALL:
1055 Samples (23,92 ms)


Leider funktioniert ASIO4ALL mit der 1010LT nicht (also an sich schon, aber bei dem Programm bekomme ich es irgendwie nicht hin.

Bei der Gelegenheit habe ich dann aber auch mal ASIO4ALL und Samplitude (oder die ASIO-Architektur an sich) etwas besser kennen gelernt, weil ich da dann eben auch noch mal solche Testaufnahmen gemacht hat. Die Latenzkorrektur arbeitet nicht perfekt, es ist immer noch eine Verschiebung da. Aber diese entspricht (was ja zu erwarten war) in etwa zusätlichen Latenz, die mir auch diese Latenzmesssoftware anzeigt (also als Differenz zwischen dem ASIO-Puffer und der tatsächlichen Latenz). Samplitude gleicht halt nur den Wert aus, der ihm bekannt ist (und das ist zunächst mal der eingestellte ASIO-Puffer). Allerdings hat ein ASIO-Treiber wohl die Möglichkeit, einen anderen Wert zu melden. Und so weiß ich jetzt auch, wozu es den Punkt "Latenzausgleich" beim ASIO4ALL-Treiber gibt. Wenn man dort was einstellt, dann ändert sich nicht die tatsächliche Latenz, aber Samplitude wird gesagt, dass die Latenz entsprechend höher sei. Und das wiederum macht dann auch einen passenden Ausgleich. Es zeigt in den Einstellungen auch die In- und OutLatenzen an, um die es ausgleicht. Wenn ich in ASIO4ALL also z.B. 512 Samples Puffer einstellte, zusätzlich aber unter "Latenzausgleich" 16 Samples für Eingang und 32 Samples für den Ausgang, dann sagt Samplitude, dass man 528 Samples Input, und 544 Samples Outputlatenz hat. Und diese Werte nimmt es dann wohl für den Latenzausgleich.

Beim M-Audio-ASIO-Treiber habe ich nichtz die Möglichkeit manuell eine solche zusätzliche Latenzinfo anzugeben. Stattdessen hat da wohl M-Audio feste Werte eingegeben. Denn wenn ich mit der M-Audio arbeite, dann gibt Samplitude 542 Input und 544 Output an, zusammen also 1086. Und das ist ja in der Tat dann in etwa der gemessen Wert, also gibt M-Audio da was realistisches an. Allerdings wundern mich die 30 Samples zusätzlicher Inputlatenz. 32 wäre irgendwie logischer gewesen, ist ja beim Output auch so (und ASIO4ALL hat standardmäßig auch 32 in + 32 out eingestellt, ist wohl in der Praxis ein geläufiger Wert), und es hätte eher der Realität entsprochen.

Wie auch immer - es würde mich echt interessieren, was so bei anderen rauskommt. Und was dem gegenüber eine Audiosoftware anzeigt. Also ob das wirklich stark abweicht, so dass dann die Latenzkorrektur nicht richtig funktionieren kann. Weil irgendwie tauchen hier ja doch gelegentlich Fälle auf, wo sich jemand beklagt, dass Spuren nicht synchron ueinander sind. Eigentlich wäre es dann ja durchaus sinnvoll, wenn der Hersteller für seinen Treiber die Möglichekit gibt, diese zusätzlche Latenz manuell einzustellen, so wie es bei ASIO4ALL der Fall ist. Und dazu könnte er dann ein Messprogramm liefern (oder in die Treibersoftware integrieren; dann könnte das sogar automatisch gehen). Dann kann man einfach eben messen, die Abweichung zwischen thereotischem und praktischem Wert also zusätzliche Latenz einstellen, die Aufnahmesoftware bekommt einen korrekten Wert und kann einen optimalen Latenzausgleich machen. OK, so ganz würde das doch nicht gehen, weil man bei der MEssmethode ja nur die Gesamtlatenz misst, und nur Vermuten kann, dass diese sich gleichmäßig auf Input und Outputlatenz aufteilt. Hmm...
 
Zu Deinem Test, mit dem Test-Programm was Du da gefunden hast, funktioniert das bei meinem Motu überhaupt nicht, da kommt nach dem Einstellen des ASIO-Treibers die Motu-Audioconsole, dort kann ich dann Samplingrate und Buffergröße einstellen, dann kommt eine Meldung, dass ASIO einen Reset bekommt und dann geht wieder die Motu-Console auf ... never ending Story :(

Edit
hab das gerade nochmal gestarted, allerdings war jetzt der Winamp offen und solange eine Anwendung auf das Motu zugreift, started die Motu-Console nicht - jetzt konnte ich den 'Messure'-Button mal drücken und es gab folgende Anzeigen:
bei Buffer Zize / Latency sagt es "96 samples (1.00ms)" es läßt sich hier auch nichts anderes einstellen

48KHz - Measurement results: 342 samples / 7.13 ms
96KHz - Measurement results: 342 samples / 3.56 ms
192KHz - Measurement results: 342 samples / 1.78 ms

bei 44,1KHz weigert es sich ?
 
Zuletzt bearbeitet:
funktioniert das bei meinem Motu überhaupt nicht, da kommt nach dem Einstellen des ASIO-Treibers die Motu-Audioconsole, dort kann ich dann Samplingrate und Buffergröße einstellen, dann kommt eine Meldung, dass ASIO einen Reset bekommt und dann geht wieder die Motu-Console auf ... never ending Story
Ja, so ähnlich ist das bei mir auch, wenn ich ASIO4ALL auf meiner M-Audio testen will.

bei Buffer Zize / Latency sagt es "96 samples (1.00ms)" es läßt sich hier auch nichts anderes einstellen
Die Anzeige ist auch dämlich, weil man damit wie gesagt ja eigentlich auf den Treiber zugreift - aber dort stellt man es ja auch direkt ein. Im Gegesasntz zu ASIO4ALL kann ich mein M-Audio Control Panel allein öffnen (dafür kann ich grundsätzlich nicht während eine ASIO-Anwendung geöffent ist die Buffersize ändern...). Hab dann also erst die Buffersize und Samplerate eingestellt, dann das Messprogramm geöffent, und nix mehr verstellt.

Was hast du denn direkt in der Motu-Konsole eingestellt? 512 wie ich vorgeschlagen habe? (obwohl das egal sein sollte, zumindest hat es bei mir keinen Unterschied gemacht)

48KHz - Measurement results: 342 samples / 7.13 ms
96KHz - Measurement results: 342 samples / 3.56 ms
192KHz - Measurement results: 342 samples / 1.78 ms
Offenbar weder 512, noch 96 :) Oder doch letzteres? Weil das wäre dann heftig, dann hättest du ja zusätzliche 150 Samples Latenz, welche (durch was auch immer) entstehen. Bei mir sind es eben "nur" 65. Oder ist das dann doch der Vorteil PCI gegenüber FireWire?
 
in der Motu-Console sind 384 Samples als Buffer eingestellt !? - da kann ich aber einstellen was ich will, dadurch ändert das Programm seine Meinung von 96 Samples überhaupt nicht...

Irgendwie trau ich dem Programm auch nicht so ganz - ich werd das morgen nochmal mit dem Oszi messen.... da kann ich zwar die Nachkommastellen nur schätzen, aber die 0,xx ms machen den Kohl eh nicht Fett.
 
> Theoretisch müsste ja durch die Wandlung die analoge verbindung
> mindestens 2 Samples mehr Latenz haben.

2 Samples werden da nicht ganz langen. Eine Hin- und Zurückwandlung braucht ungefähr 2 Millisekunden. Die werden hauptsächlich in den digitalen Filtern zur Vermeidung von Spiegelfrequenzen (Aliasing, so etwas ähnliches wie die Moiree-Effekte bei Digitalkameras) in den Wandlern verbraten.

Banjo
 
in der Motu-Console sind 384 Samples als Buffer eingestellt !?
Das ist in der Tat merkwürdig.
Irgendwie trau ich dem Programm auch nicht so ganz
Eigentlich wäre es ja ganz einfach - hätten nur die Triberkommunikation besser programmieren müssen. Man könnte ds ja im Prinzip mit jedem Aufnahmeprogramm machen, wenn man die Korrektur da abstellen könnte.

Eine Hin- und Zurückwandlung braucht ungefähr 2 Millisekunden.
Tatsächlich? Wenn das Programm richtig misst, braucht meine Onboard-Soundkarte für die Hin- und Rückwandlung aber höchstens 0,7ms
 
die Wandlerzeit errechnet sich einfach aus der Sampling-/Clockfrequenz und der Auflösung sprich Bitbreite: 1/f*Bits was bei z.B. 44,1KHz dann 0,5442ms für eine Wandlung ergibt.
 
Sorry, das stimmt nicht. Man kann die Antialiasingfilter steilflankiger machen, dann haben sie mehr Laufzeit oder weniger steilflankig, dann sind sie kürzer. Das sind in der Regel FIR-Filter und gute Wandler haben u.U. mehr Latenz, dafür unterdrücken die Filter besser die Spiegelfrequenzen. Eine Designabwägung.

Mit der Bitzahl hat das Ganze nichts zu tun.

Banjo

Edit: Hab mal ein paar Datenblätter geschmökert. In der Summe geht es doch mit weniger Latenz als die Werte, die ich von manchen Produkten kenne. Analog-Devices nennt zum Beispiel für den AD1934-D/A-Wandler bei 48 kHz 25 Samples = 0,521 ms und den A/D-Wandler AD1974 0,479ms, das macht dann alleine in den beiden Wandlerchips genau 1ms. Kommen wahrscheinlich noch ein paar Samples in der restlichen Schaltung dazu.

Und noch ein Nachtrag, weil's mir keine Ruhe lässt :) Burr Brown hat zum Beispiel einen A/D mit 31 Samples und einen D/A mit 55 Samples Latenz, macht in der Summe 86 Samples oder 1,95ms bei 44,1 kHz.
 
Zuletzt bearbeitet:
mhh - hab ich vielleicht etwas ungeschickt ausgedrückt - aber wenn mit einer bestimmten Samplingrate und Bitbreite gewandelt wird, wird das Signal ja genau in diesem Raster abgetastet (1/f) und bei der Delta-Sigma Wandlung müssen dann nach meinem Verständnis auch je nach Bitbreite entsprechend viele Integrationen durchgeführt werden!?
 
Hat nicht noch jemand Lust, das mal auszuprobieren? :)

Leider gibt es da ja teilweise Probleme (es ist auch dämlich, dass man da direkt Buffersize und Abtasrate einstellen kann, sollte man einfach im Treiber selbst machen und gut ist), und ein Problem ist auch, dass man bei vielen Treibern nur so Werte hat wie "Low Latency, Middle Latency, High Latency", aber eben keine Werte für die Puffergröße. Da ist blöd, weil man dann nicht weiß, welchen Anteil der ASIO-Puffer an der Latenz hat. Aber mich würde doch mal interessieren, ob z.B. USB-Interface tatsächlich im Schnitt eine größere Latenz haben als PCI-Lösungen.
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben