MMLEmitter is a MML(Music Macro Language) event sequencer based on Web Audio API.
function noteEventHandler(e) {
var osc = audioContext.createOscillator();
var amp = audioContext.createGain();
var playbackTime = e.playbackTime;
osc.frequency.value = e.frequency;
osc.type = this.wave || "triangle";
amp.gain.setValueAtTime(0.25 * (e.volume / 16), playbackTime);
amp.gain.linearRampToValueAtTime(0.00, playbackTime + e.duration);
osc.start(playbackTime);
osc.connect(amp);
amp.connect(audioContext.destination);
e.noteOff(function() {
amp.disconnect();
});
}