aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/4.fft.examples/08.convobros.pd
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc/4.fft.examples/08.convobros.pd')
-rw-r--r--pd/doc/4.fft.examples/08.convobros.pd344
1 files changed, 344 insertions, 0 deletions
diff --git a/pd/doc/4.fft.examples/08.convobros.pd b/pd/doc/4.fft.examples/08.convobros.pd
new file mode 100644
index 00000000..8e49ef3d
--- /dev/null
+++ b/pd/doc/4.fft.examples/08.convobros.pd
@@ -0,0 +1,344 @@
+#N canvas 16 29 916 517 12;
+#N canvas 147 -3 669 492 fft-analysis 0;
+#X obj 265 254 *~;
+#X obj 249 284 *~;
+#X obj 214 284 *~;
+#X obj 114 120 *~;
+#X obj 80 114 *~;
+#X obj 80 137 +~;
+#X obj 213 68 *~;
+#X obj 245 68 inlet~;
+#X obj 213 91 rfft~;
+#X obj 59 304 *~;
+#X floatatom 462 156 0 0 0;
+#X obj 317 133 *~;
+#X obj 80 68 *~;
+#X obj 113 68 inlet~;
+#X obj 61 34 tabreceive~ hanning;
+#X obj 80 91 rfft~;
+#X obj 214 307 rifft~;
+#X obj 59 327 outlet~;
+#X text 37 2 Hanning window;
+#X obj 284 133 *~;
+#X obj 284 156 +~;
+#X obj 293 254 sig~ 0.001;
+#X text 129 165 modulus;
+#X obj 80 160 sqrt~;
+#X obj 265 231 *~;
+#X obj 462 67 r squelch;
+#X obj 313 346 block~ 1024 4;
+#X obj 284 182 rsqrt~;
+#X obj 344 184 sig~ 1e-20;
+#X obj 284 208 clip~;
+#X obj 462 177 moses;
+#X msg 457 221 0;
+#X obj 461 90 t f f;
+#X obj 462 113 *;
+#X obj 462 134 * 0.01;
+#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 23 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 1;
+#X connect 8 0 19 0;
+#X connect 8 0 19 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 30 0;
+#X connect 11 0 20 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 19 0 20 0;
+#X connect 20 0 27 0;
+#X connect 21 0 0 1;
+#X connect 23 0 24 0;
+#X connect 24 0 0 0;
+#X connect 25 0 32 0;
+#X connect 27 0 29 0;
+#X connect 28 0 27 0;
+#X connect 29 0 24 1;
+#X connect 30 0 31 0;
+#X connect 30 1 29 2;
+#X connect 31 0 29 2;
+#X connect 32 0 33 0;
+#X connect 32 0 33 1;
+#X connect 33 0 34 0;
+#X connect 34 0 10 0;
+#X restore 119 405 pd fft-analysis;
+#X floatatom 190 159 0 0 0;
+#X obj 119 453 dac~;
+#X obj 119 429 *~;
+#X obj 164 453 line~;
+#X floatatom 587 68 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 230 0;
+#X msg 62 120 bang;
+#X obj 62 167 moses 1;
+#X obj 127 207 t b f;
+#X obj 91 417 outlet;
+#X msg 91 393 set \$1;
+#X obj 175 154 moses 1;
+#X obj 212 419 dbtorms;
+#X obj 212 443 pack 0 100;
+#X obj 175 130 r master-lvl;
+#X obj 91 360 r master-lvl;
+#X obj 78 269 s master-lvl;
+#X obj 212 467 s master-amp;
+#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 restore 587 44 pd output;
+#X msg 587 20 mute;
+#X text 624 61 MASTER;
+#X text 624 75 LEVEL;
+#X obj 587 92 s master-lvl;
+#X obj 164 429 r master-amp;
+#X obj 424 420 loadbang;
+#X obj 424 443 samplerate~;
+#X obj 424 467 s srate;
+#X text 31 137 click here first;
+#X obj 724 237 hip~ 5;
+#X obj 724 213 adc~ 1;
+#X msg 786 182 bang;
+#X obj 814 213 r srate;
+#X obj 786 213 f;
+#X obj 786 237 s insamprate;
+#X obj 724 260 tabwrite~ sample;
+#N canvas 275 71 767 761 hanning-window 0;
+#X obj 92 206 phasor~;
+#X obj 92 234 cos~;
+#X obj 23 328 tabwrite~ hanning;
+#X obj 30 252 -~;
+#X obj 28 218 sig~ 1;
+#X msg 37 180 0;
+#X text 141 13 CALCULATE HANNING;
+#X text 141 27 WINDOW TABLE;
+#X graph graph1 0 -1 1024 1 275 581 675 281;
+#X array hanning 1024 float 0;
+#X pop;
+#X msg 275 547 \; hanning resize 1024;
+#X obj 93 131 / 1024;
+#X obj 93 171 sig~;
+#X text 175 148 sample rate / window size;
+#X msg 23 144 bang;
+#X obj 66 269 sig~ 0.5;
+#X obj 49 300 *~;
+#X obj 67 96 samplerate~;
+#X obj 25 23 r window-size;
+#X obj 25 53 t b f;
+#X connect 0 0 1 0;
+#X connect 1 0 3 1;
+#X connect 3 0 15 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 1;
+#X connect 10 0 11 0;
+#X connect 11 0 0 0;
+#X connect 13 0 2 0;
+#X connect 13 0 5 0;
+#X connect 14 0 15 1;
+#X connect 15 0 2 0;
+#X connect 16 0 10 0;
+#X connect 17 0 18 0;
+#X connect 18 0 16 0;
+#X connect 18 0 13 0;
+#X connect 18 1 10 1;
+#X restore 419 387 pd hanning-window;
+#X msg 25 155 \; window-size 1024 \; pd dsp 1;
+#X obj 190 183 s squelch;
+#X obj 725 388 hip~ 5;
+#X obj 725 364 adc~ 1;
+#X msg 787 333 bang;
+#X obj 815 364 r srate;
+#X obj 787 364 f;
+#X obj 787 388 s insamprate;
+#X obj 725 412 tabwrite~ sample2;
+#X text 177 6 CORT&ZACK's SECRET;
+#X text 190 137 range 1-100;
+#N canvas 190 43 743 445 test-signal 0;
+#X obj 78 265 tabread4~ sample;
+#X obj 78 244 line~;
+#X obj 78 158 f;
+#X obj 238 62 r insamprate;
+#X obj 79 369 outlet~;
+#X obj 130 54 r insamplength;
+#X msg 78 223 0 \, \$1 \$2;
+#X obj 78 202 pack 0 0;
+#X obj 175 196 /;
+#X obj 283 111 * 0.001;
+#X obj 79 346 hip~ 5;
+#X obj 25 29 loadbang;
+#X text 150 24 sample playback;
+#X msg 25 55 1;
+#X obj 25 93 metro 1000;
+#X floatatom 25 75 0 0 0;
+#X obj 239 87 t b b f;
+#X obj 134 105 t b f;
+#X obj 445 256 line~;
+#X obj 445 170 f;
+#X obj 446 381 outlet~;
+#X msg 445 235 0 \, \$1 \$2;
+#X obj 445 214 pack 0 0;
+#X obj 542 208 /;
+#X obj 650 123 * 0.001;
+#X obj 446 358 hip~ 5;
+#X obj 392 41 loadbang;
+#X msg 392 67 1;
+#X obj 392 105 metro 1000;
+#X floatatom 392 87 0 0 0;
+#X obj 606 99 t b b f;
+#X obj 501 117 t b f;
+#X obj 445 277 tabread4~ sample2;
+#X obj 497 66 r insamplength2;
+#X obj 605 74 r insamprate2;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 2 0 7 0;
+#X connect 3 0 16 0;
+#X connect 5 0 17 0;
+#X connect 6 0 1 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 8 0 14 1;
+#X connect 9 0 8 1;
+#X connect 10 0 4 0;
+#X connect 11 0 13 0;
+#X connect 13 0 15 0;
+#X connect 14 0 2 0;
+#X connect 15 0 14 0;
+#X connect 16 0 13 0;
+#X connect 16 1 8 0;
+#X connect 16 2 9 0;
+#X connect 17 0 13 0;
+#X connect 17 1 8 0;
+#X connect 17 1 2 1;
+#X connect 18 0 32 0;
+#X connect 19 0 22 0;
+#X connect 21 0 18 0;
+#X connect 22 0 21 0;
+#X connect 23 0 22 1;
+#X connect 23 0 28 1;
+#X connect 24 0 23 1;
+#X connect 25 0 20 0;
+#X connect 26 0 27 0;
+#X connect 27 0 29 0;
+#X connect 28 0 19 0;
+#X connect 29 0 28 0;
+#X connect 30 0 27 0;
+#X connect 30 1 23 0;
+#X connect 30 2 24 0;
+#X connect 31 0 27 0;
+#X connect 31 1 23 0;
+#X connect 31 1 19 1;
+#X connect 32 0 25 0;
+#X connect 33 0 31 0;
+#X connect 34 0 30 0;
+#X restore 117 371 pd test-signal;
+#N canvas 132 255 634 327 insample 0;
+#X graph graph1 0 -1 155947 1 199 168 599 18;
+#X array sample 155948 float 0;
+#X pop;
+#X obj 19 70 r read-sample;
+#X obj 19 95 unpack s f;
+#X obj 53 121 s insamprate;
+#X obj 19 171 soundfiler;
+#X msg 19 147 read -resize \$1 sample;
+#X obj 19 201 s insamplength;
+#X msg 357 197 \; sample resize 220500 \; insamplength 220500;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
+#X connect 2 1 3 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X restore 417 332 pd insample;
+#N canvas 0 0 647 284 insample2 0;
+#X obj 19 95 unpack s f;
+#X obj 19 171 soundfiler;
+#X msg 357 197 \; sample resize 220500 \; insamplength 220500;
+#X graph graph2 0 -1 63023 1 207 159 607 19;
+#X array sample2 63024 float 0;
+#X pop;
+#X obj 53 121 s insamprate2;
+#X msg 19 147 read -resize \$1 sample2;
+#X obj 19 201 s insamplength2;
+#X obj 19 70 r read-sample2;
+#X connect 0 0 5 0;
+#X connect 0 1 4 0;
+#X connect 1 0 6 0;
+#X connect 5 0 1 0;
+#X connect 7 0 0 0;
+#X restore 418 358 pd insample2;
+#X msg 19 230 \; read-sample ../sound/bell.aiff 44100;
+#X msg 357 230 \; read-sample2 ../sound/bell.aiff 44100;
+#X text 247 364 filter;
+#X text 249 379 input;
+#X text 51 401 source;
+#X text 53 362 filter;
+#X text 52 382 control;
+#X text 719 158 record sample;
+#X text 720 309 record sample2;
+#X text 37 60 To get sound \, you have to "click here first" \, set
+squelch to 10 or so \, read or record two samples \, and ease up the
+master volume.;
+#X msg 20 274 \; read-sample ../sound/voice.wav 32000;
+#X msg 358 274 \; read-sample2 ../sound/voice.wav 32000;
+#X text 37 27 This is an FFT based vocoder such as the one the Convo
+bros showed at the Ann Arbor ICMC.;
+#X connect 0 0 3 0;
+#X connect 1 0 25 0;
+#X connect 3 0 2 0;
+#X connect 3 0 2 1;
+#X connect 4 0 3 1;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 11 0 4 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 16 0 22 0;
+#X connect 17 0 16 0;
+#X connect 18 0 20 0;
+#X connect 18 0 22 0;
+#X connect 19 0 20 1;
+#X connect 20 0 21 0;
+#X connect 26 0 32 0;
+#X connect 27 0 26 0;
+#X connect 28 0 30 0;
+#X connect 28 0 32 0;
+#X connect 29 0 30 1;
+#X connect 30 0 31 0;
+#X connect 35 0 0 0;
+#X connect 35 1 0 1;