#N canvas 461 483 815 503 10; #X obj 232 347 dac~; #X text 8 6 click here first; #N canvas 911 311 745 568 fft-convolution 0; #X obj 130 198 *~; #X obj 98 198 *~; #X obj 225 97 *~; #X obj 228 33 inlet~; #X obj 222 134 rfft~; #X obj 89 108 *~; #X obj 87 43 inlet~; #X obj 133 69 tabreceive~ hanning; #X obj 89 131 rfft~; #X obj 143 290 rifft~; #X obj 145 411 outlet~; #X obj 400 133 block~ 1024 4; #X obj 189 197 *~; #X obj 218 197 *~; #X text 37 2 convoluion of two signals using an fft and a hanning window ; #X obj 403 79 r window-size; #X msg 402 105 set \$1 4; #X obj 144 341 /~; #X obj 149 317 *~; #X obj 188 245 +~; #X obj 122 244 +~; #X obj 229 301 * 3; #X obj 230 328 / 2; #X obj 305 356 print~; #X msg 321 312 bang; #X connect 0 0 20 1; #X connect 1 0 20 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 4 0 1 1; #X connect 4 0 13 1; #X connect 4 1 0 1; #X connect 4 1 12 1; #X connect 5 0 8 0; #X connect 6 0 5 0; #X connect 7 0 5 1; #X connect 7 0 2 1; #X connect 7 0 18 1; #X connect 8 0 1 0; #X connect 8 0 12 0; #X connect 8 1 0 0; #X connect 8 1 13 0; #X connect 9 0 18 0; #X connect 12 0 19 0; #X connect 13 0 19 1; #X connect 15 0 16 0; #X connect 15 0 21 0; #X connect 16 0 11 0; #X connect 17 0 10 0; #X connect 17 0 23 0; #X connect 18 0 17 0; #X connect 19 0 9 1; #X connect 20 0 9 0; #X connect 21 0 22 0; #X connect 22 0 17 1; #X connect 24 0 23 0; #X restore 241 151 pd fft-convolution; #X floatatom 358 66 5 0 0 2 ramp_note ramp_note -; #X obj 169 106 readsf~; #X obj 164 76 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X msg 13 230 \; window-size 2048 \; pd dsp 1; #X obj 358 115 phasor~; #X obj 361 88 mtof; #X msg 17 139 \; window-size 32768 \; pd dsp 1; #X text 438 27 cross-synthysized with another sound; #X text 429 39 in order to apply characteristics to that; #X text 431 54 sound on to the first sound; #X text 431 74 multiplies every frequency content in one sound by every frequency content in another; #X text 40 380 Convolution is a type of cross-synthesis: some aspect of one sound is imposed onto another. A simple example of this returns us to the subject of reverb.; #X obj 240 272 *~ 0.5; #X msg 4 29 \; window-size 8192 \; ramp_note 29 \; pd dsp 1; #X obj 284 3 adc~ 7; #X obj 287 43 *~ 2; #X obj 277 214 hsl 128 15 0 2 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X msg 205 77 open 1.wav; #X msg 2 298 \; window-size 64 \; pd dsp 1; #N canvas 1001 527 624 386 hanning 0; #N canvas 0 22 450 300 (subpatch) 0; #X array hanning 8192 float 0; #X coords 0 1 8191 0 200 120 1; #X restore -345 100 graph; #X msg -467 114 0; #X obj -573 163 osc~; #X obj -573 115 samplerate~; #X obj -573 186 *~ -0.5; #X obj -573 209 +~ 0.5; #X text -359 92 1; #X text -366 210 0; #X text -350 223 0; #X obj -573 139 / 512; #X obj -581 92 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj -581 234 tabwrite~ hanning; #X text -581 58 Hanning window:; #X obj -479 24 r window-size; #X msg -333 20 \; hanning resize \$1; #X obj -457 52 t b f f; #X connect 1 0 2 1; #X connect 2 0 4 0; #X connect 3 0 9 0; #X connect 4 0 5 0; #X connect 5 0 11 0; #X connect 9 0 2 0; #X connect 10 0 3 0; #X connect 10 0 1 0; #X connect 10 0 11 0; #X connect 13 0 15 0; #X connect 15 0 10 0; #X connect 15 1 9 1; #X connect 15 2 14 0; #X restore 480 162 pd hanning; #X connect 2 0 15 0; #X connect 3 0 8 0; #X connect 4 0 2 0; #X connect 5 0 4 0; #X connect 7 0 2 1; #X connect 8 0 7 0; #X connect 15 0 0 0; #X connect 15 0 0 1; #X connect 17 0 18 0; #X connect 18 0 2 0; #X connect 19 0 15 1; #X connect 20 0 4 0;