-
Notifications
You must be signed in to change notification settings - Fork 0
/
fx.vocoder~.pd
165 lines (165 loc) · 4.43 KB
/
fx.vocoder~.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
#N canvas 373 183 808 432 10;
#N canvas 147 23 795 617 fft-analysis 0;
#X obj 94 511 *~;
#X obj 55 511 *~;
#X obj 413 356 *~;
#X obj 372 356 *~;
#X obj 372 379 +~;
#X obj 54 183 *~;
#X obj 54 158 inlet~;
#X obj 54 206 rfft~;
#X obj 54 560 *~;
#X obj 141 245 *~;
#X obj 372 333 rfft~;
#X obj 54 535 rifft~;
#X obj 54 583 outlet~;
#X obj 107 245 *~;
#X obj 107 268 +~;
#X text 458 408 modulus;
#X obj 107 420 *~;
#X obj 600 13 block~ 1024 4;
#X obj 107 398 clip~;
#X obj 87 184 tabreceive~ \$0-hann;
#X obj 107 294 +~ 1e-20;
#X obj 108 480 *~ 0.00065;
#X obj 87 560 tabreceive~ \$0-hann;
#X obj 373 307 *~;
#X obj 373 282 inlet~;
#X obj 406 308 tabreceive~ \$0-hann;
#X obj 107 321 q8_rsqrt~;
#X obj 372 402 q8_sqrt~;
#X text 458 425 of control;
#X text 456 442 amplitude;
#X text 196 248 reciprocal;
#X text 199 267 modulus of;
#X text 195 287 filter input;
#X text 196 306 amplitude;
#X text 115 159 filter input;
#X text 438 282 control source;
#X text 434 332 Fourier transform;
#X text 28 17 Internal workings of the timbre stamping algorithm. First
the "filter input" is treated as in the compressor patch \, multiplying
each channel amplitude by one over its modulus (but limited by the
"squelch" parameter.) It is then multiplied by the modulus of the channel
amplitude for the control source (which is Fourier analyzed in parallel
with the filter input.);
#X text 145 422 multiply the two amplitude;
#X text 143 439 factors (for compression;
#X text 145 455 and to apply new timbre);
#X obj 148 346 r \$0-squelch;
#X obj 170 388 *;
#X obj 170 366 t a a;
#X obj 170 409 * 0.01;
#X obj 499 151 inlet;
#X connect 0 0 11 1;
#X connect 1 0 11 0;
#X connect 2 0 4 1;
#X connect 3 0 4 0;
#X connect 4 0 27 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 13 0;
#X connect 7 0 13 1;
#X connect 7 0 1 0;
#X connect 7 1 9 0;
#X connect 7 1 9 1;
#X connect 7 1 0 0;
#X connect 8 0 12 0;
#X connect 9 0 14 1;
#X connect 10 0 3 0;
#X connect 10 0 3 1;
#X connect 10 1 2 0;
#X connect 10 1 2 1;
#X connect 11 0 8 0;
#X connect 13 0 14 0;
#X connect 14 0 20 0;
#X connect 16 0 21 0;
#X connect 18 0 16 0;
#X connect 19 0 5 1;
#X connect 20 0 26 0;
#X connect 21 0 0 1;
#X connect 21 0 1 1;
#X connect 22 0 8 1;
#X connect 23 0 10 0;
#X connect 24 0 23 0;
#X connect 25 0 23 1;
#X connect 26 0 18 0;
#X connect 27 0 16 1;
#X connect 41 0 43 0;
#X connect 42 0 44 0;
#X connect 43 0 42 0;
#X connect 43 1 42 1;
#X connect 44 0 18 2;
#X connect 45 0 43 0;
#X restore 110 211 pd fft-analysis;
#N canvas 0 110 565 454 hann-window 0;
#X obj 378 165 osc~;
#X obj 378 190 *~ -0.5;
#X obj 378 214 +~ 0.5;
#X obj 331 247 tabwrite~ \$0-hann;
#X obj 38 173 /;
#X obj 127 142 samplerate~;
#X obj 177 204 swap;
#X obj 177 228 /;
#X obj 49 201 * 1000;
#X obj 38 115 t f b f;
#X msg 173 92 resize \$1;
#X obj 173 116 s \$0-hann;
#X msg 382 130 0;
#X obj 330 131 t f b;
#X text 15 8 calculate Hann window table (variable window size) and
constants window-hz (fundamental frequency of analysis) \, window-sec
and window-msec (analysis window size in seconds and msec).;
#X obj 330 274 table \$0-hann 1024;
#X obj 49 228 s \$0-window-msec;
#X obj 38 251 s \$0-window-sec;
#X obj 38 88 r \$0-window-size;
#X obj 177 252 s \$0-window-hz;
#X obj 330 105 r \$0-window-hz;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 8 0;
#X connect 4 0 17 0;
#X connect 5 0 4 1;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 7 0 19 0;
#X connect 8 0 16 0;
#X connect 9 0 4 0;
#X connect 9 0 6 0;
#X connect 9 1 5 0;
#X connect 9 2 10 0;
#X connect 10 0 11 0;
#X connect 12 0 0 1;
#X connect 13 0 0 0;
#X connect 13 1 3 0;
#X connect 13 1 12 0;
#X connect 18 0 9 0;
#X connect 20 0 13 0;
#X restore 243 212 pd hann-window;
#X obj 423 103 inlet;
#X obj 545 257 loadbang;
#X obj 545 279 f \$0;
#X obj 244 121 inlet~;
#X obj 70 125 inlet~;
#X obj 109 238 outlet~;
#X text 114 75 Pd vocoder/timbre stamp;
#N canvas 228 198 627 317 LICENSE-BSD 0;
#X text 121 56 This software is copyrighted by Miller Puckette \, Reality
Jockey Ltd. and others. The terms (the "Standard Improved BSD License")
apply to all files associated with the software unless explicitly disclaimed
in individual files.;
#X text 123 148 See the file LICENSE.txt for the full license text.
;
#X restore 563 50 pd LICENSE-BSD;
#X msg 545 300 \; \$1-window-size 1024 \; \$1-squelch 30 \;;
#X obj 448 178 route squelch;
#X connect 0 0 7 0;
#X connect 2 0 11 0;
#X connect 3 0 4 0;
#X connect 4 0 10 0;
#X connect 5 0 0 0;
#X connect 6 0 0 1;
#X connect 11 0 0 2;