diff --git a/life.pd b/life.pd index c5fe900..a21bbd8 100644 --- a/life.pd +++ b/life.pd @@ -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; diff --git a/sampler-abstraction.pd b/sampler-abstraction.pd index 80785b2..3b266df 100644 --- a/sampler-abstraction.pd +++ b/sampler-abstraction.pd @@ -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;