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

Tim Blechmann tim at klingt.org
Sat Apr 17 15:48:30 CEST 2010

> I've actually wondered this for a while: Why is it that send~ and
> receive~ objects require special treatment instead of being treated
> the same as any other edge in the graph? I understand that in the
> current implementation using s~ / r~ pairs is the only way to create a
> graph with cycles (or fake the effect of one, anyways), but it doesn't
> seem obvious to me that that is the only valid way to go about it.
>  If they were just "invisible wires" then cycles would require other
> treatment, obviously, but it seems like cycles could be "broken" and
> turned into leaf nodes in the graph automatically, or by requiring the
> user to put a 1-block delay in explicitly, instead of letting the
> s~/r~ pair do double-duty and add the possibility for ambiguity as
> described above.

if send~/receive~ pairs were `invisible' wires, they would turn up as true 
dependencies in the ugen (tilde object) graph. you would need to make sure, 
that they don't introduce cycles, which is possible, but you would need to 
decide, where to break cycles:

|r~ a|
|s~ b|

|r~ b|
|s~ c|

|r~ c|
|s~ a|

where do you introduce the delay? in bus a, b, or c? this gets even 
trickier, if you want to set the bus dynamically.


tim at klingt.org

Linux is like a wigwam: no windows, no gates, apache inside, stable.

More information about the Pd-list mailing list