Audiopuffer/Latenzproblem

  • Hi,


    wie in diesem Thread (http://www.audacity-forum.de/thread/1555
    ) schon ausgiebig diskutiert, hab ich mir, trotz der skepsis einiger user, ein USB Mic zugelegt (t.bone SC450 USB)
    Auch wenn ich noch nicht richtig dazu gekommen bin was zu recorden konnte ich dennoch schon kleinere Tests machen, denke das die qualität wohl ausreichen sollte. (näheres folgt dann vll noch wenn ich mich damit mehr auseinander setzen konnte)


    Das soll auch eigentlich gar nicht das Thema sein, sondern eher das Latenzproblem das sich nun mit dem neuen Mic ergab.
    Ich benutzte die Version 1.3.2 und hatte bei den Latenz Einstellungen alles auf Default (Audiopuffer 100 millisek., Latzenz Korrektur 0 millisek.)


    Die Latenz ist nun doch sehr stark aufgefallen und so hab ich erstmal den Puffer höher gestellt, der Erfolg war jedoch das gegenteil, und so musste ich lernen das je niedriger der Puffer ist desto geringer die Latenz ^^


    Jedoch kommt es bereits bei einem Puffer von 40 millisek. zum hacken der instrumental spur beim aufnehmen.
    Zur zeit benutze ich einen Audiopuffer von 50 millisek. bei einer Latenz Korrektur von 0 millisek., und es ist wenn überhaupt noch eine minimalste latenz wahrzunehmen. (hab zum Testen mit meinem Keyboard die snare mit geklopft, und naja es liegt schon ziemlich genau auf der snare vom instrumental, leichte differenzen könnten ja auch an meinen eigenen reflexen liegen ^^)



    Was mich nun beschäftigt ist eigentlich die Funktionsweiße des Puffers (wieso hab ich bei einem geringeren puffer weniger latenz?) , welche weiteren nachteile sind bei einer geringen puffer einstellung zu erwarten ? ist es dann vll besser mit der Latenzkorrektur zu arbeiten ?
    Was ist den aller wahrscheinlichkeit schuld an der Latenz ? ist der A/D wandler des USB Mics zu langsam ? oder liegt es nun daran das der PC mit quasi 2 Soundkarten arbeiten muss? ist diese Latenz Problematik eine Sache mit der Audacity ganz speziell zu kämpfen hat und gibt es programme wo man vll drauf umsteigen sollte ? (würd ich nur sehr ungern machen, komme mit Audacity eigentlich bisher am besten zurecht)


    Naja wenn mir jemand bei der ein oder anderen sache helfen könnte währe ich sehr dankbar, schonma danke im voraus ^^


    gruß ehmjay ^^

  • Die Latenz kommt zustande, weil das Signal, das in die externe USB-Soundkarte geht, solange aufgezeichnet wird, bis der Puffer voll ist. Dann wird der Puffer von Audacity gespeichert und wieder ausgegeben. Das dauert eine kurze Zeit.


    Der einzige Nachteil des Puffer ist, dass Du die Pufferzeit warten musst, wenn Du auf Play bzw. Record drückst, bis etwas abgespielt bzw. aufgenommen wird. Da sollten aber 100 ms absolut ok sein. Der Nachteil von zu geringen Pufferwerten ist, wie Du schon bemerkt hast, dass beim Aufnehmen Stottern usw. auftreten.


    Ich empfehle, einfach die Latenzkorrektur auf den Wert zu stellen, der für Dein System benötigt wird.

  • aber müsste sich dann die latenz bei einem kleinen puffer nicht vergrößern , da es dann ja zu häufigeren abspeicher vorgängen kommt.
    dann wär das ganze doch eher ein software problem da AC das aufgenomme dann nicht synchron zusammen setzt, oder wie kann man sich die arbeit des puffers vorstellen ?

  • Naja, den Puffer muss man sich vorstellen, wie ein Eimer, der unter einem Wasserhahn steht. Du drehst den Wasserhahn auf (Du startest die Aufnahme) und das Wasser (die Audiodaten) läuft in den Eimer. Wenn der Eimer (Puffer) voll ist, schüttest Du das Wasser in eine große Wanne (speicherst den Puffer auf die Festplatte).


    Je größer der Eimer ist, desto länger musst Du natürlich warten, bis das erste Wasser in der großen Wanne landet. Die Zeit zwischen dem ersten Tropfen im Eimer und dem ersten Tropfen in der Wanne ist die Latenzzeit.


    Audacity (bzw. Audacitys Soundausgabebibliothek PortAudio) versucht, diese Latenzzeit automatisch zu korrigieren. Das klappt manchmal besser und manchmal schlechter. Bei unterschiedlichen Aus- und Eingabegeräten funktioniert es offensichtlich momentan nicht so gut. (Da Audacity Open-Source-Software ist, ist jeder anwesende Programmierer natürlich eingeladen, sich den Quelltext anzuschauen und zur Verbesserung beizutragen...)


    Um Benutzern, für die die Automatik nicht so gut funktioniert, trotzdem eine Möglichkeit zu geben, manuell was zu ändern, gibt es jetzt die Möglichkeit der Latenzkorrektur. Die macht im wesentlichen das, was Audacity-Benutzer früher von Hand machen mussten, nämlich die (nicht synchrone Spur) um einen vorher eingegebenen, festen Betrag so weit zu verschieben, dass sie synchron ist. Dazu muss man nur einmal den Wert ermitteln, um den es nicht stimmt und den eingeben.

  • hehe ^^ nette analogie mit dem wassereimer ^^ was ein puffer ist ,war mir im grunde schon klar , war halt nur daran interessiert warum es gerade ein höherer puffer die problematik steigert, aber scheint ja an der automatischen latenzkorrektur zu liegen.
    Nach nem bisschen Testen kann ich sagen das es bei einem Puffer von 50 msek. eigentlich keine größeren probleme gibt, weder mit latenz noch mit dem stottern werden der ausgabe, bleib ich wohl erstmal dabei, ohne zur latenzkorrektur zu greifen.
    Wie gesagt ging auch eher weniger darum das problem aus der welt zu schaffen, als einfach die technik/arbeitsweiße dahinter zu verstehen, um so vll besser drauf eingehen zu können.
    Naja Quellcode angucken wär da sicher ne feine sache, zumal ich was programmieren angeht nicht ganz unvorbelastet bin ^^ leider keine zeit um mich mit so einem umfangreichen projekt zu befassen, wär jedoch sicher ne ganz nette sache um so programmieren mit audio technik zu kombinieren ^^


    naja vielen dank erstmal für die erklärungen ^^

  • Quote from Markus:1168197553

    Die macht im wesentlichen das, was Audacity-Benutzer früher von Hand machen mussten


    Was meinst Du den mit "frueher"? Ich bin vor ein paar Tagen von 1.2.x auf 1.3.2-cvs umgestiegen und musste (neben vielen Verbesserungen) leider feststellen, dass bei der Wiedergabe der Cursor deutlich vom Sound abweicht. Liegt das an einem neuen Pufferhandling, oder haengt es mit ALSA zusammen?

  • Ich habe bei den Einstellungen zwischen OSS und ALSA/Default umgeschaltet und konnte keinen Unterschied feststellen. Mit dem Puffer habe ich aber noch nicht experimentiert.

  • Ich habe mal mit der Latenzeinstellung experimentiert, konnte jedoch keinen Einfluss erkennen: Der Ton hinkt der Cursorposition stets merklich hinterher. Dieses Verhalten konnte ich mit der 1.2.x bei gleicher Hardware nicht beobachten.