-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathbl-saw2.mmb~.pd
152 lines (152 loc) · 3.86 KB
/
bl-saw2.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
#N canvas 523 22 917 809 10;
#X obj 74 68 inlet~;
#X obj 355 95 samplerate~;
#X obj 355 152 / 2;
#X obj 355 10 loadbang;
#X obj 341 202 /~;
#X obj 114 728 outlet~;
#X obj 47 572 *~ 2;
#X obj 47 600 -~ 1;
#X obj 113 687 lin-xfade.mmb~;
#X obj 259 652 /~ 1;
#X obj 259 628 -~ 30;
#X obj 449 84 v \$1-bl-maxsamprate.mmb;
#X obj 355 125 min 44100;
#X obj 355 62 t b b;
#X obj 449 111 sel 0;
#X msg 449 135 44100;
#X obj 449 51 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 207 424 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 207 462 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 175 299 pd sawtooth;
#X obj 390 199 / 30;
#X obj 390 224 int;
#X obj 390 269 s \$0-maxharmonics;
#X obj 390 246 - 1;
#X obj 355 32 t b b;
#N canvas 0 22 735 511 check.for.bl-init 0;
#X obj 127 54 inlet;
#X obj 172 109 s \$1-bl-init.ping.mmb;
#X obj 127 76 t b b;
#X obj 172 143 r \$1-bl-init.pong.mmb;
#X msg 172 167 0;
#X obj 127 191 spigot 1;
#X obj 127 349 s pd-\$0-bl-init;
#N canvas 761 22 450 300 \$0-bl-init 0;
#X restore 343 374 pd \$0-bl-init;
#X text 134 426 This pings [bl-init.mmb \$1] and creates an instance
of it if it does not exist.;
#X obj 127 215 f \$1;
#X msg 154 313 obj 20 20 bl-init.mmb \$1 \, loadbang;
#X obj 127 244 sel 0;
#X msg 127 283 obj 20 20 bl-init.mmb \, loadbang;
#X text 331 275 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 399 32 pd check.for.bl-init;
#X obj 164 68 inlet~;
#X text 61 38 phasor;
#X text 158 41 freq;
#X obj 282 27 r pd;
#X obj 282 49 route dsp;
#X obj 282 71 sel 1;
#X connect 0 0 17 0;
#X connect 0 0 6 0;
#X connect 1 0 12 0;
#X connect 2 0 4 0;
#X connect 2 0 18 0;
#X connect 3 0 22 0;
#X connect 4 0 17 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 9 0 8 2;
#X connect 10 0 9 0;
#X connect 11 0 14 0;
#X connect 12 0 2 0;
#X connect 13 0 1 0;
#X connect 13 1 11 0;
#X connect 14 0 15 0;
#X connect 14 1 12 1;
#X connect 15 0 12 1;
#X connect 16 0 11 0;
#X connect 17 0 8 1;
#X connect 18 0 19 0;
#X connect 19 0 21 0;
#X connect 21 0 20 0;
#X connect 22 0 13 0;
#X connect 22 1 23 0;
#X connect 24 0 4 1;
#X connect 24 0 10 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 29 0 13 0;