aboutsummaryrefslogtreecommitdiff
path: root/blosc/blsquare~.pd
blob: bb9c0d8221c1b34f96a8ebf535d4c68c7460474b (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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
#N canvas 257 128 333 328 10;
#X text 137 277 copyright by Roman Haefeli;
#X text 53 304 Published under the GNU Public License;
#N canvas 0 0 655 649 oscillator 0;
#N canvas 314 100 514 407 number_of_harmonics_allowed 0;
#X obj 135 68 / 2;
#X obj 15 151 /;
#X obj 15 174 int;
#X obj 135 44 samplerate~;
#X obj 15 241 * 0.5;
#X obj 15 261 int;
#X obj 15 282 * 2;
#X obj 15 221 - 1;
#X obj 15 305 + 1;
#X obj 15 328 change;
#X obj 15 199 change;
#X obj 15 98 t b f;
#X text 241 49 sr / 2 = nyquist frequency;
#X obj 15 353 outlet;
#X obj 14 18 inlet~;
#X obj 15 121 f;
#X obj 135 21 loadbang;
#X text 119 216 harmonics never should exceed the nyquist frequency
;
#X obj 15 49 snapshot~;
#X obj 78 21 bang~;
#X obj 15 72 change;
#X connect 0 0 15 1;
#X connect 1 0 2 0;
#X connect 2 0 10 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 9 0 13 0;
#X connect 10 0 7 0;
#X connect 11 0 15 0;
#X connect 11 1 1 1;
#X connect 14 0 18 0;
#X connect 15 0 1 0;
#X connect 16 0 3 0;
#X connect 18 0 20 0;
#X connect 19 0 18 0;
#X connect 20 0 11 0;
#X restore 150 113 pd number_of_harmonics_allowed;
#N canvas 499 174 190 222 raw_square 0;
#X obj 19 13 inlet~;
#X obj 19 180 outlet~;
#X obj 102 18 inlet;
#X obj 102 43 switch~;
#X obj 19 122 -~;
#X obj 19 48 -~ 0.5;
#X obj 18 76 wrap~;
#X obj 18 99 -~ 0.5;
#X obj 19 148 *~ 2;
#X connect 0 0 5 0;
#X connect 2 0 3 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 5 0 4 1;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 8 0 1 0;
#X restore 29 404 pd raw_square;
#N canvas 0 0 448 226 bandlimited_square 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 BLSQUARE%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 155 405 pd bandlimited_square;
#X obj 166 192 * 2;
#X obj 297 374 snapshot~;
#X obj 150 143 t f f f;
#X obj 202 273 == 0;
#X obj 202 377 f;
#X obj 202 356 sel 1;
#X obj 249 319 change;
#X obj 297 348 sel 1;
#X obj 548 178 inlet;
#X text 550 151 phase;
#X text 350 346 sync phase \, when switching dsp on;
#X text 188 221 switch to raw square \, when number of allowed harmonics
exceeds num_of_tables*2;
#X msg 397 69 get_num_of_tables;
#X obj 397 91 s BLSQUARE;
#X obj 397 111 r BLSQUARE;
#X obj 397 132 route num_of_tables;
#X obj 397 11 loadbang;
#X obj 29 272 phasor~;
#X text 185 81 get the number of tables ->;
#X obj 150 223 >;
#X obj 30 7 inlet~;
#X obj 28 456 outlet~;
#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 text 245 595 raw square;
#X text 246 563 bandlimited square;
#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 text 40 596 n > num_of_tables*2;
#X text 32 565 0 < n < num_of_tables*2;
#X obj 397 42 del 0;
#X connect 0 0 5 0;
#X connect 1 0 24 0;
#X connect 2 0 24 0;
#X connect 3 0 22 1;
#X connect 4 0 2 3;
#X connect 5 0 22 0;
#X connect 5 1 7 1;
#X connect 6 0 8 0;
#X connect 6 0 9 0;
#X connect 7 0 2 1;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 0 2 2;
#X connect 10 0 4 0;
#X connect 11 0 2 3;
#X connect 11 0 20 1;
#X connect 15 0 16 0;
#X connect 17 0 18 0;
#X connect 18 0 3 0;
#X connect 19 0 48 0;
#X connect 20 0 1 0;
#X connect 20 0 4 0;
#X connect 22 0 1 1;
#X connect 22 0 6 0;
#X connect 23 0 20 0;
#X connect 23 0 0 0;
#X connect 23 0 2 0;
#X connect 48 0 15 0;
#X restore 20 188 pd oscillator;
#X obj 19 161 inlet~;
#X obj 106 161 inlet;
#X obj 20 214 outlet~;
#X msg 221 246 version 0.2.0;
#N canvas 555 327 605 504 lookup-table-creation 0;
#N canvas 535 94 265 461 bandlimited_square_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 125 t f f;
#X obj 43 153 % 2;
#X obj 43 176 sel 0 1;
#X obj 43 203 0;
#X obj 69 203 f;
#X obj 69 227 t b f;
#X obj 69 249 pack 1 f;
#X obj 69 274 /;
#X obj 43 334 list prepend;
#X obj 142 335 list;
#X obj 21 363 list;
#X obj 154 252 b;
#X obj 21 408 list trim;
#X obj 21 16 inlet;
#X obj 21 430 outlet;
#X obj 21 386 list prepend sinesum 512;
#X obj 69 299 * 1.27324;
#X text 145 298 = 4 / pi;
#X connect 0 0 3 0;
#X connect 1 0 15 0;
#X connect 1 1 0 0;
#X connect 1 2 2 0;
#X connect 1 2 16 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 1 9 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 13 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 12 0;
#X connect 12 0 21 0;
#X connect 13 0 14 0;
#X connect 13 0 15 1;
#X connect 14 0 13 1;
#X connect 15 0 20 0;
#X connect 16 0 15 1;
#X connect 16 0 13 1;
#X connect 17 0 19 0;
#X connect 18 0 1 0;
#X connect 20 0 17 0;
#X connect 21 0 13 0;
#X restore 15 442 pd bandlimited_square_sinesum;
#X obj 15 195 until;
#X obj 15 217 f;
#X obj 50 217 + 1;
#X obj 58 195 1;
#X obj 15 238 * 2;
#X obj 15 260 - 1;
#X obj 80 345 pack f s;
#X obj 15 100 t f b b;
#X msg 136 270 clear;
#X obj 80 317 * 10;
#X obj 15 282 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 obj 131 318 makefilename BLSQUARE%d;
#X text 131 214 for synthesizing a square only odd numbers of harmonics
;
#X text 131 231 occur. ( 1 \, 3 \, 5 \, 7 \, etc.);
#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 138 123 r \$0-create_additional_tables;
#X obj 15 33 r \$0-create_tables;
#X obj 15 66 \$1;
#X obj 80 396 s pd-\$0-lookup-tables-square;
#X connect 0 0 13 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 1;
#X connect 4 0 2 1;
#X connect 5 0 6 0;
#X connect 6 0 11 0;
#X connect 7 0 14 0;
#X connect 8 0 1 0;
#X connect 8 1 4 0;
#X connect 8 2 9 0;
#X connect 9 0 24 0;
#X connect 10 0 7 0;
#X connect 11 0 12 0;
#X connect 11 1 10 0;
#X connect 11 2 12 1;
#X connect 11 2 15 0;
#X connect 12 0 0 0;
#X connect 14 0 24 0;
#X connect 15 0 7 1;
#X connect 15 0 13 1;
#X connect 21 0 1 0;
#X connect 22 0 23 0;
#X connect 23 0 8 0;
#X restore 21 70 pd lookup-table-creation;
#N canvas 647 5 291 900 \$0-lookup-tables-square 0;
#X restore 21 105 pd \$0-lookup-tables-square;
#N canvas 169 33 537 620 singleton-communication 0;
#X obj 16 69 r BLSQUARE;
#X obj 127 22 loadbang;
#X obj 171 77 value BLSQUARE.instance;
#X obj 171 100 + 1;
#X obj 149 131 value BLSQUARE.instance;
#X obj 16 96 spigot;
#X obj 149 153 == 1;
#X obj 16 120 s \$0-BLSQUARE;
#X obj 18 319 r \$0-BLSQUARE;
#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 270 267 s BLSQUARE;
#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 18 488 s BLSQUARE;
#X connect 0 0 5 0;
#X connect 1 0 9 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 5 1;
#X connect 6 0 22 1;
#X connect 8 0 25 0;
#X connect 9 0 11 0;
#X connect 9 1 4 0;
#X connect 9 2 2 0;
#X connect 10 0 12 0;
#X connect 11 0 22 0;
#X connect 11 1 10 0;
#X connect 12 0 13 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 14 1;
#X connect 16 0 19 1;
#X connect 16 0 26 1;
#X connect 18 0 14 0;
#X connect 18 1 16 1;
#X connect 18 2 19 0;
#X connect 19 0 20 0;
#X connect 20 1 21 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 25 0 26 0;
#X connect 25 1 18 0;
#X connect 26 0 27 0;
#X connect 27 0 28 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;