#N canvas 45 39 1302 706 10;
#N canvas 187 23 1179 724 Biquad-Frequency-Response 0;
#X obj 101 101 cnv 15 843 391 empty empty empty 18 9 1 16 -262144 -1
0;
#X text 909 466 -24;
#X obj 431 108 cnv 15 15 15 empty empty Kilohertz 18 9 1 16 -262144
-1 0;
#X obj 905 302 cnv 15 15 15 empty empty dB 18 9 1 17 -262144 -1 0;
#X text 909 386 -12;
#X obj 107 141 cnv 15 798 85 empty empty empty 20 12 0 14 -257983 -66577
0;
#X obj 106 225 cnv 15 798 85 empty empty empty 20 12 0 14 -241340 -66577
0;
#X obj 106 311 cnv 15 798 85 empty empty empty 20 12 0 14 -257983 -66577
0;
#X obj 106 396 cnv 15 798 85 empty empty empty 20 12 0 14 -241340 -66577
0;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 77 170 1;
#X restore 224 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 80 170 1;
#X restore 301 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 102 170 1;
#X restore 381 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 483 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 561 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 103 170 1;
#X restore 639 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 742 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 820 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 100 170 1;
#X restore 124 141 graph;
#N canvas 391 118 975 563 (subpatch) 0;
#X array \$0-response 400 float 0;
#X coords 0 1 399 -1 800 340 1;
#X restore 105 141 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 77 170 1;
#X restore 224 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 80 170 1;
#X restore 301 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 102 170 1;
#X restore 381 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 483 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 561 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 103 170 1;
#X restore 639 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 742 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 78 170 1;
#X restore 820 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 100 170 1;
#X restore 124 311 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 800 170 1;
#X restore 105 141 graph;
#X text 909 216 12;
#X text 908 133 24;
#X obj 102 125 cnv 15 810 15 empty empty empty 18 9 1 16 -262144 -1
0;
#X text 812 123 10;
#X text 889 124 20;
#X text 737 123 5;
#X text 634 123 2;
#X text 556 124 1;
#X text 470 124 0.5;
#X text 368 124 0.2;
#X text 288 124 0.1;
#X text 211 124 0.05;
#X text 910 302 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 800 170 1;
#X restore 105 225 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 800 170 1;
#X restore 105 311 graph;
#N canvas 1021 22 212 339 plot_freq-response 0;
#N canvas 457 310 537 367 init 0;
#X obj 77 21 loadbang;
#X obj 78 272 s \$0-dbrange;
#X obj 262 96 samplerate~;
#X obj 262 119 v sr_\$0;
#X msg 115 208 400;
#X obj 357 87 table re1_\$0 400;
#X obj 357 107 table im1_\$0 400;
#X obj 357 127 table re2_\$0 400;
#X obj 357 147 table im2_\$0 400;
#N canvas 699 151 382 450 get-complex-freqs 0;
#X msg 232 232 resize \$1;
#X obj 281 276 s re1_\$0;
#X obj 267 301 s im1_\$0;
#X obj 256 332 s re2_\$0;
#X obj 247 362 s im2_\$0;
#X obj 12 299 tabwrite re1_\$0;
#X obj 108 394 tabwrite im2_\$0;
#X obj 232 393 s amp_\$0;
#X obj 50 80 change;
#X obj 251 171 v table_size_\$0;
#X obj 50 113 trigger bang float;
#X obj 232 206 change 400;
#X obj 50 43 inlet;
#X obj 76 363 tabwrite re2_\$0;
#X obj 43 335 tabwrite im1_\$0;
#X obj 50 182 expr cos($f1) \; sin($f1) \; cos($f1 * 2) \; sin($f1
* 2) \; $f2;
#N canvas 11 46 935 668 loop 0;
#X obj 106 192 until;
#X obj 144 241 + 1;
#X msg 124 216 0;
#X obj 106 95 t f f;
#X obj 483 216 until;
#X obj 529 265 + 1;
#X msg 501 241 0;
#X obj 106 270 t f f;
#X obj 211 355 +;
#X obj 106 370 mtof;
#X obj 106 144 t f b f;
#X obj 483 191 t f b f;
#X obj 483 326 /;
#X obj 106 31 inlet;
#X obj 106 574 outlet;
#X obj 259 583 outlet;
#X obj 483 144 expr table_size_\$0 - $f1;
#X obj 483 265 f;
#X obj 483 379 expr pow($f1 \, 0.4);
#X obj 106 241 f;
#X obj 483 296 trigger f f;
#X obj 106 63 expr rint(table_size_\$0 * 0.98);
#X obj 483 407 * 20.6017;
#X text 556 407 MIDI 16;
#X obj 483 498 expr $f1 * (2 * -pi_\$0) / 44100;
#X obj 106 465 expr $f1 * (2 * -pi_\$0) / 44100;
#X obj 86 33 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 106 298 expr (($f1 + 1) * (midi_range_\$0 / $f2)) + 16;
#X connect 0 0 19 0;
#X connect 1 0 19 1;
#X connect 2 0 19 1;
#X connect 3 0 10 0;
#X connect 3 1 16 0;
#X connect 4 0 17 0;
#X connect 5 0 17 1;
#X connect 6 0 17 1;
#X connect 7 0 27 0;
#X connect 7 1 8 0;
#X connect 8 0 15 0;
#X connect 9 0 25 0;
#X connect 10 0 0 0;
#X connect 10 1 2 0;
#X connect 10 2 27 1;
#X connect 11 0 4 0;
#X connect 11 1 6 0;
#X connect 11 2 12 1;
#X connect 12 0 18 0;
#X connect 13 0 21 0;
#X connect 16 0 8 1;
#X connect 16 0 11 0;
#X connect 17 0 5 0;
#X connect 17 0 20 0;
#X connect 18 0 22 0;
#X connect 19 0 1 0;
#X connect 19 0 7 0;
#X connect 20 0 12 0;
#X connect 20 1 15 0;
#X connect 21 0 3 0;
#X connect 22 0 24 0;
#X connect 24 0 14 0;
#X connect 25 0 14 0;
#X connect 26 0 21 0;
#X connect 27 0 9 0;
#X restore 50 143 pd loop;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 0 0 4 0;
#X connect 0 0 7 0;
#X connect 8 0 10 0;
#X connect 10 0 16 0;
#X connect 10 1 9 0;
#X connect 10 1 11 0;
#X connect 11 0 0 0;
#X connect 12 0 8 0;
#X connect 15 0 5 0;
#X connect 15 1 14 0;
#X connect 15 2 13 0;
#X connect 15 3 6 0;
#X connect 15 4 5 1;
#X connect 15 4 14 1;
#X connect 15 4 13 1;
#X connect 15 4 6 1;
#X connect 16 0 15 0;
#X connect 16 1 15 1;
#X restore 115 236 pd get-complex-freqs;
#X text 145 208 array size;
#X obj 29 304 s \$0-freq-set;
#X obj 77 57 trigger b b b;
#X msg 29 273 20;
#X msg 78 239 24;
#X obj 253 198 v midi_range_\$0;
#X obj 253 172 ftom;
#X msg 253 146 8750.55;
#X obj 245 229 expr atan(1) * 4;
#X obj 246 260 v pi_\$0;
#X connect 0 0 12 0;
#X connect 2 0 3 0;
#X connect 4 0 9 0;
#X connect 12 0 13 0;
#X connect 12 1 4 0;
#X connect 12 1 14 0;
#X connect 12 2 2 0;
#X connect 12 2 17 0;
#X connect 12 2 18 0;
#X connect 13 0 11 0;
#X connect 14 0 1 0;
#X connect 16 0 15 0;
#X connect 17 0 16 0;
#X connect 18 0 19 0;
#X restore 122 116 pd init \; tables;
#X obj 24 178 trigger float float;
#X obj 24 106 t bang list;
#N canvas 0 22 181 220 loop 0;
#X obj 28 100 until;
#X obj 68 138 + 1;
#X msg 72 100 0;
#X obj 28 137 f;
#X obj 28 13 inlet;
#X obj 28 173 outlet;
#X obj 28 42 trigger b b;
#X obj 28 71 v table_size_\$0;
#X connect 0 0 3 0;
#X connect 1 0 3 1;
#X connect 2 0 3 1;
#X connect 3 0 1 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 2 0;
#X connect 7 0 0 0;
#X restore 24 140 pd loop;
#N canvas 121 22 226 277 db-range 0;
#X obj 42 31 inlet;
#X obj 42 61 rmstodb;
#X obj 42 90 - 100;
#X obj 98 61 r \$0-dbrange;
#X obj 108 109 * -1;
#X obj 41 147 clip;
#X obj 80 183 /;
#X obj 80 216 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 3 0 5 2;
#X connect 3 0 6 1;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X restore 24 235 pd db-range;
#X obj 24 265 tabwrite \$0-response;
#X obj 24 51 r \$0-coeficientes;
#N canvas 186 28 463 231 H(z) 0;
#X obj 45 19 inlet;
#X obj 45 200 outlet;
#X obj 45 164 expr sqrt($f1*$f1 + $f2*$f2) / sqrt($f3*$f3 + $f4*$f4)
;
#X obj 45 74 expr $f4 + ($f5 * re1_\$0[$f1]) + ($f6 * re2_\$0[$f1])
\; ($f5 * im1_\$0[$f1]) + ($f6 * im2_\$0[$f1]) \; 1 - ($f2 * re1_\$0[$f1])
- ($f3 * re2_\$0[$f1]) \; 0 - ($f2 * im1_\$0[$f1]) - ($f3 * im2_\$0[$f1])
;
#X obj 211 45 unpack f f f f f;
#X obj 211 18 inlet;
#X text 92 20 index;
#X text 260 18 coeficientes;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 3 2 2 2;
#X connect 3 3 2 3;
#X connect 4 0 3 1;
#X connect 4 1 3 2;
#X connect 4 2 3 3;
#X connect 4 3 3 4;
#X connect 4 4 3 5;
#X connect 5 0 4 0;
#X restore 24 205 pd H(z);
#X connect 1 0 7 0;
#X connect 1 1 5 1;
#X connect 2 0 3 0;
#X connect 2 1 7 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 6 0 2 0;
#X connect 7 0 4 0;
#X restore 268 71 pd plot_freq-response;
#X obj 102 123 cnv 15 100 15 empty empty empty 18 9 1 16 -262144 -1
0;
#X text 113 124 0.02;
#X coords 0 -1 1 1 845 393 2 100 100;
#X restore 455 297 pd Biquad-Frequency-Response;
#N canvas 404 48 820 575 Plano-Z 0;
#X obj 101 86 cnv 15 450 450 empty empty empty 20 12 1 14 -191407 -66577
0;
#X obj 176 161 bng 300 1000 1000 0 \$0-bng \$0-bng-set empty 17 7 0
10 -191407 -245500 -1;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 86 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 161 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 236 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 311 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 386 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 461 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 461 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 461 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 461 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 461 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 461 graph;
#X obj 325 86 cnv 1 2 450 empty empty empty 20 12 0 14 -258113 -66577
0;
#X obj 100 310 cnv 1 450 2 empty empty empty 20 12 0 14 -258113 -66577
0;
#X obj 177 162 cnv 15 15 15 empty \$0-pole1 X 145 150 0 14 -191407
-66577 0;
#X obj 177 162 cnv 15 15 15 empty \$0-zero1 O 145 150 0 14 -191407
-66577 0;
#X obj 177 162 cnv 15 15 15 empty \$0-pole2 X 145 150 0 14 -191407
-66577 0;
#X obj 177 162 cnv 15 15 15 empty \$0-zero2 O 145 150 0 14 -191407
-66577 0;
#N canvas 576 22 272 185 z-plane 0;
#N canvas 349 405 696 221 GUI_(PLOT-POLES-AND-ZEROS) 0;
#X obj 403 170 outlet;
#X obj 352 170 outlet;
#X obj 294 170 outlet;
#X obj 243 170 outlet;
#X obj 189 170 outlet;
#X obj 138 170 outlet;
#X obj 88 170 outlet;
#X obj 37 170 outlet;
#N canvas 89 60 1082 494 Poles 0;
#X obj 183 305 s \$0-pole1;
#X obj 183 251 pack;
#X msg 183 277 label_pos \$1 \$2;
#X obj 183 165 * 150;
#X obj 180 197 + 150;
#X obj 238 214 + 150;
#X obj 177 224 - 5;
#X obj 311 369 outlet;
#X obj 125 366 outlet;
#X obj 311 88 r \$0-P1-im;
#X obj 61 104 r \$0-P1-re;
#X obj 231 169 * -150;
#X obj 618 262 pack;
#X msg 618 288 label_pos \$1 \$2;
#X obj 618 176 * 150;
#X obj 615 208 + 150;
#X obj 673 225 + 150;
#X obj 612 235 - 5;
#X obj 746 380 outlet;
#X obj 591 377 outlet;
#X obj 666 180 * -150;
#X obj 618 316 s \$0-pole2;
#X obj 496 115 r \$0-P2-re;
#X obj 746 99 r \$0-P2-im;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 1 1;
#X connect 6 0 1 0;
#X connect 9 0 7 0;
#X connect 9 0 11 0;
#X connect 10 0 3 0;
#X connect 10 0 8 0;
#X connect 11 0 5 0;
#X connect 12 0 13 0;
#X connect 13 0 21 0;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 16 0 12 1;
#X connect 17 0 12 0;
#X connect 20 0 16 0;
#X connect 22 0 14 0;
#X connect 22 0 19 0;
#X connect 23 0 18 0;
#X connect 23 0 20 0;
#X restore 93 98 pd Poles;
#N canvas 0 216 1069 510 Zeros 0;
#X obj 183 251 pack;
#X msg 183 277 label_pos \$1 \$2;
#X obj 183 165 * 150;
#X obj 180 197 + 150;
#X obj 238 214 + 150;
#X obj 177 224 - 5;
#X obj 311 369 outlet;
#X obj 125 366 outlet;
#X obj 231 169 * -150;
#X obj 183 305 s \$0-zero1;
#X obj 61 104 r \$0-Z1-re;
#X obj 373 84 r \$0-Z1-im;
#X obj 687 274 pack;
#X msg 687 300 label_pos \$1 \$2;
#X obj 687 188 * 150;
#X obj 684 220 + 150;
#X obj 742 237 + 150;
#X obj 681 247 - 5;
#X obj 815 392 outlet;
#X obj 629 389 outlet;
#X obj 735 192 * -150;
#X obj 687 328 s \$0-zero2;
#X obj 565 127 r \$0-Z2-re;
#X obj 815 111 r \$0-Z2-im;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 4 0 0 1;
#X connect 5 0 0 0;
#X connect 8 0 4 0;
#X connect 10 0 2 0;
#X connect 10 0 7 0;
#X connect 11 0 6 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 21 0;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 16 0 12 1;
#X connect 17 0 12 0;
#X connect 20 0 16 0;
#X connect 22 0 14 0;
#X connect 22 0 19 0;
#X connect 23 0 18 0;
#X connect 23 0 20 0;
#X restore 322 89 pd Zeros;
#X obj 503 170 outlet;
#N canvas 669 74 285 399 Gain 0;
#X obj 128 276 outlet;
#X obj 81 198 r \$0-gain;
#X obj 87 309 s \$0-coef;
#X obj 83 225 t b f;
#X connect 1 0 3 0;
#X connect 3 0 2 0;
#X connect 3 1 0 0;
#X restore 503 89 pd Gain;
#X obj 407 123 pack f f f f;
#X obj 407 144 s \$0-zeros;
#X obj 144 125 pack f f f f;
#X obj 144 146 s \$0-poles;
#X connect 8 0 7 0;
#X connect 8 0 14 0;
#X connect 8 1 6 0;
#X connect 8 1 14 1;
#X connect 8 2 5 0;
#X connect 8 2 14 2;
#X connect 8 3 4 0;
#X connect 8 3 14 3;
#X connect 9 0 3 0;
#X connect 9 0 12 0;
#X connect 9 1 2 0;
#X connect 9 1 12 1;
#X connect 9 2 1 0;
#X connect 9 2 12 2;
#X connect 9 3 0 0;
#X connect 9 3 12 3;
#X connect 11 0 10 0;
#X connect 12 0 13 0;
#X connect 14 0 15 0;
#X restore 37 41 pd GUI_(PLOT-POLES-AND-ZEROS);
#X obj 37 104 outlet;
#N canvas 555 177 622 326 Poles-Zeros_to_Coefficients 0;
#X obj 109 46 inlet;
#X obj 158 46 inlet;
#X obj 208 46 inlet;
#X obj 257 46 inlet;
#X obj 307 46 inlet;
#X obj 356 46 inlet;
#X obj 406 46 inlet;
#X obj 455 47 inlet;
#X obj 505 47 inlet;
#X obj 448 229 v sign_\$0;
#X obj 109 239 pack float float float float float;
#X obj 109 278 outlet;
#X obj 36 60 r \$0-coef;
#X obj 109 94 expr $f1 + $f3 \; -sqrt($f1*$f1 + $f2*$f2) * sqrt($f3*$f3
+ $f4*$f4) * sign_\$0 \; if($f1 > 0 != $f3 > 0 \, -1 \, 1) \; $f9 \;
-$f9 * ($f5 + $f7) \; $f9 * sqrt($f5*$f5 + $f6*$f6) * sqrt($f7*$f7
+ $f8*$f8) * sign_\$0 \; if($f5 > 0 != $f7 > 0 \, -1 \, 1) \;;
#X connect 0 0 13 0;
#X connect 1 0 13 1;
#X connect 2 0 13 2;
#X connect 3 0 13 3;
#X connect 4 0 13 4;
#X connect 5 0 13 5;
#X connect 6 0 13 6;
#X connect 7 0 13 7;
#X connect 8 0 13 8;
#X connect 10 0 11 0;
#X connect 12 0 13 0;
#X connect 13 0 10 0;
#X connect 13 1 10 1;
#X connect 13 2 9 0;
#X connect 13 3 10 2;
#X connect 13 4 10 3;
#X connect 13 5 10 4;
#X connect 13 6 9 0;
#X restore 37 70 pd Poles-Zeros_to_Coefficients;
#X connect 0 0 2 0;
#X connect 0 1 2 1;
#X connect 0 2 2 2;
#X connect 0 3 2 3;
#X connect 0 4 2 4;
#X connect 0 5 2 5;
#X connect 0 6 2 6;
#X connect 0 7 2 7;
#X connect 0 8 2 8;
#X connect 2 0 1 0;
#X restore 633 278 pd z-plane;
#N canvas 101 48 651 132 (subpatch) 0;
#X obj 1 1 cnv 15 448 83 empty empty empty 20 12 0 14 -241339 -66577
0;
#X obj 34 30 hsl 128 15 0 1 0 0 \$0-p1-sl \$0-p1-sl-set amp_1 -2 -8
0 10 -228856 -1 -1 6350 1;
#X obj 34 63 hsl 128 15 0 1 0 0 \$0-p2-sl \$0-p2-sl-set amp_2 -2 -8
0 10 -228856 -1 -1 6350 1;
#X obj 282 30 hsl 128 15 0 1 0 0 \$0-z1-sl \$0-z1-sl-set amp_1 -2 -8
0 10 -191407 -1 -1 6350 1;
#X obj 282 63 hsl 128 15 0 1 0 0 \$0-z2-sl \$0-z2-sl-set amp_2 -2 -8
0 10 -191407 -1 -1 6350 1;
#X obj 340 10 tgl 15 0 \$0-pair_z \$0-pair_z-set par 17 7 0 10 -191407
-1 -1 0 1;
#X obj 105 10 tgl 15 0 \$0-pair_p \$0-pair_p-set par 17 7 0 10 -228856
-1 -1 0 1;
#X obj 426 7 vsl 17 70 0 5 0 0 \$0-gain \$0-gain-set empty 0 -9 0 10
-228139 -1 -1 1380 1;
#X obj 189 5 vradio 15 1 0 5 \$0-type \$0-type-set empty 0 -8 0 10
-211239 -99865 -1 0;
#X text 206 4 Hip;
#X text 206 19 Lop;
#X text 207 34 BP;
#X text 207 64 Reset;
#X obj 415 20 cnv 5 5 5 empty empty G 15 0 0 14 -241339 -66577 0;
#X obj 415 34 cnv 5 5 5 empty empty A 15 0 0 14 -241339 -66577 0;
#X obj 415 47 cnv 5 5 5 empty empty I 15 0 0 14 -241339 -66577 0;
#X obj 415 61 cnv 5 5 5 empty empty N 15 0 0 14 -241339 -66577 0;
#X obj 256 17 cnv 5 5 5 empty empty Z 0 0 0 14 -241339 -66577 0;
#X obj 256 31 cnv 5 5 5 empty empty E 0 0 0 14 -241339 -66577 0;
#X obj 256 44 cnv 5 5 5 empty empty R 0 0 0 14 -241339 -66577 0;
#X obj 256 58 cnv 5 5 5 empty empty O 0 0 0 14 -241339 -66577 0;
#X obj 256 71 cnv 5 5 5 empty empty S 0 0 0 14 -241339 -66577 0;
#X obj 9 18 cnv 5 5 5 empty empty P 0 0 0 14 -241339 -66577 0;
#X obj 9 32 cnv 5 5 5 empty empty O 0 0 0 14 -241339 -66577 0;
#X obj 9 45 cnv 5 5 5 empty empty L 0 0 0 14 -241339 -66577 0;
#X obj 9 59 cnv 5 5 5 empty empty O 0 0 0 14 -241339 -66577 0;
#X obj 9 72 cnv 5 5 5 empty empty S 0 0 0 14 -241339 -66577 0;
#X text 207 49 Peak;
#X coords 0 1 100 -1 450 85 1 0 0;
#X restore 101 0 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 452 538 1;
#X restore 100 -1 graph;
#N canvas 65 63 1299 625 GUI 0;
#X obj 117 211 s \$0-P1-im;
#X obj 6 211 s \$0-P1-re;
#X obj 228 211 s \$0-P2-re;
#X obj 339 211 s \$0-P2-im;
#X obj 924 205 s \$0-Z2-im;
#X obj 813 205 s \$0-Z2-re;
#X obj 702 205 s \$0-Z1-im;
#X obj 591 205 s \$0-Z1-re;
#X obj 591 122 expr if (z_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1
\, $f1 *2 -1) \; if (z_pair_\$0 == 1 \, sin($f2 * pi_\$0) * $f1 \,
0) \; if (z_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \, $f2 * 2 -1)
\; if (z_pair_\$0 == 1 \, sin($f2 * pi_\$0) * -$f1 \, 0);
#X obj 6 131 expr if (p_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \,
$f1 *2 -1) \; if (p_pair_\$0 == 1 \, sin($f2 * pi_\$0) * $f1 \, 0)
\; if (p_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \, $f2 * 2 -1) \;
if (p_pair_\$0 == 1 \, sin($f2 * pi_\$0) * -$f1 \, 0);
#X obj 486 205 s \$0-coef;
#X obj 234 73 trigger bang float;
#X obj 234 45 r \$0-p2-sl;
#X obj 6 104 r \$0-p1-sl;
#X obj 234 101 s \$0-p1-sl-set;
#X obj 1073 156 s \$0-bng-set;
#X obj 1073 106 tgl 15 0 empty empty empty 17 7 0 10 -1 -262144 -1
1 1;
#X obj 1073 130 metro 1000;
#X obj 1073 81 loadbang;
#X obj 486 67 r \$0-z1-sl;
#X obj 819 65 trigger bang float;
#X obj 819 37 r \$0-z2-sl;
#X obj 819 93 s \$0-z1-sl-set;
#X obj 486 92 trigger bang float;
#X obj 363 62 r \$0-p2-sl-set;
#X obj 363 85 route set;
#X obj 952 73 route set;
#X obj 952 50 r \$0-z2-sl-set;
#X obj 1004 314 v z_pair_\$0;
#X obj 898 309 v p_pair_\$0;
#X obj 895 274 r \$0-pair_p;
#X obj 1013 271 r \$0-pair_z;
#X obj 629 319 unpack;
#X obj 671 366 s \$0-z2-sl-set;
#X msg 671 344 set \$1;
#X obj 631 449 s \$0-z1-sl-set;
#X msg 629 292 1 \$1;
#X obj 627 365 t f f;
#X obj 678 406 s \$0-pair_z-set;
#X msg 517 397 -1 1 0;
#X obj 517 433 unpack f f f;
#X obj 547 496 s \$0-z2-sl-set;
#X msg 547 474 set \$1;
#X obj 523 542 s \$0-z1-sl-set;
#X obj 465 264 r \$0-type;
#X obj 381 303 sel 3 2;
#X msg 424 378 1;
#X obj 400 527 s \$0-z1-sl-set;
#X obj 418 488 s \$0-pair_z-set;
#X obj 259 428 spigot;
#X msg 350 374 0;
#X obj 354 405 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 284 458 f;
#X obj 385 430 t f b f;
#X obj 286 533 s \$0-z2-sl-set;
#X msg 305 502 set \$1;
#X floatatom 492 324 5 0 0 0 - - -;
#X obj 795 459 s \$0-p1-sl-set;
#X msg 828 429 label amp;
#X msg 815 403 label amp_1;
#X msg 953 435 label angle;
#X msg 915 412 label amp_2;
#X obj 920 465 s \$0-p2-sl-set;
#X obj 868 336 sel 0 1;
#X msg 1067 440 label amp;
#X msg 1054 414 label amp_1;
#X msg 1192 446 label angle;
#X msg 1154 423 label amp_2;
#X obj 1107 347 sel 0 1;
#X obj 1034 470 s \$0-z1-sl-set;
#X obj 1159 476 s \$0-z2-sl-set;
#X obj 1166 114 expr atan(1) * 4;
#X obj 1166 145 v pi_\$0;
#X obj 447 327 sel 4;
#X obj 506 364 s \$0-reset;
#X obj 683 490 r \$0-reset;
#X msg 683 513 0.5;
#X obj 688 536 t f f;
#X msg 735 527 0;
#X obj 686 564 t f f;
#X obj 782 543 s \$0-pair_p-set;
#X msg 730 312 set \$1;
#X obj 730 334 s \$0-p2-sl-set;
#X obj 683 590 s \$0-p1-sl-set;
#X obj 181 481 spigot;
#X obj 194 576 s \$0-p2-sl-set;
#X obj 123 356 s \$0-pair_z-set;
#X obj 111 380 s \$0-pair_p-set;
#X obj 363 261 sel 4;
#X msg 114 331 1;
#X msg 183 513 set \$1;
#X floatatom 372 139 5 0 0 0 - - -;
#X obj 166 547 t b a;
#X connect 8 0 7 0;
#X connect 8 1 6 0;
#X connect 8 2 5 0;
#X connect 8 3 4 0;
#X connect 9 0 1 0;
#X connect 9 1 0 0;
#X connect 9 2 2 0;
#X connect 9 3 3 0;
#X connect 11 0 14 0;
#X connect 11 1 9 1;
#X connect 11 1 49 0;
#X connect 11 1 52 1;
#X connect 12 0 11 0;
#X connect 13 0 9 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 18 0 16 0;
#X connect 18 0 71 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 20 1 8 1;
#X connect 20 1 84 0;
#X connect 21 0 20 0;
#X connect 23 0 10 0;
#X connect 23 1 8 0;
#X connect 24 0 25 0;
#X connect 25 0 9 1;
#X connect 25 0 91 0;
#X connect 26 0 8 1;
#X connect 27 0 26 0;
#X connect 30 0 29 0;
#X connect 30 0 63 0;
#X connect 31 0 28 0;
#X connect 31 0 68 0;
#X connect 32 0 37 0;
#X connect 32 1 34 0;
#X connect 34 0 33 0;
#X connect 36 0 32 0;
#X connect 37 0 35 0;
#X connect 37 1 38 0;
#X connect 39 0 40 0;
#X connect 40 0 43 0;
#X connect 40 1 42 0;
#X connect 40 2 38 0;
#X connect 42 0 41 0;
#X connect 44 0 45 0;
#X connect 44 0 56 0;
#X connect 44 0 88 0;
#X connect 45 0 46 0;
#X connect 45 1 39 0;
#X connect 45 1 50 0;
#X connect 45 2 36 0;
#X connect 45 2 50 0;
#X connect 45 2 73 0;
#X connect 46 0 53 0;
#X connect 46 0 51 0;
#X connect 49 0 54 0;
#X connect 50 0 51 0;
#X connect 51 0 49 1;
#X connect 51 0 84 1;
#X connect 52 0 55 0;
#X connect 53 0 47 0;
#X connect 53 1 52 0;
#X connect 53 2 48 0;
#X connect 55 0 54 0;
#X connect 58 0 57 0;
#X connect 59 0 57 0;
#X connect 60 0 62 0;
#X connect 61 0 62 0;
#X connect 63 0 59 0;
#X connect 63 0 61 0;
#X connect 63 1 58 0;
#X connect 63 1 60 0;
#X connect 64 0 69 0;
#X connect 65 0 69 0;
#X connect 66 0 70 0;
#X connect 67 0 70 0;
#X connect 68 0 65 0;
#X connect 68 0 67 0;
#X connect 68 1 64 0;
#X connect 68 1 66 0;
#X connect 71 0 72 0;
#X connect 73 0 74 0;
#X connect 75 0 76 0;
#X connect 76 0 77 0;
#X connect 77 0 79 0;
#X connect 77 1 34 0;
#X connect 77 1 78 0;
#X connect 77 1 81 0;
#X connect 78 0 38 0;
#X connect 78 0 80 0;
#X connect 79 0 83 0;
#X connect 79 1 35 0;
#X connect 81 0 82 0;
#X connect 84 0 90 0;
#X connect 88 1 89 0;
#X connect 89 0 86 0;
#X connect 89 0 87 0;
#X connect 90 0 92 0;
#X connect 92 0 9 0;
#X connect 92 1 85 0;
#X restore 711 275 pd GUI;
#X obj 636 337 s \$0-coeficientes;
#N canvas 772 177 437 438 init 0;
#X obj 119 47 loadbang;
#X obj 115 256 s \$0-p1-sl-set;
#X obj 109 281 s \$0-p2-sl-set;
#X obj 105 315 s \$0-z1-sl-set;
#X obj 99 340 s \$0-z2-sl-set;
#X msg 101 222 0.5;
#X msg 166 178 1;
#X obj 161 208 s \$0-gain-set;
#X msg 222 98 0;
#X obj 231 123 s \$0-pair_z-set;
#X obj 219 147 s \$0-pair_p-set;
#X connect 0 0 5 0;
#X connect 0 0 6 0;
#X connect 0 0 8 0;
#X connect 5 0 1 0;
#X connect 5 0 2 0;
#X connect 5 0 3 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X restore 633 119 pd init;
#X connect 44 0 48 0;
#X coords 0 -1 1 1 452 540 2 100 -2;
#X restore 3 150 pd Plano-Z;
#X text 466 296 RESPOSTA DE FREQUÊNCIA:;
#X text 893 24 Vejamos agora sobre a atuação dos Polos e Zeros:;
#X text 902 55 No Lowpass \, os Zeros em -1 atenuam as frequências
agudas. A atuação dos polos é precida com o do [lop~] de um polo \,
com a diferença que C é possível ressaltar certas frequências de modo
ressonante.;
#X text 902 115 O Highpass funciona da mesma maneira \, mas os Zeros
estão agora no 1 \, para atenuar as frequências agudas.;
#X text 521 74 - Highpass Ressonante: Zeros em 1 \, polos conjugados
;
#X text 521 94 - Lowpass Ressonante: Zeros em -1 \, polos conjugados
;
#X text 521 112 - Bandpass: Zeros em -1 e 1 \, polos conjugados;
#X text 508 38 Há algumas configurações que nos ajudam a obtermos características
de alguns tipos de filtros comuns:;
#X text 507 163 Na interface gráfica \, o "vertical radio" seta esses
4 tipos de filtro \, e também resseta para que você brinque sozinho
e livremente.;
#X text 508 212 Lembrando que um ajuste de ganho é sempre necessário
para que possamos chegar nas características dos filtros acima.;
#X text 902 152 O Bandpass tem um Zero em -1 e outro em 1 para acentuar
tanto frequências graves como agudas.;
#X text 521 130 - Peak: Polos e Zeros conjugados no mesmo ângulo;
#X text 902 191 O Peak possui Polos e Zeros no mesmo ângulo. É a amplitude
de ambos que vai definir se o pico do filtro será para baixo ou para
cima. Se for para baixo \, significa que a amplitude dos Zeros é maior
que a dos Polos. Se for para cima é o contrário \, os Polos possuem
uma amplitude maior.;
#X text 43 12 Temos neste patch uma interface gráfica que gera Polos
e Zeros num sistema de segunda ordem (dois polos e dois zeros). Eles
podem formar pares conjugado ou não. Quando conjugados \, o controle
é do ângulo e amplitude. Quando não conjugados \, cada polo ou zero
possui uma amplitude diferente e se encontram apenas no eixo real.
;
#X text 44 96 Há também um controle de ganho geral e independente da
localização dos polos \, mas que interfere na resposta de frequência
dada abaixo à direita.;
