[PD] abstraction [list-unique-random]

Frank Barknecht fbar at footils.org
Tue Mar 16 16:01:37 CET 2010


Hallo,
Jack hat gesagt: // Jack wrote:

> I just make this abstraction : [list-unique-random] to get a list with
> random numbers (integers).
> I didn't see it in the list-abs or in sfruit (am i wrong ?).
> 
> You can determine :
> - the range of the random number with an argument or dynamically.
> - the size wanted of you list with a message.
> 
> Maybe, this is not an optimized abstraction, so people can modify it.
> Frank, if you want, you can modify it (my english is not very good) and
> add it to list-abs.

Thanks a lot for it, Jack. I guess, an object like this would be good to have
in list-abs.  I've used the functionality in the past, but never bothered with
an abstraction. I have used my urne.pd then, which is in the "purepd" section
on Sourceforge and a clone of Max'/Cyclone's [urn] (but not zexy's [urn]!). It
seems to deal a bit better with huge numbers like building a list of 1000
unique numbers without stack overflows. It's attached.

Ciao
-- 
Frank
-------------- next part --------------
#N canvas 260 152 601 696 10;
#X obj 218 581 tabread \$0-urn;
#X obj 148 531 tabwrite \$0-urn;
#X obj 218 460 t a a;
#X obj 148 390 - 1;
#X obj 97 254 select 0;
#X obj 148 503 tabread \$0-urn;
#X obj 359 335 outlet;
#X obj 218 609 outlet;
#X obj 286 23 inlet;
#X obj 97 26 inlet;
#X obj 286 77 f \$1;
#X obj 297 47 loadbang;
#X obj 191 74 b;
#X obj 218 437 random;
#N canvas 689 538 264 239 count-down 0;
#X obj 59 66 inlet;
#X obj 127 60 inlet;
#X obj 59 159 outlet;
#X text 123 37 count from?;
#X text 54 35 trigger;
#X obj 59 96 bang;
#X obj 85 131 - 1;
#X obj 59 131 f;
#X connect 0 0 5 0;
#X connect 1 0 7 1;
#X connect 5 0 7 0;
#X connect 6 0 7 1;
#X connect 7 0 6 0;
#X connect 7 0 2 0;
#X restore 97 221 pd count-down;
#X text 355 361 bang if urn empty;
#X text 193 631 urn selection;
#X msg 218 343 seed \$1;
#X obj 218 147 f;
#X obj 345 143 table \$0-urn \$1;
#X obj 148 362 t a b;
#X obj 97 49 route bang seed clear;
#N canvas 549 246 251 276 gate_2 0;
#X obj 68 18 inlet;
#X obj 84 65 inlet;
#X obj 68 212 outlet;
#X obj 100 191 outlet;
#X obj 68 92 f 0;
#X obj 68 118 select 0 1;
#X obj 68 41 b;
#X connect 0 0 6 0;
#X connect 1 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 5 1 3 0;
#X connect 6 0 4 0;
#X restore 97 178 pd gate_2;
#N canvas 0 0 450 300 init-urn-table 0;
#N canvas 0 0 450 300 count 0;
#X obj 158 193 + 1;
#X obj 122 158 until;
#X obj 122 194 f;
#X obj 122 101 inlet;
#X msg 167 157 0;
#X obj 122 120 t a b;
#X obj 122 224 outlet;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 5 0;
#X connect 4 0 2 1;
#X connect 5 0 1 0;
#X connect 5 1 4 0;
#X restore 117 197 pd count;
#X obj 117 218 t a a;
#X obj 117 249 tabwrite \$0-urn;
#X obj 147 173 s \$0-urn;
#X msg 147 148 resize \$1;
#X obj 117 82 t a a;
#X obj 117 49 inlet;
#X obj 147 128 change;
#X obj 147 105 int;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 4 0 3 0;
#X connect 5 0 0 0;
#X connect 5 1 8 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 8 0 7 0;
#X restore 344 121 pd init-urn-table;
#X obj 286 97 t b a a a;
#X obj 97 278 t b b;
#X msg 155 153 0;
#X msg 170 176 1;
#X connect 0 0 7 0;
#X connect 2 0 0 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 3 0 13 1;
#X connect 4 0 25 0;
#X connect 4 1 20 0;
#X connect 5 0 1 0;
#X connect 8 0 10 0;
#X connect 9 0 21 0;
#X connect 10 0 24 0;
#X connect 11 0 10 0;
#X connect 12 0 10 0;
#X connect 13 0 2 0;
#X connect 14 0 4 0;
#X connect 17 0 13 0;
#X connect 18 0 17 0;
#X connect 20 0 3 0;
#X connect 20 1 13 0;
#X connect 21 0 22 0;
#X connect 21 1 18 0;
#X connect 21 2 12 0;
#X connect 22 0 14 0;
#X connect 22 1 6 0;
#X connect 24 0 26 0;
#X connect 24 1 14 1;
#X connect 24 2 13 1;
#X connect 24 3 23 0;
#X connect 25 0 6 0;
#X connect 25 1 27 0;
#X connect 26 0 22 1;
#X connect 27 0 22 1;
-------------- next part --------------
#N canvas 620 328 485 281 10;
#X obj 115 106 until;
#X obj 211 150 t l;
#X obj 115 129 urne 1000;
#X obj 90 236 print;
#X obj 115 83 max;
#X msg 90 30 1000;
#X obj 90 55 t b f f b;
#X obj 90 204 list;
#X obj 115 151 list append;
#X connect 0 0 2 0;
#X connect 1 0 8 1;
#X connect 2 0 8 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 4 0;
#X connect 6 2 2 1;
#X connect 6 3 8 1;
#X connect 7 0 3 0;
#X connect 8 0 1 0;
#X connect 8 0 7 1;


More information about the Pd-list mailing list