Por ahora las teclas son Z, X, C, V.. etc... Codigo fuente:
(function() {
var audio = new window.webkitAudioContext();
var oscillators = {};
function createOscillator(freq) {
var osc = audio.createOscillator();
osc.frequency.value = freq;
osc.type = "square";
osc.connect(audio.destination);
return osc;
};
var frequency = function(notenum) {
return 293.66 * Math.pow(2, notenum/12);
};
var keyCodeToNote = {90: 'C', 88: 'D', 67: 'E', 86: 'F', 66: 'G', 78: 'A', 77: 'B'};
var noteToNum = {C: 0, D: 2, E: 4, F: 5, G: 7, A: 9, B: 11};
document.getElementById("pianito").onkeydown = function(e) {
var osc = oscillators[e.keyCode];
if (osc) return;
var note = keyCodeToNote[e.keyCode];
if (note == undefined) return;
var noteNum = noteToNum[note];
var freq = frequency(noteNum);
var osc = createOscillator(freq);
oscillators[e.keyCode] = osc;
osc.start(0);
};
document.getElementById("pianito").onkeyup = function(e) {
var osc = oscillators[e.keyCode];
if (!osc) return;
osc.stop(0);
osc.disconnect(audio.destination);
oscillators[e.keyCode] = undefined;
};
})();
Bastante rudimentario, pero es algo para empezar