#N canvas 288 289 658 405 10;
#X declare -lib Gem;
#X text 452 8 GEM object;
#X obj 9 265 cnv 15 430 135 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X text 40 267 Inlets:;
#X text 39 365 Outlets:;
#X obj 9 227 cnv 15 430 30 empty empty empty 20 12 0 14 #bcbcbc #404040 0;
#X text 18 226 Arguments:;
#X obj 8 56 cnv 15 430 165 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X obj 449 77 cnv 15 200 280 empty empty empty 20 12 0 14 #dce4fc #404040 0;
#X text 453 60 Example:;
#X obj 530 303 cnv 15 100 60 empty empty empty 20 12 0 14 #bcbcbc #404040 0;
#X obj 451 172 cnv 15 155 105 empty empty empty 20 12 0 14 #14e814 #404040 0;
#X obj 451 83 gemhead;
#X text 17 379 Outlet 1: gemlist;
#X text 24 281 Inlet 1: gemlist;
#X text 71 31 Class: pix object (timebased effect);
#X obj 451 151 pix_film;
#X obj 515 151 t f;
#X obj 464 103 bng 25 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000;
#N canvas 0 0 450 300 open 0;
#X obj 85 49 inlet;
#X obj 85 237 outlet;
#X obj 85 145 openpanel;
#X msg 85 179 open \$1;
#X msg 259 213 auto 1;
#X obj 268 179 loadbang;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X restore 464 131 pd open;
#X text 505 77 open a supported;
#X text 506 88 movie-clip;
#X text 523 114 macOS: quicktime;
#X text 516 104 MS Windows: *.AVI;
#X text 523 124 linux: depends...;
#X text 29 57 Description: timebased IIR-filter;
#X floatatom 457 191 3 0 1 2 fb0 - - 0;
#X floatatom 481 191 3 0 1 2 fb1 - - 0;
#X floatatom 505 191 3 0 1 2 fb2 - - 0;
#X floatatom 534 191 3 0 1 2 ff1 - - 0;
#X floatatom 558 191 3 0 1 2 ff2 - - 0;
#N canvas 0 0 450 300 init 0;
#X msg 175 214 0.3;
#X msg 247 215 0.6;
#X obj 104 258 outlet;
#X obj 154 258 outlet;
#X obj 204 258 outlet;
#X obj 254 258 outlet;
#X obj 304 258 outlet;
#X obj 244 59 inlet;
#X obj 388 158 t b;
#X msg 378 201 1;
#X msg 413 201 0;
#X obj 246 88 route 1;
#X msg 104 214 0.2;
#X msg 140 215 0.5;
#X obj 353 258 outlet;
#X msg 277 215 0.2;
#X msg 312 213 0.2;
#X obj 238 127 t b;
#X obj 193 105 t b b;
#X obj 277 115 t b b;
#X msg 277 135 1;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 7 0 11 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 5 0;
#X connect 10 0 3 0;
#X connect 10 0 4 0;
#X connect 10 0 6 0;
#X connect 10 0 14 0;
#X connect 11 0 18 0;
#X connect 11 1 19 0;
#X connect 12 0 2 0;
#X connect 13 0 3 0;
#X connect 15 0 6 0;
#X connect 16 0 14 0;
#X connect 17 0 13 0;
#X connect 17 0 0 0;
#X connect 17 0 1 0;
#X connect 17 0 15 0;
#X connect 17 0 16 0;
#X connect 18 0 12 0;
#X connect 18 1 17 0;
#X connect 19 0 20 0;
#X connect 19 1 8 0;
#X connect 20 0 2 0;
#X restore 605 174 pd init;
#X obj 605 157 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1;
#X msg 534 238 set;
#X text 23 298 Inlet 1: message: set: overwrites the filter-buffers with the next incoming image.;
#X text 439 378 see also:;
#X obj 509 381 pix_tIIR;
#X text 23 76 basically it works like the Pd-object [biquad~] (except \, that applies to images instead of samples);
#X text 39 134 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2);
#X text 40 149 w(n) = fb0 * x(n) + fb1 * w(n-1) + fb2 * w(n-2);
#X text 32 104 the operation can be described by the following difference-equation:;
#X text 18 166 x(n) describes the input-image \, y(n) is the output-image.;
#X text 16 183 You can set all buffer-images w(m) to the next input-image x(n) with the "set"-command.;
#X text 64 237 list:;
#X obj 572 381 biquad~;
#X text 50 12 Synopsis: [pix_biquad];
#X obj 451 258 pix_biquad;
#X floatatom 582 191 3 0 1 2 ff3 - - 0;
#X obj 457 209 pack 1 0 0 1 0 0;
#X text 22 327 Inlet 1: <list> : the filter-coefficients "fb0 fb1 fb2 ff1 ff2 ff3";
#N canvas 484 243 450 300 META 0;
#X obj 10 25 declare -lib Gem;
#X text 10 45 DESCRIPTION timebased IIR-filter;
#X text 10 65 KEYWORDS Gem pix image;
#X text 20 85 INLET_0 gemlist set list;
#X text 20 105 OUTLET_0 gemlist;
#X text 10 125 AUTHOR IOhannes m zmölnig;
#X text 10 145 LICENSE GPL-2.0-or-later;
#X restore 548 8 pd META;
#X obj 538 308 _gemwin;
#X obj 451 280 _pix2rectangle 3;
#X connect 11 0 15 0;
#X connect 15 0 45 0;
#X connect 15 2 16 0;
#X connect 16 0 15 1;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 25 0 47 0;
#X connect 26 0 47 1;
#X connect 27 0 47 2;
#X connect 28 0 47 3;
#X connect 29 0 47 4;
#X connect 30 0 25 0;
#X connect 30 1 26 0;
#X connect 30 2 27 0;
#X connect 30 3 28 0;
#X connect 30 4 29 0;
#X connect 30 5 46 0;
#X connect 31 0 30 0;
#X connect 32 0 45 0;
#X connect 45 0 51 0;
#X connect 46 0 47 5;
#X connect 47 0 45 0;
