-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplayback~.pd
190 lines (190 loc) · 4.99 KB
/
playback~.pd
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#N canvas 380 493 652 429 12;
#X obj 235 209 inlet;
#X obj 235 253 f 1;
#X obj 170 209 loadbang;
#X text 232 174 /// cold: playback rate;
#X text 232 187 /// defaults to 1;
#X obj 235 362 outlet;
#X obj 21 361 outlet~;
#X text 17 383 /// L out;
#N canvas 123 225 1298 628 playatrate~ 0;
#X obj 161 251 phasor~, f 30;
#X obj 161 197 sig~;
#X obj 161 361 +~ 1;
#X obj 161 221 *~, f 25;
#X obj 162 60 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X obj 161 510 *~, f 14;
#X obj 974 469 outlet;
#X obj 161 555 outlet~;
#X msg 368 173 0;
#X obj 162 36 inlet;
#X text 156 17 /// bang to play clip;
#X obj 161 173 r \$0-hz;
#X obj 161 337 *~;
#X obj 18 318 sig~;
#X text 157 577 /// out;
#X obj 161 386 tabread4~ clip-\$1;
#X obj 256 486 line~;
#X obj 904 213 *, f 22;
#X obj 904 237 /, f 26;
#X obj 904 261 * 1000;
#X obj 1085 142 loadbang;
#X obj 1087 179 samplerate~;
#X obj 904 165 -, f 6;
#X obj 904 387 del;
#X obj 904 411 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X msg 999 357 stop;
#X obj 332 9 r \$0-playback-rate;
#X obj 335 79 sig~;
#X obj 904 285 /, f 10;
#X obj 195 297 snapshot~;
#X obj 195 279 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 195 321 s \$0-phase;
#X obj 904 86 r \$0-phase;
#X obj 982 383 del;
#X msg 327 403 1;
#X obj 162 80 t b b b, f 20;
#X obj 904 431 t b b;
#X obj 951 358 - 5;
#X obj 529 163 s \$0-phase;
#X obj 904 333 t f f b, f 14;
#X obj 332 33 t b f f f, f 37;
#X obj 730 17 sign;
#X obj 904 141 swap, f 6;
#X msg 730 65 1;
#X obj 730 41 sel 1 -1, f 14;
#X msg 777 65 0;
#X obj 904 189 abs;
#X obj 1045 292 sel 0;
#X text 1089 293 don't divide by 0;
#X text 973 490 /// bangs when playback 5ms from complete;
#X obj 856 481 s \$0-did-wrap;
#X obj 413 393 r \$0-did-wrap;
#X obj 904 309 max 1;
#X obj 1018 262 abs;
#X msg 705 168 0;
#X msg 742 169 1;
#X obj 761 285 f;
#X obj 982 417 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 695 420 snapshotter~;
#X obj 529 138 f;
#X obj 1001 123 r \$0-\$1-sample-count;
#X obj 18 294 r \$0-\$1-sample-count;
#X floatatom 1160 213 10 0 0 0 - - - 0;
#X obj 1055 179 f;
#X msg 413 417 0;
#X connect 0 0 12 0;
#X connect 0 0 29 0;
#X connect 0 0 58 0;
#X connect 1 0 3 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 35 0;
#X connect 5 0 7 0;
#X connect 8 0 0 1;
#X connect 9 0 4 0;
#X connect 11 0 1 0;
#X connect 12 0 2 0;
#X connect 13 0 12 1;
#X connect 15 0 5 0;
#X connect 16 0 5 1;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 28 0;
#X connect 20 0 21 0;
#X connect 21 0 18 1;
#X connect 22 0 46 0;
#X connect 23 0 24 0;
#X connect 24 0 36 0;
#X connect 25 0 23 0;
#X connect 25 0 33 0;
#X connect 26 0 40 0;
#X connect 27 0 3 1;
#X connect 28 0 52 0;
#X connect 29 0 31 0;
#X connect 30 0 29 0;
#X connect 32 0 42 0;
#X connect 33 0 57 0;
#X connect 34 0 16 0;
#X connect 35 0 34 0;
#X connect 35 1 59 0;
#X connect 35 2 8 0;
#X connect 36 0 56 0;
#X connect 36 1 50 0;
#X connect 37 0 33 0;
#X connect 39 0 23 0;
#X connect 39 1 37 0;
#X connect 39 2 25 0;
#X connect 40 0 30 0;
#X connect 40 1 41 0;
#X connect 40 2 53 0;
#X connect 40 3 27 0;
#X connect 41 0 44 0;
#X connect 42 0 22 0;
#X connect 42 1 22 1;
#X connect 43 0 42 1;
#X connect 44 0 43 0;
#X connect 44 0 54 0;
#X connect 44 1 45 0;
#X connect 44 1 55 0;
#X connect 45 0 42 1;
#X connect 46 0 17 0;
#X connect 47 1 28 1;
#X connect 51 0 64 0;
#X connect 52 0 39 0;
#X connect 53 0 47 0;
#X connect 54 0 56 0;
#X connect 54 0 59 1;
#X connect 55 0 56 0;
#X connect 55 0 59 1;
#X connect 56 0 42 0;
#X connect 57 0 6 0;
#X connect 59 0 38 0;
#X connect 60 0 63 0;
#X connect 61 0 13 0;
#X connect 63 0 17 1;
#X connect 63 0 62 0;
#X connect 64 0 16 0;
#X restore 21 324 pd playatrate~;
#X obj 21 206 inlet;
#X text 17 183 /// hot: bang to play clip.;
#X obj 482 153 swap, f 6;
#X obj 482 177 /, f 6;
#X obj 521 129 samplerate~;
#X obj 482 202 s \$0-hz;
#X obj 235 277 s \$0-playback-rate;
#X floatatom 316 225 5 0 0 0 - - - 0;
#X text 231 382 /// bangs when playback is 5ms from complete;
#X floatatom 364 242 5 0 0 0 - - - 0;
#X obj 459 226 s \$0-\$1-sample-count;
#X obj 459 83 samplecountprovider \$1;
#X obj 459 107 t f f b;
#X text 5 10 /// TO USE: (1) initialize with creation args \$1 being
sample name. there needs to be an [audioclip~ \$1] or [__sample~ \$1]
in this patch. (2) bang the left outlet to play the clip once \, from
start to finish. it plays at the playback rate specified by the right
inlet. 1 represents the original playback rate \, 2 is double speed
\, -0.5 is half-speed and backwards \, etc. all audio comes out of
the first two outlets \, which are audio-rate \, one for L and one
for R. the rightmost outlet bangs when playback of the sample is complete.
;
#X connect 0 0 18 0;
#X connect 0 0 1 0;
#X connect 1 0 15 0;
#X connect 2 0 1 0;
#X connect 8 0 6 0;
#X connect 8 1 5 0;
#X connect 9 0 8 0;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 14 0;
#X connect 13 0 11 1;
#X connect 16 0 1 0;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 21 1 11 0;
#X connect 21 2 13 0;