hi,
since Orm's [pd permute] cycles with a period of 6 (out of 5! == 120), I have just patched a correct(?) one as an evening refresher, trying to make it a bit more generic too...
This one is clumsy! But is there much simpler way?
Or is this yet another case of my blindness?
Krzysztof
#N canvas 312 133 651 568 12; #N canvas 0 0 430 335 init 0; #X obj 94 131 until; #X obj 94 174 int; #X obj 139 174 - 1; #X obj 94 213 t 0 0 0; #X obj 94 54 inlet; #X obj 94 260 tabwrite $0-t; #X obj 286 131 + 2; #X msg 255 245 ; $1-t resize $2; #X obj 255 213 pack; #X obj 255 174 int $0; #X obj 94 89 t 0 0 b 0; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 3 0 5 0; #X connect 3 1 5 1; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 6 0 8 1; #X connect 8 0 7 0; #X connect 9 0 8 0; #X connect 10 0 0 0; #X connect 10 1 1 1; #X connect 10 2 9 0; #X connect 10 3 6 0; #X restore 29 102 pd init; #X obj 497 173 print please; #X msg 497 138 restart...; #N canvas 0 0 481 600 find-first 0; #X obj 124 116 until; #X obj 124 156 int; #X obj 173 156 - 1; #X obj 182 224 - 1; #X obj 153 399 >; #X obj 153 437 sel 1; #X obj 99 15 inlet; #X obj 153 547 outlet; #X obj 182 257 t 0 0; #X obj 124 192 t 0 0 0; #X obj 153 507 int; #X obj 228 547 outlet; #X obj 182 323 t 0 0; #X obj 228 507 int; #X obj 307 547 outlet; #X obj 307 195 spigot; #X obj 153 470 t b b b b; #X obj 99 48 t b 0 0 b; #X msg 307 162 1; #X msg 356 162 0; #X obj 199 48 r $0-find-first-stop; #X obj 256 470 s $0-find-first-stop; #X obj 182 290 tabread $0-t; #X obj 153 363 tabread $0-t; #X obj 124 83 - 1; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 2 0 1 1; #X connect 3 0 8 0; #X connect 4 0 5 0; #X connect 5 0 16 0; #X connect 6 0 17 0; #X connect 8 0 22 0; #X connect 8 1 13 1; #X connect 9 0 2 0; #X connect 9 1 23 0; #X connect 9 2 3 0; #X connect 10 0 7 0; #X connect 12 0 4 1; #X connect 12 1 10 1; #X connect 13 0 11 0; #X connect 15 0 14 0; #X connect 16 0 10 0; #X connect 16 1 13 0; #X connect 16 2 21 0; #X connect 16 3 19 0; #X connect 17 0 15 0; #X connect 17 1 24 0; #X connect 17 2 1 1; #X connect 17 3 18 0; #X connect 18 0 15 1; #X connect 19 0 15 1; #X connect 20 0 0 1; #X connect 22 0 12 0; #X connect 23 0 4 0; #X connect 24 0 0 0; #X restore 179 248 pd find-first; #N canvas 0 0 514 503 find-last 0; #X obj 127 97 until; #X obj 127 137 int; #X obj 176 137 - 1; #X obj 156 291 >; #X obj 156 329 sel 1; #X obj 98 25 inlet; #X obj 156 439 outlet; #X obj 156 399 int; #X obj 310 439 outlet; #X obj 310 176 spigot; #X obj 98 58 t b 0 0 b; #X msg 310 143 1; #X msg 359 143 0; #X obj 198 58 r $0-find-last-stop; #X obj 267 362 s $0-find-last-stop; #X obj 177 25 inlet; #X obj 127 173 t 0 0 0; #X obj 156 250 t 0 0; #X obj 236 399 int; #X obj 236 439 outlet; #X obj 156 362 t b b b b; #X obj 156 214 tabread $0-t; #X connect 0 0 1 0; #X connect 1 0 16 0; #X connect 2 0 1 1; #X connect 3 0 4 0; #X connect 4 0 20 0; #X connect 5 0 10 0; #X connect 7 0 6 0; #X connect 9 0 8 0; #X connect 10 0 9 0; #X connect 10 1 0 0; #X connect 10 2 1 1; #X connect 10 3 11 0; #X connect 11 0 9 1; #X connect 12 0 9 1; #X connect 13 0 0 1; #X connect 15 0 3 1; #X connect 16 0 2 0; #X connect 16 1 21 0; #X connect 16 2 18 1; #X connect 17 0 3 0; #X connect 17 1 7 1; #X connect 18 0 19 0; #X connect 20 0 7 0; #X connect 20 1 18 0; #X connect 20 2 14 0; #X connect 20 3 12 0; #X connect 21 0 17 0; #X restore 229 361 pd find-last; #N canvas 0 0 445 202 switch 0; #X obj 78 38 inlet; #X obj 159 38 inlet; #X obj 236 38 inlet; #X obj 316 38 inlet; #X obj 78 131 tabwrite $0-t; #X obj 236 130 tabwrite $0-t; #X connect 0 0 4 0; #X connect 1 0 5 1; #X connect 2 0 5 0; #X connect 3 0 4 1; #X restore 204 398 pd switch; #X obj 29 30 table $0-t; #N canvas 326 10 459 541 reorder 0; #X obj 138 29 inlet; #X obj 176 148 until; #X obj 74 148 int; #X obj 178 105 unpack; #X obj 289 148 int; #X obj 340 148 - 1; #X obj 30 148 + 1; #X obj 176 181 t b b; #X obj 180 263 sel 1; #X obj 289 181 t 0 0 0; #X obj 74 181 t 0 0 0; #X obj 81 353 int; #X obj 296 353 int; #X obj 296 398 tabread $0-t; #X obj 180 230 >; #X obj 138 65 t l l; #X msg 138 105 $2; #X obj 81 398 tabread $0-t; #X obj 297 470 tabwrite $0-t; #X obj 81 470 tabwrite $0-t; #X obj 220 303 t b b b b; #X obj 81 437 int; #X obj 297 437 int; #X connect 0 0 15 0; #X connect 1 0 7 0; #X connect 2 0 10 0; #X connect 3 0 2 1; #X connect 3 1 4 1; #X connect 4 0 9 0; #X connect 5 0 4 1; #X connect 6 0 2 1; #X connect 7 0 2 0; #X connect 7 1 4 0; #X connect 8 0 1 1; #X connect 8 1 20 0; #X connect 9 0 14 1; #X connect 9 1 12 1; #X connect 9 2 5 0; #X connect 10 0 14 0; #X connect 10 1 11 1; #X connect 10 2 6 0; #X connect 11 0 17 0; #X connect 11 0 19 1; #X connect 12 0 13 0; #X connect 12 0 18 1; #X connect 13 0 21 1; #X connect 14 0 8 0; #X connect 15 0 16 0; #X connect 15 1 3 0; #X connect 16 0 1 0; #X connect 17 0 22 1; #X connect 20 0 21 0; #X connect 20 1 22 0; #X connect 20 2 11 0; #X connect 20 3 12 0; #X connect 21 0 19 0; #X connect 22 0 18 0; #X restore 125 500 pd reorder; #X obj 125 398 + 1; #X obj 125 361 int; #X obj 179 286 t b 0 b 0; #X obj 191 102 s $0-init; #X obj 29 65 r $0-init; #X obj 179 138 r $0-next; #X obj 433 248 s $0-next; #X obj 179 210 int; #X obj 201 173 r $0-init; #X obj 229 323 int; #X obj 433 323 int; #X obj 455 286 r $0-init; #N canvas 0 0 362 361 report 0; #X obj 80 34 inlet; #X obj 80 118 until; #X obj 80 161 int; #X obj 126 161 + 1; #X obj 80 199 t 0 0; #X obj 80 244 tabread $0-t; #X obj 80 76 t 0 b b; #X msg 138 118 1; #X obj 80 290 outlet; #X obj 211 290 outlet; #X obj 211 244 int; #X obj 256 244 + 1; #X obj 233 34 inlet; #X msg 233 208 1; #X connect 0 0 6 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 3 0 2 1; #X connect 4 0 5 0; #X connect 4 1 3 0; #X connect 5 0 8 0; #X connect 6 0 1 0; #X connect 6 1 7 0; #X connect 6 2 10 0; #X connect 7 0 2 1; #X connect 10 0 11 0; #X connect 10 0 9 0; #X connect 11 0 10 1; #X connect 12 0 13 0; #X connect 13 0 10 1; #X restore 433 361 pd report; #X obj 336 138 until; #X obj 433 210 t b b; #X obj 433 432 print :; #X obj 291 286 s $0-end; #X obj 497 65 r $0-end; #X obj 497 102 t b b; #X msg 433 65 bang; #X obj 156 432 r $0-init; #X obj 125 467 pack; #X obj 336 102 t b 0; #X msg 336 65 5; #X obj 509 398 print permno; #X msg 382 65 8; #X msg 239 30 5; #X msg 288 30 8; #X msg 191 30 3; #X msg 288 65 3; #X connect 2 0 1 0; #X connect 3 0 10 0; #X connect 3 1 5 1; #X connect 3 1 9 1; #X connect 3 2 24 0; #X connect 4 0 5 2; #X connect 4 1 5 3; #X connect 8 0 29 0; #X connect 9 0 8 0; #X connect 10 0 9 0; #X connect 10 1 5 0; #X connect 10 2 17 0; #X connect 10 3 4 1; #X connect 12 0 0 0; #X connect 13 0 15 0; #X connect 15 0 3 0; #X connect 16 0 15 1; #X connect 16 0 17 1; #X connect 17 0 4 0; #X connect 18 0 20 0; #X connect 19 0 18 1; #X connect 19 0 20 1; #X connect 20 0 23 0; #X connect 20 1 32 0; #X connect 21 0 22 0; #X connect 22 0 14 0; #X connect 22 1 18 0; #X connect 25 0 26 0; #X connect 26 0 2 0; #X connect 26 1 21 1; #X connect 27 0 22 0; #X connect 28 0 29 1; #X connect 29 0 7 0; #X connect 30 0 21 0; #X connect 30 1 11 0; #X connect 31 0 30 0; #X connect 33 0 30 0; #X connect 34 0 11 0; #X connect 35 0 11 0; #X connect 36 0 11 0; #X connect 37 0 30 0;