aboutsummaryrefslogtreecommitdiff
path: root/blosc/blsaw~.pd
blob: 8969f734e03aa3be5ac47c98114b69cf53377b31 (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
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
#N canvas 62 77 344 334 10;
#X text 120 257 copyright by Roman Haefeli;
#X text 36 284 Published under the GNU Public License;
#N canvas 0 0 646 649 oscillator~ 0;
#N canvas 314 100 498 265 number_of_harmonics_allowed 0;
#X obj 135 68 / 2;
#X obj 15 151 /;
#X obj 135 44 samplerate~;
#X obj 15 98 t b f;
#X text 241 49 sr / 2 = nyquist frequency;
#X obj 15 229 outlet;
#X obj 14 18 inlet~;
#X obj 15 121 f;
#X obj 135 21 loadbang;
#X text 104 209 harmonics never should exceed the nyquist frequency
;
#X obj 15 49 snapshot~;
#X obj 78 21 bang~;
#X obj 15 72 change;
#X obj 15 177 int;
#X obj 15 200 change;
#X connect 0 0 7 1;
#X connect 1 0 13 0;
#X connect 2 0 0 0;
#X connect 3 0 7 0;
#X connect 3 1 1 1;
#X connect 6 0 10 0;
#X connect 7 0 1 0;
#X connect 8 0 2 0;
#X connect 10 0 12 0;
#X connect 11 0 10 0;
#X connect 12 0 3 0;
#X connect 13 0 14 0;
#X connect 14 0 5 0;
#X restore 161 113 pd number_of_harmonics_allowed;
#X obj 40 33 inlet~;
#X obj 39 456 outlet~;
#X obj 287 374 snapshot~;
#X obj 206 273 == 0;
#X obj 206 377 f;
#X obj 206 356 sel 1;
#X obj 246 320 change;
#X obj 287 348 sel 1;
#X text 33 494 number of harmononics;
#X text 32 512 without exceeding nyquist;
#X text 31 531 at given frequeny:;
#X text 251 520 best method:;
#X obj 559 178 inlet;
#X text 565 150 phase;
#X text 340 346 sync phase \, when switching dsp on;
#X msg 408 69 get_num_of_tables;
#X obj 408 132 route num_of_tables;
#X obj 408 23 loadbang;
#X obj 40 272 phasor~;
#X text 196 81 get the number of tables ->;
#X text 227 496 |;
#X text 227 505 |;
#X text 227 514 |;
#X text 227 523 |;
#X text 227 533 |;
#X text 227 542 |;
#X text 227 551 |;
#X text 227 560 |;
#X text 227 567 |;
#X text 227 576 |;
#X text 227 585 |;
#X text 227 594 |;
#X text 227 604 |;
#X text 25 541 __________________________________________________;
#X text 25 575 __________________________________________________;
#X obj 161 223 >;
#X obj 408 91 s BLSAW;
#X obj 408 111 r BLSAW;
#X text 246 563 bandlimited saw;
#X text 245 595 raw saw;
#X obj 161 143 t f f;
#X text 199 221 switch to raw saw \, when number of allowed harmonics
exceeds num_of_tables;
#X text 32 565 0 < n <= num_of_tables;
#X text 40 596 n > num_of_tables;
#N canvas 0 0 448 226 bandlimited_saw 0;
#X obj 16 31 inlet~;
#X obj 71 33 inlet;
#X obj 261 34 inlet;
#X obj 17 192 outlet~;
#X msg 71 96 set \$1;
#X obj 261 124 switch~;
#X obj 347 36 inlet;
#X text 69 14 choose table;
#X text 346 17 set phase;
#X text 256 14 switch dsp;
#X obj 71 71 makefilename BLSAW%d;
#X obj 17 134 tabosc4~;
#X connect 0 0 11 0;
#X connect 1 0 10 0;
#X connect 2 0 5 0;
#X connect 4 0 11 0;
#X connect 6 0 11 1;
#X connect 10 0 4 0;
#X connect 11 0 3 0;
#X restore 166 405 pd bandlimited_saw;
#N canvas 438 301 207 227 raw_saw 0;
#X obj 6 16 inlet~;
#X obj 7 156 outlet~;
#X obj 118 21 inlet;
#X obj 118 46 switch~;
#X obj 7 66 *~ -2;
#X obj 7 92 +~ 1;
#X connect 0 0 4 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X restore 40 401 pd raw_saw;
#X obj 408 46 del 0;
#X connect 0 0 41 0;
#X connect 1 0 45 0;
#X connect 1 0 0 0;
#X connect 1 0 19 0;
#X connect 3 0 45 3;
#X connect 4 0 6 0;
#X connect 4 0 7 0;
#X connect 5 0 45 1;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 7 0 45 2;
#X connect 8 0 3 0;
#X connect 13 0 45 3;
#X connect 13 0 19 1;
#X connect 16 0 37 0;
#X connect 17 0 36 1;
#X connect 18 0 47 0;
#X connect 19 0 3 0;
#X connect 19 0 46 0;
#X connect 36 0 4 0;
#X connect 36 0 46 1;
#X connect 38 0 17 0;
#X connect 41 0 36 0;
#X connect 41 1 5 1;
#X connect 45 0 2 0;
#X connect 46 0 2 0;
#X connect 47 0 16 0;
#X restore 19 161 pd oscillator~;
#X obj 19 136 inlet~;
#X obj 112 137 inlet;
#X obj 19 185 outlet~;
#N canvas 555 327 605 504 lookup-table-creation 0;
#X obj 15 195 until;
#X obj 15 217 f;
#X obj 50 217 + 1;
#X obj 58 195 1;
#X obj 80 345 pack f s;
#X obj 15 125 t f b b;
#X msg 136 270 clear;
#X obj 15 248 t b f f;
#X obj 15 407 f;
#X obj 15 474 send;
#X msg 80 374 obj 10 \$1 table \$2 515;
#X text 282 374 create the necessary tables;
#X text 238 439 fill each table with the appropriate sinesum \,;
#X text 237 457 respectively the appropriate number of harmonics.;
#X obj 131 318 makefilename BLSAW%d;
#N canvas 535 94 218 342 bandlimited_saw_sinesum 0;
#X obj 43 67 until;
#X obj 21 38 t b f b;
#X obj 84 67 1;
#X obj 43 99 f 1;
#X obj 84 99 + 1;
#X obj 43 194 list prepend;
#X obj 154 195 list;
#X obj 21 233 list;
#X obj 135 129 b;
#X obj 21 278 list trim;
#X obj 21 16 inlet;
#X obj 21 300 outlet;
#X obj 21 256 list prepend sinesum 512;
#X obj 43 143 pow -1;
#X obj 43 167 * 0.63662;
#X text 120 167 = 2 / pi;
#X connect 0 0 3 0;
#X connect 1 0 7 0;
#X connect 1 1 0 0;
#X connect 1 2 2 0;
#X connect 1 2 8 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 3 0 13 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 7 1;
#X connect 6 0 5 1;
#X connect 7 0 12 0;
#X connect 8 0 7 1;
#X connect 8 0 5 1;
#X connect 9 0 11 0;
#X connect 10 0 1 0;
#X connect 12 0 9 0;
#X connect 13 0 14 0;
#X connect 14 0 5 0;
#X restore 15 442 pd bandlimited_saw_sinesum;
#X obj 80 317 * 20;
#X obj 80 396 s pd-\$0-lookup-tables-saw;
#X obj 138 123 r \$0-create_additional_tables;
#X obj 15 28 r \$0-create_tables;
#X obj 15 66 \$1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 7 0;
#X connect 2 0 1 1;
#X connect 3 0 1 1;
#X connect 4 0 10 0;
#X connect 5 0 0 0;
#X connect 5 1 3 0;
#X connect 5 2 6 0;
#X connect 6 0 17 0;
#X connect 7 0 8 0;
#X connect 7 1 16 0;
#X connect 7 2 8 1;
#X connect 7 2 14 0;
#X connect 8 0 15 0;
#X connect 10 0 17 0;
#X connect 14 0 4 1;
#X connect 14 0 9 1;
#X connect 15 0 9 0;
#X connect 16 0 4 0;
#X connect 18 0 0 0;
#X connect 19 0 20 0;
#X connect 20 0 5 0;
#X restore 22 66 pd lookup-table-creation;
#N canvas 647 5 291 900 \$0-lookup-tables-saw 0;
#X restore 22 94 pd \$0-lookup-tables-saw;
#X msg 204 226 version 0.2.0;
#N canvas 169 33 537 620 singleton-communication 0;
#X obj 127 22 loadbang;
#X obj 171 100 + 1;
#X obj 16 96 spigot;
#X obj 149 153 == 1;
#X obj 127 47 t b b b;
#X obj 270 225 \$1;
#X obj 127 184 t b b;
#X msg 270 246 newdollar1 \$1;
#X obj 125 396 > \$1;
#X obj 134 419 sel 1;
#X obj 134 441 f;
#X text 189 397 if new is bigger \, use new number_of_tables;
#X obj 134 373 t f f f;
#X obj 178 502 - \$1;
#X obj 178 526 moses 1;
#X obj 222 549 s \$0-create_additional_tables;
#X obj 127 214 f;
#X obj 127 240 sel 1;
#X obj 127 264 s \$0-create_tables;
#X obj 18 348 route get_num_of_tables newdollar1;
#X obj 18 423 \$1;
#X msg 18 461 num_of_tables \$1;
#X obj 171 77 value BLSAW.instance;
#X obj 149 131 value BLSAW.instance;
#X obj 270 267 s BLSAW;
#X obj 16 69 r BLSAW;
#X obj 16 120 s \$0-BLSAW;
#X obj 18 319 r \$0-BLSAW;
#X obj 18 488 s BLSAW;
#X connect 0 0 4 0;
#X connect 1 0 23 0;
#X connect 2 0 26 0;
#X connect 3 0 2 1;
#X connect 3 0 16 1;
#X connect 4 0 6 0;
#X connect 4 1 23 0;
#X connect 4 2 22 0;
#X connect 5 0 7 0;
#X connect 6 0 16 0;
#X connect 6 1 5 0;
#X connect 7 0 24 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 8 1;
#X connect 10 0 13 1;
#X connect 10 0 20 1;
#X connect 12 0 8 0;
#X connect 12 1 10 1;
#X connect 12 2 13 0;
#X connect 13 0 14 0;
#X connect 14 1 15 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 19 0 20 0;
#X connect 19 1 12 0;
#X connect 20 0 21 0;
#X connect 21 0 28 0;
#X connect 22 0 1 0;
#X connect 23 0 3 0;
#X connect 25 0 2 0;
#X connect 27 0 19 0;
#X restore 21 36 pd singleton-communication;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 2 1;