aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/3.audio.examples/H08.paf.control.pd
blob: 7d329357b92f8c48261f4a22e0606ce0ed0cae82 (plain)
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
#N canvas 89 36 743 752 12;
#X floatatom 217 684 0 0 0;
#N canvas 176 241 532 273 output 0;
#X obj 338 160 t b;
#X obj 338 110 f;
#X obj 338 60 inlet;
#X text 344 29 mute;
#X obj 338 185 f;
#X msg 425 178 0;
#X msg 338 85 bang;
#X obj 338 135 moses 1;
#X obj 398 111 moses 1;
#X obj 83 148 dbtorms;
#X obj 398 86 r master-lvl;
#X obj 83 42 r master-lvl;
#X obj 338 210 s master-lvl;
#X obj 17 148 inlet~;
#X obj 199 41 inlet;
#X text 199 18 level;
#X obj 199 100 s master-lvl;
#X msg 96 65 set \$1;
#X obj 96 89 outlet;
#X msg 214 64 \; pd dsp 1;
#X obj 83 194 line~;
#X obj 22 212 *~;
#X obj 22 241 dac~;
#X obj 83 171 pack 0 50;
#X text 15 125 audio;
#X text 93 110 show level;
#X obj 17 177 hip~ 1;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 12 0;
#X connect 5 0 12 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 5 0;
#X connect 8 1 4 1;
#X connect 9 0 23 0;
#X connect 10 0 1 1;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 11 0 17 0;
#X connect 13 0 26 0;
#X connect 14 0 16 0;
#X connect 14 0 19 0;
#X connect 17 0 18 0;
#X connect 20 0 21 1;
#X connect 21 0 22 0;
#X connect 21 0 22 1;
#X connect 23 0 20 0;
#X connect 26 0 21 0;
#X restore 179 713 pd output;
#X msg 255 684 MUTE;
#X obj 122 565 cos~;
#X obj 122 542 *~;
#X obj 165 565 cos~;
#X obj 220 510 wrap~;
#X obj 184 510 -~;
#X obj 165 542 +~;
#X obj 158 595 -~;
#X obj 178 627 *~;
#X obj 140 627 +~;
#X text 478 719 updated for Pd version 0.34;
#X text 299 702 <--output;
#X obj 184 478 samphold~;
#X floatatom 183 266 4 0 0;
#X text 181 218 center;
#X obj 184 345 line~;
#X obj 184 322 pack 0 50;
#X obj 67 413 phasor~;
#X floatatom 69 305 4 0 0;
#X text 52 256 fundamental;
#X floatatom 408 361 4 0 0;
#X obj 408 438 line~;
#X obj 306 518 *~;
#X obj 408 415 pack 0 50;
#N canvas 94 264 600 388 make-table 0;
#X msg 81 44 bang;
#X obj 81 73 t b b;
#X obj 159 142 f;
#X obj 197 142 + 1;
#X msg 175 112 0;
#X obj 81 102 until;
#X obj 161 177 t f f;
#X obj 76 306 tabwrite bell-curve;
#X obj 52 270 expr exp(-$f1*$f1);
#X obj 63 168 sel 199;
#X obj 51 241 expr ($f1-100)/25;
#X graph graph4 0 0 199 1 342 225 542 85;
#X array bell-curve 200 float 1;
#A 0 1.12535e-07 1.54727e-07 2.12059e-07 2.89706e-07 3.94519e-07 5.35535e-07
7.24633e-07 9.77371e-07 1.31404e-06 1.76105e-06 2.35258e-06 3.13275e-06
4.15832e-06 5.50199e-06 7.25659e-06 9.54016e-06 1.25023e-05 1.63317e-05
2.1266e-05 2.76026e-05 3.57128e-05 4.60584e-05 5.92113e-05 7.58768e-05
9.69224e-05 0.00012341 0.000156634 0.000198167 0.000249912 0.000314163
0.000393669 0.000491721 0.000612231 0.000759842 0.000940028 0.00115923
0.00142498 0.00174605 0.00213263 0.00259648 0.00315111 0.00381201 0.00459678
0.0055254 0.0066204 0.00790705 0.0094136 0.0111714 0.013215 0.0155826
0.0183156 0.0214592 0.0250621 0.0291763 0.0338573 0.0391639 0.0451575
0.0519019 0.0594631 0.0679081 0.0773047 0.0877205 0.0992216 0.111872
0.125732 0.140858 0.1573 0.1751 0.194291 0.214896 0.236928 0.260383
0.285247 0.311486 0.339053 0.367879 0.397882 0.428956 0.46098 0.493812
0.527292 0.561244 0.595473 0.62977 0.663916 0.697676 0.730811 0.763074
0.794216 0.823987 0.852144 0.878447 0.902668 0.924595 0.944027 0.960789
0.974725 0.985703 0.99362 0.998401 1 0.998401 0.99362 0.985703 0.974725
0.960789 0.944027 0.924595 0.902668 0.878447 0.852144 0.823987 0.794216
0.763074 0.730811 0.697676 0.663916 0.62977 0.595473 0.561244 0.527292
0.493812 0.46098 0.428956 0.397882 0.367879 0.339053 0.311486 0.285247
0.260383 0.236928 0.214896 0.194291 0.1751 0.1573 0.140858 0.125732
0.111872 0.0992216 0.0877205 0.0773047 0.0679081 0.0594631 0.0519019
0.0451575 0.0391639 0.0338573 0.0291763 0.0250621 0.0214592 0.0183156
0.0155826 0.013215 0.0111714 0.0094136 0.00790705 0.0066204 0.0055254
0.00459678 0.00381201 0.00315111 0.00259648 0.00213263 0.00174605 0.00142498
0.00115923 0.000940028 0.000759842 0.000612231 0.000491721 0.000393669
0.000314163 0.000249912 0.000198167 0.000156634 0.00012341 9.69224e-05
7.58768e-05 5.92113e-05 4.60584e-05 3.57128e-05 2.76026e-05 2.1266e-05
1.63317e-05 1.25023e-05 9.54016e-06 7.25659e-06 5.50199e-06 4.15832e-06
3.13275e-06 2.35258e-06 1.76105e-06 1.31404e-06 9.77371e-07 7.24633e-07
5.35535e-07 3.94519e-07 2.89706e-07 2.12059e-07 1.54727e-07;
#X pop;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 2 0 6 0;
#X connect 2 0 9 0;
#X connect 3 0 2 1;
#X connect 4 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 10 0;
#X connect 6 1 7 1;
#X connect 8 0 7 0;
#X connect 9 0 5 1;
#X connect 10 0 8 0;
#X restore 573 591 pd make-table;
#X obj 67 390 * 0.5;
#X obj 306 495 cos~;
#X obj 306 472 -~ 0.25;
#X obj 306 549 +~ 100;
#X obj 306 572 tabread4~ bell-curve;
#X obj 67 442 *~ 2;
#X obj 179 656 *~;
#X text 338 597 waveshaper;
#X text 31 2 CHANGING PAF CONTROLS TO NATURAL UNITS;
#X obj 67 362 mtof;
#X obj 68 335 max 0;
#X obj 206 370 expr 1/$f1;
#X obj 183 296 mtof;
#X text 181 238 freq.;
#X obj 184 394 *~;
#X text 406 340 bandwidth;
#X obj 408 389 mtof;
#X obj 408 474 *~;
#X obj 408 498 *~ 25;
#X text 25 33 The more "natural" units for describing a formant might
be center frequency and bandwidth \, so that you can change the fundamental
without having the formant shift up and down in parallel. Here all
three frequencies are expressed in MIDI units. The bandwidth and center
frequency have to be divided by the fundamental (the expr 1/$f1 takes
its reciprocal and two *~ objects finish the division.);
#X text 448 473 divide by fundamental;
#X text 466 497 range for table;
#X text 372 548 offset to middle of table;
#X text 191 416 C.F. relative;
#X text 192 432 to fundamental;
#X text 48 275 (MIDI units);
#X text 215 654 ring mod;
#X text 25 150 And now you essentially have the PAF. Note \, however
\, that there's a nice paf~ "external" object in the "extras" library
that does this all more efficiently and takes care of a couple of subtle
details we don't see here...;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 2 0 1 2;
#X connect 3 0 9 1;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 4 0 3 0;
#X connect 5 0 9 0;
#X connect 6 0 7 1;
#X connect 6 0 10 1;
#X connect 7 0 4 1;
#X connect 8 0 5 0;
#X connect 9 0 10 0;
#X connect 10 0 11 1;
#X connect 11 0 33 0;
#X connect 14 0 7 0;
#X connect 14 0 6 0;
#X connect 15 0 39 0;
#X connect 17 0 41 0;
#X connect 18 0 17 0;
#X connect 19 0 29 0;
#X connect 19 0 32 0;
#X connect 20 0 37 0;
#X connect 22 0 43 0;
#X connect 23 0 44 0;
#X connect 24 0 30 0;
#X connect 25 0 23 0;
#X connect 27 0 19 0;
#X connect 28 0 24 0;
#X connect 29 0 28 0;
#X connect 30 0 31 0;
#X connect 31 0 33 1;
#X connect 32 0 14 1;
#X connect 32 0 4 0;
#X connect 32 0 8 0;
#X connect 33 0 1 0;
#X connect 36 0 27 0;
#X connect 36 0 38 0;
#X connect 37 0 36 0;
#X connect 38 0 41 1;
#X connect 38 0 44 1;
#X connect 39 0 18 0;
#X connect 41 0 14 0;
#X connect 43 0 25 0;
#X connect 44 0 45 0;
#X connect 45 0 24 1;