Math Music
HTML
<p id="progress">-1</p>
<button id="playBtn">Play</button>
<button id="pauseBtn">Pause</button>
JavaScript
// Based on http://wonderfl.net/c/pP26
window.AudioContext = window.webkitAudioContext;
var context = new AudioContext();
var node = context.createJavaScriptNode(4096, 1, 1);
var p = -1;
// Audio callback event to fill buffer
node.onaudioprocess = function (e) {
var data = e.outputBuffer.getChannelData(0);
var t, tt, val;
for (var i = 0; i < data.length; i++, p++) {
t = p * 8 / 22;
tt = t * ((t >> 12 | t >> 8) & 63 & t >> 4);
//tt = (t * (t >> 8 * (t >> 15 | t >> 8) & (20 | (t >> 19) * 5 >> t | t >> 3)));
//tt = ((-t & 4095) * (255 & t * (t & t >> 13)) >> 13) + (127 & t * (234 & t >> 8 & t >> 3) >> ( 3 & t >> 14));
data[i] = (tt & 0xFF) / 0xFF;
}
progress.textContent = p;
};
function play() {
node.connect(context.destination);
}
function pause() {
node.disconnect();
}
var playBtn = document.getElementById('playBtn');
var pauseBtn = document.getElementById('pauseBtn');
var progress = document.getElementById('progress');
playBtn.onclick = play;
pauseBtn.onclick = pause;