Hallo, bin neu im Forum, außerdem bin ich neu in sachen DSP. Erstmal vorweg eine kleine Einleitung um was es geht: Ich Programmiere hauptsächlich JavaScript, PHP, Perl(cgi)… im Prinzip Zeugs was sich im Browser abspielt. Seit dem es die WebAudio API gibt arbeite ich mit der und war von Anfang an begeistert. Jetzt komme ich aber mal absolut nicht weiter, auch in diversen JavaScript Foren wusste keiner weiter. Zur WebAudio API ert mal ein paar Fakten: - Die Sampling-Rate der Web Audio api richtet sich nach der Hardware oder nach den Browserherstellen, langsamer als 44100 Samples wird es aber nicht. - Die API spielt nur float32(werte bis -1,+1), max offizielle Rate ist 96000, Goolge Chrome auch gerne mal bis 192000 - Die createBuffer method der api funzt nicht so richtig bei livestream, der Ton wird irgendwann immer langsamer, das geht so weht das sich der Browser aufhängt. 2tens auf Tablets, IPhone usw. geht keine Samplingrate von 96000. - Jetzt bleibt für die Soundausgabe nur noch der ScriptProcessor. Dazu erst einmal etwas Mathematik: 1/44100(Hz=1/s)=0,000022676s*2048=0,046439909s Pufferdauer. 1/0,046439909s=20,226. Das bedeutet das der onaudioprocess Event rund 20 mal in der Sekunde ausgeführt wird, bei einer Samplingrate von 44100 und einer Größe von 2048 sample Frames. Das wiederum sind 41422,848 Samples in einer Sekunde. 20,226*2048=41422,848. Auf dem Server lasse ich die Soundkarte ebenfalls mit einer Rate von 44100 abtasten und die Auflösung ist auch float32 44100*32bit/4=352800bytes/1024=344.53Kilobytes Wenn ich jetzt warte bis die 344.53Kb beim Client erreicht sind habe ich eine wahnsinnige Latenz. Wie muss ich das jetzt Puffern und wie bekomme ich das hin das der ScriptProcessor den Puffer nicht überholt. Muss ich mir da einen Ringbuffer erstellen oder wie wird das normalerweise gemacht? Mfg xorg1990
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.