6.vocoder.pd 7.67 KB
Newer Older
Miller Puckette's avatar
Miller Puckette committed
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 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
#N canvas 73 102 706 428 12;
#X floatatom 462 162 0 0 100;
#X msg 462 137 set \$1;
#X text 29 322 100 maximum;
#X text 29 304 output meter;
#N canvas 145 136 937 540 guts 0;
#X msg 5 296 bang;
#X obj 5 321 openpanel;
#X obj 136 29 inlet;
#X obj 452 375 dac~;
#X obj 452 323 *~;
#X obj 467 300 line~;
#X obj 467 280 r master-amp;
#X msg 689 157 bang;
#X obj 689 177 savepanel;
#X obj 506 393 outlet;
#X obj 297 238 tabwrite~ array2;
#X obj 454 238 +~;
#X obj 452 343 hip~ 7;
#X msg 446 108 bang;
#X obj 446 133 tabplay~ array2;
#X msg 689 197 write \$1 array2;
#X obj 689 218 soundfiler;
#X obj 506 373 env~ 16384;
#X obj 587 129 route normalized;
#X msg 587 250 write -normalize \$1 array2;
#X msg 587 209 bang;
#X obj 587 230 savepanel;
#X obj 587 274 soundfiler;
#X obj 5 365 soundfiler;
#X msg 5 343 read -resize -maxsize 1e+06 \$1 array1;
#X obj 676 338 loadbang;
#N canvas 0 0 690 470 fft-analysis 0;
#X obj 275 314 *~;
#X obj 257 348 *~;
#X obj 218 348 *~;
#X obj 105 163 *~;
#X obj 66 156 *~;
#X obj 66 182 +~;
#X obj 216 104 *~;
#X obj 253 104 inlet~;
#X obj 216 130 rfft~;
#X obj 42 371 *~;
#X floatatom 458 208 0 0 0;
#X obj 334 177 *~;
#X obj 66 104 *~;
#X obj 103 104 inlet~;
#X obj 45 65 tabreceive~ hanning;
#X obj 66 130 rfft~;
#X obj 218 374 rifft~;
#X obj 42 397 outlet~;
#X obj 297 177 *~;
#X obj 297 203 +~;
#X obj 307 314 sig~ 0.001;
#X text 122 214 modulus;
#X obj 66 208 sqrt~;
#X obj 275 288 *~;
#X obj 457 58 r squelch;
#X obj 329 418 block~ 1024 4;
#X obj 297 229 rsqrt~;
#X obj 341 203 sig~ 1e-20;
#X obj 297 255 clip~;
#X obj 458 130 t f f;
#X obj 458 156 *;
#X obj 458 182 * 0.01;
#X obj 456 94 max 1;
#X obj 559 58 loadbang;
#X obj 458 234 max 0;
#X connect 0 0 1 1;
#X connect 0 0 2 1;
#X connect 1 0 16 1;
#X connect 2 0 16 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 22 0;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 18 0;
#X connect 8 0 18 1;
#X connect 8 0 2 0;
#X connect 8 1 11 0;
#X connect 8 1 11 1;
#X connect 8 1 1 0;
#X connect 9 0 17 0;
#X connect 10 0 34 0;
#X connect 11 0 19 1;
#X connect 12 0 15 0;
#X connect 13 0 12 1;
#X connect 14 0 12 0;
#X connect 14 0 6 0;
#X connect 14 0 9 0;
#X connect 15 0 4 0;
#X connect 15 0 4 1;
#X connect 15 1 3 0;
#X connect 15 1 3 1;
#X connect 16 0 9 1;
#X connect 18 0 19 0;
#X connect 19 0 26 0;
#X connect 20 0 0 1;
#X connect 22 0 23 0;
#X connect 23 0 0 0;
#X connect 24 0 32 0;
#X connect 26 0 28 0;
#X connect 27 0 26 0;
#X connect 28 0 23 1;
#X connect 29 0 30 0;
#X connect 29 0 30 1;
#X connect 30 0 31 0;
#X connect 31 0 10 0;
#X connect 32 0 29 0;
#X connect 33 0 32 0;
#X connect 34 0 28 2;
#X restore 296 194 pd fft-analysis;
#X msg 202 86 bang;
#N canvas 46 0 723 534 hanning-window 0;
#X obj 122 273 phasor~;
#X obj 122 311 cos~;
#X obj 31 436 tabwrite~ hanning;
#X obj 40 336 -~;
#X obj 37 290 sig~ 1;
#X msg 50 240 0;
#X text 188 18 CALCULATE HANNING;
#X text 188 36 WINDOW TABLE;
#N canvas 0 0 450 300 graph1 0;
#X array hanning 1024 float 0;
#X coords 0 1 1023 -1 400 300 1;
#X restore 342 235 graph;
#X obj 123 227 sig~;
#X text 156 173 sample rate / window size;
#X msg 31 191 bang;
#X obj 88 357 sig~ 0.5;
#X obj 66 399 *~;
#X obj 124 106 samplerate~;
#X obj 33 31 r window-size;
#X obj 123 175 /;
#X msg 262 106 \; hanning resize \$1;
#X obj 31 70 t b f f;
#X connect 0 0 1 0;
#X connect 1 0 3 1;
#X connect 3 0 13 0;
#X connect 4 0 3 0;
#X connect 5 0 0 1;
#X connect 9 0 0 0;
#X connect 11 0 2 0;
#X connect 11 0 5 0;
#X connect 12 0 13 1;
#X connect 13 0 2 0;
#X connect 14 0 16 0;
#X connect 15 0 18 0;
#X connect 16 0 9 0;
#X connect 18 0 14 0;
#X connect 18 0 11 0;
#X connect 18 1 16 1;
#X connect 18 2 17 0;
#X restore 673 403 pd hanning-window;
#X obj 181 29 r action;
#X msg 150 163 \; pd dsp 1;
#X msg 389 106 stop;
#X msg 58 455 \; array2 resize \$1;
#X obj 58 434 + 4410;
#X obj 136 50 route read AND run hear save stop;
#X obj 58 412 min;
#X obj 107 380 t b f;
#X obj 107 270 openpanel;
#X obj 107 314 soundfiler;
#X msg 107 293 read -resize -maxsize 1e+06 \$1 array3;
#X msg 106 239 bang;
#X msg 676 360 \; window-size 1024 \;;
#X obj 296 145 tabplay~ array1;
#X obj 314 167 tabplay~ array3;
#X connect 0 0 1 0;
#X connect 1 0 24 0;
#X connect 2 0 34 0;
#X connect 4 0 12 0;
#X connect 5 0 4 1;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 15 0;
#X connect 11 0 4 0;
#X connect 12 0 3 0;
#X connect 12 0 3 1;
#X connect 12 0 17 0;
#X connect 13 0 14 0;
#X connect 14 0 11 1;
#X connect 15 0 16 0;
#X connect 17 0 9 0;
#X connect 18 0 20 0;
#X connect 18 1 7 0;
#X connect 19 0 22 0;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 23 0 35 0;
#X connect 24 0 23 0;
#X connect 25 0 41 0;
#X connect 26 0 10 0;
#X connect 26 0 11 0;
#X connect 27 0 10 0;
#X connect 27 0 30 0;
#X connect 27 0 42 0;
#X connect 27 0 43 0;
#X connect 29 0 34 0;
#X connect 31 0 14 0;
#X connect 33 0 32 0;
#X connect 34 0 0 0;
#X connect 34 1 40 0;
#X connect 34 2 27 0;
#X connect 34 3 13 0;
#X connect 34 4 18 0;
#X connect 34 5 31 0;
#X connect 35 0 33 0;
#X connect 36 0 35 0;
#X connect 36 1 35 1;
#X connect 37 0 39 0;
#X connect 38 0 36 0;
#X connect 39 0 38 0;
#X connect 40 0 37 0;
#X connect 42 0 26 0;
#X connect 43 0 26 1;
#X restore 29 263 pd guts;
#X msg 29 158 run the transformation;
#X msg 29 200 hear the output buffer again;
#X text 29 97 click below to:;
#X msg 29 221 save the output buffer;
#X floatatom 29 284 0 0 0;
#X msg 29 242 save normalized to max amplitude;
#N canvas 130 10 488 287 input-sample 0;
#N canvas 0 0 450 300 graph1 0;
#X array array1 188955 float 0;
#X coords 0 1 188954 -1 400 100 1;
#X restore 53 21 graph;
#N canvas 0 0 450 300 graph3 0;
#X array array3 225280 float 0;
#X coords 0 1 225279 -1 400 100 1;
#X restore 54 146 graph;
#X text 227 279 INPUT SAMPLES;
#X restore 169 368 pd input-sample;
#N canvas 192 180 507 343 output-sample 0;
#N canvas 0 0 450 300 graph2 0;
#X array array2 193365 float 0;
#X coords 0 1 193364 -1 400 300 1;
#X restore 56 12 graph;
#X text 151 365 OUTPUT SAMPLE;
#X restore 168 393 pd output-sample;
#X floatatom 408 365 0 0 0;
#N canvas 194 37 397 591 output 0;
#X obj 62 191 t b;
#X obj 62 144 f;
#X obj 62 96 inlet;
#X text 67 76 mute;
#X obj 62 215 f;
#X msg 127 229 0;
#X msg 62 120 bang;
#X obj 62 167 moses 1;
#X obj 127 206 t b f;
#X obj 90 416 outlet;
#X msg 90 392 set \$1;
#X obj 175 154 moses 1;
#X obj 211 418 dbtorms;
#X obj 211 442 pack 0 100;
#X obj 175 130 r master-lvl;
#X obj 90 359 r master-lvl;
#X obj 78 269 s master-lvl;
#X obj 211 466 s master-amp;
#X obj 195 229 loadbang;
#X msg 195 253 \; master-lvl 90;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 16 0;
#X connect 5 0 16 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 10 0 9 0;
#X connect 11 1 4 1;
#X connect 12 0 13 0;
#X connect 13 0 17 0;
#X connect 14 0 1 1;
#X connect 14 0 11 0;
#X connect 15 0 10 0;
#X connect 15 0 12 0;
#X connect 18 0 19 0;
#X restore 408 344 pd output;
#X msg 408 323 mute;
#X obj 408 386 s master-lvl;
#X text 449 322 <-- mute button;
#X text 444 363 <--set me;
#X text 408 406 LINE OUT LEVEL in dB (100 norm);
#X msg 29 179 stop the transformation;
#X text 193 9 (old-fashioned) VOCODER;
#X text 28 31 This takes in two soundfiles and uses the first to "vocode"
the second. THe resulting sound is as long as the shorter of the two
inputs.;
#X msg 29 116 read the analysis sound from file;
#X msg 29 137 AND read the sound to be processed from file;
#X text 462 97 SQUELCH;
#X obj 462 116 r squelch;
#X obj 462 187 s squelch;
#X text 526 161 1-100 or so;
#X connect 0 0 27 0;
#X connect 1 0 0 0;
#X connect 4 0 9 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 8 0 4 0;
#X connect 10 0 4 0;
#X connect 13 0 16 0;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 20 0 4 0;
#X connect 23 0 4 0;
#X connect 24 0 4 0;
#X connect 26 0 1 0;