Bonjour � tous.
Pour un site personnel, je cherche � coder un accordeur en ligne, avec la web audio API.
Mon probl�me principal consiste � trouver la fr�quence d'un son. J'ai pour cela utilis� un objet AudioAnalyser qui doit analyser le son que je r�cup�re du microphone, et la m�thode getByteFrequencyData() pour trouver la fr�quence du son.
Petit probl�me, cette fonction me met les fr�quences dans un tableau de bytes, d'une taille de 1024, et je n'arrive pas � bien comprendre ce que sont tous ces num�ros.
Je vous met mon code est le lien pour pouvoir tester ce qu'il existe pour l'instant (ne marche pour l'instant qu'avec firefox, mais �a c'est facilement changeable !).
http://www.guitar-side.com/testJs/accordeur_test.php
Voila, je ne sais pas si parmi vous il y a des habitu�s de cet API, ou des personnes qui aimeraient voir ses fonctionnalit�s.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <script> // Globals var aCtx; var analyser; var microphone; navigator.getUserMedia = ( navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); if (navigator.getUserMedia) { navigator.getUserMedia({audio: true}, function(stream) { window.audioContext = window.audioContext || window.webkitAudioContext; aCtx = new AudioContext(); analyser = aCtx.createAnalyser(); microphone = aCtx.createMediaStreamSource(stream); microphone.connect(analyser); analyser.minDecibels = -90; process(); }, function(err) { console.log("Une erreur est survenue: " +err); }); } else { console.log('ça marche pas'); } function process(){ //boucle pour la récupération des fréquences en temps réel setInterval(function(){ FFTData = new Uint8Array(analyser.frequencyBinCount); analyser.getByteFrequencyData(FFTData); var freq = document.getElementById("frequency"); freq.innerHTML = ''; for(var i=0; i<FFTData.length; i++){ freq.innerHTML = freq.innerHTML + ' ' + FFTData[i]; } },100); } </script> <div id="frequency"> </div>
Pour dire vrai, je me demande si utiliser un analyser est une bonne id�e, ou si je devrais pas plut�t utiliser un objet BiquandFilterNode ou il y a aussi des possibilit� de jouer avec les fr�quences.
Enfin voil�, toutes les suggestions sont les bienvenues !
Partager