#N canvas 963 95 954 460 10; #X obj 21 33 inlet; #X obj 21 422 outlet; #N canvas 3 59 450 300 alpha 0; #X obj 34 34 inlet; #X obj 34 231 outlet; #X obj 163 35 inlet; #X obj 34 99 expr 1.0/$f1; #X obj 163 96 expr 1.0/(2*3.14*$f1); #X text 206 75 tau; #X text 56 79 te; #X obj 34 158 expr 1.0/(1.0+$f2/$f1); #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 7 0; #X connect 4 0 7 1; #X connect 7 0 1 0; #X restore 725 152 pd alpha; #X obj 536 99 value \$0-beta; #X obj 618 99 value \$0-fcmin; #X obj 536 45 loadbang; #X obj 267 35 inlet; #X obj 349 35 inlet; #X text 261 14 beta; #X text 347 14 fcmin; #X obj 267 53 value \$0-beta; #X obj 349 53 value \$0-fcmin; #X obj 93 189 expr ($f1-$f2)*$f3; #X obj 536 63 t b b b; #X obj 706 134 value \$0-rate; #X obj 536 81 float \$2; #X obj 596 81 float \$3; #X obj 706 81 float \$1; #X obj 93 153 t f b b; #X obj 112 171 value \$0-hatxprev; #X obj 224 171 value \$0-rate; #X obj 706 116 t f f b; #X msg 795 134 1; #X obj 725 170 value \$0-dalpha; #N canvas 3 59 450 300 alpha 0; #X obj 34 34 inlet; #X obj 34 231 outlet; #X obj 163 35 inlet; #X obj 34 99 expr 1.0/$f1; #X obj 163 96 expr 1.0/(2*3.14*$f1); #X text 206 75 tau; #X text 56 79 te; #X obj 34 158 expr 1.0/(1.0+$f2/$f1); #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 7 0; #X connect 4 0 7 1; #X connect 7 0 1 0; #X restore 78 383 pd alpha; #N canvas 305 647 450 300 dxfilter 0; #X obj 61 33 inlet; #X obj 61 177 outlet; #X obj 202 28 inlet; #X obj 263 177 outlet; #X obj 110 123 float 0; #X obj 61 105 t f b; #X obj 61 141 expr $f3*$f1+(1-$f3)*$f2; #X obj 61 159 t f f f; #X connect 0 0 5 0; #X connect 2 0 6 2; #X connect 4 0 6 1; #X connect 5 0 6 0; #X connect 5 1 4 0; #X connect 6 0 7 0; #X connect 7 0 1 0; #X connect 7 1 3 0; #X connect 7 2 4 1; #X restore 65 269 pd dxfilter; #N canvas 305 647 450 300 xfilter 0; #X obj 61 33 inlet; #X obj 61 177 outlet; #X obj 202 28 inlet; #X obj 263 177 outlet; #X obj 110 123 float 0; #X obj 61 105 t f b; #X obj 61 141 expr $f3*$f1+(1-$f3)*$f2; #X obj 61 159 t f f f; #X connect 0 0 5 0; #X connect 2 0 6 2; #X connect 4 0 6 1; #X connect 5 0 6 0; #X connect 5 1 4 0; #X connect 6 0 7 0; #X connect 7 0 1 0; #X connect 7 1 3 0; #X connect 7 2 4 1; #X restore 21 404 pd xfilter; #X obj 78 422 value \$0-hatxprev; #X obj 65 72 float 0; #X obj 65 90 select 0 1; #X obj 65 108 t b b; #X msg 92 54 1; #X obj 78 362 value \$0-rate; #X obj 78 341 t b f; #X obj 21 54 t f b f; #X obj 65 215 float 0; #X obj 93 131 float 0; #X obj 65 233 t f b; #X obj 92 251 value \$0-dalpha; #X obj 65 305 value \$0-fcmin; #X obj 65 323 expr $f1+$f2*abs($f3); #X obj 65 287 t b b f; #X obj 153 305 value \$0-beta; #X text 395 266 Decrease fcmin to reduce low speed jitter Increase beta to reduce high speed lag; #X text 394 246 Arguments : Sampling rate \, beta (starts at 0) \, fcmin (starts at 1), f 70; #X text 21 11 noisy input; #X text 397 328 More details on : http://cristal.univ-lille.fr/~casiez/1euro/ , f 62; #X text 396 306 1 euro filter by Gery Casiez et al; #X text 535 26 initialize; #X connect 0 0 34 0; #X connect 2 0 23 0; #X connect 5 0 13 0; #X connect 6 0 10 0; #X connect 7 0 11 0; #X connect 12 0 35 0; #X connect 13 0 15 0; #X connect 13 1 16 0; #X connect 13 2 17 0; #X connect 15 0 3 0; #X connect 16 0 4 0; #X connect 17 0 21 0; #X connect 18 0 12 0; #X connect 18 1 19 0; #X connect 18 2 20 0; #X connect 19 0 12 1; #X connect 20 0 12 2; #X connect 21 0 14 0; #X connect 21 1 2 0; #X connect 21 2 22 0; #X connect 22 0 2 1; #X connect 24 0 26 1; #X connect 25 0 41 0; #X connect 26 0 1 0; #X connect 26 1 27 0; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 29 1 36 0; #X connect 30 0 35 0; #X connect 30 1 31 0; #X connect 31 0 28 1; #X connect 32 0 24 0; #X connect 33 0 32 0; #X connect 33 1 24 1; #X connect 34 0 26 0; #X connect 34 1 28 0; #X connect 34 2 36 1; #X connect 35 0 37 0; #X connect 36 0 18 0; #X connect 37 0 25 0; #X connect 37 1 38 0; #X connect 38 0 25 1; #X connect 39 0 40 0; #X connect 40 0 33 0; #X connect 41 0 39 0; #X connect 41 1 42 0; #X connect 41 2 40 2; #X connect 42 0 40 1;