[…] Nous avons parlé d'échantillonner la courbe de fréquence. Ça se produit à un certain taux (
taux d'échantillonage) que vous pouvez trouver via l'attribut
sampleRate du contexte audio. il est bon de garder ça en tête quand vous réfléchissez à la résolution des fréquences.
var sampleRate = audioContext.sampleRate;
Supposons que le taux d'échantillonnage de votre fichier est 48 000, ce qui fait que la fréquence maximum dans le fichier est de 24 000 Hz (grâce à un merveilleux
théorème du Dr Harry Nyquist, la fréquence maximum dans un fichier est toujours égale à la moitié du taux d'échantillonnage). Le tableau d'analyse que nous sommes en train de créer contiendra des fréquences jusqu'à ce point. C'est idéal sachant que l'oreille humaine
capte dans l'intervalle 0 - 20 000 Hz.
Donc, si nous créons un tableau à 2 400 éléments, chaque fréquence enregistrée sera éloignée de 10 Hz. Cependant, nous allons créer un tableau de la moitié de la taille du FFT (
Fast Fourier Transform), ce qui fait dans ce cas 2 048 qui est la valeur par défaut. Vous pouvez définir ceci via la propriété
fftSize.
1 2 3 4
| // on définit la taille de notre FFT
analyzer.fftSize = 2048;
// on crée un tableau vide à 1 024 éléments
var frequencyData = new Uint8Array(1024); |
Ainsi, avec un tableau à 1 024 éléments, et une bande de fréquences de 24 000 Hz, nous savons que chaque élément est éloigné de 24 000 ÷ 1 024 = 23,44 Hz.
Partager