1.12 Mouse controlled synth1.16 Modulation with an oscillator

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)