Hi, ah, I misunderstood you a bit: I thought, you wanted only a single slot active all the time, never more or less. This won't be able with the simple select-solution I provided. As Matju wrote, you either need an urn (there is one called urne.pd in purepd, or two incompatible ones as externals called [urn] in Cyclone and zexy).
Ciao -- Frank On Tue, Aug 17, 2010 at 06:28:06PM +0200, Frank Barknecht wrote: > Hi João, > > On Tue, Aug 17, 2010 at 04:30:00PM +0100, João de Brito Rocha Reis Vidigal > wrote: > > Here's what I wanna do: > > > > I have 18 slot for audio and video to play. There can be one playing, none > > or even um to the 18. > > These slots are to be triggered randomly. > > Is there a possibility of storing the ID of the slots already triggered? > > Like a list? The thing is that if it is a list it would have to have a > > variable number of floats (wouldn't it?). > > Why do I need this? Because after triggering a random slot ON I want to > > trigger a random slot OFF. So, I have to know what are the slots triggered > > on in order to trigger one of these OFF and not one 18. Otherwise I could > > end up triggering off a slot that was never on! > > As well I need to know witch ones are OFF to randomly select and turn one > > on. > > A brute-force approach to your problem is attached: It uses [select] to > re-trigger the random selection if you get a slot-value that already is off. > If instead you get a usable slot-value, it stores this in a [f] object > by using the cold, right inlet, so it can be switched off later, then > also updates the [select] via its right inlet to watch for the new "ON" > slot. > > There is a small risk to get a lot of the same values from [random] but > this is very, very unlikely. > > You should remember the > > [t f b] > \/ > /\ > [f ] > > idiom to delay the output of a float value by one execution step. It's > often useful, and also the use of [select] to filter out unwanted > values. > > You can also do all this without storing the OFF value by transferring > the logic of switching off or on into your "slot" abstractions. The > c_tgl.pd abstractions shows how to do that. It compares an incoming > slot-number with [== $1] where $1 is the slot-id passed as argument. It > has a global receiver in it to simplify patching a bit. > > Ciao > -- > Frank > #N canvas 84 0 1114 648 10; > #X obj 180 170 select 0; > #X obj 210 141 random 18; > #X floatatom 293 288 5 0 0 0 ON - -; > #X floatatom 231 288 5 0 0 0 OFF - -; > #X floatatom 252 166 5 0 0 0 - - -; > #X obj 293 315 hradio 15 1 0 18 empty empty empty 0 -8 0 10 -262144 > -1 -1 13; > #X obj 294 339 hradio 15 1 0 18 empty empty empty 0 -8 0 10 -262144 > -1 -1 5; > #X msg 210 112 bang; > #X obj 151 215 bng 15 250 50 0 empty empty duplicate 17 7 0 10 -262144 > -1 -1; > #X floatatom 270 112 5 0 0 0 - - -; > #X obj 231 240 f; > #X obj 233 202 t f b f f; > #X obj 783 47 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 47 r 1003-in1-0; > #X obj 783 77 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 77 r 1003-in1-1; > #X obj 783 107 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 107 r 1003-in1-2; > #X obj 783 137 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 137 r 1003-in1-3; > #X obj 783 167 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 167 r 1003-in1-4; > #X obj 783 197 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 197 r 1003-in1-5; > #X obj 783 227 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 227 r 1003-in1-6; > #X obj 783 257 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 257 r 1003-in1-7; > #X obj 783 287 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 287 r 1003-in1-8; > #X obj 783 317 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 317 r 1003-in1-9; > #X obj 783 347 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 347 r 1003-in1-10; > #X obj 783 377 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 377 r 1003-in1-11; > #X obj 783 407 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 407 r 1003-in1-12; > #X obj 783 437 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 1 1; > #X obj 683 437 r 1003-in1-13; > #X obj 783 467 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 467 r 1003-in1-14; > #X obj 783 497 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 497 r 1003-in1-15; > #X obj 783 527 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 527 r 1003-in1-16; > #X obj 783 557 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 683 557 r 1003-in1-17; > #X msg 231 394 0 1003-in1-\$1; > #X msg 340 391 1 1003-in1-\$1; > #X obj 231 429 unpack 0 s; > #X obj 231 455 send; > #X obj 376 107 u_robinpoly 18 c_tgl; > #X obj 888 45 c_tgl 0; > #X obj 888 75 c_tgl 1; > #X obj 888 105 c_tgl 2; > #X obj 888 135 c_tgl 3; > #X obj 888 165 c_tgl 4; > #X obj 888 195 c_tgl 5; > #X obj 888 225 c_tgl 6; > #X obj 888 255 c_tgl 7; > #X obj 888 285 c_tgl 8; > #X obj 888 315 c_tgl 9; > #X obj 888 345 c_tgl 10; > #X obj 888 375 c_tgl 11; > #X obj 888 405 c_tgl 12; > #X obj 888 435 c_tgl 13; > #X obj 888 465 c_tgl 14; > #X obj 888 495 c_tgl 15; > #X obj 888 525 c_tgl 16; > #X obj 888 555 c_tgl 17; > #X obj 363 286 send TOGGLE; > #X text 447 288 in c_tgl!!; > #X connect 0 0 1 0; > #X connect 0 0 8 0; > #X connect 0 1 11 0; > #X connect 1 0 0 0; > #X connect 1 0 4 0; > #X connect 2 0 5 0; > #X connect 2 0 49 0; > #X connect 2 0 71 0; > #X connect 3 0 6 0; > #X connect 3 0 48 0; > #X connect 7 0 1 0; > #X connect 9 0 1 1; > #X connect 10 0 3 0; > #X connect 11 0 10 1; > #X connect 11 1 10 0; > #X connect 11 2 0 1; > #X connect 11 3 2 0; > #X connect 13 0 12 0; > #X connect 15 0 14 0; > #X connect 17 0 16 0; > #X connect 19 0 18 0; > #X connect 21 0 20 0; > #X connect 23 0 22 0; > #X connect 25 0 24 0; > #X connect 27 0 26 0; > #X connect 29 0 28 0; > #X connect 31 0 30 0; > #X connect 33 0 32 0; > #X connect 35 0 34 0; > #X connect 37 0 36 0; > #X connect 39 0 38 0; > #X connect 41 0 40 0; > #X connect 43 0 42 0; > #X connect 45 0 44 0; > #X connect 47 0 46 0; > #X connect 48 0 50 0; > #X connect 49 0 50 0; > #X connect 50 0 51 0; > #X connect 50 1 51 1; > #N canvas 0 0 453 340 10; > #X obj 130 113 tgl 15 0 0 0 empty 17 7 0 10 -262144 -1 -1 0 1; > #X obj 130 45 r TOGGLE; > #X obj 130 72 == \$1; > #X connect 1 0 2 0; > #X connect 2 0 0 0; > #X coords 0 -1 1 1 85 30 1 100 100; > _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list