This is a very minimal example of how to programmatically create sounds using the new Web Audio APIs.
There are a bunch of examples on the Chromium site, but they are rather more complex than you want in a hello world.
var ctx = createAudioContext();
if (!ctx) {
document.write(
'<p>Web Audio APIs</a> don\'t appear to be ' +
'supported in your browser.</p>');
} else {
document.write(
'<button onclick="playTone()">Play Tone</button>');
}
function playTone() {
var offset = 0;
var node = ctx.createJavaScriptNode(1024, 0, 1);
node.onaudioprocess = function(e) {
var buffer = e.outputBuffer;
var left = buffer.getChannelData(0);
var right = buffer.getChannelData(1);
for (var i = 0; i < left.length; i++) {
left[i] = right[i] = Math.sin(2000 * Math.PI * offset++ / 44100);
}
};
node.connect(ctx.destination);
setTimeout(function() { node.disconnect(); }, 1000);
}
function createAudioContext() {
if ('AudioContext' in window) {
return new AudioContext();
} else if ('webkitAudioContext' in window) {
return new webkitAudioContext();
} else {
return null;
}
}