Hi, Chrome developer here, gapless playback should work with both WebAudio and Media Source Extensions (MSE). I've fixed bugs in both implementations, so if you have some test cases in Chrome that fail, I'd love to see them. As luck has it, I've recently put an article together on how to use MSE for gapless playback:
http://dalecurtis.github.io/llama-demo/index.html We'll be posting it to HTML5Rocks in the near future. Feel free to contact me if you have any questions. You also note that setTimeout() is not precise enough for your usage; you should take a look at the WebAudio scheduler or using WebWorkers: http://www.html5rocks.com/en/tutorials/audio/scheduling/ https://github.com/chrisguttandin/worker-timers If you only need your project to work in the foreground using requestAnimationFrame is also an option. I'd first try to schedule as much as you can in advance though. - dale