aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/all_about_looping.pd
blob: 99b76d4a2646619882a40b32e52c3a4b2c1c97d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#N canvas 35 22 757 548 10;
#X text 440 49 looping objects:;
#X obj 442 71 until;
#X obj 500 71 loop;
#X obj 417 474 susloop~;
#X obj 486 474 loop~;
#X text 414 453 for looping samples:;
#X obj 0 2 cnv 15 750 20 empty empty all_about_looping 20 10 1 18 -233017
-66577 0;
#X obj 716 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 441 97 counter;
#X obj 499 97 gem_counter;
#X obj 584 97 cxc.counter;
#X obj 422 521 pdp_loop;
#X obj 493 521 pdp_qtloop~;
#X obj 531 474 loopsampler;
#X obj 675 96 for++;
#X obj 82 167 +;
#X floatatom 111 170 5 0 0 0 - - -;
#X msg 81 138 1;
#X obj 161 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 120 138 0;
#X obj 82 209 t f f;
#X text 206 302 X;
#X text 68 306 Y;
#X obj 52 289 t b f;
#N canvas 0 22 450 300 (subpatch) 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
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
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
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
0.000796274 0.000796274 0.000796274;
#X coords 0 1 99 -1 300 100 1;
#X restore 82 405 graph;
#X obj 82 314 tabwrite \$0-array;
#X obj 82 186 moses 100;
#X obj 81 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
-1;
#X text 158 166 <-- counter;
#X text 180 186 <-- split at array size to stop;
#X text 208 199 and reset counter to 0;
#X text 49 336 ^--bang for next step;
#X obj 52 249 expr abs(cos( min (1.57 \, ($f1 / $f2 - 0.4)) ) );
#X obj 255 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 147 138 <-- stop;
#X text 410 436 There are also specific loops for samples and video:
;
#X text 417 500 video looping:;
#X obj 619 474 xgroove~;
#X obj 539 343 readsf~;
#X obj 539 276 spigot;
#X obj 576 254 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1
-1 0 1;
#X text 409 181 For the most basic looping of samples \, you can use
[readsf~]:;
#X msg 548 320 open ../sound/voice.wav;
#X text 584 363 ^- "bang"ed when complete;
#X msg 512 320 1;
#X obj 531 375 dac~;
#X obj 512 298 t b b;
#X obj 512 255 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
-1;
#X text 31 525 updated for Pd version 0.38.2;
#X obj 30 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 obj 685 474 count~;
#X obj 537 71 modulo_counter;
#X obj 645 71 count;
#X obj 689 71 countund;
#X connect 15 0 16 0;
#X connect 15 0 26 0;
#X connect 16 0 15 1;
#X connect 17 0 15 0;
#X connect 18 0 19 0;
#X connect 19 0 16 0;
#X connect 19 0 15 1;
#X connect 20 0 32 0;
#X connect 20 1 25 1;
#X connect 23 0 50 0;
#X connect 23 1 25 0;
#X connect 26 0 20 0;
#X connect 26 1 18 0;
#X connect 27 0 17 0;
#X connect 32 0 23 0;
#X connect 33 0 32 1;
#X connect 39 0 46 0;
#X connect 39 0 46 1;
#X connect 39 1 40 0;
#X connect 40 0 47 0;
#X connect 41 0 40 1;
#X connect 43 0 39 0;
#X connect 45 0 39 0;
#X connect 47 0 45 0;
#X connect 47 1 43 0;
#X connect 48 0 47 0;
#X connect 50 0 17 0;