-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathWAVESHAPER.pd
279 lines (279 loc) · 8.71 KB
/
WAVESHAPER.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
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
#N canvas 0 73 1280 700 10;
#N canvas 0 50 450 300 (subpatch) 0;
#X array \$0_Function 1003 float 5;
#A 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
#A 1000 1 1 1;
#X coords 0 1 1002 -1 250 160 1 0 0;
#X restore 733 338 graph;
#X obj 402 260 *~ 500;
#X text 304 320 WAVESHAPER;
#X text 269 372 HIGH PASS FILTER;
#X text 208 260 'Function' ARRAY HALF SIZE;
#X text 310 290 DC OFFSET;
#X text 985 484 -1;
#X text 987 336 +1;
#X obj 733 291 symbol;
#X symbolatom 861 315 20 0 0 2 Function_name - -;
#X floatatom 13 125 5 1 7 2 select_Function - -;
#X obj 401 91 inlet~;
#X obj 402 467 outlet~;
#X obj 733 235 r \$0_function_name1;
#X obj 401 163 *~;
#X obj 441 163 *~;
#X obj 681 11 inlet;
#X floatatom 681 63 5 0 0 0 - - -;
#X obj 681 82 t f f;
#X msg 681 144 \$1 10;
#X obj 681 166 line~;
#X msg 731 144 \$1 10;
#X obj 731 166 line~;
#X obj 731 112 expr 1-$f1;
#X obj 542 11 loadbang;
#X msg 542 33 0;
#X obj 802 276 s \$0_wshape_name;
#N canvas 0 23 1161 692 WSHAPE_FUNCTION 0;
#X obj 208 102 until;
#X obj 208 155 f;
#X obj 249 154 + 1;
#X msg 208 58 1003;
#X obj 286 98 sel 1002;
#X msg 286 124 0;
#X obj 73 333 expr (($f1/1000)*2)-1;
#X text 253 55 LOOKUP TABLE SIZE = 1003;
#X text 215 555 index;
#X text 118 554 value;
#X floatatom 564 142 5 1 7 2 select_Function - -;
#X obj 221 201 pack 0 0;
#X msg 221 233 \$2 \$1;
#X obj 447 38 loadbang;
#X obj 236 310 expr ($f1-500);
#X obj 237 339 expr pow(($f1/500) \, $f2);
#X floatatom 378 314 5 1 10 2 power - -;
#X obj 452 338 expr exp(-($f1-1)/100);
#X obj 613 337 expr 2*($f1*$f1)-1;
#X obj 613 313 expr ($f1-500)/500;
#X obj 747 316 expr ($f1-500)/500;
#X obj 747 341 expr 4*($f1*$f1*$f1)-(3*$f1);
#X obj 932 315 expr ($f1-500)/500;
#X obj 932 340 expr 8*($f1*$f1*$f1*$f1)-(8*$f1*$f1)+1;
#X obj 1190 316 expr ($f1-500)/500;
#X obj 1190 341 expr 16*($f1*$f1*$f1*$f1*$f1)-(20*$f1*$f1*$f1)+5*$f1
;
#X msg 447 69 1;
#X text 79 24 MESSAGE '1003' LOAD FUNCTION;
#X msg 603 533 linear;
#X msg 766 530 exponential_function;
#X msg 656 532 power_function;
#X msg 1088 532 Chebychev_4;
#X msg 1211 529 Chebychev_5;
#X msg 988 528 Chebychev_3;
#X msg 906 530 Chebychev_2;
#X obj 602 502 b;
#X obj 655 502 b;
#X obj 762 497 b;
#X obj 902 497 b;
#X obj 984 495 b;
#X obj 1086 496 b;
#X obj 1208 493 b;
#X obj 563 95 t b f;
#X obj 92 66 inlet;
#X obj 559 170 t b f;
#X msg 478 70 3;
#X obj 637 585 s \$0_function_name1;
#X obj 109 577 tabwrite \$0_Function;
#X text 633 90 0 LINEAR - 1 POWER FUNCTION - 2 EXPONENTIAL FUNCTION
- 3 CHEBYCHEV_2 - 4 CHEBYCHEV_3 - 5 CHEBYCHEV_4 - 6 CHEBYCHEV_5;
#X obj 220 258 route 0 1 2 3 4 5 6;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 1 0 11 0;
#X connect 1 0 47 1;
#X connect 2 0 1 1;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 1 1;
#X connect 6 0 47 0;
#X connect 10 0 44 0;
#X connect 11 0 12 0;
#X connect 12 0 49 0;
#X connect 13 0 26 0;
#X connect 13 0 45 0;
#X connect 14 0 15 0;
#X connect 15 0 47 0;
#X connect 16 0 15 1;
#X connect 17 0 47 0;
#X connect 18 0 47 0;
#X connect 19 0 18 0;
#X connect 20 0 21 0;
#X connect 21 0 47 0;
#X connect 22 0 23 0;
#X connect 23 0 47 0;
#X connect 24 0 25 0;
#X connect 25 0 47 0;
#X connect 26 0 42 0;
#X connect 28 0 46 0;
#X connect 29 0 46 0;
#X connect 30 0 46 0;
#X connect 31 0 46 0;
#X connect 32 0 46 0;
#X connect 33 0 46 0;
#X connect 34 0 46 0;
#X connect 35 0 28 0;
#X connect 36 0 30 0;
#X connect 37 0 29 0;
#X connect 38 0 34 0;
#X connect 39 0 33 0;
#X connect 40 0 31 0;
#X connect 41 0 32 0;
#X connect 42 0 3 0;
#X connect 42 1 10 0;
#X connect 43 0 10 0;
#X connect 44 0 3 0;
#X connect 44 1 11 1;
#X connect 45 0 16 0;
#X connect 49 0 6 0;
#X connect 49 0 35 0;
#X connect 49 1 14 0;
#X connect 49 1 36 0;
#X connect 49 2 17 0;
#X connect 49 2 37 0;
#X connect 49 3 19 0;
#X connect 49 3 38 0;
#X connect 49 4 20 0;
#X connect 49 4 39 0;
#X connect 49 5 22 0;
#X connect 49 5 40 0;
#X connect 49 6 24 0;
#X connect 49 6 41 0;
#X restore 13 251 pd WSHAPE_FUNCTION;
#X obj 13 81 r \$0_w_shape_w_form;
#X obj 402 322 tabread4~ \$0_Function;
#X text 19 31 0 LINEAR - 1 POWER FUNCTION - 2 EXPONENTIAL FUNCTION
- 3 CHEBYCHEV_2 - 4 CHEBYCHEV_3 - 5 CHEBYCHEV_4 - 6 CHEBYCHEV_5;
#X obj 401 127 *~;
#X floatatom 466 103 5 0 0 0 - - -;
#X msg 466 123 \$1 5;
#X obj 466 144 line~;
#X msg 572 33 1;
#X obj 402 288 +~ 500;
#X obj 13 193 t f b;
#X obj 549 452 line~;
#X obj 402 397 *~;
#X obj 559 321 t b b;
#X obj 13 224 f;
#X obj 559 369 t b b;
#X obj 402 375 hip~ 20;
#X msg 549 410 0 10;
#X msg 579 410 1 50;
#X obj 559 342 del 10;
#X obj 13 144 moses 0;
#X obj 13 164 moses 7;
#X obj 681 37 route mix function gain print_methods print_outlets;
#X obj 862 62 s \$0_print_methods;
#X obj 923 85 s \$0_print_outlets;
#X obj 1086 27 r \$0_print_methods;
#X obj 1109 99 r \$0_print_outlets;
#X msg 1109 120 WAVESHAPER OUTLETS \, 1: audio out \;;
#X obj 1088 151 print -n;
#X msg 906 151 print_methods;
#X msg 1086 48 WAVESHAPER METHODS \, mix \, function \, gain \, ---
\, FUNCTIONS: \, 0- linear \, 1- power \, 2- exponential \, 3- CHEBYCHEV_2
\, 4- CHEBYCHEV_3 \, 5- CHEBYCHEV_4 \, 6- CHEBYCHEV_5 \, --- \;;
#X text 13 427 Copyright 2019-2020 Focusrite Audio Engineering Limited.
;
#X text 44 549 http://www.apache.org/licenses/LICENSE-2.0;
#X text 14 457 Licensed under the Apache License \, Version 2 (the
"License") \; you may not use this file except in compliance with the
License.;
#X text 14 514 You may obtain a copy of the License at;
#X text 14 579 Unless required by applicable law or agreed to in writing
\, software distributed under the License is distributed on an "AS
IS" BASIS \, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND \, either
express or implied.;
#X text 14 635 See the License for the specific language governing
permissions and limitations under the License.;
#X connect 1 0 36 0;
#X connect 8 0 9 0;
#X connect 8 0 26 0;
#X connect 10 0 47 0;
#X connect 11 0 15 0;
#X connect 11 0 31 0;
#X connect 13 0 8 0;
#X connect 14 0 1 0;
#X connect 15 0 12 0;
#X connect 16 0 49 0;
#X connect 17 0 18 0;
#X connect 18 0 23 0;
#X connect 18 1 19 0;
#X connect 19 0 20 0;
#X connect 20 0 14 1;
#X connect 21 0 22 0;
#X connect 22 0 15 1;
#X connect 23 0 21 0;
#X connect 24 0 25 0;
#X connect 24 0 35 0;
#X connect 24 0 45 0;
#X connect 25 0 17 0;
#X connect 28 0 10 0;
#X connect 29 0 43 0;
#X connect 31 0 14 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 34 0 31 1;
#X connect 35 0 32 0;
#X connect 36 0 29 0;
#X connect 37 0 41 1;
#X connect 37 1 40 0;
#X connect 38 0 39 1;
#X connect 39 0 12 0;
#X connect 40 0 46 0;
#X connect 40 1 44 0;
#X connect 41 0 27 0;
#X connect 42 0 45 0;
#X connect 42 1 41 0;
#X connect 43 0 39 0;
#X connect 44 0 38 0;
#X connect 45 0 38 0;
#X connect 46 0 42 0;
#X connect 47 1 48 0;
#X connect 48 0 37 0;
#X connect 49 0 17 0;
#X connect 49 1 10 0;
#X connect 49 2 32 0;
#X connect 49 3 50 0;
#X connect 49 4 51 0;
#X connect 52 0 57 0;
#X connect 53 0 54 0;
#X connect 54 0 55 0;
#X connect 56 0 49 0;
#X connect 57 0 55 0;