This could be a way of doing it in Vanilla using [random] and some features of the [text] object - if I understood correctly what you are tying to do :-)

(in this example the audio sources aren't [readsf~] but just some random 'different enough' sources - in your case you should replace each of the sources with the specific [readsf~] you need to route)

Hope this helps.

Lorenzo

On 05/10/2021 00:08, Simon Iten wrote:



is there a somewhat elegant way to route 8 audio outputs (from readsf~) to 8 dac~ outputs randomly (on a bang for example)?

i.e. out1 to dac4, out2 to dac7 etc.

each output is allowed to one dac~ channel only.

mathematically speaking that would be 8! 8x7x6x5x4x3x2x1 (40320) possibilites, but i don’t see an easy way to program this in puredata.

some way of dynamic patching maybe? or a throw~ and catch~ approach? i get stuck on the random logic, since every “step” that chooses a destinations changes the subsequent outputs that are still allowed to be chosen.







_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

#N canvas 558 116 1285 901 16;
#X obj 986 21 text define urn;
#X msg 888 22 bang;
#X obj 888 56 t b b;
#X msg 983 93 -1;
#X obj 983 134 text delete urn;
#X obj 888 135 until;
#X obj 888 206 change;
#X msg 888 91 9999;
#X obj 888 245 t f f;
#X obj 974 293 text search urn;
#X obj 888 363 spigot;
#X obj 974 327 == -1;
#X obj 888 171 random 8;
#X obj 930 452 text insert urn 1e+09;
#X obj 888 403 t b f;
#X obj 888 493 text size urn;
#X obj 1157 293 sel 8;
#X obj 1155 361 s done_rand;
#X obj 1157 328 del 0.1;
#X obj 45 197 r done_rand;
#X obj 45 305 until;
#X obj 45 230 t b b;
#X obj 87 438 text get urn;
#X msg 45 265 8;
#X obj 45 344 f;
#X obj 98 344 + 1;
#X obj 11 95 *~ 0.1;
#X msg 143 305 0;
#X obj 45 382 t f f;
#X obj 45 480 pack f f;
#X msg 45 639 set s\$1;
#X msg 141 640 set s\$1;
#X obj 45 682 r~;
#X obj 141 683 r~;
#X msg 234 639 set s\$1;
#X msg 330 640 set s\$1;
#X msg 458 639 set s\$1;
#X msg 554 640 set s\$1;
#X msg 647 639 set s\$1;
#X msg 742 640 set s\$1;
#X obj 45 534 route 0 1 2 3 4 5 6 7;
#X obj 10 140 s~ s0;
#X obj 113 55 *~ 0.1;
#X obj 113 13 osc~ 200;
#X obj 112 140 s~ s1;
#X obj 318 49 *~ 0.1;
#X obj 517 94 *~ 0.1;
#X obj 620 53 *~ 0.1;
#X obj 732 53 *~ 0.1;
#X obj 732 12 osc~ 850;
#X obj 206 139 s~ s2;
#X obj 317 139 s~ s3;
#X obj 414 139 s~ s4;
#X obj 516 139 s~ s5;
#X obj 619 137 s~ s6;
#X obj 731 137 s~ s7;
#X obj 296 535 print;
#X obj 44 789 *~;
#X obj 140 789 *~;
#X obj 942 544 r done_rand;
#X obj 848 686 f 0, f 6;
#X obj 848 546 loadbang;
#X obj 234 685 r~;
#X obj 330 685 r~;
#X obj 233 792 *~;
#X obj 329 791 *~;
#X obj 458 684 r~;
#X obj 457 790 *~;
#X obj 554 685 r~;
#X obj 553 791 *~;
#X obj 651 687 r~;
#X obj 650 793 *~;
#X obj 742 687 r~;
#X obj 741 793 *~;
#X obj 11 13 noise~;
#X obj 206 13 phasor~ 800;
#X obj 206 55 *~ 0.08;
#X obj 848 714 lop~ 1;
#X obj 943 590 t b b;
#X msg 943 629 0;
#X obj 999 623 del 50;
#X msg 999 652 1;
#X obj 318 13 osc~ 600;
#X obj 415 13 osc~ 4000;
#X obj 415 54 *~ 0.08;
#X obj 517 13 noise~;
#X obj 1054 587 print ------------;
#X obj 42 842 dac~ 1 2 3 4 5 6 7 8, f 78;
#X obj 620 11 phasor~ 50;
#X obj 517 52 lop~ 400;
#X obj 12 51 hip~ 4000;
#X obj 318 111 *~;
#X obj 343 80 osc~ 1;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 2 1 3 0;
#X connect 3 0 4 0;
#X connect 5 0 12 0;
#X connect 6 0 8 0;
#X connect 7 0 5 0;
#X connect 8 0 10 0;
#X connect 8 1 9 0;
#X connect 9 0 11 0;
#X connect 10 0 14 0;
#X connect 11 0 10 1;
#X connect 12 0 6 0;
#X connect 14 0 15 0;
#X connect 14 1 13 0;
#X connect 15 0 16 0;
#X connect 16 0 5 1;
#X connect 16 0 18 0;
#X connect 18 0 17 0;
#X connect 19 0 21 0;
#X connect 20 0 24 0;
#X connect 21 0 23 0;
#X connect 21 1 27 0;
#X connect 22 0 29 1;
#X connect 23 0 20 0;
#X connect 24 0 25 0;
#X connect 24 0 28 0;
#X connect 25 0 24 1;
#X connect 26 0 41 0;
#X connect 27 0 24 1;
#X connect 28 0 29 0;
#X connect 28 1 22 0;
#X connect 29 0 40 0;
#X connect 29 0 56 0;
#X connect 30 0 32 0;
#X connect 31 0 33 0;
#X connect 32 0 57 0;
#X connect 33 0 58 0;
#X connect 34 0 62 0;
#X connect 35 0 63 0;
#X connect 36 0 66 0;
#X connect 37 0 68 0;
#X connect 38 0 70 0;
#X connect 39 0 72 0;
#X connect 40 0 30 0;
#X connect 40 1 31 0;
#X connect 40 2 34 0;
#X connect 40 3 35 0;
#X connect 40 4 36 0;
#X connect 40 5 37 0;
#X connect 40 6 38 0;
#X connect 40 7 39 0;
#X connect 42 0 44 0;
#X connect 43 0 42 0;
#X connect 45 0 91 0;
#X connect 46 0 53 0;
#X connect 47 0 54 0;
#X connect 48 0 55 0;
#X connect 49 0 48 0;
#X connect 57 0 87 0;
#X connect 58 0 87 1;
#X connect 59 0 78 0;
#X connect 59 0 86 0;
#X connect 60 0 77 0;
#X connect 61 0 60 0;
#X connect 62 0 64 0;
#X connect 63 0 65 0;
#X connect 64 0 87 2;
#X connect 65 0 87 3;
#X connect 66 0 67 0;
#X connect 67 0 87 4;
#X connect 68 0 69 0;
#X connect 69 0 87 5;
#X connect 70 0 71 0;
#X connect 71 0 87 6;
#X connect 72 0 73 0;
#X connect 73 0 87 7;
#X connect 74 0 90 0;
#X connect 75 0 76 0;
#X connect 76 0 50 0;
#X connect 77 0 57 1;
#X connect 77 0 58 1;
#X connect 77 0 64 1;
#X connect 77 0 65 1;
#X connect 77 0 67 1;
#X connect 77 0 69 1;
#X connect 77 0 71 1;
#X connect 77 0 73 1;
#X connect 78 0 79 0;
#X connect 78 1 80 0;
#X connect 79 0 60 0;
#X connect 80 0 81 0;
#X connect 81 0 60 0;
#X connect 82 0 45 0;
#X connect 83 0 84 0;
#X connect 84 0 52 0;
#X connect 85 0 89 0;
#X connect 88 0 47 0;
#X connect 89 0 46 0;
#X connect 90 0 26 0;
#X connect 91 0 51 0;
#X connect 92 0 91 1;
_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to