#N canvas 0 31 682 622 10; #X msg 167 312 bang; #X floatatom 133 407 5 0 0 0 - - -; #X obj 125 478 tabread \$0-rand; #X obj 125 456 t a a; #X obj 125 311 until; #X obj 125 503 + 0.001; #X obj 125 527 tabwrite \$0-rand; #X msg 251 247 bang; #X obj 251 273 list-random 10 10; #X msg 125 285 1000; #X msg 168 336 seed 12123; #X floatatom 204 406 5 0 0 1 length - -; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-rand 10 float 0; #X coords 0 1 9 0 200 140 1; #X restore 310 409 graph; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-dist 10 float 0; #X coords 0 1 9 0 200 140 1; #X restore 310 409 graph; #X obj 251 336 t a a; #X msg 317 304 3 8 0 2 3 5 1 4 7 2; #X msg 259 304 1 0 0 1; #N canvas 0 0 450 300 write-to-tables 0; #X obj 227 103 list-len; #X obj 308 180 s \$0-rand; #X obj 115 103 list prepend 0; #X obj 115 128 s \$0-dist; #X obj 93 256 s \$0-dist; #X msg 308 158 resize \$1 \, const 0; #X msg 93 155 normalize 1; #X msg 227 159 resize \$1; #X obj 93 55 t b a a; #X obj 93 33 inlet; #X connect 0 0 7 0; #X connect 0 0 5 0; #X connect 2 0 3 0; #X connect 5 0 1 0; #X connect 6 0 4 0; #X connect 7 0 4 0; #X connect 8 0 6 0; #X connect 8 1 2 0; #X connect 8 2 0 0; #X connect 9 0 8 0; #X restore 281 363 pd write-to-tables; #X text 79 20 [list-wrandom]; #X msg 464 304 10 20 70; #X msg 164 286 100; #X text 113 44 Use a list as a probability table for weighted random numbers.; #X obj 125 379 list-wrandom; #X text 112 87 Inlets; #X text 132 142 1: list of random weights. The weigths are used as probabilities for their positions (zero-based); #X text 111 179 Outlets:; #X text 127 199 0: random number; #X text 127 214 1: size of probability table (for convenience); #X text 131 109 0: connected to [random] internally. "bang" to make random choice \, "seed X" to seed; #N canvas 262 240 530 406 markov-example 0; #X text 32 19 Simple markov chain; #X obj 77 208 list-wrandom; #X obj 170 208 list-wrandom; #X obj 263 208 list-wrandom; #X obj 77 172 select 0 1 2; #X obj 77 150 f; #X obj 93 127 r \$0-state; #X obj 77 279 s \$0-state; #X obj 170 279 s \$0-state; #X obj 263 277 s \$0-state; #X obj 163 328 hradio 32 1 0 3 empty \$0-state state 0 -8 1 10 -262144 -1 -1 0; #X obj 239 98 loadbang; #X obj 77 97 bng 24 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X floatatom 91 242 5 0 0 0 - - -; #X obj 91 259 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X floatatom 185 240 5 0 0 0 - - -; #X obj 185 257 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X floatatom 277 239 5 0 0 0 - - -; #X obj 277 256 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 37 74 metro 200; #X obj 37 55 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X msg 239 125 s0 10 20 70 \, s1 80 10 10 \, s2 50 25 25; #X obj 239 159 route s0 s1 s2; #X connect 1 0 7 0; #X connect 1 0 13 0; #X connect 2 0 8 0; #X connect 2 0 15 0; #X connect 3 0 9 0; #X connect 3 0 17 0; #X connect 4 0 1 0; #X connect 4 1 2 0; #X connect 4 2 3 0; #X connect 5 0 4 0; #X connect 6 0 5 1; #X connect 11 0 21 0; #X connect 12 0 5 0; #X connect 13 0 14 0; #X connect 15 0 16 0; #X connect 17 0 18 0; #X connect 19 0 5 0; #X connect 20 0 19 0; #X connect 21 0 22 0; #X connect 22 0 1 1; #X connect 22 1 2 1; #X connect 22 2 3 1; #X restore 125 563 pd markov-example; #N canvas 520 99 494 396 META 0; #X text 12 5 KEYWORDS control list_op; #X text 12 25 LICENSE SIBSD; #X text 12 155 AUTHOR Frank Barknecht; #X text 12 175 HELP_PATCH_AUTHORS Frank Barknecht. "pd meta" information added by Jonathan Wilkes for Pd version 0.42.; #X text 12 45 DESCRIPTION use a list as a probability table for weighted random numbers; #X text 12 75 INLET_0 bang seed; #X text 12 95 INLET_1 list; #X text 12 115 OUTLET_0 float; #X text 12 135 OUTLET_1 float; #X restore 622 568 pd META; #X connect 0 0 22 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 1 6 1; #X connect 4 0 22 0; #X connect 5 0 6 0; #X connect 7 0 8 0; #X connect 8 0 14 0; #X connect 9 0 4 0; #X connect 10 0 22 0; #X connect 14 0 22 1; #X connect 14 1 17 0; #X connect 15 0 14 0; #X connect 16 0 14 0; #X connect 19 0 14 0; #X connect 20 0 4 0; #X connect 22 0 1 0; #X connect 22 0 3 0; #X connect 22 1 11 0;