[PD] Question about loadbang and dynamic sub-patches

Ivica Ico Bukvic ico at vt.edu
Sat Feb 18 05:38:26 CET 2017


On 2/17/2017 4:41 AM, zmoelnig at iem.at wrote:

> On 02/17/2017 02:25 AM, Ivica Ico Bukvic wrote:
>> FWIW in pd-l2ork/purr-data loadbang fires even in dynamically created
>> patches.
> so does that mean, that if i have an abstraction "foo":
>
> [loadbang]
> |
> [f 1]
> |
> [outlet]
>
> and i dynamically create a patch including that abstraction, the
> loadbang will be lost on the created patch?
> (meaning: the following will not print:
>   #X obj 100 100 foo;
>   #X obj 100 200 print;
>   #X connect 0 0 1 0;
> )

If you had a print inside the abstraction it would print. If you 
dynamically create objects, chances are you will first dynamically 
create the abstraction which can initialize itself using a loadbang, 
then the print, then the connection. In this respect its behavior is 
synonymous to, for example [f 42] which initializes itself to 42 but 
does not output anything until asked to do so. This way initialization 
of individual abstractions is handled gracefully, whereas the example 
you are suggesting would require manual interaction regardless whether 
you are using an abstraction foo or an [f 42]. In other words, 
pd-l2ork/purr-data's loadbang implementation allows for parity between 
built-in objects and abstractions. This feature is used extensively 
inside pd-l2ork's k12 mode.

As a side-note, pd-l2ork also has an internal pre-loadbang call that is 
reserved for dealing with presets and occurs before the loadbang. This 
way you can gracefully handle multiple instances of the same abstraction 
(as is the case inside K12) and store their states through a single 
preset_hub object located on the parent canvas.

Best,

Ico



> if it does print, i would be interested in the heuristic you used.
>
> if it does indeed not print, then i think i just hit a bug (as the patch
> behaves different when created dynamically or not¹)
>
> gfmsrda
> IOhannes
>
> ¹ it doesnt't in Pd vanilla, if you don't forget to send a "loadbang"
> message after doing the dynamic patching as a kind of "finalize".
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20170217/d59ba1fe/attachment.html>


More information about the Pd-list mailing list