#N canvas 132 34 1052 723 10; #X obj 36 72 f; #X obj 84 79 + 1; #X msg 36 48 bang; #X floatatom 36 108 5 0 0 0 - - -; #X obj 206 120 f; #X obj 254 127 + 1; #X floatatom 206 156 5 0 0 0 - - -; #X obj 206 68 metro 200; #X obj 206 48 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 279 90 0; #X text 313 91 <- reset; #X obj 429 93 f; #X obj 499 100 + 1; #X floatatom 429 151 5 0 0 0 - - -; #X obj 429 70 metro 200; #X obj 429 50 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 499 122 mod 10; #X text 862 6 Simple Counters in PD; #X obj 37 327 t f f; #X obj 51 409 min; #X obj 37 382 * -1; #X obj 37 359 - 1; #X floatatom 51 455 5 0 0 0 - - -; #X obj 37 285 mod 20; #X obj 37 305 / 20; #X obj 51 433 * 20; #X obj 37 261 f; #X obj 85 262 + 1; #X obj 37 237 metro 200; #X obj 37 217 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 95 296 ]--- note that both these values must be DOUBLE the value you intend to count up to.; #X text 29 27 1) simplest counter; #X text 207 28 2) resettable counter; #X text 429 31 3) count 0->9 and then reset to 0; #X text 552 125 (note the counter goes to 1 less than the value here) ; #X text 35 199 4) count up to 10 \, then back down to zero; #X text 90 434 ]--- this is also doubled.; #X text 527 184 5) count from zero to a specified value; #X obj 567 337 f; #X obj 615 338 + 1; #X obj 567 296 until; #X obj 568 265 t f b; #X msg 621 297 0; #X text 651 299 (resets counter to zero); #X msg 531 228 5; #X msg 564 221 8; #X msg 599 216 13; #X obj 567 375 print; #X text 611 376 (look in the console); #X text 636 221 if you press 5 \, then you get the first 5 values from 0 ie: 0 \, 1 \, 2 \, 3 \, 4; #X msg 437 677 \; simpleArray 0 0.5 -0.5 1 0.75 0 0.25 -0.75 -0.25 0.5 1; #X obj 437 658 loadbang; #X text 312 413 6) common usage for counters \, reading and writing to arrays; #N canvas 0 22 450 300 (subpatch) 0; #X array simpleArray 10 float 1; #A 0 0.5 -0.5 1 0.75 0 0.25 -0.75 -0.25 0.5 1; #X coords 0 1 9 -1 100 70 1; #X restore 467 478 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array newArray 10 float 0; #X coords 0 1 9 -1 100 70 1; #X restore 575 478 graph; #X obj 318 509 f; #X obj 366 510 + 1; #X obj 318 481 until; #X obj 318 458 t f b; #X msg 371 482 0; #X msg 318 437 10; #X obj 318 541 t f f; #X text 862 17 ---------------------; #X obj 318 656 pack 0 0; #X obj 319 683 s newArray; #X obj 389 579 tabread simpleArray; #X obj 389 609 * -1; #X text 426 611 (invert values); #X connect 0 0 1 0; #X connect 0 0 3 0; #X connect 1 0 0 1; #X connect 2 0 0 0; #X connect 4 0 5 0; #X connect 4 0 6 0; #X connect 5 0 4 1; #X connect 7 0 4 0; #X connect 8 0 7 0; #X connect 9 0 4 1; #X connect 11 0 12 0; #X connect 11 0 13 0; #X connect 12 0 16 0; #X connect 14 0 11 0; #X connect 15 0 14 0; #X connect 16 0 11 1; #X connect 18 0 21 0; #X connect 18 1 19 1; #X connect 19 0 25 0; #X connect 20 0 19 0; #X connect 21 0 20 0; #X connect 23 0 24 0; #X connect 24 0 18 0; #X connect 25 0 22 0; #X connect 26 0 27 0; #X connect 26 0 23 0; #X connect 27 0 26 1; #X connect 28 0 26 0; #X connect 29 0 28 0; #X connect 38 0 39 0; #X connect 38 0 47 0; #X connect 39 0 38 1; #X connect 40 0 38 0; #X connect 41 0 40 0; #X connect 41 1 42 0; #X connect 42 0 38 1; #X connect 44 0 41 0; #X connect 45 0 41 0; #X connect 46 0 41 0; #X connect 51 0 50 0; #X connect 55 0 56 0; #X connect 55 0 61 0; #X connect 56 0 55 1; #X connect 57 0 55 0; #X connect 58 0 57 0; #X connect 58 1 59 0; #X connect 59 0 55 1; #X connect 60 0 58 0; #X connect 61 0 63 0; #X connect 61 1 65 0; #X connect 63 0 64 0; #X connect 65 0 66 0; #X connect 66 0 63 1;