Web Audio para visualizar e interactuar con formas de onda

¿Cómo escribo un programa de JavaScript para mostrar una forma de onda de un archivo de audio? Quiero usar Web Audio y Canvas.

Intenté este código:

(new window.AudioContext).decodeAudioData(audioFile, function (data) {
   var channel = data.getChannelData(0);
   for (var i = 0; i < channel; i++) {
       canvas.getContext('2d').fillRect(i, 1, 40 - channel[i], 40);
   }
});

Pero el resultado está lejos de lo que quiero (es decir, la imagen no es uniforme ya que estoy dibujando con rectángulos). Quiero que se vea suave como esta imagen:

¿Alguna sugerencia sobre cómo implementar la forma de onda?

Respuestas a la pregunta(8)

Su respuesta a la pregunta