Run audio through the Web Audio API instead
This leads to more reliable frequency/timing information, and involves a whole lot less decoding.
We still maintain ongoing encoded frames to avoid having to do one giant encode at the end, as that could take long enough to be disruptive.