#N canvas 5 24 1172 702 10; #X obj 367 126 phasor~; #X floatatom 380 106 5 0 0 1 - - -; #X obj 389 163 *~; #X obj 527 466 cos~; #X obj 358 234 +~; #X obj 145 219 +; #X obj 98 219 float; #X obj 107 77 bang~; #X obj 107 97 a_counter; #X msg 69 72 0; #X obj 107 157 t b b; #X obj 107 116 >=; #X msg 374 213 0; #X obj 160 64 expr (44100 / 64) / $f1; #X obj 408 356 snapshot~; #X obj 107 135 sel 1; #X obj 365 546 *~; #X obj 527 444 expr~ ($v1 * .5) - 0.25; #X obj 308 183 samphold~; #X obj 595 158 a_rand; #X obj 462 179 * 44.1; #X obj 461 158 +; #X obj 500 158 t b f; #X obj 463 248 line~; #X obj 527 492 *~ 50; #X obj 463 225 pack f f; #X obj 180 148 line~; #X obj 180 125 pack f f; #X obj 202 412 +; #X obj 189 374 t b f; #X obj 11 377 * -1; #X obj 23 349 expr 0.5 * ($f1 / 100) * $f2; #X obj 618 129 expr 0.5 * ($f1 / 100) * $f2; #X obj 655 158 * -1; #X obj 408 413 sel 1; #X obj 926 99 switch~; #X msg 926 76 \$1 20; #X obj 925 51 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 438 433 s \$0-cycle; #X obj 527 514 tabread4~ \$1; #X obj 4 97 s \$0-blockbang; #X obj 365 566 outlet~; #X obj 365 521 tabread4~ \$2; #X obj 477 356 r \$3-grantabsize; #X obj 205 234 * 44.1; #X obj 669 236 a_drunk; #X msg 721 204 1; #X msg 755 204 50; #X msg 691 204 0; #X obj 811 26 * 0.001; #X obj 634 182 * 1000; #X obj 622 203 * 1000; #X msg 167 507 1; #X msg 201 507 50; #X msg 137 506 0; #X obj 151 619 * 0.001; #X obj 24 454 * 1000; #X obj 12 504 * 1000; #X obj 50 430 a_tgl; #X obj 161 480 loadbang; #X obj 722 181 loadbang; #X obj 795 66 a_tgl; #X floatatom 24 476 5 0 0 0 - - -; #X obj 925 31 inlet on/off; #X obj 824 44 r \$3-rd; #X obj 88 376 r \$3-rd; #X obj 202 435 s \$0-ptrhop; #X msg 98 195 0; #X obj 407 380 expr if($f1 >= ($f2 + $f5) && ($f3 >= 0) \, $f4 \, if(($f1 <= $f4) && ($f3 < 0) \, ($f2 - $f5) \, 1)); #X text 731 424 Ensures table size limit is respected \, and that the offsets never overlap; #X obj 910 486 t b f; #X obj 931 535 t b f; #X obj 779 601 expr $f1 / 100 * $f2; #X obj 914 582 r \$3-grantabsize; #X obj 751 646 expr $f1 / 100 * $f2; #X obj 886 627 r \$3-grantabsize; #X obj 751 513 expr if(($f1 <= 0) || ($f1 - $f2) >= 99.9 \, 0 \, $f1) ; #X obj 778 561 expr if(($f1 >= 0) || ($f2 - $f1) >=99.9 \, 0 \, $f1) ; #X text 186 82 Smear time; #X obj 751 667 s \$0-segstart; #X obj 779 622 s \$0-segend; #X obj 484 562 outlet; #X text 533 562 Current pointer position; #X obj 377 456 r \$3-samptab; #X msg 376 500 set \$1; #X obj 376 478 symbol; #X obj 151 595 a_drunk; #X obj 50 409 a_rand; #X text 36 0 Granular synthesis using incremental table lookup + pulse train enveloping. Table name for enveloping function is given by the first arg \, table for sample data is given by second arg (or changed via the first inlet).; #X text 526 275 If the pointer position is greater than or equal to the segment size and moving forwards move the pointer to the start of the segment otherwise if the pointer position is less than or equal to the segment start \, and moving backwards \, move the pointer to the end of the segment \, otherwise do nothing.; #X obj 202 312 r \$3-ptrhopsize; #X obj 23 299 r \$3-ptrdeviation; #X obj 179 98 r \$3-ptrdeviationsmear; #X obj 195 563 r \$3-ptrdrunkinc; #X obj 366 79 r \$3-grainreadrate; #X obj 808 106 r \$3-grainsize; #X obj 460 111 r \$3-grainsize; #X obj 619 53 r \$3-grainsizedeviation; #X obj 472 200 r \$3-grdevsmear; #X obj 730 156 r \$3-grdrunkinc; #X obj 561 467 r \$3-grainamp; #X obj 750 463 r \$3-tabstrtoff; #X obj 911 463 r \$3-tabendoff; #X text 215 297 Pointer rate; #X obj 594 104 r \$0-blockbang; #X obj 206 210 r \$0-ptrhop; #X obj 128 195 r \$0-cycle; #X obj 675 356 r \$0-segstart; #X obj 770 356 r \$0-segend; #X obj 593 356 r \$0-ptrhop; #X obj 416 335 r \$0-blockbang; #X obj 49 323 r \$0-blockbang; #X connect 0 0 2 0; #X connect 0 0 17 0; #X connect 0 0 18 1; #X connect 1 0 0 0; #X connect 1 0 13 0; #X connect 2 0 4 0; #X connect 3 0 24 0; #X connect 4 0 14 0; #X connect 4 0 42 0; #X connect 5 0 6 1; #X connect 6 0 5 0; #X connect 6 0 27 0; #X connect 7 0 8 0; #X connect 7 0 40 0; #X connect 8 0 11 0; #X connect 9 0 8 1; #X connect 10 0 9 0; #X connect 10 1 6 0; #X connect 11 0 15 0; #X connect 12 0 4 1; #X connect 13 0 11 1; #X connect 14 0 68 0; #X connect 14 0 81 0; #X connect 15 0 10 0; #X connect 16 0 41 0; #X connect 17 0 3 0; #X connect 18 0 4 1; #X connect 19 0 61 0; #X connect 20 0 25 0; #X connect 21 0 20 0; #X connect 22 0 21 0; #X connect 22 1 21 1; #X connect 23 0 2 1; #X connect 24 0 39 0; #X connect 25 0 23 0; #X connect 26 0 18 0; #X connect 27 0 26 0; #X connect 28 0 66 0; #X connect 29 0 28 0; #X connect 29 1 28 1; #X connect 30 0 57 0; #X connect 30 0 87 1; #X connect 31 0 30 0; #X connect 31 0 56 0; #X connect 31 0 87 2; #X connect 32 0 19 2; #X connect 32 0 33 0; #X connect 32 0 50 0; #X connect 33 0 19 1; #X connect 33 0 51 0; #X connect 34 1 38 0; #X connect 36 0 35 0; #X connect 37 0 36 0; #X connect 39 0 16 1; #X connect 42 0 16 0; #X connect 43 0 68 1; #X connect 44 0 5 1; #X connect 45 0 49 0; #X connect 46 0 45 2; #X connect 47 0 45 3; #X connect 49 0 61 1; #X connect 50 0 45 5; #X connect 51 0 45 4; #X connect 52 0 86 2; #X connect 53 0 86 3; #X connect 54 0 86 1; #X connect 55 0 58 1; #X connect 56 0 62 0; #X connect 56 0 86 5; #X connect 57 0 86 4; #X connect 58 0 29 0; #X connect 59 0 54 0; #X connect 59 0 52 0; #X connect 59 0 53 0; #X connect 60 0 48 0; #X connect 60 0 46 0; #X connect 60 0 47 0; #X connect 61 0 22 0; #X connect 63 0 37 0; #X connect 64 0 61 2; #X connect 65 0 58 2; #X connect 67 0 6 0; #X connect 68 0 34 0; #X connect 70 0 76 0; #X connect 70 1 76 1; #X connect 71 0 77 0; #X connect 71 1 77 1; #X connect 72 0 80 0; #X connect 73 0 72 1; #X connect 74 0 79 0; #X connect 75 0 74 1; #X connect 76 0 74 0; #X connect 77 0 72 0; #X connect 83 0 85 0; #X connect 84 0 42 0; #X connect 85 0 84 0; #X connect 86 0 55 0; #X connect 87 0 58 0; #X connect 90 0 28 0; #X connect 90 0 31 1; #X connect 91 0 31 0; #X connect 92 0 27 1; #X connect 93 0 86 2; #X connect 94 0 0 0; #X connect 95 0 32 1; #X connect 96 0 21 0; #X connect 97 0 32 0; #X connect 98 0 25 1; #X connect 99 0 45 2; #X connect 100 0 24 1; #X connect 101 0 76 0; #X connect 101 0 71 0; #X connect 102 0 70 0; #X connect 102 0 77 0; #X connect 104 0 19 0; #X connect 105 0 44 0; #X connect 106 0 6 1; #X connect 107 0 68 3; #X connect 108 0 68 4; #X connect 109 0 68 2; #X connect 110 0 14 0; #X connect 111 0 86 0; #X connect 111 0 87 0;