#N canvas 48 0 753 711 10; #X obj 104 21 inlet; #X obj 475 203 inlet; #X obj 578 127 inlet; #X obj 176 609 outlet; #X text 129 166 freq; #X text 223 181 rate; #X text 519 202 gain; #X text 624 129 bw; #X obj 370 158 * 0.01; #N canvas 371 421 450 300 e_A 0; #X obj 145 134 pow; #X obj 147 32 inlet; #X obj 179 87 / 40; #X obj 148 58 t b f; #X msg 132 84 10; #X obj 144 173 outlet; #X text 191 34 gain; #X connect 0 0 5 0; #X connect 1 0 3 0; #X connect 2 0 0 1; #X connect 3 0 4 0; #X connect 3 1 2 0; #X connect 4 0 0 0; #X restore 447 262 pd e_A; #N canvas 598 23 450 300 e_omega 0; #N canvas 0 0 450 300 pi 0; #X obj 108 54 inlet; #X obj 158 127 * 4; #X obj 158 106 atan 1; #X msg 158 85 1; #X obj 109 187 outlet; #X obj 158 51 loadbang; #X obj 107 157 f; #X connect 0 0 6 0; #X connect 1 0 6 1; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 5 0 3 0; #X connect 6 0 4 0; #X restore 141 124 pd pi; #X obj 109 15 inlet; #X obj 228 86 inlet; #X obj 206 117 /; #X obj 89 161 *; #X msg 85 102 2; #X obj 109 44 t b b f; #X obj 119 202 *; #X obj 119 237 outlet; #X text 156 14 freq; #X text 272 88 rate; #X connect 0 0 4 1; #X connect 1 0 6 0; #X connect 2 0 3 1; #X connect 3 0 7 1; #X connect 4 0 7 0; #X connect 5 0 4 0; #X connect 6 0 5 0; #X connect 6 1 0 0; #X connect 6 2 3 0; #X connect 7 0 8 0; #X restore 177 256 pd e_omega; #X obj 446 236 f; #N canvas 629 114 445 467 e_alpha 0; #X obj 361 72 inlet; #X obj 86 39 inlet; #X obj 51 198 sin; #N canvas 0 0 450 300 sinh 0; #X obj 71 138 exp; #X obj 125 142 exp; #X obj 124 103 * -1; #X obj 71 79 t f f; #X obj 89 175 -; #X obj 83 202 / 2; #X obj 70 46 inlet; #X obj 94 227 outlet; #X connect 0 0 4 0; #X connect 1 0 4 1; #X connect 2 0 1 0; #X connect 3 0 0 0; #X connect 3 1 2 0; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 6 0 3 0; #X restore 250 340 pd sinh; #X obj 180 254 *; #X text 404 73 bw; #X text 131 38 omega; #X obj 224 143 sin; #X obj 204 182 /; #X obj 249 312 *; #X obj 132 383 *; #X obj 134 413 outlet; #X obj 106 110 t f b f f; #N canvas 0 0 450 300 log2/2 0; #X obj 150 154 log; #X msg 149 125 2; #X obj 146 185 / 2; #X obj 122 52 inlet; #X obj 166 97 loadbang; #X obj 134 212 f; #X obj 138 242 outlet; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 2 0 5 1; #X connect 3 0 5 0; #X connect 4 0 1 0; #X connect 5 0 6 0; #X restore 112 207 pd log2/2; #X connect 0 0 9 1; #X connect 1 0 12 0; #X connect 2 0 10 0; #X connect 3 0 10 1; #X connect 4 0 9 0; #X connect 7 0 8 1; #X connect 8 0 4 1; #X connect 9 0 3 0; #X connect 10 0 11 0; #X connect 12 0 2 0; #X connect 12 1 13 0; #X connect 12 2 8 0; #X connect 12 3 7 0; #X connect 13 0 4 0; #X restore 293 297 pd e_alpha; #X obj 397 384 *; #X obj 191 458 *; #X msg 193 416 -2; #X obj 404 471 +; #X obj 442 472 -; #X msg 394 442 1; #X obj 396 416 t b b f f; #X msg 429 441 1; #X msg 516 450 1; #X obj 509 404 /; #X obj 179 277 t f f; #X obj 94 195 t b f b; #X obj 195 377 t b f; #X obj 244 415 cos; #X obj 522 476 +; #X obj 339 36 t b b b b; #X obj 339 12 loadbang; #X obj 26 69 f \$1; #X obj 448 177 f \$2; #X obj 568 103 f \$3; #X msg 300 446 1; #X obj 310 475 -; #X obj 304 420 t b f; #X obj 307 386 /; #X obj 513 424 t b f; #X obj 55 114 > 0; #X obj 25 115 t f; #X obj 25 139 spigot; #X obj 25 91 t f f; #X obj 100 165 f; #X msg 259 178 44100; #N canvas 445 0 788 682 check_stability 0; #X obj 163 27 inlet; #X obj 335 46 inlet; #X obj 385 46 inlet; #X obj 435 46 inlet; #X obj 485 46 inlet; #X obj 535 46 inlet; #X obj 585 46 inlet; #X obj 351 132 f; #X obj 442 129 f; #X text 363 151 b0; #X obj 389 130 f; #X obj 228 124 f; #X text 463 145 b2; #X obj 537 125 f; #X obj 286 128 f; #X text 550 148 a0; #X text 292 148 a2; #X text 406 150 b1; #X text 234 145 a1; #X obj 164 82 t b b b b b b; #X obj 361 234 /; #X obj 314 232 /; #X obj 230 194 * -1; #X obj 282 197 * -1; #X text 311 253 fb1; #X text 356 256 fb2; #X obj 86 293 t f f; #X obj 92 321 *; #X obj 105 345 + 4; #X obj 126 369 *; #X text 25 397 discriminant; #X obj 131 475 >= -1; #X obj 131 454 f; #X obj 126 396 < 0; #X obj 126 418 select 1; #X obj 131 497 select 1; #X text 63 510 stable ->; #X obj 198 260 t f f f; #X obj 326 272 t f f f f; #X obj 311 448 bang; #X text 245 487 stable ->; #X obj 549 261 pack f f f f f f; #X obj 519 261 f; #X obj 548 646 outlet; #X msg 242 571 filter unstable -> resetting; #X obj 242 595 print equ; #N canvas 0 0 677 568 real 0; #X obj 75 59 inlet; #X obj 186 58 inlet; #X obj 324 52 inlet; #X text 226 56 fb1; #X text 373 52 fb2; #X obj 71 320 <= 2; #X obj 149 320 >= -2; #X obj 146 158 f; #X obj 366 158 f; #X msg 237 275 1; #X obj 237 297 -; #X obj 255 325 -; #X obj 237 249 t b f; #X obj 78 111 t b b; #X obj 249 348 >= 0; #X msg 362 279 1; #X obj 380 329 -; #X obj 362 253 t b f; #X obj 373 351 >= 0; #X obj 362 301 +; #X obj 249 390 +; #X obj 148 408 +; #X obj 75 427 +; #X obj 75 450 == 4; #X obj 127 187 t f f f f; #X obj 386 190 t f f; #X obj 71 479 select 1; #X obj 71 516 outlet; #X text 123 521 pass; #X obj 199 516 bang; #X obj 199 538 outlet; #X text 251 539 fail; #X connect 0 0 13 0; #X connect 1 0 7 1; #X connect 2 0 8 1; #X connect 5 0 22 0; #X connect 6 0 21 0; #X connect 7 0 24 0; #X connect 8 0 25 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 14 0; #X connect 12 0 9 0; #X connect 12 1 10 1; #X connect 13 0 7 0; #X connect 13 1 8 0; #X connect 14 0 20 0; #X connect 15 0 19 0; #X connect 16 0 18 0; #X connect 17 0 15 0; #X connect 17 1 19 1; #X connect 18 0 20 1; #X connect 19 0 16 0; #X connect 20 0 21 1; #X connect 21 0 22 1; #X connect 22 0 23 0; #X connect 23 0 26 0; #X connect 24 0 5 0; #X connect 24 1 6 0; #X connect 24 2 12 0; #X connect 24 3 17 0; #X connect 25 0 11 1; #X connect 25 1 16 1; #X connect 26 0 27 0; #X connect 26 1 29 0; #X connect 29 0 30 0; #X restore 311 472 pd real roots; #X msg 240 619 0 0 1 0 0 1; #X text 193 510 <- unstable; #X text 408 485 <- unstable; #X obj 188 549 t b b; #X obj 227 167 t f f; #X obj 285 163 t f f; #X connect 0 0 19 0; #X connect 1 0 11 1; #X connect 2 0 14 1; #X connect 3 0 7 1; #X connect 4 0 10 1; #X connect 5 0 8 1; #X connect 6 0 13 1; #X connect 7 0 41 2; #X connect 8 0 41 4; #X connect 10 0 41 3; #X connect 11 0 51 0; #X connect 13 0 20 1; #X connect 13 0 21 1; #X connect 13 0 41 5; #X connect 14 0 52 0; #X connect 19 0 11 0; #X connect 19 1 14 0; #X connect 19 2 7 0; #X connect 19 3 10 0; #X connect 19 4 8 0; #X connect 19 5 13 0; #X connect 20 0 38 0; #X connect 21 0 37 0; #X connect 22 0 21 0; #X connect 23 0 20 0; #X connect 26 0 27 0; #X connect 26 1 27 1; #X connect 27 0 28 0; #X connect 28 0 29 0; #X connect 29 0 33 0; #X connect 31 0 35 0; #X connect 32 0 31 0; #X connect 33 0 34 0; #X connect 34 0 32 0; #X connect 34 1 39 0; #X connect 35 0 42 0; #X connect 35 1 50 0; #X connect 37 0 26 0; #X connect 37 1 46 1; #X connect 38 0 29 1; #X connect 38 1 32 1; #X connect 38 2 46 2; #X connect 39 0 46 0; #X connect 41 0 43 0; #X connect 42 0 41 0; #X connect 44 0 45 0; #X connect 46 0 42 0; #X connect 46 1 50 0; #X connect 47 0 43 0; #X connect 50 0 47 0; #X connect 50 1 44 0; #X connect 51 0 22 0; #X connect 51 1 42 1; #X connect 52 0 23 0; #X connect 52 1 41 1; #X restore 181 549 pd check_stability --------; #X text 312 611 based on equalizer from ggee library by guenter geiger \, using biquad math by robert bristow-johnston: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt ** port to purepd by dmotd; #X obj 104 42 route float list; #X obj 154 67 unpack f f f; #X text 247 69 (handle list input); #N canvas 794 50 401 396 output-stable-biquad 0; #X obj 136 40 inlet; #X obj 216 199 /; #X obj 179 201 /; #X obj 132 199 /; #X obj 261 199 /; #X obj 304 201 /; #X obj 48 153 * -1; #X obj 107 157 * -1; #X obj 148 302 pack f f f f f; #X text 141 221 fb1; #X text 182 224 fb2; #X text 220 224 ff1; #X text 261 224 ff2; #X text 301 224 ff3; #X obj 138 73 unpack f f f f f f; #X text 183 41 a1 a2 b0 b1 b2 a0; #X obj 147 332 outlet; #X connect 0 0 14 0; #X connect 1 0 8 2; #X connect 2 0 8 1; #X connect 3 0 8 0; #X connect 4 0 8 3; #X connect 5 0 8 4; #X connect 6 0 3 0; #X connect 7 0 2 0; #X connect 8 0 16 0; #X connect 14 0 6 0; #X connect 14 1 7 0; #X connect 14 2 1 0; #X connect 14 3 4 0; #X connect 14 4 5 0; #X connect 14 5 5 1; #X connect 14 5 4 1; #X connect 14 5 1 1; #X connect 14 5 2 1; #X connect 14 5 3 1; #X restore 181 573 pd output-stable-biquad; #X connect 0 0 46 0; #X connect 1 0 11 1; #X connect 2 0 8 0; #X connect 8 0 12 1; #X connect 9 0 13 1; #X connect 9 0 22 1; #X connect 9 0 36 1; #X connect 10 0 23 0; #X connect 11 0 9 0; #X connect 12 0 36 0; #X connect 12 0 13 0; #X connect 12 0 22 0; #X connect 13 0 19 0; #X connect 14 0 44 1; #X connect 14 0 44 4; #X connect 15 0 14 0; #X connect 16 0 44 3; #X connect 17 0 44 5; #X connect 18 0 16 0; #X connect 19 0 18 0; #X connect 19 1 20 0; #X connect 19 2 16 1; #X connect 19 3 17 1; #X connect 20 0 17 0; #X connect 21 0 27 0; #X connect 22 0 37 0; #X connect 23 0 25 0; #X connect 23 1 12 0; #X connect 24 0 44 0; #X connect 24 1 10 0; #X connect 24 2 11 0; #X connect 25 0 15 0; #X connect 25 1 26 0; #X connect 26 0 14 1; #X connect 27 0 44 6; #X connect 28 0 30 0; #X connect 28 1 43 0; #X connect 28 2 31 0; #X connect 28 3 32 0; #X connect 29 0 28 0; #X connect 30 0 41 0; #X connect 31 0 11 1; #X connect 32 0 8 0; #X connect 33 0 34 0; #X connect 34 0 44 2; #X connect 35 0 33 0; #X connect 35 1 34 1; #X connect 36 0 35 0; #X connect 37 0 21 0; #X connect 37 1 27 1; #X connect 38 0 40 1; #X connect 39 0 40 0; #X connect 40 0 42 0; #X connect 41 0 39 0; #X connect 41 1 38 0; #X connect 42 0 24 0; #X connect 43 0 10 1; #X connect 44 0 49 0; #X connect 46 0 42 0; #X connect 46 1 47 0; #X connect 47 0 42 0; #X connect 47 1 11 1; #X connect 47 2 8 0; #X connect 49 0 3 0;