[PD] [equalizer] / [lowshelf] / [highshelf] in purepd!

dmotd dmotd at gmx.net
Tue Mar 24 03:16:06 CET 2009


hi folks,

here are some purepd representations of the [equalizer] [lowshelf] and 
[highshelf] objects for calculating eq biquad filter coefficients. i put 
these together as ggee was the only external lib dependency for a project 
which used these fairly extensively. the code is almost logic identical to 
the equivelent C internals, and i have avoided using [expr], so the math may 
look a little confusing.

i only ported the code for the objects i was using, but i will add the other 
eq-cookbook filters when i next get a chance.

ciao,
dmotd
-------------- next part --------------
#N canvas 266 16 753 711 10;
#X obj 106 12 inlet;
#X obj 475 193 inlet;
#X obj 628 127 inlet;
#X obj 176 609 outlet;
#X text 129 166 freq;
#X text 223 181 rate;
#X text 519 192 gain;
#X text 674 129 bw;
#X obj 618 172 * 0.01;
#N canvas 350 419 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 252 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 226 f;
#X obj 339 36 t b b b b;
#X obj 339 12 loadbang;
#X obj 26 69 f \$1;
#X obj 436 191 f \$2;
#X obj 591 129 f \$3;
#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 88 11 435 376 e_beta 0;
#X obj 265 155 inlet;
#X obj 86 39 inlet;
#X obj 118 325 outlet;
#X text 131 38 a;
#X text 309 156 S;
#X obj 116 295 sqrt;
#X obj 115 249 -;
#X obj 98 64 t f f;
#X obj 191 86 - 1;
#X obj 199 113 t f f;
#X obj 200 145 *;
#X obj 96 103 t f f;
#X obj 96 133 *;
#X obj 94 163 + 1;
#X obj 93 189 /;
#X connect 0 0 14 1;
#X connect 1 0 7 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 11 0;
#X connect 7 1 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 1 10 1;
#X connect 10 0 6 1;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 6 0;
#X restore 557 345 pd e_beta;
#X obj 420 306 t f f;
#X text 342 530 b0;
#X text 444 532 b2;
#X text 500 532 a0;
#X text 290 531 a2;
#X text 388 530 b1;
#X text 237 530 a1;
#N canvas 0 39 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 133 473 >= -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 floatatom 411 268 5 0 0 0 - - -;
#X floatatom 274 289 5 0 0 0 - - -;
#X obj 215 485 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 674 392 >= -1;
#X floatatom 670 358 5 0 0 0 - - -;
#X floatatom 664 433 5 0 0 0 - - -;
#X obj 585 574 expr;
#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 20 0 53 0;
#X connect 21 0 37 0;
#X connect 21 0 54 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 35 1 55 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 connect 56 0 58 0;
#X connect 57 0 56 0;
#X restore 181 549 pd check_stability -------------------------;
#X obj 292 310 sin;
#X obj 179 308 cos;
#X obj 94 195 t b f b;
#X obj 179 277 t f f;
#N canvas 0 58 450 346 b0 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 279 206 *;
#X obj 221 111 t f f f;
#X text 307 205 beta*sn;
#X obj 219 293 *;
#X obj 140 130 - 1;
#X obj 194 186 + 1;
#X obj 119 154 *;
#X obj 220 324 outlet;
#X obj 128 207 f;
#X obj 121 179 t b f;
#X obj 166 232 -;
#X obj 199 254 +;
#X connect 0 0 14 0;
#X connect 1 0 8 0;
#X connect 2 0 9 0;
#X connect 3 0 8 1;
#X connect 8 0 19 1;
#X connect 9 0 12 0;
#X connect 9 1 13 0;
#X connect 9 2 11 1;
#X connect 11 0 15 0;
#X connect 12 0 14 1;
#X connect 13 0 16 1;
#X connect 14 0 17 0;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 17 1 18 1;
#X connect 18 0 19 0;
#X connect 19 0 11 0;
#X restore 320 463 pd b0;
#N canvas 313 57 469 421 b1 0;
#X obj 86 67 inlet;
#X obj 243 70 inlet;
#X text 286 70 A;
#X text 137 70 CS;
#X obj 221 111 t f f f;
#X obj 219 288 *;
#X obj 119 194 *;
#X obj 221 386 outlet;
#X obj 220 319 t b f;
#X obj 223 366 *;
#X obj 140 170 + 1;
#X obj 219 184 - 1;
#X msg 221 342 2;
#X obj 173 261 -;
#X obj 124 241 f;
#X obj 123 216 t b f;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 4 0 10 0;
#X connect 4 1 11 0;
#X connect 4 2 5 1;
#X connect 5 0 8 0;
#X connect 6 0 15 0;
#X connect 8 0 12 0;
#X connect 8 1 9 1;
#X connect 9 0 7 0;
#X connect 10 0 6 1;
#X connect 11 0 14 1;
#X connect 12 0 9 0;
#X connect 13 0 5 0;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 15 1 13 1;
#X restore 378 464 pd b1;
#N canvas 12 81 450 346 b2 0;
#X obj 56 25 inlet;
#X obj 137 26 inlet;
#X obj 213 28 inlet;
#X obj 300 73 inlet;
#X text 346 72 beta;
#X text 256 28 A;
#X text 107 28 CS;
#X text 179 25 SN;
#X obj 243 157 *;
#X obj 191 69 t f f f;
#X text 278 158 beta*sn;
#X obj 193 262 *;
#X obj 110 98 - 1;
#X obj 164 154 + 1;
#X obj 89 122 *;
#X obj 193 297 outlet;
#X obj 162 235 -;
#X obj 120 205 -;
#X obj 109 180 f;
#X obj 106 144 t b f;
#X connect 0 0 14 0;
#X connect 1 0 8 0;
#X connect 2 0 9 0;
#X connect 3 0 8 1;
#X connect 8 0 16 1;
#X connect 9 0 12 0;
#X connect 9 1 13 0;
#X connect 9 2 11 1;
#X connect 11 0 15 0;
#X connect 12 0 14 1;
#X connect 13 0 18 1;
#X connect 14 0 19 0;
#X connect 16 0 11 0;
#X connect 17 0 16 0;
#X connect 18 0 17 0;
#X connect 19 0 18 0;
#X connect 19 1 17 1;
#X restore 436 464 pd b2;
#N canvas 98 350 450 346 a0 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 210 258 *;
#X text 243 257 beta*sn;
#X obj 140 140 - 1;
#X obj 210 193 + 1;
#X obj 119 164 *;
#X obj 167 323 outlet;
#X obj 221 111 t f f;
#X obj 150 219 f;
#X obj 152 192 t b f;
#X obj 172 289 +;
#X obj 168 244 +;
#X connect 0 0 12 0;
#X connect 1 0 8 0;
#X connect 2 0 14 0;
#X connect 3 0 8 1;
#X connect 8 0 17 1;
#X connect 10 0 12 1;
#X connect 11 0 15 1;
#X connect 12 0 16 0;
#X connect 14 0 10 0;
#X connect 14 1 11 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 16 1 18 1;
#X connect 17 0 13 0;
#X connect 18 0 17 0;
#X restore 490 463 pd a0;
#N canvas 13 109 469 421 a1 0;
#X obj 86 67 inlet;
#X obj 243 70 inlet;
#X text 286 70 A;
#X text 137 70 CS;
#X obj 119 194 *;
#X obj 171 379 outlet;
#X obj 170 312 t b f;
#X obj 173 359 *;
#X obj 140 170 + 1;
#X obj 194 226 - 1;
#X obj 221 111 t f f;
#X obj 135 219 t b f;
#X obj 144 255 f;
#X msg 171 335 -2;
#X obj 165 291 +;
#X connect 0 0 4 0;
#X connect 1 0 10 0;
#X connect 4 0 11 0;
#X connect 6 0 13 0;
#X connect 6 1 7 1;
#X connect 7 0 5 0;
#X connect 8 0 4 1;
#X connect 9 0 12 1;
#X connect 10 0 8 0;
#X connect 10 1 9 0;
#X connect 11 0 12 0;
#X connect 11 1 14 1;
#X connect 12 0 14 0;
#X connect 13 0 7 0;
#X connect 14 0 6 0;
#X restore 203 464 pd a1;
#N canvas 389 0 450 346 a2 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 264 228 *;
#X text 292 227 beta*sn;
#X obj 140 130 - 1;
#X obj 210 203 + 1;
#X obj 119 154 *;
#X obj 181 318 outlet;
#X obj 221 111 t f f;
#X obj 150 229 f;
#X obj 153 195 t b f;
#X obj 178 286 -;
#X obj 168 254 +;
#X connect 0 0 12 0;
#X connect 1 0 8 0;
#X connect 2 0 14 0;
#X connect 3 0 8 1;
#X connect 8 0 17 1;
#X connect 10 0 12 1;
#X connect 11 0 15 1;
#X connect 12 0 16 0;
#X connect 14 0 10 0;
#X connect 14 1 11 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 16 1 18 1;
#X connect 17 0 13 0;
#X connect 18 0 17 0;
#X restore 266 462 pd a2;
#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 obj 104 42 route float list;
#X obj 154 67 unpack f f f;
#X text 247 69 (handle list input);
#X text 312 611 based on lowshelf 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 connect 0 0 43 0;
#X connect 1 0 11 1;
#X connect 2 0 8 0;
#X connect 8 0 23 1;
#X connect 9 0 24 0;
#X connect 10 0 35 0;
#X connect 11 0 9 0;
#X connect 12 0 14 0;
#X connect 12 1 22 0;
#X connect 12 2 15 0;
#X connect 12 3 16 0;
#X connect 13 0 12 0;
#X connect 14 0 20 0;
#X connect 15 0 11 1;
#X connect 16 0 8 0;
#X connect 17 0 19 1;
#X connect 18 0 19 0;
#X connect 19 0 21 0;
#X connect 20 0 18 0;
#X connect 20 1 17 0;
#X connect 21 0 34 0;
#X connect 22 0 10 1;
#X connect 23 0 36 3;
#X connect 23 0 38 3;
#X connect 23 0 39 3;
#X connect 23 0 41 3;
#X connect 24 0 36 2;
#X connect 24 0 37 1;
#X connect 24 0 38 2;
#X connect 24 0 39 2;
#X connect 24 0 40 1;
#X connect 24 0 41 2;
#X connect 24 1 23 0;
#X connect 31 0 42 0;
#X connect 32 0 36 1;
#X connect 32 0 38 1;
#X connect 32 0 39 1;
#X connect 32 0 41 1;
#X connect 33 0 36 0;
#X connect 33 0 37 0;
#X connect 33 0 38 0;
#X connect 33 0 39 0;
#X connect 33 0 40 0;
#X connect 33 0 41 0;
#X connect 34 0 31 0;
#X connect 34 1 10 0;
#X connect 34 2 11 0;
#X connect 35 0 33 0;
#X connect 35 1 32 0;
#X connect 36 0 31 3;
#X connect 37 0 31 4;
#X connect 38 0 31 5;
#X connect 39 0 31 6;
#X connect 40 0 31 1;
#X connect 41 0 31 2;
#X connect 42 0 3 0;
#X connect 43 0 21 0;
#X connect 43 1 44 0;
#X connect 44 0 21 0;
#X connect 44 1 11 1;
#X connect 44 2 8 0;
-------------- next part --------------
#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;
-------------- next part --------------
#N canvas 155 3 753 711 10;
#X obj 103 16 inlet;
#X obj 475 193 inlet;
#X obj 628 127 inlet;
#X obj 176 609 outlet;
#X text 129 166 freq;
#X text 223 181 rate;
#X text 519 192 gain;
#X text 674 129 bw;
#X obj 618 172 * 0.01;
#N canvas 350 419 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 252 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 226 f;
#X obj 339 36 t b b b b;
#X obj 339 12 loadbang;
#X obj 26 69 f \$1;
#X obj 450 169 f \$2;
#X obj 601 106 f \$3;
#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 88 11 435 376 e_beta 0;
#X obj 265 155 inlet;
#X obj 86 39 inlet;
#X obj 118 325 outlet;
#X text 131 38 a;
#X text 309 156 S;
#X obj 116 295 sqrt;
#X obj 115 249 -;
#X obj 98 64 t f f;
#X obj 191 86 - 1;
#X obj 199 113 t f f;
#X obj 200 145 *;
#X obj 96 103 t f f;
#X obj 96 133 *;
#X obj 94 163 + 1;
#X obj 93 189 /;
#X connect 0 0 14 1;
#X connect 1 0 7 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 11 0;
#X connect 7 1 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 1 10 1;
#X connect 10 0 6 1;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 6 0;
#X restore 557 345 pd e_beta;
#X obj 420 306 t f f;
#X text 342 530 b0;
#X text 444 532 b2;
#X text 500 532 a0;
#X text 290 531 a2;
#X text 388 530 b1;
#X text 237 530 a1;
#N canvas 0 39 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 133 473 >= -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 floatatom 411 268 5 0 0 0 - - -;
#X floatatom 274 289 5 0 0 0 - - -;
#X obj 215 485 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 674 392 >= -1;
#X floatatom 670 358 5 0 0 0 - - -;
#X floatatom 664 433 5 0 0 0 - - -;
#X obj 585 574 expr;
#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 20 0 53 0;
#X connect 21 0 37 0;
#X connect 21 0 54 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 35 1 55 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 connect 56 0 58 0;
#X connect 57 0 56 0;
#X restore 181 549 pd check_stability -------------------------;
#X obj 292 310 sin;
#X obj 179 308 cos;
#X obj 94 195 t b f b;
#X obj 179 277 t f f;
#N canvas 48 39 450 346 b0 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 279 206 *;
#X obj 221 111 t f f f;
#X obj 199 254 +;
#X text 307 205 beta*sn;
#X obj 219 293 *;
#X obj 140 130 - 1;
#X obj 194 186 + 1;
#X obj 119 154 *;
#X obj 163 212 +;
#X obj 220 324 outlet;
#X connect 0 0 15 0;
#X connect 1 0 8 0;
#X connect 2 0 9 0;
#X connect 3 0 8 1;
#X connect 8 0 10 1;
#X connect 9 0 13 0;
#X connect 9 1 14 0;
#X connect 9 2 12 1;
#X connect 10 0 12 0;
#X connect 12 0 17 0;
#X connect 13 0 15 1;
#X connect 14 0 16 1;
#X connect 15 0 16 0;
#X connect 16 0 10 0;
#X restore 320 463 pd b0;
#N canvas 658 123 469 421 b1 0;
#X obj 86 67 inlet;
#X obj 243 70 inlet;
#X text 286 70 A;
#X text 137 70 CS;
#X obj 221 111 t f f f;
#X obj 219 288 *;
#X obj 119 194 *;
#X obj 163 252 +;
#X obj 221 386 outlet;
#X obj 220 319 t b f;
#X obj 223 366 *;
#X msg 221 342 -2;
#X obj 140 170 + 1;
#X obj 194 226 - 1;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 4 0 12 0;
#X connect 4 1 13 0;
#X connect 4 2 5 1;
#X connect 5 0 9 0;
#X connect 6 0 7 0;
#X connect 7 0 5 0;
#X connect 9 0 11 0;
#X connect 9 1 10 1;
#X connect 10 0 8 0;
#X connect 11 0 10 0;
#X connect 12 0 6 1;
#X connect 13 0 7 1;
#X restore 378 464 pd b1;
#N canvas 66 191 450 346 b2 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 273 199 *;
#X obj 221 111 t f f f;
#X text 308 200 beta*sn;
#X obj 219 288 *;
#X obj 140 140 - 1;
#X obj 194 196 + 1;
#X obj 119 164 *;
#X obj 163 222 +;
#X obj 220 324 outlet;
#X obj 198 255 -;
#X connect 0 0 14 0;
#X connect 1 0 8 0;
#X connect 2 0 9 0;
#X connect 3 0 8 1;
#X connect 8 0 17 1;
#X connect 9 0 12 0;
#X connect 9 1 13 0;
#X connect 9 2 11 1;
#X connect 11 0 16 0;
#X connect 12 0 14 1;
#X connect 13 0 15 1;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 17 0 11 0;
#X restore 436 464 pd b2;
#N canvas 69 380 450 346 a0 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 210 258 *;
#X text 243 257 beta*sn;
#X obj 140 140 - 1;
#X obj 210 193 + 1;
#X obj 119 164 *;
#X obj 167 323 outlet;
#X obj 221 111 t f f;
#X obj 168 244 -;
#X obj 150 219 f;
#X obj 152 192 t b f;
#X obj 172 289 +;
#X connect 0 0 12 0;
#X connect 1 0 8 0;
#X connect 2 0 14 0;
#X connect 3 0 8 1;
#X connect 8 0 18 1;
#X connect 10 0 12 1;
#X connect 11 0 16 1;
#X connect 12 0 17 0;
#X connect 14 0 10 0;
#X connect 14 1 11 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 16 0;
#X connect 17 1 15 1;
#X connect 18 0 13 0;
#X restore 490 463 pd a0;
#N canvas 0 60 469 421 a1 0;
#X obj 86 67 inlet;
#X obj 243 70 inlet;
#X text 286 70 A;
#X text 137 70 CS;
#X obj 119 194 *;
#X obj 171 379 outlet;
#X obj 170 312 t b f;
#X obj 173 359 *;
#X obj 140 170 + 1;
#X obj 194 226 - 1;
#X obj 221 111 t f f;
#X obj 168 284 -;
#X obj 135 219 t b f;
#X obj 144 255 f;
#X msg 171 335 2;
#X connect 0 0 4 0;
#X connect 1 0 10 0;
#X connect 4 0 12 0;
#X connect 6 0 14 0;
#X connect 6 1 7 1;
#X connect 7 0 5 0;
#X connect 8 0 4 1;
#X connect 9 0 13 1;
#X connect 10 0 8 0;
#X connect 10 1 9 0;
#X connect 11 0 6 0;
#X connect 12 0 13 0;
#X connect 12 1 11 1;
#X connect 13 0 11 0;
#X connect 14 0 7 0;
#X restore 203 464 pd a1;
#N canvas 71 12 450 346 a2 0;
#X obj 86 67 inlet;
#X obj 167 68 inlet;
#X obj 243 70 inlet;
#X obj 330 115 inlet;
#X text 376 114 beta;
#X text 286 70 A;
#X text 137 70 CS;
#X text 209 67 SN;
#X obj 264 228 *;
#X text 292 227 beta*sn;
#X obj 140 130 - 1;
#X obj 210 203 + 1;
#X obj 119 154 *;
#X obj 181 318 outlet;
#X obj 221 111 t f f;
#X obj 168 254 -;
#X obj 150 229 f;
#X obj 153 195 t b f;
#X obj 178 286 -;
#X connect 0 0 12 0;
#X connect 1 0 8 0;
#X connect 2 0 14 0;
#X connect 3 0 8 1;
#X connect 8 0 18 1;
#X connect 10 0 12 1;
#X connect 11 0 16 1;
#X connect 12 0 17 0;
#X connect 14 0 10 0;
#X connect 14 1 11 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 16 0;
#X connect 17 1 15 1;
#X connect 18 0 13 0;
#X restore 266 462 pd a2;
#X text 312 611 based on highshelf 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 43 0;
#X connect 1 0 11 1;
#X connect 2 0 8 0;
#X connect 8 0 23 1;
#X connect 9 0 24 0;
#X connect 10 0 35 0;
#X connect 11 0 9 0;
#X connect 12 0 14 0;
#X connect 12 1 22 0;
#X connect 12 2 15 0;
#X connect 12 3 16 0;
#X connect 13 0 12 0;
#X connect 14 0 20 0;
#X connect 15 0 11 1;
#X connect 16 0 8 0;
#X connect 17 0 19 1;
#X connect 18 0 19 0;
#X connect 19 0 21 0;
#X connect 20 0 18 0;
#X connect 20 1 17 0;
#X connect 21 0 34 0;
#X connect 22 0 10 1;
#X connect 23 0 36 3;
#X connect 23 0 38 3;
#X connect 23 0 39 3;
#X connect 23 0 41 3;
#X connect 24 0 36 2;
#X connect 24 0 37 1;
#X connect 24 0 38 2;
#X connect 24 0 39 2;
#X connect 24 0 40 1;
#X connect 24 0 41 2;
#X connect 24 1 23 0;
#X connect 31 0 46 0;
#X connect 32 0 36 1;
#X connect 32 0 38 1;
#X connect 32 0 39 1;
#X connect 32 0 41 1;
#X connect 33 0 36 0;
#X connect 33 0 37 0;
#X connect 33 0 38 0;
#X connect 33 0 39 0;
#X connect 33 0 40 0;
#X connect 33 0 41 0;
#X connect 34 0 31 0;
#X connect 34 1 10 0;
#X connect 34 2 11 0;
#X connect 35 0 33 0;
#X connect 35 1 32 0;
#X connect 36 0 31 3;
#X connect 37 0 31 4;
#X connect 38 0 31 5;
#X connect 39 0 31 6;
#X connect 40 0 31 1;
#X connect 41 0 31 2;
#X connect 43 0 21 0;
#X connect 43 1 44 0;
#X connect 44 0 21 0;
#X connect 44 1 11 1;
#X connect 44 2 8 0;
#X connect 46 0 3 0;


More information about the Pd-list mailing list