Hi,
I wanted to add my two cents to a topic that was already raised by Ray
Bellis, the fact that there is no fine-grained disconnect function
provided by the AudioNode interface.
I have been working with a few others on a similar kind of project, a
visual synthesizer project with modular routing. I realize that
supporting such web apps is maybe not the main goal of this API, but I
would argue that this kind of modular system is a good testbed for
evaluating how well different nodes work together and assessing
overall performance.
I find myself at the point where I need to write a wrapper class to
provide the missing disconnect function, by calling the disconnect()
function and then iterating through everything that should have stayed
connected and calling connect() for each one.
The interface as it stands does not feel symmetric. There are connect
functions to connect to specific audio inputs and specific
AudioParams, but there are no similarly specific disconnect functions
to match them - there is only a method that behaves more like
disconnectAll(). This makes it very hard to implement "undo"
operations, and doesn't work well with the flexible fan out / fan in
approach taken by the API.
On a more positive note, I've been impressed with the amount which
could be accomplished in Chrome Beta even within some of the
limitations of the API, so keep up the good work guys!
Matt Grounds