-
Notifications
You must be signed in to change notification settings - Fork 13
/
bl-pulse2.mmb~.pd
242 lines (242 loc) · 6.14 KB
/
bl-pulse2.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
#N canvas 479 22 961 797 10;
#X obj 54 78 inlet~;
#X obj 455 105 samplerate~;
#X obj 455 162 / 2;
#X obj 455 10 loadbang;
#X obj 441 212 /~;
#X obj 124 738 outlet~;
#X obj 123 697 lin-xfade.mmb~;
#X obj 269 662 /~ 1;
#X obj 269 638 -~ 30;
#X obj 549 94 v \$1-bl-maxsamprate.mmb;
#X obj 455 135 min 44100;
#X obj 455 72 t b b;
#X obj 549 121 sel 0;
#X msg 549 145 44100;
#X obj 549 61 r \$1-bl-getmaxsamprate.mmb;
#N canvas 495 50 818 674 sawtooth 0;
#X obj 80 383 tabread4~ \$1-bl-sawtable.mmb;
#X obj 262 384 tabread4~ \$1-bl-sawtable.mmb;
#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 522 outlet~;
#X text 543 340 ping pong crossfader;
#X text 439 383 evens;
#X text 41 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 connect 0 0 16 0;
#X connect 1 0 16 1;
#X connect 2 0 16 2;
#X connect 3 0 2 0;
#X connect 3 0 27 0;
#X connect 3 0 28 0;
#X connect 4 0 5 0;
#X connect 5 0 14 1;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 8 0 6 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 10 0 15 1;
#X connect 11 0 12 0;
#X connect 12 0 9 0;
#X connect 13 0 14 0;
#X connect 13 0 15 0;
#X connect 14 0 0 0;
#X connect 15 0 1 0;
#X connect 16 0 21 0;
#X connect 17 0 13 0;
#X connect 19 0 8 0;
#X connect 19 0 3 0;
#X connect 26 0 7 2;
#X connect 26 0 12 2;
#X connect 27 0 6 1;
#X connect 28 0 11 1;
#X restore 173 339 pd sawtooth;
#X obj 490 209 / 30;
#X obj 490 234 int;
#X obj 490 279 s \$0-maxharmonics;
#X obj 490 256 - 1;
#X obj 294 78 inlet~;
#X obj 279 267 +~;
#X obj 294 196 clip~ 0 1;
#X obj 279 293 +~ 1;
#X obj 279 313 wrap~;
#N canvas 495 50 818 674 sawtooth 0;
#X obj 80 383 tabread4~ \$1-bl-sawtable.mmb;
#X obj 262 384 tabread4~ \$1-bl-sawtable.mmb;
#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 522 outlet~;
#X text 543 340 ping pong crossfader;
#X text 439 383 evens;
#X text 41 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 connect 0 0 16 0;
#X connect 1 0 16 1;
#X connect 2 0 16 2;
#X connect 3 0 2 0;
#X connect 3 0 27 0;
#X connect 3 0 28 0;
#X connect 4 0 5 0;
#X connect 5 0 14 1;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 8 0 6 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 10 0 15 1;
#X connect 11 0 12 0;
#X connect 12 0 9 0;
#X connect 13 0 14 0;
#X connect 13 0 15 0;
#X connect 14 0 0 0;
#X connect 15 0 1 0;
#X connect 16 0 21 0;
#X connect 17 0 13 0;
#X connect 19 0 8 0;
#X connect 19 0 3 0;
#X connect 26 0 7 2;
#X connect 26 0 12 2;
#X connect 27 0 6 1;
#X connect 28 0 11 1;
#X restore 279 339 pd sawtooth;
#X obj 228 492 -~;
#X obj 425 479 -~ 0.5;
#X obj 178 623 +~;
#X text 478 486 adjust for DC offset and amplitude;
#X obj 57 465 expr~ $v1>$v2;
#X obj 294 236 expr~ 1-$v1;
#X obj 424 502 *~ 2;
#X obj 57 502 *~ -2;
#X obj 57 530 +~ 1;
#X obj 455 42 t b b;
#N canvas 0 22 737 544 check.for.bl-init 0;
#X obj 137 64 inlet;
#X obj 182 119 s \$1-bl-init.ping.mmb;
#X obj 137 86 t b b;
#X obj 182 153 r \$1-bl-init.pong.mmb;
#X msg 182 177 0;
#X obj 137 201 spigot 1;
#X obj 137 359 s pd-\$0-bl-init;
#N canvas 761 22 450 300 \$0-bl-init 0;
#X restore 353 384 pd \$0-bl-init;
#X text 144 436 This pings [bl-init.mmb \$1] and creates an instance
of it if it does not exist.;
#X obj 137 225 f \$1;
#X msg 164 323 obj 20 20 bl-init.mmb \$1 \, loadbang;
#X obj 137 254 sel 0;
#X msg 137 293 obj 20 20 bl-init.mmb \, loadbang;
#X text 341 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 499 42 pd check.for.bl-init;
#X text 41 45 phasor;
#X obj 164 78 inlet~;
#X text 160 46 freq;
#X obj 384 27 r pd;
#X obj 384 49 route dsp;
#X obj 384 71 sel 1;
#X connect 0 0 21 0;
#X connect 0 0 15 0;
#X connect 0 0 30 0;
#X connect 1 0 10 0;
#X connect 2 0 4 0;
#X connect 2 0 16 0;
#X connect 3 0 35 0;
#X connect 4 0 15 1;
#X connect 4 0 25 1;
#X connect 6 0 5 0;
#X connect 7 0 6 2;
#X connect 8 0 7 0;
#X connect 9 0 12 0;
#X connect 10 0 2 0;
#X connect 11 0 1 0;
#X connect 11 1 9 0;
#X connect 12 0 13 0;
#X connect 12 1 10 1;
#X connect 13 0 10 1;
#X connect 14 0 9 0;
#X connect 15 0 26 0;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 19 0 18 0;
#X connect 20 0 22 0;
#X connect 21 0 23 0;
#X connect 22 0 27 0;
#X connect 22 0 30 1;
#X connect 22 0 31 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 26 1;
#X connect 26 0 28 0;
#X connect 27 0 32 0;
#X connect 28 0 6 1;
#X connect 30 0 33 0;
#X connect 31 0 21 1;
#X connect 32 0 28 1;
#X connect 33 0 34 0;
#X connect 34 0 6 0;
#X connect 35 0 11 0;
#X connect 35 1 36 0;
#X connect 38 0 4 1;
#X connect 38 0 8 0;
#X connect 40 0 41 0;
#X connect 41 0 42 0;
#X connect 42 0 11 0;