https://live.codecircle.com/d/6wjD4cSt3sqJqiH2Q
var contexte_audio = window.AudioContext || window.webkitAudioContext;
// correspondances touche/note
var notes = {
a: 261.63, // C4
z: 293.66, // D4
e: 329.63, // E4
r: 349.23, // F4
t: 392.00, // G4
y: 440.00, // A4
u: 493.88, // B4
q: 523.25, // C5
s: 587.33, // D5
d: 659.25, // E5
f: 698.46, // F5
g: 783.99, // G5
h: 880.00, // A5
j: 987.77, // B5
};
var contexte = new contexte_audio();
var oscillateur = contexte.createOscillator();
oscillateur.connect( contexte.destination );
oscillateur.start();
// on écoute les mouvement souris dans la fenêtre
document.body.addEventListener('mousemove', changer_frequence_oscillateur, false);
function changer_frequence_oscillateur( frequence ) {
/* change la fréquence de l'oscillateur en fonction de la position de la souris dans la fenêtre (verticalement) */
oscillateur.frequency.value = frequence;
}
document.addEventListener( 'keyup', function ( evenement ) {
// on récupère la touche qui a été relâchée
var touche = evenement.key;
// on essaye de changer de note sur la base de la touche
try {
changer_frequence_oscillateur( notes[ touche ] );
} catch (e) {}
}, false);
liens:
* [conversion note/fréquence](http://www.phy.mtu.edu/~suits/notefreqs.html) * [sketch](https://live.codecircle.com/d/uYk2SLcT77YJFL7Xu)