aboutsummaryrefslogtreecommitdiff
path: root/blosc/bltriangle~.pd
blob: 3d639373928c28df182f4ffdee3e0d98d052aecf (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
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
#N canvas 203 22 341 345 10;
#X text 130 266 copyright by Roman Haefeli;
#X text 46 293 Published under the GNU Public License;
#N canvas 0 0 626 647 oscilllator~ 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 161 113 pd number_of_harmonics_allowed;
#X obj 40 33 inlet~;
#X obj 39 463 outlet~;
#X obj 177 192 * 2;
#X obj 322 360 snapshot~;
#X obj 161 143 t f f f;
#X obj 218 273 == 0;
#X obj 218 377 f;
#X obj 218 356 sel 1;
#X obj 270 302 change;
#X obj 322 334 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 375 332 sync phase \, when switching dsp on;
#X text 199 221 switch to raw square \, when number of allowed harmonics
exceeds num_of_tables*2;
#X msg 408 69 get_num_of_tables;
#X obj 408 132 route num_of_tables;
#X obj 408 20 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 text 40 596 n > num_of_tables*2;
#X text 32 565 0 < n < num_of_tables*2;
#X obj 408 91 s BLTRIANGLE;
#X obj 408 111 r BLTRIANGLE;
#N canvas 499 174 200 210 raw_triangle 0;
#X obj 19 13 inlet~;
#X obj 18 159 outlet~;
#X obj 102 18 inlet;
#X obj 102 43 switch~;
#X obj 43 41 *~ -1;
#X obj 43 63 +~ 1;
#X obj 19 86 min~;
#X obj 18 110 *~ 4;
#X obj 18 136 -~ 1;
#X connect 0 0 6 0;
#X connect 0 0 4 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X restore 40 411 pd raw_triangle;
#N canvas 0 0 448 226 bandlimited_triangle 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 BLTRIANGLE%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 412 pd bandlimited_triangle;
#X text 246 563 bandlimited triangle;
#X text 245 595 raw triangle;
#X obj 84 247 + 0.25;
#X obj 322 385 + 0.75;
#X obj 408 45 del 0;
#X connect 0 0 5 0;
#X connect 1 0 45 0;
#X connect 1 0 0 0;
#X connect 1 0 22 0;
#X connect 3 0 39 1;
#X connect 4 0 49 0;
#X connect 5 0 39 0;
#X connect 5 1 7 1;
#X connect 6 0 8 0;
#X connect 6 0 9 0;
#X connect 7 0 45 1;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 0 45 2;
#X connect 10 0 4 0;
#X connect 15 0 45 3;
#X connect 15 0 48 0;
#X connect 19 0 42 0;
#X connect 20 0 3 0;
#X connect 21 0 50 0;
#X connect 22 0 44 0;
#X connect 22 0 4 0;
#X connect 39 0 44 1;
#X connect 39 0 6 0;
#X connect 43 0 20 0;
#X connect 44 0 2 0;
#X connect 45 0 2 0;
#X connect 48 0 22 1;
#X connect 49 0 45 3;
#X connect 50 0 19 0;
#X restore 22 168 pd oscilllator~;
#X obj 21 137 inlet~;
#X obj 122 137 inlet;
#X obj 21 196 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 15 238 * 2;
#X obj 15 260 - 1;
#X obj 80 345 pack f s;
#X obj 15 105 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 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 131 318 makefilename BLTRIANGLE%d;
#N canvas 535 94 364 553 bandlimited_triangle_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 43 415 list prepend;
#X obj 142 416 list;
#X obj 21 444 list;
#X obj 21 489 list trim;
#X obj 21 16 inlet;
#X obj 21 511 outlet;
#X obj 21 467 list prepend sinesum 512;
#X obj 191 274 b;
#X obj 83 99 + 1;
#X obj 43 175 sel 0 1;
#X obj 43 200 0;
#X obj 70 201 f;
#X obj 43 125 t f f;
#X obj 43 151 mod 2;
#X obj 100 245 mod 4;
#X obj 70 222 t f f;
#X obj 100 267 sel 3;
#X obj 136 290 b;
#X obj 100 290 -1;
#X obj 136 312 1;
#X obj 70 323 pow -2;
#X obj 70 349 *;
#X obj 70 376 * 0.810571;
#X text 163 375 = 8 / (pi^2);
#X connect 0 0 3 0;
#X connect 1 0 6 0;
#X connect 1 1 0 0;
#X connect 1 2 2 0;
#X connect 1 2 11 0;
#X connect 2 0 3 1;
#X connect 3 0 12 0;
#X connect 3 0 16 0;
#X connect 4 0 5 0;
#X connect 4 0 6 1;
#X connect 5 0 4 1;
#X connect 6 0 10 0;
#X connect 7 0 9 0;
#X connect 8 0 1 0;
#X connect 10 0 7 0;
#X connect 11 0 6 1;
#X connect 11 0 4 1;
#X connect 12 0 3 1;
#X connect 13 0 14 0;
#X connect 13 1 15 0;
#X connect 14 0 4 0;
#X connect 15 0 19 0;
#X connect 16 0 17 0;
#X connect 16 1 15 1;
#X connect 17 0 13 0;
#X connect 18 0 20 0;
#X connect 19 0 24 0;
#X connect 19 1 18 0;
#X connect 20 0 22 0;
#X connect 20 1 21 0;
#X connect 21 0 23 0;
#X connect 22 0 25 1;
#X connect 23 0 25 1;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 4 0;
#X restore 15 442 pd bandlimited_triangle_sinesum;
#X text 131 214 for synthesizing a triangle only odd numbered of harmonics
;
#X obj 15 16 r \$0-create_tables;
#X obj 15 59 \$1;
#X obj 122 142 r \$0-create_additional_tables;
#X obj 80 410 s pd-\$0-lookup-tables-triangle;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 1 1;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 6 0 13 0;
#X connect 7 0 0 0;
#X connect 7 1 3 0;
#X connect 7 2 8 0;
#X connect 8 0 24 0;
#X connect 9 0 6 0;
#X connect 10 0 11 0;
#X connect 10 1 9 0;
#X connect 10 2 11 1;
#X connect 10 2 18 0;
#X connect 11 0 19 0;
#X connect 13 0 24 0;
#X connect 18 0 6 1;
#X connect 18 0 12 1;
#X connect 19 0 12 0;
#X connect 21 0 22 0;
#X connect 22 0 7 0;
#X connect 23 0 0 0;
#X restore 21 63 pd lookup-table-creation;
#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 BLTRIANGLE.instance;
#X obj 149 131 value BLTRIANGLE.instance;
#X obj 270 267 s BLTRIANGLE;
#X obj 16 69 r BLTRIANGLE;
#X obj 16 120 s \$0-BLTRIANGLE;
#X obj 18 319 r \$0-BLTRIANGLE;
#X obj 18 488 s BLTRIANGLE;
#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 msg 214 235 version 0.2.0;
#N canvas 647 5 291 900 \$0-lookup-tables-triangle 0;
#X restore 21 91 pd \$0-lookup-tables-triangle;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 2 1;