I think it's definitely possible to implement a high-performing beat detector/predictor in JS using the Web Audio API. I also believe it hasn't been done yet. If I'm wrong on either, let me know.
As for software that does this already, I've been playing around with Wavetick by Wavesum http://wavesum.net/products.html#wavetick to generate a MIDI stream from audio from the microphone, and it works really well. I think this is a good target to set for whatever JS algorithm we implement.
There are also a collection of Vamp Plugins that are open-source and do beat-detection stuff, but I haven't been able to verify how well they work or how easy they would be to port.
I am also currently investigating the possibility of real-time beat detection in web audio.
I'll just link this issue here, as it might be relevant:
https://github.com/monstercat/bpm.js/issues/1
I think it's definitely possible to implement a high-performing beat detector/predictor in JS using the Web Audio API. I also believe it hasn't been done yet. If I'm wrong on either, let me know.
The best resources I can find on this are a Master's Thesis from 2004 by @robharper: https://github.com/robharper/beat-detect and this extremely recent BeatPort article by @itsjoesullivan: http://tech.beatport.com/2014/web-audio/beat-detection-using-web-audio/
As for software that does this already, I've been playing around with Wavetick by Wavesum http://wavesum.net/products.html#wavetick to generate a MIDI stream from audio from the microphone, and it works really well. I think this is a good target to set for whatever JS algorithm we implement.
There are also a collection of Vamp Plugins that are open-source and do beat-detection stuff, but I haven't been able to verify how well they work or how easy they would be to port.