PCM Web Audio API Javascript - Ich bekomme verzerrte Sounds

8

Ich empfange eine verschachtelte 16-Bit-PCM-Samples über den Draht. Jede Probe ist signiert

Ich lese es als Int16bit Array, lasst uns ALL_DATA nennen. So ist jeder der Array-Einträge ein 16-Bit-Sample.

Weil es verschachtelt ist, extrahiere ich es in 2 Kanäle R-L-R-L Ich am Ende mit 2 (16 Bit) Arrays die halbe Größe von ALL_DATA Array.

Danach gehe ich über jedes Sample und normalisiere es auf Float32Array, weil das was ist Web Audio API verwendet.

var normalisiertes Beispiel = (Beispiel & gt; 0)? Beispiel / 32768: Beispiel / -32768;

Ist das der richtige Weg?

Ich bekomme verzerrte Sounds. Sie können sehen, was vor sich geht. Wenn man also klassische Gitarre hört, klingt es wie elektrisch mit Verzerrung.

Für Argumente wähle ich den Beispielcode aber diesen Code handhabt

MONO SOUND, um das Beispiel zu vereinfachen, damit wir es nicht verschachteln müssen

%Vor%

Irgendwelche Vorschläge, die den verzerrten Klang verursachen könnten, helfen. Ich habe die PCM-Daten geschrieben, bevor ich es auf der Serverseite an eine Datei sende, ist gut und Sound ist perfekt.

    
Evren Bingøl 04.06.2013, 19:26
quelle

1 Antwort

17

Anstatt zu sagen

%Vor%

probiere

aus %Vor%

Ihre Berechnung, wie sie derzeit geschrieben wird, invertiert die negativen Teile Ihrer Wellenform, ähnlich wie bei einem Vollwellengleichrichter (Ihre Samples sind immer positive Zahlen) .

    
Robert Harvey 04.06.2013, 19:32
quelle