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)