[PD] [instance] and dynamic object creation

Frank Barknecht fbar at footils.org
Mon Feb 1 14:21:03 CET 2010


Hallo,
Marco Donnarumma hat gesagt: // Marco Donnarumma wrote:

> Thanks Frank, I was already trying to send a loadbang, but the first
> [instance] has the right id (1), then the following [instance] has id = 3,
> the next 6 and so on. Besides also other instances of [instance] with
> different arguments are affected the same way while sending a loadbang to
> the parent patch.

Yeah, that's because you loadbang all [instance] objects everytime. I think,
for non-standard Pd versions you may be able to use [initbang] inside of
[instance], but actually I would probably use a totally different approach not
involving [instance] at all: When you create objects dynamically, you already
*know* what has been created. So if you want to keep track of object IDs, just
add a counter and pass them as an argument.

Attached is an example containing a subpatch I use very often.

Ciao
-- 
Frank
-------------- next part --------------
#N canvas 0 0 604 435 10;
#X msg 165 79 5;
#X msg 274 103 clear;
#N canvas 0 0 450 300 \$0-yyy 1;
#X restore 255 141 pd \$0-yyy;
#X obj 165 142 s pd-\$0-yyy;
#N canvas 493 43 621 522 builder-idx 0;
#X obj 156 42 inlet;
#X obj 52 38 inlet;
#X text 48 18 how many;
#N canvas 0 0 450 300 countto 0;
#X obj 99 58 inlet;
#X obj 99 177 f 0;
#X obj 127 177 + 1;
#X msg 142 143 0;
#X obj 99 208 outlet;
#X obj 99 142 until;
#X obj 99 117 t a b;
#X obj 99 96 max;
#X connect 0 0 7 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 1 1;
#X connect 5 0 1 0;
#X connect 6 0 5 0;
#X connect 6 1 3 0;
#X connect 7 0 6 0;
#X restore 52 84 pd countto;
#X obj 52 226 list append;
#X obj 52 264 list prepend obj 20;
#X obj 52 288 list trim;
#X obj 52 354 outlet;
#X msg 228 266 clear;
#X obj 52 57 t a b;
#X obj 52 135 * 20;
#X obj 52 160 + 20;
#X obj 52 106 t a a;
#X obj 156 71 list split 1;
#X obj 52 194 pack 0 s 0;
#X text 152 6 objects with arguments. First argument will become second
\, new second arg will be the index number;
#X connect 0 0 13 0;
#X connect 1 0 9 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 8 0 7 0;
#X connect 9 0 3 0;
#X connect 9 1 8 0;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 10 0;
#X connect 12 1 14 2;
#X connect 13 0 14 1;
#X connect 13 1 4 1;
#X connect 14 0 4 0;
#X restore 165 106 pd builder-idx;
#X obj 165 37 t b b;
#X msg 165 15 bang;
#X msg 260 73 route;
#N canvas 0 0 450 300 connector 0;
#N canvas 0 0 450 300 countto 0;
#X obj 99 58 inlet;
#X obj 99 177 f 0;
#X obj 127 177 + 1;
#X msg 142 143 0;
#X obj 99 208 outlet;
#X obj 99 142 until;
#X obj 99 117 t a b;
#X obj 99 96 max;
#X connect 0 0 7 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 1 1;
#X connect 5 0 1 0;
#X connect 6 0 5 0;
#X connect 6 1 3 0;
#X connect 7 0 6 0;
#X restore 120 124 pd countto;
#X obj 120 240 outlet;
#X obj 120 150 list;
#X obj 120 179 list split 2;
#X obj 120 38 inlet;
#X obj 120 67 t f b;
#X msg 120 208 connect \$2 0 \$1 0;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 2 1;
#X connect 3 0 6 0;
#X connect 3 2 2 1;
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 5 1 2 1;
#X connect 6 0 1 0;
#X restore 274 294 pd connector;
#X msg 274 264 5;
#X text 343 219 connect x first in/outlets;
#X text 279 223 Bonus:;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X connect 4 0 3 0;
#X connect 5 0 0 0;
#X connect 5 1 7 0;
#X connect 6 0 5 0;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;


More information about the Pd-list mailing list