Web Audio para visualizar e interagir com formas de onda

Como eu escrevo um programa JavaScript para exibir uma forma de onda de um arquivo de áudio? Quero usar o Web Audio e o Canvas.

Tentei 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);
   }
});

Mas o resultado está longe do que eu quero (ou seja, a imagem não é suave, pois estou desenhando com retângulos). Quero que pareça suave como esta imagem:

lguma dica sobre como implementar a forma de ond

questionAnswers(8)

yourAnswerToTheQuestion