It doesn't make sense to call it the source, because depending on whether it's the thing being outputted to, or the thing being inputted to, it could be the destination, so just call it `audio-node`.

Also, 
A. this is a base class, so you don't need to have this variable set (really, it would be better to have an empty method that you could override in subclasses, like this `audio-node: ->`

B. This line causes an infinite loop, because you've named the Node itself `AudioNode` which means when you construct an AudioNode, it constructs an AudioNode, which constructs an AudioNode, which constructs an AudioNode... etc. (Perhaps call the Node that we are defining just `Audio`)?