35
edits
Line 63: | Line 63: | ||
<pre> | <pre> | ||
<!DOCTYPE | <!DOCTYPE html> | ||
<html> | <html> | ||
<head> | <head> | ||
Line 69: | Line 69: | ||
</head> | </head> | ||
<body> | <body> | ||
<audio src="corban1.ogg" controls="true" onaudiowritten="audioWritten(event);" style="width: 512px;"></audio> | |||
<div><canvas id="fft" width="512" height="200"></canvas></div> | |||
<script> | <script> | ||
var spectrum; | |||
var signal; | |||
var canvas = document.getElementById('fft'); | |||
var ctx = canvas.getContext('2d'); | |||
var | |||
function audioWritten(event) { | |||
signal = event.mozFrameBuffer; | |||
spectrum = event.mozSpectrum; | |||
var magnitude | var specSize = spectrum.length, magnitude; | ||
// Clear the canvas before drawing spectrum | |||
ctx.clearRect(0,0, canvas.width, canvas.height); | |||
for ( var i = 0; i < specSize; i++ ) { | |||
magnitude = spectrum.item(i) * 4000; // multiply spectrum by a zoom value | |||
// Draw rectangle bars for each frequency bin | |||
ctx.fillRect(i * 4, canvas.height, 3, -magnitude); | |||
} | } | ||
} | } | ||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> |
edits