life done. alas, 'tis jank.

This commit is contained in:
Nico 2021-08-28 22:29:46 +01:00
parent 54bab5afdd
commit 7954c94c22
2 changed files with 173 additions and 108 deletions

271
life.pd
View File

@ -1,23 +1,12 @@
#N canvas 244 135 1412 831 12;
#X obj 94 77 grid;
#X obj 94 102 route 1;
#X msg 18 57 connect;
#N canvas 2 570 450 250 (subpatch) 0;
#X array life0 128 float 2;
#X coords 0 1 128 -1 200 140 1;
#X restore 579 90 graph;
#X obj 94 127 unpack f f;
#X obj 94 170 +;
#X obj 161 150 * 16;
#X obj 94 45 r grid;
#N canvas 649 102 516 443 12;
#N canvas 179 251 1659 799 life 0;
#X obj 119 475 grid;
#X obj 119 500 route 1;
#X obj 119 525 unpack f f;
#X obj 119 568 +;
#X obj 186 548 * 16;
#X obj 119 443 r grid;
#X obj 481 269 s grid;
#N canvas 0 50 450 250 (subpatch) 0;
#X array life1 128 float 2;
#X coords 0 1 128 -1 200 140 1;
#X restore 781 90 graph;
#X text 370 7 this could all be optimised \, but I went for a "simple"
solution \, and I'm bad at patching. TODO optimise drawing \, implement
sample triggers;
#N canvas 245 185 798 675 life-frame 0;
#N canvas 1293 59 508 798 neighbors 0;
#X obj 11 30 inlet;
@ -166,7 +155,7 @@ of triggers that cells are on this generation;
#X connect 33 0 34 1;
#X connect 34 0 35 0;
#X restore 333 467 pd life-frame;
#X text 39 22 grid I/O;
#X text 66 424 grid I/O;
#X obj 333 429 metro 200;
#X obj 333 401 r playing;
#X obj 393 129 t b b, f 13;
@ -175,23 +164,16 @@ of triggers that cells are on this generation;
#X text 325 379 run life;
#X obj 393 179 * 8;
#X msg 389 208 lset 15 7 \$1;
#X obj 274 330 vsl 15 128 50 400 0 0 empty empty speed 0 -9 0 10 -261682
-1 -1 0 1;
#X obj 717 463 loadbang;
#X msg 784 514 \; life0 const 0 \; triggers const 0;
#X obj 717 488 t b b, f 10;
#X obj 717 538 s page;
#X obj 808 473 bng 15 250 50 0 empty empty reset 17 7 0 10 -262144
-1 -1;
#X obj 94 221 v page;
#X obj 119 619 v page;
#X text 704 439 on init \, reset all \, and we're on the life page
(page 0);
#X msg 717 513 0;
#X floatatom 274 466 5 0 0 0 - - -;
#X text 157 9 pages: 0 - life \, 1 - triggers;
#X obj 94 246 pack f f;
#X obj 94 195 t b f, f 8;
#X text 156 246 packs to page \, index;
#X text 372 54 pages: 0 - life \, 1 - triggers;
#X obj 119 644 pack f f;
#X obj 119 593 t b f, f 8;
#X text 181 644 packs to page \, index;
#N canvas 331 178 651 566 life-page 0;
#X obj 370 95 tabread life0;
#X obj 370 155 tabwrite life0;
@ -282,7 +264,7 @@ of triggers that cells are on this generation;
#X connect 18 2 20 0;
#X connect 18 3 14 0;
#X connect 20 0 19 0;
#X restore 94 324 pd life-page;
#X restore 119 722 pd life-page;
#X obj 393 104 r draw-life;
#N canvas 1011 59 881 1026 plot-life 0;
#X obj 21 356 t f b;
@ -417,7 +399,7 @@ the row of the item;
#X connect 58 0 57 1;
#X connect 61 0 34 0;
#X restore 481 153 pd plot-life;
#X obj 94 271 route 0 1;
#X obj 119 669 route 0 1;
#N canvas 1092 401 784 561 trigger-page 0;
#X obj 14 9 inlet;
#X text 54 16 bottom row keys;
@ -441,10 +423,13 @@ key in the triggers \, and reflect that on the grid;
#X obj 237 205 * 2;
#X obj 237 230 - 1;
#X obj 14 34 route 126 127, f 29;
#X obj 89 349 sampler-abstraction;
#X obj 88 320 - 1;
#X obj 96 413 sampler-abstraction;
#X obj 89 290 - 1;
#X obj 214 177 t f f f;
#X obj 89 374 dac~;
#X obj 96 438 dac~;
#X obj 128 348 != -1;
#X obj 89 315 t f f, f 6;
#X obj 89 380 spigot;
#X connect 0 0 20 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
@ -467,82 +452,162 @@ key in the triggers \, and reflect that on the grid;
#X connect 20 2 8 0;
#X connect 21 0 24 0;
#X connect 21 0 24 1;
#X connect 22 0 21 0;
#X connect 22 0 26 0;
#X connect 23 0 22 0;
#X connect 23 1 18 0;
#X connect 23 2 7 0;
#X restore 124 301 pd trigger-page;
#N canvas 2 745 450 250 (subpatch) 0;
#X array triggers 128 float 3;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 16 128 0 200 140 1 0 0;
#X restore 783 252 graph;
#X obj 333 616 dac~;
#X obj 1009 95 table b0;
#X obj 1009 117 table b1;
#X obj 1009 139 table b2;
#X obj 1009 161 table b3;
#X obj 1009 183 table b4;
#X obj 1009 205 table b5;
#X obj 1009 227 table b6;
#X obj 1009 249 table b7;
#X connect 25 0 27 1;
#X connect 26 0 27 0;
#X connect 26 1 25 0;
#X connect 27 0 21 0;
#X restore 149 699 pd trigger-page;
#X obj 335 712 dac~;
#X obj 1135 512 openpanel;
#X obj 1135 492 bng 15 250 50 0 empty empty load 17 7 0 10 -262144
-1 -1;
#X floatatom 1207 488 5 0 7 1 sample - -;
#X obj 1154 566 pack s s;
#X msg 1154 595 read -resize \$1 \$2;
#X obj 1207 512 makefilename b%d;
#X obj 1154 620 soundfiler;
#X obj 333 492 - 1;
#X obj 333 572 clone sampler-abstraction 8;
#X obj 333 517 t f f;
#X obj 333 542 pack f f;
#X obj 335 668 clone sampler-abstraction 8;
#X obj 335 613 t f f;
#X obj 335 638 pack f f;
#X text 1132 461 load samples;
#X obj 152 5 bng 15 250 50 0 empty empty reset 17 7 0 10 -262144 -1
-1;
#X obj 152 25 s \$0-reset;
#X obj 807 468 r \$0-reset;
#X obj 1135 489 r \$0-load;
#X obj 47 279 bng 15 250 50 0 empty empty load 17 7 0 10 -4034 -1 -1
;
#X obj 48 326 s \$0-load;
#X floatatom 7 276 5 0 7 2 sample - -;
#X obj 7 300 s \$0-sample-num;
#X obj 1207 489 r \$0-sample-num;
#X obj 467 391 r \$0-speed;
#X obj 199 145 vsl 15 128 50 400 0 0 empty empty rate 0 -9 0 10 -204786
-1 -1 7700 1;
#X floatatom 199 281 5 0 0 0 - - -;
#X obj 199 305 s \$0-speed;
#X text 367 6 this could all be optimised \, but I went for a "simple"
solution \, and I'm bad at patching.;
#X msg 90 107 connect;
#X obj 8 69 bng 15 250 50 0 empty empty connect 17 7 0 10 -4034 -1
-1;
#X text 6 47 grid I/O;
#X obj 90 132 s grid;
#X obj 8 87 bng 15 250 50 0 empty empty disconnect 17 7 0 10 -258113
-1 -1;
#X text 3 4 cellular samples;
#X obj 717 488 t b b, f 10;
#X msg 784 524 \; life0 const 0 \; triggers const 0 \; b0 const 0 \;
b1 const 0 \; b2 const 0 \; b3 const 0 \; b4 const 0 \; b5 const 0
\; b6 const 0 \; b7 const 0;
#X obj 333 517 t f f;
#X obj 365 548 != -1;
#X obj 333 572 spigot;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b0 8545 float 2;
#X coords 0 1 8545 -1 100 20 1 0 0;
#X restore 244 20 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b1 6048 float 2;
#X coords 0 1 6048 -1 100 20 1 0 0;
#X restore 243 55 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b2 6644 float 2;
#X coords 0 1 6644 -1 100 20 1 0 0;
#X restore 243 91 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b4 10869 float 2;
#X coords 0 1 10869 -1 100 20 1 0 0;
#X restore 243 161 graph;
#N canvas 1468 59 450 250 (subpatch) 0;
#X array b5 100 float 3;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 100 -1 100 20 1 0 0;
#X restore 243 196 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b6 100 float 3;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 100 -1 100 20 1 0 0;
#X restore 243 230 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b7 100 float 3;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 100 -1 100 20 1 0 0;
#X restore 243 265 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array b3 6048 float 2;
#X coords 0 1 6048 -1 100 20 1 0 0;
#X restore 243 126 graph;
#X msg 8 107 disconnect;
#X obj 615 69 table life0 128;
#X obj 615 92 table life1 128;
#X obj 615 115 table triggers 128;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 4 0 5 0;
#X connect 4 1 6 0;
#X connect 5 0 33 0;
#X connect 6 0 5 1;
#X connect 7 0 0 0;
#X connect 11 0 57 0;
#X connect 13 0 11 0;
#X connect 14 0 13 0;
#X connect 15 0 17 0;
#X connect 15 1 37 0;
#X connect 17 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 8 0;
#X connect 21 0 13 1;
#X connect 21 0 30 0;
#X connect 22 0 24 0;
#X connect 24 0 29 0;
#X connect 24 1 23 0;
#X connect 26 0 24 0;
#X connect 27 0 32 0;
#X connect 29 0 25 0;
#X connect 32 0 38 0;
#X connect 33 0 27 0;
#X connect 33 1 32 1;
#X connect 36 0 15 0;
#X connect 37 0 8 0;
#X connect 38 0 35 0;
#X connect 38 1 39 0;
#X connect 50 0 53 0;
#X connect 51 0 50 0;
#X connect 52 0 55 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 24 0;
#X connect 4 0 3 1;
#X connect 5 0 0 0;
#X connect 7 0 37 0;
#X connect 9 0 7 0;
#X connect 10 0 9 0;
#X connect 11 0 13 0;
#X connect 11 1 28 0;
#X connect 13 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 6 0;
#X connect 17 0 62 0;
#X connect 19 0 23 0;
#X connect 21 0 18 0;
#X connect 23 0 29 0;
#X connect 24 0 19 0;
#X connect 24 1 23 1;
#X connect 27 0 11 0;
#X connect 28 0 6 0;
#X connect 29 0 26 0;
#X connect 29 1 30 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 34 0 36 0;
#X connect 35 0 33 1;
#X connect 37 0 64 0;
#X connect 38 0 31 0;
#X connect 38 0 31 1;
#X connect 39 0 40 0;
#X connect 39 1 40 1;
#X connect 40 0 38 0;
#X connect 42 0 43 0;
#X connect 44 0 62 0;
#X connect 45 0 32 0;
#X connect 46 0 47 0;
#X connect 46 0 48 0;
#X connect 48 0 49 0;
#X connect 50 0 35 0;
#X connect 51 0 9 1;
#X connect 52 0 53 0;
#X connect 53 0 54 0;
#X connect 54 0 56 0;
#X connect 55 0 53 1;
#X connect 57 0 59 0;
#X connect 58 0 41 0;
#X connect 58 0 41 1;
#X connect 59 0 60 0;
#X connect 59 1 60 1;
#X connect 60 0 58 0;
#X connect 56 0 59 0;
#X connect 57 0 56 0;
#X connect 60 0 75 0;
#X connect 62 0 21 0;
#X connect 62 1 63 0;
#X connect 64 0 66 0;
#X connect 64 1 65 0;
#X connect 65 0 66 1;
#X connect 66 0 39 0;
#X connect 75 0 59 0;
#X coords 0 -1 1 1 350 300 2 0 0;
#X restore 79 51 pd life;
#X coords 0 0 1 1 85 60 0;

View File

@ -1,12 +1,12 @@
#N canvas 614 500 450 300 12;
#X obj 75 108 tabplay~ b0;
#X obj 75 49 makefilename b%d;
#X msg 75 74 set \$1 \, bang;
#X obj 73 20 inlet;
#X obj 75 20 inlet;
#X obj 76 166 outlet~;
#X obj 75 133 *~ 0.125;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X obj 75 108 tabplay~;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 2 0 0 0;
#X connect 3 0 1 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;