Update of /cvsroot/pure-data/doc/pddp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21291
Modified Files: all_about_looping.pd Log Message: better documented first loop, got 2nd loop working properly
Index: all_about_looping.pd =================================================================== RCS file: /cvsroot/pure-data/doc/pddp/all_about_looping.pd,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** all_about_looping.pd 27 May 2004 16:53:47 -0000 1.1 --- all_about_looping.pd 26 Apr 2005 20:28:35 -0000 1.2 *************** *** 1,9 **** ! #N canvas 255 95 856 623 10; #X text 460 79 looping objects:; #X obj 462 101 until; #X obj 572 102 loop; ! #X obj 458 504 susloop~; ! #X obj 527 504 loop~; ! #X text 455 483 for looping samples:; #X obj 0 2 cnv 15 850 20 empty empty all_about_looping 20 10 1 18 -233017 -66577 0; --- 1,9 ---- ! #N canvas 255 95 864 631 10; #X text 460 79 looping objects:; #X obj 462 101 until; #X obj 572 102 loop; ! #X obj 437 504 susloop~; ! #X obj 506 504 loop~; ! #X text 434 483 for looping samples:; #X obj 0 2 cnv 15 850 20 empty empty all_about_looping 20 10 1 18 -233017 -66577 0; *************** *** 12,28 **** #X obj 519 127 gem_counter; #X obj 604 127 cxc.counter; ! #X obj 463 551 pdp_loop; ! #X obj 534 551 pdp_qtloop~; ! #X obj 572 504 loopsampler; ! #X text 480 395 examples:; ! #X obj 480 424 test-loop~; #X obj 695 126 for++; ! #X obj 60 167 +; ! #X floatatom 89 170 5 0 0 0 - - -; ! #X msg 59 138 1; ! #X obj 139 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; ! #X msg 98 138 0; ! #X obj 60 209 t f f; #X text 214 302 X; #X text 76 306 Y; --- 12,27 ---- #X obj 519 127 gem_counter; #X obj 604 127 cxc.counter; ! #X obj 442 551 pdp_loop; ! #X obj 513 551 pdp_qtloop~; ! #X obj 551 504 loopsampler; ! #X obj 429 424 test-loop~; #X obj 695 126 for++; ! #X obj 90 167 +; ! #X floatatom 119 170 5 0 0 0 - - -; ! #X msg 89 138 1; ! #X obj 169 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; ! #X msg 128 138 0; ! #X obj 90 209 t f f; #X text 214 302 X; #X text 76 306 Y; *************** *** 30,37 **** #N canvas 0 22 450 300 graph2 0; #X array $0-array 100 float 1; ! #A 0 0 0.950467 0.973181 0.989041 0.997937 0.999806 0.994635 0.982459 ! 0.963366 0.937489 0.905011 0.866159 0.821209 0.770476 0.714317 0.653128 ! 0.587341 0.517417 0.44385 0.367158 0.28788 0.206575 0.123815 0.040184 ! 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 --- 29,36 ---- #N canvas 0 22 450 300 graph2 0; #X array $0-array 100 float 1; ! #A 0 0 0.946674 0.967388 0.983095 0.993714 0.999191 0.999497 0.99463 ! 0.984615 0.969505 0.949378 0.924337 0.894513 0.860059 0.821154 0.778 ! 0.730819 0.679856 0.625375 0.567657 0.507002 0.443722 0.378147 0.310614 ! 0.241474 0.171084 0.0998083 0.0280163 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 *************** *** 45,109 **** 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 ! 0.000796274 0.000796274 0.000796274 0.000796274; #X coords 0 1 99 -1 300 100 1; #X restore 82 405 graph; #X obj 90 314 tabwrite $0-array; ! #X obj 60 186 moses 100; ! #X obj 59 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1 -1; ! #X text 136 166 <-- counter; ! #X text 158 186 <-- split at array size to stop; ! #X text 186 199 and reset counter to 0; #X text 57 336 ^--bang for next step; - #X obj 39 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 - -1; - #X text 422 36 inf; #X obj 60 249 expr abs(cos( min (1.57 , ($f1 / $f2 - 0.4)) ) ); #X obj 263 227 hsl 128 15 1 127 0 1 empty empty change_graph_shape ! -130 8 1 12 -208896 -1 -1 1100 0; ! #X text 7 29 Programming with Pd is a different way of thinking that ! standard procedural or object-oriented programming. Looping illustrates ! this. Instead of setting up a C-like [counter] or [for++] , set up ! a condition to continue the loop , and a condition that ends the loop. ! ; #X text 13 362 In this example , the "bang" from [t b f] continues the loop. The [moses 100] ends the loop.; ! #X text 17 601 by Hans-Christoph Steiner hans@at.or.at; ! #X text 629 603 updated for Pd version 0.37.1; ! #X text 125 138 <-- stop; ! #X text 451 466 There are also specific loops for samples and video: ; ! #X text 458 530 video looping:; ! #X obj 660 504 xgroove~; ! #X obj 619 353 readsf~; ! #X obj 431 338 bng 15 250 50 0 empty empty play_sound 17 7 0 10 -4033 ! -1 -1; ! #X obj 619 328 spigot; ! #X obj 656 306 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1 -1 0 1; ! #X text 429 271 For the most basic looping of samples , you can use [readsf~]:; ! #X msg 430 307 open ../sound/voice.wav; ! #X text 664 373 ^- "bang"ed when complete; ! #X connect 17 0 18 0; ! #X connect 17 0 28 0; ! #X connect 18 0 17 1; ! #X connect 19 0 17 0; ! #X connect 20 0 21 0; ! #X connect 21 0 18 0; ! #X connect 21 0 17 1; ! #X connect 22 0 36 0; ! #X connect 22 1 27 1; ! #X connect 25 0 34 0; ! #X connect 25 1 27 0; ! #X connect 28 0 22 0; ! #X connect 28 1 20 0; ! #X connect 29 0 19 0; ! #X connect 34 0 19 0; ! #X connect 36 0 25 0; ! #X connect 37 0 36 1; ! #X connect 46 1 48 0; ! #X connect 47 0 46 0; #X connect 48 0 46 0; ! #X connect 49 0 48 1; ! #X connect 51 0 46 0; --- 44,118 ---- 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 0.000796274 ! 0.000796274 0.000796274 0.000796274; #X coords 0 1 99 -1 300 100 1; #X restore 82 405 graph; #X obj 90 314 tabwrite $0-array; ! #X obj 90 186 moses 100; ! #X obj 89 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1 -1; ! #X text 166 166 <-- counter; ! #X text 188 186 <-- split at array size to stop; ! #X text 216 199 and reset counter to 0; #X text 57 336 ^--bang for next step; #X obj 60 249 expr abs(cos( min (1.57 , ($f1 / $f2 - 0.4)) ) ); #X obj 263 227 hsl 128 15 1 127 0 1 empty empty change_graph_shape ! -130 8 1 12 -208896 -1 -1 1300 0; #X text 13 362 In this example , the "bang" from [t b f] continues the loop. The [moses 100] ends the loop.; ! #X text 155 138 <-- stop; ! #X text 430 466 There are also specific loops for samples and video: ; ! #X text 437 530 video looping:; ! #X obj 639 504 xgroove~; ! #X obj 619 373 readsf~; ! #X obj 619 306 spigot; ! #X obj 656 284 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1 -1 0 1; ! #X text 429 251 For the most basic looping of samples , you can use [readsf~]:; ! #X msg 628 350 open ../sound/voice.wav; ! #X text 664 393 ^- "bang"ed when complete; ! #X msg 592 350 1; ! #X obj 611 405 dac~; ! #X obj 592 328 t b b; ! #X obj 592 285 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1 ! -1; ! #X text 226 608 released under the GNU GPL; ! #X text 9 594 (C) Copyright 2005 Hans-Christoph Steiner hans@at.or.at ! ; ! #X text 629 603 updated for Pd version 0.38.2; ! #X obj 38 201 bang; ! #X text 2 137 continue -->; ! #X text 7 29 Programming with Pd is a different way of thinking that ! standard procedural or object-oriented programming. Looping illustrates ! this. Instead of setting up a C-like [counter] or [for++] , set up ! a condition to continue the loop , and a condition that stops the ! loop.; ! #X text 429 395 other examples:; ! #X connect 16 0 17 0; ! #X connect 16 0 27 0; ! #X connect 17 0 16 1; ! #X connect 18 0 16 0; ! #X connect 19 0 20 0; ! #X connect 20 0 17 0; ! #X connect 20 0 16 1; ! #X connect 21 0 33 0; ! #X connect 21 1 26 1; ! #X connect 24 0 53 0; ! #X connect 24 1 26 0; ! #X connect 27 0 21 0; ! #X connect 27 1 19 0; ! #X connect 28 0 18 0; ! #X connect 33 0 24 0; ! #X connect 34 0 33 1; ! #X connect 40 0 47 0; ! #X connect 40 0 47 1; ! #X connect 40 1 41 0; ! #X connect 41 0 48 0; ! #X connect 42 0 41 1; ! #X connect 44 0 40 0; ! #X connect 46 0 40 0; #X connect 48 0 46 0; ! #X connect 48 1 44 0; ! #X connect 49 0 48 0; ! #X connect 53 0 18 0;