#N canvas 709 482 552 475 10; #X text 2 174 any input signal you want -->; #N canvas 12 482 667 475 fft-convolution 1; #N canvas 12 60 450 300 graph1 0; #X graph graph1 0 -1 511 1 100 160 300 20; #X array array1 512 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X pop; #X restore 556 83 graph; #X obj 71 147 tabreceive~ array1; #X text 89 65 overlap of 2 means that after 128 samples another routine is started and at the outlet added...; #X text 551 199 don't worry \, the display is only renewed maybe every second \, but the content actually changes every 128 samples (2.8 ms) ; #X obj 71 176 rfft~; #X obj 71 431 outlet~; #X obj 71 237 *~; #X obj 96 237 *~; #X obj 230 178 rfft~; #X obj 230 239 *~; #X obj 255 239 *~; #X obj 230 147 tabreceive~ filter; #X obj 71 377 rifft~; #X text 313 243 convolution; #X text 317 314 normalize; #N canvas 721 40 450 300 graph2 0; #X graph graph2 0 -1 511 1 100 160 300 20; #X array filter 512 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X pop; #X restore 555 294 graph; #X obj 71 270 -~; #X obj 230 271 +~; #X obj 101 35 block~ 512 2; #X obj 71 319 /~ 65536; #X obj 230 315 /~ 65536; #X connect 1 0 4 0; #X connect 4 0 6 0; #X connect 4 0 10 1; #X connect 4 1 7 0; #X connect 4 1 9 1; #X connect 6 0 16 0; #X connect 7 0 16 1; #X connect 8 0 9 0; #X connect 8 0 6 1; #X connect 8 1 10 0; #X connect 8 1 7 1; #X connect 9 0 17 0; #X connect 10 0 17 1; #X connect 11 0 8 0; #X connect 12 0 5 0; #X connect 16 0 19 0; #X connect 17 0 20 0; #X connect 19 0 12 0; #X connect 20 0 12 1; #X restore 235 294 pd fft-convolution; #X obj 289 366 dac~; #N canvas 4 20 450 300 graph3 0; #X restore 475 -91 graph; #X msg 674 94 \; filterarray const 0; #X obj 67 343 tabwrite~ input; #X obj 235 326 tabwrite~ output; #N canvas 0 0 450 300 graph4 0; #X restore 556 220 graph; #N canvas 8 40 450 300 graph4 0; #X restore 556 326 graph; #X msg 48 237 bang; #X obj 67 293 delwrite~ calctime 10; #X obj 67 316 delread~ calctime 3; #X text 85 235 compare input with output signal; #X text 359 294 <-- filter; #X msg 290 -1 open archim20.WAV; #X msg 205 31 0; #X msg 246 31 1; #X obj 255 112 readsf~; #X obj 242 -28 t b b; #X obj 191 -57 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 -1; #N canvas 8 3 668 378 split_in_256_sample_slices 1; #X obj 55 -26 inlet~; #X obj 55 13 tabsend~ array1; #X obj 71 279 tabsend~ filter; #X text 182 278 the same with the filter; #X obj 191 -26 block~ 256; #X text 34 52 sends portions of 256 samples to "array1" (which is located in "pd fft-convolution"); #X text 33 95 array1 is 512 samples long \, so the rest stays 0; #X obj 71 254 tabreceive~ filterarray; #X obj 189 142 hsl 128 15 1 25 0 0 empty empty empty 20 8 0 8 -260818 -1 -1 3300 1; #X obj 189 175 hsl 128 15 1 50 0 0 empty empty empty 20 8 0 8 -44926 -1 -1 8600 1; #X obj 87 214 overlap~; #X text 330 140 azimuth; #X text 330 173 elevation; #X graph graph4 0 -1 255 1 521 221 721 81; #X array filterarray 256 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X pop; #X connect 0 0 1 0; #X connect 7 0 2 0; #X connect 8 0 10 2; #X connect 9 0 10 3; #X restore 221 173 pd split_in_256_sample_slices; #X graph graph6 0 -1 63 1 85 542 285 402; #X array input 64 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X pop; #X graph graph7 0 -1 63 1 351 541 551 401; #X array output 64 float 1; #A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X pop; #X connect 1 0 6 0; #X connect 1 0 2 0; #X connect 9 0 5 0; #X connect 9 0 6 0; #X connect 11 0 5 0; #X connect 14 0 17 0; #X connect 15 0 17 0; #X connect 16 0 17 0; #X connect 17 0 20 0; #X connect 17 0 10 0; #X connect 18 0 16 0; #X connect 18 1 14 0; #X connect 19 0 18 0;