aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/3.audio.examples/54.delay.loop.pd
blob: 71b3525393df222bc0c4c655b70f9a541910396d (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
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
#N canvas 22 1 630 601 12;
#X text 309 531 updated for Pd version 0.26;
#X floatatom 58 505 0 0 0;
#N canvas 159 26 495 266 output 0;
#X obj 338 160 t b;
#X obj 338 110 f;
#X obj 338 60 inlet;
#X text 344 29 mute;
#X obj 338 185 f;
#X msg 425 178 0;
#X msg 338 85 bang;
#X obj 338 135 moses 1;
#X obj 425 153 t b f;
#X obj 397 117 moses 1;
#X obj 83 148 dbtorms;
#X obj 397 92 r master-lvl;
#X obj 83 42 r master-lvl;
#X obj 338 210 s master-lvl;
#X obj 22 181 inlet~;
#X obj 199 41 inlet;
#X text 199 18 level;
#X obj 199 100 s master-lvl;
#X msg 96 65 set \$1;
#X obj 96 89 outlet;
#X msg 214 64 \; pd dsp 1;
#X obj 83 194 line~;
#X obj 22 212 *~;
#X obj 22 241 dac~;
#X obj 83 171 pack 0 50;
#X text 20 158 audio;
#X text 93 110 show level;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 13 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 9 1 4 1;
#X connect 10 0 24 0;
#X connect 11 0 1 1;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 12 0 18 0;
#X connect 14 0 22 0;
#X connect 15 0 17 0;
#X connect 15 0 20 0;
#X connect 18 0 19 0;
#X connect 21 0 22 1;
#X connect 22 0 23 0;
#X connect 22 0 23 1;
#X connect 24 0 21 0;
#X restore 29 533 pd output;
#X msg 87 505 MUTE;
#X text 126 504 <-- output amplitude;
#X obj 29 476 hip~ 5;
#X obj 29 297 -~;
#X obj 29 273 *~ 3;
#X obj 66 279 *~ 2;
#X floatatom 29 177 0 0 0;
#X obj 29 249 clip~ 0 0.667;
#X obj 39 450 delwrite~ delay1 2000;
#X floatatom 45 353 0 0 0;
#X text 79 176 <-- pitch;
#X text 75 352 <-- delay time;
#X text 238 450 write to delay line;
#X text 226 378 read from delay line;
#X text 64 426 add the original and the delayed signal;
#X obj 29 201 mtof;
#X msg 135 238 1;
#X obj 29 321 *~;
#X obj 29 225 phasor~ 0;
#X obj 135 286 tabread4~ dbtorms;
#X obj 135 262 adsr 100 100 2000 0 2000;
#X obj 29 427 +~;
#X obj 45 377 delread~ delay1 160;
#X obj 45 401 *~ 0.7;
#X text 103 401 feedback gain;
#X text 57 9 DELAYS WITH FEEDBACK;
#X text 33 39 You can feed the result of a delread~ module back into
its own delwrite~ \, as long as you're careful about stability. For
delays below 30 msec \, you can frequently hear teh resonant pitch.
For longer delay times you get the famous old delay loop effect.;
#X text 32 118 We've added an amplitude control here so that teh test
oscillator only speaks while you're dragging the pitch up and down.
Be sure to try the shift key.;
#N canvas 0 0 600 392 conversion-tables 0;
#N canvas 0 0 450 300 graph1 0;
#X array dbtorms 123 float 1;
#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
#X coords 0 10 123 0 200 100 1;
#X restore 70 45 graph;
#X text 272 138 0;
#X text 274 38 10;
#X text 89 148 ------ 123 samples ------;
#N canvas 0 0 450 300 graph2 0;
#X array mtof 130 float 1;
#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
11839.8 12543.9 13289.8 14080;
#X coords 0 12000 130 0 200 100 1;
#X restore 77 222 graph;
#X text 87 330 ------ 130 samples ------;
#X text 286 315 0;
#X text 288 215 12000;
#N canvas 244 212 672 338 regenerate-tables 0;
#X msg 415 84 bang;
#X obj 415 113 t b b;
#X obj 474 177 f;
#X obj 512 177 + 1;
#X msg 483 147 0;
#X obj 415 142 until;
#X obj 474 211 t f f;
#X obj 414 238 mtof;
#X obj 405 202 sel 129;
#X obj 413 264 tabwrite mtof;
#X obj 35 227 moses 2;
#X msg 19 76 bang;
#X obj 19 105 t b b;
#X obj 90 166 f;
#X obj 128 166 + 1;
#X msg 112 138 0;
#X obj 19 134 until;
#X obj 11 194 sel 122;
#X msg 35 258 0;
#X obj 79 259 dbtorms;
#X obj 90 194 t f f;
#X obj 35 291 tabwrite dbtorms;
#X text 18 49 bang to recalculate dbtorms table;
#X text 356 50 bang to recalculate the mtof table;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 2 0 6 0;
#X connect 2 0 8 0;
#X connect 3 0 2 1;
#X connect 4 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 1 9 1;
#X connect 7 0 9 0;
#X connect 8 0 5 1;
#X connect 10 0 18 0;
#X connect 10 1 19 0;
#X connect 11 0 12 0;
#X connect 12 0 16 0;
#X connect 12 1 15 0;
#X connect 13 0 14 0;
#X connect 13 0 17 0;
#X connect 13 0 20 0;
#X connect 14 0 13 1;
#X connect 15 0 13 1;
#X connect 16 0 13 0;
#X connect 17 0 16 1;
#X connect 18 0 21 0;
#X connect 19 0 21 0;
#X connect 20 0 10 0;
#X connect 20 1 21 1;
#X restore 375 76 pd regenerate-tables;
#X restore 334 483 pd conversion-tables;
#X connect 1 0 2 1;
#X connect 2 0 1 0;
#X connect 3 0 2 2;
#X connect 5 0 2 0;
#X connect 6 0 20 0;
#X connect 7 0 6 0;
#X connect 8 0 6 1;
#X connect 9 0 18 0;
#X connect 9 0 19 0;
#X connect 10 0 7 0;
#X connect 12 0 25 0;
#X connect 18 0 21 0;
#X connect 19 0 23 0;
#X connect 20 0 24 0;
#X connect 21 0 8 0;
#X connect 21 0 10 0;
#X connect 22 0 20 1;
#X connect 23 0 22 0;
#X connect 24 0 11 0;
#X connect 24 0 5 0;
#X connect 25 0 26 0;
#X connect 26 0 24 1;