2017-02-03 2 views
2

Comment OfflineAudioContext.startRendering() peut-il sortir un AudioBuffer qui contient la résolution de mon choix (16 bits ou 24 bits)? Je sais que je peux définir la fréquence d'échantillonnage de la sortie facilement avec AudioContext.sampleRate, mais comment puis-je définir la profondeur de bits?Comment rendre dans une profondeur de bit spécifique?

Ma compréhension du traitement audio est assez limitée, alors peut-être que ce n'est pas aussi simple que je le pense.

Edit # 1:

En fait, AudioContext.sampleRate est en lecture seule, donc si vous avez une idée sur la façon de régler le taux d'échantillonnage de la sortie, ce serait génial aussi.

Edit # 2:

Je suppose que le taux d'échantillonnage est inséré après le nombre de canaux dans le WAV encodée (dans le DataView)

Répondre

1

Vous ne pouvez pas le faire directement parce que WebAudio ne fonctionne avec des valeurs à virgule flottante. Vous devrez le faire vous-même. Fondamentalement, prendre la sortie du contexte hors ligne et multiplier chaque échantillon par 32768 (16 bits) ou 8388608 (24 bits) et arrondir à un entier. Cela suppose que la sortie du contexte se situe entre -1 et 1. Sinon, vous devrez effectuer une mise à l'échelle supplémentaire. Et enfin, vous pourriez vouloir diviser le résultat final par 32768 (8388608) pour récupérer les nombres à virgule flottante. Cela dépend de l'application finale.

+0

Ok ok merci. Donc je multiplie chaque valeur de 'audioBuffer.getChannelData (0 | 1)' par 32768 ou 8388608 et c'est tout, mon dernier fichier .wav aura la profondeur de bit correspondante? Et je ne suis pas sûr d'avoir compris pourquoi je dois diviser le résultat final avec 32768 ou 8388608 ... Est-ce que je ne vais pas juste récupérer les valeurs initiales? – maximedupre

+0

Tout d'abord, lorsque vous créez OfflineAudioContext, vous devez spécifier la fréquence d'échantillonnage. –

+0

Actuellement, WebAudio ne permet pas de créer un fichier WAV à partir d'un AudioBuffer. Vous devrez trouver une bibliothèque pour le faire pour vous. (Ou apprendre à le faire vous-même.Les fichiers WAV sont assez simples.) –