#N canvas 188 24 962 745 10; #X obj 229 62 noise~; #X obj 532 579 dac~ 1 2; #X obj 531 552 *~; #X obj 551 506 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 2700 1; #N canvas 0 0 450 300 graph2 0; #X array adaptfir 90 float 0; #X coords 0 1 89 -1 200 140 1; #X restore 60 547 graph; #N canvas 0 0 450 300 graph1 0; #X array drawfir 64 float 0; #X coords 0 1 63 -1 200 140 1; #X restore 699 310 graph; #X obj 531 417 *~; #X obj 547 394 tgl 15 0 empty empty On/Off 0 -6 0 8 -262144 -1 -1 1 1; #X floatatom 277 244 5 0 3000 0 Speed - -; #X msg 277 357 delta \$1; #X obj 277 287 exp; #X obj 277 310 - 1; #X obj 277 333 / 1.71828; #X msg 137 332 frames \$1; #X floatatom 137 309 5 5 5000 0 Length - -; #X obj 277 197 loadbang; #X obj 137 236 loadbang; #X obj 277 264 / 1000; #X msg 277 221 6; #X msg 13 442 show; #X obj 13 468 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 13 396 tgl 15 0 empty empty Animate 0 -6 0 8 -262144 -1 -1 1 1; #X obj 108 499 adaptfilt adaptfir; #X obj 532 352 FIR~ drawfir 64; #X text 542 487 Volume of filtered signal; #X obj 13 489 s update; #X obj 148 284 r update; #X obj 316 677 soundfiler; #X msg 316 653 write -wave ./filter.wav adaptfir; #X text 283 633 Write state of adaptive filter to disk ...; #X text 565 275 Draw the taps of an FIR filter to be measured ...; #X obj 532 457 /~ 10; #X obj 13 418 metro 400; #X obj 242 107 table delayfir 64; #X obj 228 130 FIR~ delayfir 64; #X obj 819 144 tabwrite delayfir; #X text 844 21 index; #X floatatom 819 21 0 0 0 0 - - -; #X floatatom 819 68 0 0 0 0 - - -; #X obj 819 44 tabread delayfir; #X obj 819 97 loadbang; #X msg 819 121 1 32; #X msg 137 262 90; #X obj 798 706 tabwrite drawfir; #X floatatom 798 656 0 0 0 0 - - -; #X obj 798 630 + 1; #X msg 798 526 bang; #X msg 725 584 stop; #X obj 798 604 float; #X obj 798 552 trigger bang bang; #X obj 798 578 metro 5; #X msg 798 681 0 \$1; #X text 800 509 Clear drawfir . . .; #X msg 912 585 -1; #X obj 725 558 select 64; #X text 412 50 Approximate the best inverse FIR filter; #X text 427 78 - Application: Echo-cancellation; #X text 659 695 12/09/04; #X text 659 681 Edgar J. Berdahl; #X msg 859 662 1 \$1; #X msg 908 662 -1 \$1; #X floatatom 859 639 5 0 0 0 - - -; #X floatatom 908 638 5 0 0 0 - - -; #X obj 229 153 /~ 1; #X obj 548 527 / 255; #X connect 0 0 23 0; #X connect 0 0 34 0; #X connect 2 0 1 0; #X connect 2 0 1 1; #X connect 3 0 64 0; #X connect 6 0 31 0; #X connect 6 0 22 0; #X connect 7 0 6 1; #X connect 8 0 17 0; #X connect 9 0 22 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 12 0 9 0; #X connect 13 0 22 0; #X connect 14 0 13 0; #X connect 15 0 18 0; #X connect 16 0 42 0; #X connect 17 0 10 0; #X connect 18 0 8 0; #X connect 19 0 20 0; #X connect 19 0 22 0; #X connect 20 0 25 0; #X connect 21 0 32 0; #X connect 23 0 6 0; #X connect 26 0 14 0; #X connect 28 0 27 0; #X connect 31 0 2 0; #X connect 32 0 19 0; #X connect 34 0 63 0; #X connect 37 0 39 0; #X connect 39 0 38 0; #X connect 40 0 41 0; #X connect 41 0 35 0; #X connect 42 0 14 0; #X connect 44 0 51 0; #X connect 45 0 44 0; #X connect 45 0 48 1; #X connect 45 0 54 0; #X connect 46 0 49 0; #X connect 47 0 50 0; #X connect 48 0 45 0; #X connect 49 0 50 0; #X connect 49 1 53 0; #X connect 50 0 48 0; #X connect 51 0 43 0; #X connect 53 0 48 1; #X connect 54 0 47 0; #X connect 59 0 43 0; #X connect 60 0 43 0; #X connect 61 0 59 0; #X connect 62 0 60 0; #X connect 63 0 22 1; #X connect 64 0 2 1;