-
Notifications
You must be signed in to change notification settings - Fork 13
/
bl-asymtri.mmb~.pd
243 lines (243 loc) · 6.2 KB
/
bl-asymtri.mmb~.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
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
#N canvas 0 22 985 808 10;
#X obj 74 88 inlet~;
#X obj 183 214 vphasor.mmb~;
#X obj 535 115 samplerate~;
#X obj 535 172 / 2;
#X obj 535 10 loadbang;
#X obj 521 222 /~;
#X obj 134 748 outlet~;
#X obj 67 512 *~ 2;
#X obj 67 540 -~ 1;
#X obj 133 707 lin-xfade.mmb~;
#X obj 279 672 /~ 1;
#X obj 385 89 inlet;
#X obj 279 648 -~ 30;
#X obj 629 104 v \$1-bl-maxsamprate.mmb;
#X obj 535 145 min 44100;
#X obj 535 82 t b b;
#X obj 629 131 sel 0;
#X msg 629 155 44100;
#X obj 629 71 r \$1-bl-getmaxsamprate.mmb;
#X obj 570 219 / 30;
#X obj 570 244 int;
#X obj 570 289 s \$0-maxharmonics;
#X obj 570 266 - 1;
#X obj 304 88 inlet~;
#X obj 289 277 +~;
#X obj 304 206 clip~ 0 1;
#X obj 289 297 +~ 1;
#X obj 289 317 wrap~;
#X obj 67 475 expr~ $v1>$v2;
#X text 488 496 adjust for DC offset and amplitude;
#N canvas 495 50 818 674 parabola 0;
#X obj 467 317 expr~ if($v1<1 \, $v1 \, 2-$v1);
#X obj 404 103 expr~ abs(fmod($v1 \, 2));
#X obj 100 307 *~ 1027;
#X obj 100 330 +~ 1;
#X obj 100 245 -~;
#X obj 100 280 clip~ 0 1;
#X obj 176 112 expr~ int($v1);
#X obj 282 307 *~ 1027;
#X obj 282 330 +~ 1;
#X obj 282 245 -~;
#X obj 282 280 clip~ 0 1;
#X obj 80 111 *~ 1024;
#X obj 80 356 +~;
#X obj 262 356 +~;
#X obj 167 484 lin-xfade.mmb~;
#X obj 80 46 inlet~;
#X text 95 64 phasor;
#X obj 290 46 inlet~;
#X text 338 52 number of harmonics;
#X obj 167 542 outlet~;
#X text 543 340 ping pong crossfader;
#X text 469 383 evens;
#X text 11 382 odds;
#X text 447 162 <-- these guys make sure that one tabread is using
on less harmonic than the other. If int(harmonics) is even \, then
odds has on less harmonic \, and vise versa. They switch when the crossfader
brings them to silence.;
#X obj 163 243 r \$0-maxharmonics;
#X obj 339 161 expr~ $v1<1;
#X obj 340 200 expr~ $v1>1;
#X obj 50 383 tabread4~ \$1-bl-parabolatable.mmb;
#X obj 262 384 tabread4~ \$1-bl-parabolatable.mmb;
#X obj 167 511 +~ 0.5;
#X connect 0 0 14 2;
#X connect 1 0 0 0;
#X connect 1 0 25 0;
#X connect 1 0 26 0;
#X connect 2 0 3 0;
#X connect 3 0 12 1;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 6 0 4 0;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 8 0 13 1;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 12 0 27 0;
#X connect 13 0 28 0;
#X connect 14 0 29 0;
#X connect 15 0 11 0;
#X connect 17 0 6 0;
#X connect 17 0 1 0;
#X connect 24 0 5 2;
#X connect 24 0 10 2;
#X connect 25 0 4 1;
#X connect 26 0 9 1;
#X connect 27 0 14 0;
#X connect 28 0 14 1;
#X connect 29 0 19 0;
#X restore 183 349 pd parabola;
#N canvas 495 50 818 674 parabola 0;
#X obj 467 317 expr~ if($v1<1 \, $v1 \, 2-$v1);
#X obj 404 103 expr~ abs(fmod($v1 \, 2));
#X obj 100 307 *~ 1027;
#X obj 100 330 +~ 1;
#X obj 100 245 -~;
#X obj 100 280 clip~ 0 1;
#X obj 176 112 expr~ int($v1);
#X obj 282 307 *~ 1027;
#X obj 282 330 +~ 1;
#X obj 282 245 -~;
#X obj 282 280 clip~ 0 1;
#X obj 80 111 *~ 1024;
#X obj 80 356 +~;
#X obj 262 356 +~;
#X obj 167 484 lin-xfade.mmb~;
#X obj 80 46 inlet~;
#X text 95 64 phasor;
#X obj 290 46 inlet~;
#X text 338 52 number of harmonics;
#X obj 167 542 outlet~;
#X text 543 340 ping pong crossfader;
#X text 469 383 evens;
#X text 11 382 odds;
#X text 447 162 <-- these guys make sure that one tabread is using
on less harmonic than the other. If int(harmonics) is even \, then
odds has on less harmonic \, and vise versa. They switch when the crossfader
brings them to silence.;
#X obj 163 243 r \$0-maxharmonics;
#X obj 339 161 expr~ $v1<1;
#X obj 340 200 expr~ $v1>1;
#X obj 50 383 tabread4~ \$1-bl-parabolatable.mmb;
#X obj 262 384 tabread4~ \$1-bl-parabolatable.mmb;
#X obj 167 511 +~ 0.5;
#X connect 0 0 14 2;
#X connect 1 0 0 0;
#X connect 1 0 25 0;
#X connect 1 0 26 0;
#X connect 2 0 3 0;
#X connect 3 0 12 1;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 6 0 4 0;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 8 0 13 1;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 12 0 27 0;
#X connect 13 0 28 0;
#X connect 14 0 29 0;
#X connect 15 0 11 0;
#X connect 17 0 6 0;
#X connect 17 0 1 0;
#X connect 24 0 5 2;
#X connect 24 0 10 2;
#X connect 25 0 4 1;
#X connect 26 0 9 1;
#X connect 27 0 14 0;
#X connect 28 0 14 1;
#X connect 29 0 19 0;
#X restore 289 350 pd parabola;
#X obj 187 633 *~;
#X obj 474 520 expr~ 1/(8*($v1-$v1*$v1));
#X obj 238 502 -~;
#X obj 535 42 t b b;
#N canvas 0 22 677 547 check.for.bl-init 0;
#X obj 117 64 inlet;
#X obj 162 119 s \$1-bl-init.ping.mmb;
#X obj 117 86 t b b;
#X obj 162 153 r \$1-bl-init.pong.mmb;
#X msg 162 177 0;
#X obj 117 201 spigot 1;
#X obj 117 359 s pd-\$0-bl-init;
#N canvas 761 22 450 300 \$0-bl-init 0;
#X restore 333 384 pd \$0-bl-init;
#X text 124 436 This pings [bl-init.mmb \$1] and creates an instance
of it if it does not exist.;
#X obj 117 225 f \$1;
#X msg 144 323 obj 20 20 bl-init.mmb \$1 \, loadbang;
#X obj 117 254 sel 0;
#X msg 117 293 obj 20 20 bl-init.mmb \, loadbang;
#X text 321 285 apparently no argument doesn't mean \$1 in [send] and
[receive] will be 0;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 2 1 1 0;
#X connect 3 0 4 0;
#X connect 4 0 5 1;
#X connect 5 0 9 0;
#X connect 9 0 11 0;
#X connect 10 0 6 0;
#X connect 11 0 12 0;
#X connect 11 1 10 0;
#X connect 12 0 6 0;
#X restore 579 42 pd check.for.bl-init;
#X obj 467 30 r pd;
#X obj 467 52 route dsp;
#X obj 467 74 sel 1;
#X connect 0 0 5 1;
#X connect 0 0 1 0;
#X connect 0 0 12 0;
#X connect 1 0 24 0;
#X connect 1 0 30 0;
#X connect 1 0 28 0;
#X connect 2 0 14 0;
#X connect 3 0 5 0;
#X connect 3 0 19 0;
#X connect 4 0 35 0;
#X connect 5 0 30 1;
#X connect 5 0 31 1;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 6 0;
#X connect 10 0 9 2;
#X connect 11 0 1 1;
#X connect 12 0 10 0;
#X connect 13 0 16 0;
#X connect 14 0 3 0;
#X connect 15 0 2 0;
#X connect 15 1 13 0;
#X connect 16 0 17 0;
#X connect 16 1 14 1;
#X connect 17 0 14 1;
#X connect 18 0 13 0;
#X connect 19 0 20 0;
#X connect 20 0 22 0;
#X connect 22 0 21 0;
#X connect 23 0 25 0;
#X connect 24 0 26 0;
#X connect 25 0 24 1;
#X connect 25 0 28 1;
#X connect 25 0 33 0;
#X connect 26 0 27 0;
#X connect 27 0 31 0;
#X connect 28 0 7 0;
#X connect 30 0 34 0;
#X connect 31 0 34 1;
#X connect 32 0 9 1;
#X connect 33 0 32 1;
#X connect 34 0 32 0;
#X connect 35 0 15 0;
#X connect 35 1 36 0;
#X connect 37 0 38 0;
#X connect 38 0 39 0;
#X connect 39 0 15 0;