Current code assumes that we only want a single audio stream. We should probably relax this assumption.
I actually ended up doing some serious refactoring to make this work.
I'm pretty happy with the shape of the code now. I need to track down a leak again, but I'd quite like to get some review on the stuff I've got so far.
There are also some other misc bugfixes in that branch, and the actual fix for this bug is in the last commit only. There is also a -unsquashed version of the same branch, but it's more difficult to follow.
woop! Leak fixed and appended to this branch. That's got to be my first @inlineCallbacks-related leak. objgraph saves the day again.