[PD] Zen Garden re-implementing the wheel in C++?
tim at klingt.org
Sat Apr 17 16:06:19 CEST 2010
> Giving up extensible generality and moving
> from a linear structure to finite but
> 'big enough' adjacency matrix always
> seemed the way to go.
it is not really a problem of the graph representation, but it is about what
i call `implicit dependency'. in order to traverse a graph, you can traverse
it manually or create a topologically sorted list (which is faster and
easier). in any case, this leads to a total order between all unit
generators. if you change the layout of the graph, the order between
objects, accessing the bus has to stay the same, to keep the access order.
otherwise one sample block may be lost, or played twice.
> I'm not speaking for Martin on ZenGarden
> though, I'm not sure what his current
> ideas are, or even if its still active.
> How did topoloical sorting of a list
> work out in Nova Tim?
sorting the list is not the problem. the problem is to keep the semantics.
this is not only a problem when changing the signal graph, but also when
trying to parallelize the audio synthesis. the programming model of max-like
languages turned out to be contra-productive and i abandoned nova, in order
to write supernova, which replaces the supercollider server. since the
programming model of supercollider doesn't have the notion of implicit
dependencies (it was designed as system for dynamically changing synthesis
graphs), the this problem doesn't exist, which also makes it way easier to
write a scalable multi-processor aware audio synthesis engine.
well, my master thesis will cover these issues in more detail, will need a
few more months to finish it, though
tim at klingt.org
Only very good and very bad programmers use goto in C
More information about the Pd-list