Mathieu Bouchard wrote: >> 1. if you create a patch using your [range] abstraction, then >> connections from the outlets are cut next time you load the patch. this >> because you cannot create outlets dynamically early enough without >> something like an [initbang], that is executed even before [loadbang] > > Actually, I just found a hack. Edit your .pd file with a text editor > in this way: > > 1. replace "loadbang;" by "r \$0-initbang;" > > 2. add a line at the very end that says just "$0-initbang bang;", no > backslash, no "#X obj", no object position. > > This works in all versions of Pd. If you don't understand how this > works, it's normal. Furthermore, to edit this patch, -noloadbang does > not work anymore, so you have to undo step 2 before any edit in pd, > and redo it after any edit in pd.
hey that is a hack! ;-) (a nice one!) but has also an additional drawback: you have to add '$0-initbang bang;' each time you edit the patch in pd, cause pd discards everything it doesn't know about. this is a nice point for a feature request of an internal [initbang]. indeed, you are right... dynamic patching in Pd is still troublesome. anyway it doesn't mean that things are impossible... they just require you much thinking. my example (of range.pd) was just a proof of concept. and also, it's true: if you know how to code externals (example: C, or even Tcl (tclpd) or Python (pyext)) you probably do the same thing by programming rather than by patching it, especially if it's not properly straightforward. Best regards, Federico Ferri _______________________________________________ Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev