-
Notifications
You must be signed in to change notification settings - Fork 0
/
fancy-osc~.pd
113 lines (113 loc) · 3.03 KB
/
fancy-osc~.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
#N canvas 34 81 775 510 12;
#X obj 54 52 inlet~;
#X obj 169 52 inlet~;
#N canvas 358 212 450 350 tri-squ-ctrl 0;
#X obj 143 20 inlet~;
#X obj 33 49 min~ 0;
#X obj 33 136 +~ 1;
#X text 33 194 triangle side: scale to 1 - 100;
#X obj 33 165 outlet~;
#X obj 264 49 max~ 0;
#X obj 264 78 pow~ 2;
#X obj 264 165 outlet~;
#X text 154 224 square side: scale 1-10 logarithmically;
#X obj 264 136 +~ 1;
#X obj 264 107 *~ 9;
#X obj 33 78 pow~ 2;
#X obj 33 107 *~ 99;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 11 0;
#X connect 2 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 10 0;
#X connect 9 0 7 0;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X connect 12 0 2 0;
#X restore 169 81 pd tri-squ-ctrl;
#X text 170 21 -1 - 1;
#X text 54 21 freq;
#X obj 54 81 phasor~ \$1;
#N canvas 1025 407 632 527 triangle-osc 0;
#X obj 24 31 inlet~;
#X obj 287 142 expr~ 1 - 1 / $v1;
#X obj 24 148 expr~ $v1 * (2 - $v2);
#X obj 24 289 expr~ if($v1 >= -$v3 && $v1 <= $v3 \, $v1 \, (tanh($v2
* ($v1 - $v4 * $v3)) / $v2) + $v4 * $v3), f 49;
#X text 420 140 b;
#X text 133 174 x(2-b);
#X text 322 230 +/- b;
#X text 131 344 f(x) = tanh(a(x-b))/a + b;
#X obj 288 32 inlet~;
#X text 338 30 a (1-100);
#X obj 24 350 outlet~;
#X text 131 373 for values of x between -b and +b \, output untouched
;
#X text 131 402 otherwise \, run through f(x) - invert b if x < 0;
#X obj 318 257 expr~ ($v1 >= 0) * 2 - 1;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 1 0 3 2;
#X connect 2 0 3 0;
#X connect 2 0 13 0;
#X connect 3 0 10 0;
#X connect 8 0 1 0;
#X connect 8 0 3 1;
#X connect 13 0 3 3;
#X restore 54 229 pd triangle-osc;
#N canvas 1033 576 450 325 osc-square 0;
#X obj 38 51 inlet~;
#X obj 38 80 *~;
#X obj 38 109 ./round-clip~ 5;
#X obj 38 138 outlet~;
#X obj 98 51 inlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 1 1;
#X restore 54 258 pd osc-square;
#N canvas 300 208 450 325 pwm 0;
#X obj 33 25 inlet~;
#X obj 175 25 inlet~;
#X obj 175 54 max~ 1;
#X obj 33 155 outlet~;
#X obj 33 94 expr~ if($v1 < ($v2 / ($v2 + 1)) \, $v1 * ($v2 + 1) /
(2 * $v2) \, (($v1 - ($v2 / ($v2 + 1))) * ($v2 + 1) / 2) + 0.5);
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 2 0 4 1;
#X connect 4 0 3 0;
#X restore 54 170 pd pwm;
#X obj 278 139 inlet~;
#X text 278 21 pwm (1-?);
#X obj 54 287 outlet~;
#X obj 54 199 expr~ (if ($v1 > 0.5 \, 1 - $v1 \, $v1) - 0.25) * 4;
#X text 399 199 triangle;
#X obj 54 110 +~;
#X obj 54 139 wrap~;
#X obj 409 81 inlet~;
#X text 409 21 phase modulation;
#X obj 549 82 inlet;
#X obj 113 52 r \$0-p;
#X obj 549 111 s \$0-p;
#X text 552 40 bash phase;
#X text 54 352 this is an oscillator which continually varies from
triangle (-1) through sine (0) through square (+1) with pwm and phase
modulation capabilities. all waveforms are band-limited and have colour.
;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 2 0 6 1;
#X connect 2 1 7 1;
#X connect 5 0 14 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 12 0 6 0;
#X connect 14 0 15 0;
#X connect 15 0 8 0;
#X connect 16 0 14 1;
#X connect 18 0 20 0;
#X connect 19 0 5 1;