[PD] Array indexing for the wind and the birds

Roman Haefeli reduzierer at yahoo.de
Tue Oct 23 20:28:22 CEST 2007

On Tue, 2007-10-23 at 14:37 +0200, Jeff Rose wrote:
> Whoah, great!  Thanks a lot for the tips Frank and Jamie.  footils.org 
> looks like a treasure trove of interesting stuff to learn from.  I think 
> with this info I can put together the wind and birds patch.
> I'd kind of like to dig a little more into the dynamic patch question 
> though.  It seems like a pretty fundamental design decision or 
> constraint to not handle dynamic creation and deletion of objects within 
> the synthesis engine.  Is this just not an easy thing to do in a visual 
> programming environment, or are there architectural reasons?  In NetPD, 
> which is incredibly fun, there are number of things you can do 
> dynamically, like load instruments and effects, generate new rhythm 
> sequences etc.  I thought this seemed like a pretty nice way to do 
> things, although I haven't looked into it yet to see if it requires some 
> special extensions or something.  Anyways, it would be great to hear 
> what experienced people have to say about dynamicity in PD.

dynamic patching in pd is done by sending messages to canvasses
(patches, subpatches or abstractions). you don't need any externals for
dynamic patching. 

though netpd uses dynamic patching a lot, it is actually not _that_ much
recommended in pd. as frank pointed out, it seems that it is not
officially supported by miller, which is probably also the reason, why
it is not documented in the pd-docu (but i think it is documented in
'pd-msg' tutorial, that should be included in pd-extended). the main
problem with dynamic patching is, that it is very likely, that it causes
audio drop-outs. especially when creating ~-objects, the dsp graph needs
to be recompiled, which requires some cpu power. another issue with
dynamic patching is, that it is much easier to create objects, but it is
not that easy to delete them again. if you want to connect and
disconnect objects dynamically, then it is most probably going to be
very painstaking. pd-objects don't have a unique identifier, but they
are just counted by their creation order. when a certain objects is
removed, all subsequently created objects change their address. because
of this, most (all?) dynamic netpd-patches just do create abstractions
into empty canvasses and most of the time they are just removed by
sending a 'clear' message to the canvas in order to workaround all
issues, that are introduced by dynamically connect and disconnect
objects. this introduces unfortunately further implications. for
instance, when you want to send an audio signal to a dynamically created
abstraction and receive the resulting signal, the signal is delayed by
one block, because, regarding the second [send~]/[receive~]  pair, the
[receive~] is created first. this is the case in mx, if you use aux-fx,
since these are dynamically created. 
to sum it up: dynamic patching in pd is certainly doable, but has its



Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de

More information about the Pd-list mailing list