#N canvas 697 212 552 475 10; #X text 2 174 any input signal you want -->; #N canvas 16 502 667 475 fft-convolution 1; #N canvas 20 100 450 300 graph1 0; #X graph graph1 0 -1 511 1 100 160 612 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 729 80 450 300 graph2 0; #X graph graph2 0 -1 511 1 100 160 612 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.328571 -0.321429 -0.314286 -0.307143 -0.3 -0.295238 -0.290476 -0.285714 -0.280952 -0.27619 -0.271429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.671429 -0.642857 -0.628571 -0.6 -0.557143 -0.5 -0.471429 -0.428571 -0.371429 -0.314286 -0.285714 -0.271429 -0.271429 -0.257143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0857143 0.0714286 0.0571429 0.0428571 0.0285714 0 -0.0285714 -0.0571429 -0.1 -0.142857 -0.171429 -0.192857 -0.214286 -0.235714 -0.257143 -0.3 -0.342857 -0.385714 -0.428571 -0.442857 -0.457143 -0.471429 -0.485714 -0.514286 -0.542857 -0.571429 -0.585714 -0.585714 -0.614286 -0.628571 -0.628571 -0.628571 -0.628571 -0.628571 -0.628571 -0.614286 -0.6 -0.592857 -0.585714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 12 23 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 4100 1; #X obj 189 175 hsl 128 15 1 50 0 0 empty empty empty 20 8 0 8 -44926 -1 -1 4000 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 777 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.0285714 0.0285714 0.0285714 0.0285714 0.0285714 0.0285714 0.0285714 0.0285714 0.0142857 0 0 -0.0142857 -0.0142857 -0.0142857 -0.0142857 -0.0142857 -0.0142857 0 0 0.0142857 0.0142857 0.0142857 0.0285714 0.0285714 0.0285714 0.0285714 0.0285714 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0428571 0.0285714 0.0285714 0.0285714 0.0285714 0.0428571 0.0571429 0.0571429 0.0571429 0.0571429 0.0714286 0.0714286 0.0714286 0.1; #X pop; #X graph graph7 0 -1 63 1 351 541 551 401; #X array output 64 float 1; #A 0 0.114286 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0857143 0.0857143 0.0857143 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0714286 0.0857143 0.0857143 0.0857143 0.1 0.1 0.1 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.114286 0.128571 0.128571 0.128571 0.142857 0.157143 0.171429 0.171429 0.157143; #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;