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

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>
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.
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 !