[PD] dsp graph question

Charles Henry czhenry at gmail.com
Fri Mar 2 00:13:57 CET 2012


On Thu, Mar 1, 2012 at 2:02 PM, Jonathan Wilkes <jancsika at yahoo.com> wrote:
> Not sure if this makes sense, but here goes:
>
> Can a Pd dsp graph be nested inside a Pd dsp graph?

This occurs whenever you make a sub-canvas.  For each canvas, there is
a new dspcontext struct created.  The canvas->dsp graph process
creates a nested dsp graph, delimited from its parent by block
prolog/epilog (when re-blocked from parent) and inlet/outlet
prolog/epilog code.

It may be possible to think of just any sub-graph as being a nested
dsp graph, for that matter.  But yes, I think it's clear that nested
dsp graphs can be programmed and used.

> If this were the case, then would it be possible created/destroy any of
> these scalars
> at will and only have to rebuild this "nested" dsp graph that is associated
> with it's [struct]?

Not possible yet!  Every time you add/delete a connection (and some
other conditions I'm not sure of), the dsp stops, rebuilds its entire
graph, and re-starts.  Just set ugen_loud to 1 and re-compile--you
will be greeted with a representation of Pd building your dsp graph
every time you make changes to it.

Comments in d_ugen.c have said--for a long time--that this is not a
preferred way of doing things.  It's just the way things are done now.

> I'm obviously still very sketchy on signal graph compilation, so links to
> any documentation or
> resources are appreciated!
>
> -Jonathan

I wouldn't want you to have to learn all the hard lessons about how Pd
does it's internal management of dsp chains and the like, but--if it's
interesting to you and you might want to become a developer, I
recommend reading d_ugen.c, g_canvas.c, g_io.c, and d_resample.c.
It's all in there.

Feel free to ask any other questions.

Chuck



More information about the Pd-list mailing list