[PD] Zen Garden re-implementing the wheel in C++?

Tim Blechmann 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 mailing list