1<CsoundSynthesizer> 2<CsOptions> 3</CsOptions> 4<CsInstruments> 5 6sr = 44100 7ksmps = 128 8nchnls = 2 90dbfs = 1 10 11; This file implements as UDOs the basic parametric equalizers from 12; Zoelzer's DAFX book (Chapter 2). 13; They are a set of calculations for biquad filter coefficients to 14; produce controllable second order filters. 15 16opcode lpf2pole, a, ak 17ain,kfc xin 18ktrig changed kfc 19if ktrig == 1 then 20 kvalue = tan($M_PI * kfc / sr) 21 kdenom = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 22 knumb0 = (kvalue^2) 23 kb0 = knumb0/kdenom 24 knumb1 = 2 * (kvalue^2) 25 kb1 = knumb1/kdenom 26 knumb2 = (kvalue^2) 27 kb2 = knumb2/kdenom 28 knuma1 = 2 *((kvalue^2) - 1) 29 ka1 = knuma1/kdenom 30 knuma2 = 1 - ($M_SQRT2 * kvalue) + (kvalue^2) 31 ka2 = knuma2/kdenom 32 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 33 outvalue "coef", Sdisp 34endif 35afilt biquad ain, kb0, kb1, kb2, 1, ka1, ka2 36xout afilt 37endop 38 39opcode hpf2pole, a, ak 40ain,kfc xin 41ktrig changed kfc 42if ktrig == 1 then 43 kvalue = tan($M_PI * kfc / sr) 44 kdenom = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 45 knum0 = 1 46 kb0 = knum0/kdenom 47 knumb1 = -2 48 kb1 = knumb1/kdenom 49 knumb2 = 1 50 kb2 = knumb2/kdenom 51 knuma1 = 2 *((kvalue^2) - 1) 52 ka1 = knuma1/kdenom 53 knuma2 = 1 - ($M_SQRT2 * kvalue) + (kvalue^2) 54 ka2 = knuma2/kdenom 55 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 56 outvalue "coef", Sdisp 57endif 58afilt biquad ain, kb0, kb1, kb2, 1, ka1, ka2 59xout afilt 60endop 61 62opcode loshelf, a, akk 63ain,kfc, kgain xin 64 65ktrig changed kfc, kgain 66if ktrig == 1 then 67 kvalue = tan($M_PI * kfc / sr) 68 if kgain >= 0 then 69 kV0 = 10^(kgain/20) 70 kdenom = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 71 knumb0 = 1 + (sqrt(2*kV0) * kvalue) + (kV0 * kvalue^2) 72 kb0 = knumb0/kdenom 73 knumb1 = 2 * ((kV0 * kvalue^2) - 1) 74 kb1 = knumb1/kdenom 75 knumb2 = 1 - (sqrt(2*kV0) * kvalue) + (kV0 * kvalue^2) 76 kb2 = knumb2/kdenom 77 knuma1 = 2 *((kvalue^2) - 1) 78 ka1 = knuma1/kdenom 79 knuma2 = 1 - ($M_SQRT2 * kvalue) + (kvalue^2) 80 ka2 = knuma2/kdenom 81 else 82 kV0 = 10^(-kgain/20) 83 kdenom = 1 + (sqrt(2*kV0) * kvalue) + (kV0 * kvalue^2) 84 knumb0 = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 85 kb0 = knumb0/kdenom 86 knumb1 = 2 * ((kvalue^2) - 1 ) 87 kb1 = knumb1/kdenom 88 knumb2 = 1 - (sqrt(2*kV0) * kvalue) + (kvalue^2) 89 kb2 = knumb2/kdenom 90 knuma1 = 2 *((kV0 * kvalue^2) - 1) 91 ka1 = knuma1/kdenom 92 knuma2 = 1 - (sqrt(2*kV0) * kvalue) + (kV0 * kvalue^2) 93 ka2 = knuma2/kdenom 94 95 endif 96 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 97 outvalue "coef", Sdisp 98endif 99afilt biquad ain, kb0, kb1, kb2, 1, ka1, ka2 100xout afilt 101endop 102 103opcode hishelf, a, akk 104ain,kfc, kgain xin 105ktrig changed kfc, kgain 106 107if ktrig == 1 then 108 kvalue = tan($M_PI * kfc / sr) 109 kV0 = 10^(kgain/20) 110 if kgain >= 0 then 111 kV0 = 10^(kgain/20) 112 kdenom = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 113 knumb0 = kV0 + (sqrt(2*kV0) * kvalue) + (kvalue^2) 114 kb0 = knumb0/kdenom 115 knumb1 = 2 * ((kvalue^2) - kV0) 116 kb1 = knumb1/kdenom 117 knumb2 = kV0 - (sqrt(2*kV0) * kvalue) + (kvalue^2) 118 kb2 = knumb2/kdenom 119 knuma1 = 2 *((kvalue^2) - 1) 120 ka1 = knuma1/kdenom 121 knuma2 = 1 - ($M_SQRT2 * kvalue) + (kvalue^2) 122 ka2 = knuma2/kdenom 123 else 124 kV0 = 10^(-kgain/20) 125 kdenom = kV0 + (sqrt(2*kV0) * kvalue) + (kvalue^2) 126 knumb0 = 1 + ($M_SQRT2 * kvalue) + (kvalue^2) 127 kb0 = knumb0/kdenom 128 knumb1 = 2 * ((kvalue^2) - 1 ) 129 kb1 = knumb1/kdenom 130 knumb2 = 1 - ($M_SQRT2 * kvalue) + (kvalue^2) 131 kb2 = knumb2/kdenom 132 kdenom = 1 + (sqrt(2/kV0) * kvalue) + ((kvalue^2)/ kV0) 133 knuma1 = 2 *(((kvalue^2)/ kV0) - 1) 134 ka1 = knuma1/kdenom 135 knuma2 = 1 - (sqrt(2/kV0) * kvalue) + ((kvalue^2)/ kV0) 136 ka2 = knuma2/kdenom 137 138 endif 139 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 140 outvalue "coef", Sdisp 141endif 142afilt biquad ain, kb0, kb1, kb2, 1, ka1, ka2 143xout afilt 144endop 145 146opcode eq2pole, a, akkk 147ain,kfc, kgain, kQ xin 148 149ktrig changed kfc, kgain, kQ 150if ktrig == 1 then 151 kvalue = tan($M_PI * kfc / sr) 152 kV0 = 10^(kgain/20) 153 if kgain >= 0 then 154 kV0 = 10^(kgain/20) 155 kdenom = 1 + (kvalue / kQ) + (kvalue^2) 156 knumb0 = 1 + (kV0 * kvalue / kQ) + (kvalue^2) 157 kb0 = knumb0/kdenom 158 knumb1 = 2 * ((kvalue^2) - 1) 159 kb1 = knumb1/kdenom 160 knumb2 = 1 - (kV0 * kvalue / kQ) + (kvalue^2) 161 kb2 = knumb2/kdenom 162 knuma1 = 2 *((kvalue^2) - 1) 163 ka1 = knuma1/kdenom 164 knuma2 = 1 - (kvalue / kQ) + (kvalue^2) 165 ka2 = knuma2/kdenom 166 else 167 kV0 = 10^(-kgain/20) 168 kdenom = 1 + (kV0 * kvalue / kQ) + (kvalue^2) 169 knumb0 = 1 + (kvalue / kQ) + (kvalue^2) 170 kb0 = knumb0/kdenom 171 knumb1 = 2 * ((kvalue^2) - 1) 172 kb1 = knumb1/kdenom 173 knumb2 = 1 - (kvalue / kQ) + (kvalue^2) 174 kb2 = knumb2/kdenom 175 knuma1 = 2 *((kvalue^2) - 1) 176 ka1 = knuma1/kdenom 177 knuma2 = 1 - (kV0 * kvalue / kQ) + (kvalue^2) 178 ka2 = knuma2/kdenom 179 180 endif 181 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 182 outvalue "coef", Sdisp 183endif 184afilt biquad ain, kb0, kb1, kb2, 1, ka1, ka2 185xout afilt 186endop 187 188opcode allpass1, a, ak 189ain,kfc xin 190ktrig changed kfc 191if ktrig == 1 then 192 kvalue = tan($M_PI * kfc / sr) 193 kc = (kvalue - 1) / (kvalue + 1) 194 kd = - cos(2* $M_PI* kfc / sr) 195 kb0 = kc 196 kb1 = 1 197 ka0 = 1 198 ka1 = kc 199 Sdisp sprintfk "b0=%.3f b1=%.3f\n\na1=%.3f", kb0, kb1, ka1 200 outvalue "coef", Sdisp 201endif 202afilt biquad ain, kb0, kb1, 0, ka0, ka1, 0 203xout afilt 204endop 205 206opcode allpass2, a, akk 207ain,kfc, kfb xin 208ktrig changed kfc, kfb 209if ktrig == 1 then 210 kvalue = tan($M_PI * kfb / sr) 211 kc = (kvalue - 1) / (kvalue + 1) 212 kd = - cos(2* $M_PI* kfc / sr) 213 kb0 = - kc 214 kb1 = kd * ( 1 - kc ) 215 kb2 = 1 216 ka0 = 1 217 ka1 = kd * ( 1 - kc ) 218 ka2 = - kc 219 Sdisp sprintfk "b0=%.3f b1=%.3f b2=%.3f\n\na1=%.3f a2=%.3f", kb0, kb1, kb2, ka1, ka2 220 outvalue "coef", Sdisp 221endif 222afilt biquad ain, kb0, kb1, kb2, ka0, ka1, ka2 223xout afilt 224endop 225 226 227instr 1 228anoise noise 1, 0 229ktype invalue "type" 230kfreq invalue "freq" 231kgain invalue "gain" 232kQ invalue "Q" 233 234if ktype == 0 then 235 afilt lpf2pole anoise, kfreq 236elseif ktype == 1 then 237 afilt hpf2pole anoise, kfreq 238elseif ktype == 2 then 239 afilt loshelf anoise, kfreq, kgain 240elseif ktype == 3 then 241 afilt hishelf anoise, kfreq, kgain 242elseif ktype == 4 then 243 afilt eq2pole anoise, kfreq, kgain, kQ 244elseif ktype == 5 then 245 afilt allpass1 anoise, kfreq 246elseif ktype == 6 then 247 afilt allpass2 anoise, kfreq, kQ 248else 249 afilt = anoise 250endif 251 252dispfft afilt, 0.5, 4096 253aout = afilt*0.02 254aout clip aout, 0, 0.3 ; For ear and speaker protection from unstable filters 255outs aout, aout 256endin 257 258 259</CsInstruments> 260<CsScore> 261i 1 0 3600 262e 263</CsScore> 264</CsoundSynthesizer> 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281<bsbPanel> 282 <label>Widgets</label> 283 <objectName/> 284 <x>808</x> 285 <y>138</y> 286 <width>755</width> 287 <height>510</height> 288 <visible>true</visible> 289 <uuid/> 290 <bgcolor mode="background"> 291 <r>204</r> 292 <g>204</g> 293 <b>204</b> 294 </bgcolor> 295 <bsbObject version="2" type="BSBHSlider"> 296 <objectName>freq</objectName> 297 <x>9</x> 298 <y>205</y> 299 <width>709</width> 300 <height>35</height> 301 <uuid>{0bd0d91d-2f3a-441f-a01b-6d78738906f2}</uuid> 302 <visible>true</visible> 303 <midichan>0</midichan> 304 <midicc>-3</midicc> 305 <minimum>1.00000000</minimum> 306 <maximum>22050.00000000</maximum> 307 <value>7029.31311707</value> 308 <mode>lin</mode> 309 <mouseControl act="jump">continuous</mouseControl> 310 <resolution>-1.00000000</resolution> 311 <randomizable group="0">true</randomizable> 312 </bsbObject> 313 <bsbObject version="2" type="BSBGraph"> 314 <objectName/> 315 <x>8</x> 316 <y>263</y> 317 <width>713</width> 318 <height>213</height> 319 <uuid>{8dcfe636-a222-4950-9553-5dd30cd898c0}</uuid> 320 <visible>true</visible> 321 <midichan>0</midichan> 322 <midicc>-3</midicc> 323 <value>0</value> 324 <objectName2/> 325 <zoomx>1.00000000</zoomx> 326 <zoomy>1.00000000</zoomy> 327 <dispx>1.00000000</dispx> 328 <dispy>1.00000000</dispy> 329 <modex>lin</modex> 330 <modey>lin</modey> 331 <all>true</all> 332 </bsbObject> 333 <bsbObject version="2" type="BSBLabel"> 334 <objectName/> 335 <x>393</x> 336 <y>234</y> 337 <width>41</width> 338 <height>24</height> 339 <uuid>{1f0cb546-0de6-44c0-b80a-6a098d0fd56d}</uuid> 340 <visible>true</visible> 341 <midichan>0</midichan> 342 <midicc>-3</midicc> 343 <label>Hz</label> 344 <alignment>left</alignment> 345 <font>Helvetica</font> 346 <fontsize>12</fontsize> 347 <precision>3</precision> 348 <color> 349 <r>0</r> 350 <g>0</g> 351 <b>0</b> 352 </color> 353 <bgcolor mode="background"> 354 <r>255</r> 355 <g>255</g> 356 <b>255</b> 357 </bgcolor> 358 <bordermode>noborder</bordermode> 359 <borderradius>1</borderradius> 360 <borderwidth>1</borderwidth> 361 </bsbObject> 362 <bsbObject version="2" type="BSBLabel"> 363 <objectName>freq</objectName> 364 <x>327</x> 365 <y>234</y> 366 <width>69</width> 367 <height>24</height> 368 <uuid>{01ad6a68-ac02-42bb-8bb2-50451a11a288}</uuid> 369 <visible>true</visible> 370 <midichan>0</midichan> 371 <midicc>-3</midicc> 372 <label>7029.313</label> 373 <alignment>right</alignment> 374 <font>Helvetica</font> 375 <fontsize>12</fontsize> 376 <precision>3</precision> 377 <color> 378 <r>0</r> 379 <g>0</g> 380 <b>0</b> 381 </color> 382 <bgcolor mode="background"> 383 <r>255</r> 384 <g>255</g> 385 <b>255</b> 386 </bgcolor> 387 <bordermode>noborder</bordermode> 388 <borderradius>1</borderradius> 389 <borderwidth>1</borderwidth> 390 </bsbObject> 391 <bsbObject version="2" type="BSBLabel"> 392 <objectName/> 393 <x>411</x> 394 <y>67</y> 395 <width>190</width> 396 <height>26</height> 397 <uuid>{a7205100-c056-490d-afc0-c38e7300043b}</uuid> 398 <visible>true</visible> 399 <midichan>0</midichan> 400 <midicc>-3</midicc> 401 <label>Biquad Coefficients</label> 402 <alignment>left</alignment> 403 <font>Helvetica</font> 404 <fontsize>12</fontsize> 405 <precision>3</precision> 406 <color> 407 <r>0</r> 408 <g>0</g> 409 <b>0</b> 410 </color> 411 <bgcolor mode="nobackground"> 412 <r>255</r> 413 <g>255</g> 414 <b>255</b> 415 </bgcolor> 416 <bordermode>noborder</bordermode> 417 <borderradius>1</borderradius> 418 <borderwidth>1</borderwidth> 419 </bsbObject> 420 <bsbObject version="2" type="BSBDropdown"> 421 <objectName>type</objectName> 422 <x>213</x> 423 <y>121</y> 424 <width>176</width> 425 <height>25</height> 426 <uuid>{0479174b-721c-44ca-9e46-0bc62bc7ebe2}</uuid> 427 <visible>true</visible> 428 <midichan>0</midichan> 429 <midicc>-3</midicc> 430 <bsbDropdownItemList> 431 <bsbDropdownItem> 432 <name>2nd order low-pass</name> 433 <value>0</value> 434 <stringvalue/> 435 </bsbDropdownItem> 436 <bsbDropdownItem> 437 <name>2nd order hi-pass</name> 438 <value>1</value> 439 <stringvalue/> 440 </bsbDropdownItem> 441 <bsbDropdownItem> 442 <name>2nd order low shelving</name> 443 <value>2</value> 444 <stringvalue/> 445 </bsbDropdownItem> 446 <bsbDropdownItem> 447 <name>2nd order high shelving</name> 448 <value>3</value> 449 <stringvalue/> 450 </bsbDropdownItem> 451 <bsbDropdownItem> 452 <name>Parametric eq</name> 453 <value>4</value> 454 <stringvalue/> 455 </bsbDropdownItem> 456 <bsbDropdownItem> 457 <name>First order All Pass</name> 458 <value>5</value> 459 <stringvalue/> 460 </bsbDropdownItem> 461 <bsbDropdownItem> 462 <name>Second Order All Pass</name> 463 <value>6</value> 464 <stringvalue/> 465 </bsbDropdownItem> 466 <bsbDropdownItem> 467 <name>Bypass</name> 468 <value>7</value> 469 <stringvalue/> 470 </bsbDropdownItem> 471 </bsbDropdownItemList> 472 <selectedIndex>0</selectedIndex> 473 <randomizable group="0">false</randomizable> 474 </bsbObject> 475 <bsbObject version="2" type="BSBKnob"> 476 <objectName>gain</objectName> 477 <x>12</x> 478 <y>87</y> 479 <width>80</width> 480 <height>80</height> 481 <uuid>{3d171c0d-cb02-4d2c-8388-0961068b8e4e}</uuid> 482 <visible>true</visible> 483 <midichan>0</midichan> 484 <midicc>-3</midicc> 485 <minimum>-20.00000000</minimum> 486 <maximum>20.00000000</maximum> 487 <value>9.20000000</value> 488 <mode>lin</mode> 489 <mouseControl act="jump">continuous</mouseControl> 490 <resolution>0.01000000</resolution> 491 <randomizable group="0">false</randomizable> 492 </bsbObject> 493 <bsbObject version="2" type="BSBLabel"> 494 <objectName/> 495 <x>14</x> 496 <y>59</y> 497 <width>80</width> 498 <height>25</height> 499 <uuid>{8c0420dc-4fcb-499f-9317-517e837c038a}</uuid> 500 <visible>true</visible> 501 <midichan>0</midichan> 502 <midicc>-3</midicc> 503 <label>Gain</label> 504 <alignment>left</alignment> 505 <font>Helvetica</font> 506 <fontsize>12</fontsize> 507 <precision>3</precision> 508 <color> 509 <r>0</r> 510 <g>0</g> 511 <b>0</b> 512 </color> 513 <bgcolor mode="nobackground"> 514 <r>255</r> 515 <g>255</g> 516 <b>255</b> 517 </bgcolor> 518 <bordermode>noborder</bordermode> 519 <borderradius>1</borderradius> 520 <borderwidth>1</borderwidth> 521 </bsbObject> 522 <bsbObject version="2" type="BSBLabel"> 523 <objectName>gain</objectName> 524 <x>18</x> 525 <y>171</y> 526 <width>69</width> 527 <height>24</height> 528 <uuid>{66349cae-8fcb-4efe-b691-46c3a667d1f8}</uuid> 529 <visible>true</visible> 530 <midichan>0</midichan> 531 <midicc>-3</midicc> 532 <label>9.200</label> 533 <alignment>left</alignment> 534 <font>Helvetica</font> 535 <fontsize>12</fontsize> 536 <precision>3</precision> 537 <color> 538 <r>0</r> 539 <g>0</g> 540 <b>0</b> 541 </color> 542 <bgcolor mode="background"> 543 <r>255</r> 544 <g>255</g> 545 <b>255</b> 546 </bgcolor> 547 <bordermode>noborder</bordermode> 548 <borderradius>1</borderradius> 549 <borderwidth>1</borderwidth> 550 </bsbObject> 551 <bsbObject version="2" type="BSBLabel"> 552 <objectName/> 553 <x>341</x> 554 <y>180</y> 555 <width>80</width> 556 <height>25</height> 557 <uuid>{a2bdce04-8f5e-40fb-a743-e09d6a8eec89}</uuid> 558 <visible>true</visible> 559 <midichan>0</midichan> 560 <midicc>-3</midicc> 561 <label>Frequency</label> 562 <alignment>left</alignment> 563 <font>Helvetica</font> 564 <fontsize>12</fontsize> 565 <precision>3</precision> 566 <color> 567 <r>0</r> 568 <g>0</g> 569 <b>0</b> 570 </color> 571 <bgcolor mode="nobackground"> 572 <r>255</r> 573 <g>255</g> 574 <b>255</b> 575 </bgcolor> 576 <bordermode>noborder</bordermode> 577 <borderradius>1</borderradius> 578 <borderwidth>1</borderwidth> 579 </bsbObject> 580 <bsbObject version="2" type="BSBKnob"> 581 <objectName>Q</objectName> 582 <x>102</x> 583 <y>88</y> 584 <width>80</width> 585 <height>80</height> 586 <uuid>{ddba3cab-bc78-416b-b421-8fb9d8b845b1}</uuid> 587 <visible>true</visible> 588 <midichan>0</midichan> 589 <midicc>-3</midicc> 590 <minimum>0.10000000</minimum> 591 <maximum>10.00000000</maximum> 592 <value>5.74300000</value> 593 <mode>lin</mode> 594 <mouseControl act="jump">continuous</mouseControl> 595 <resolution>0.01000000</resolution> 596 <randomizable group="0">false</randomizable> 597 </bsbObject> 598 <bsbObject version="2" type="BSBLabel"> 599 <objectName/> 600 <x>104</x> 601 <y>60</y> 602 <width>80</width> 603 <height>25</height> 604 <uuid>{81820bef-c5cc-45b0-8ded-49e9160158e1}</uuid> 605 <visible>true</visible> 606 <midichan>0</midichan> 607 <midicc>-3</midicc> 608 <label>Q</label> 609 <alignment>left</alignment> 610 <font>Helvetica</font> 611 <fontsize>12</fontsize> 612 <precision>3</precision> 613 <color> 614 <r>0</r> 615 <g>0</g> 616 <b>0</b> 617 </color> 618 <bgcolor mode="nobackground"> 619 <r>255</r> 620 <g>255</g> 621 <b>255</b> 622 </bgcolor> 623 <bordermode>noborder</bordermode> 624 <borderradius>1</borderradius> 625 <borderwidth>1</borderwidth> 626 </bsbObject> 627 <bsbObject version="2" type="BSBLabel"> 628 <objectName>Q</objectName> 629 <x>108</x> 630 <y>172</y> 631 <width>69</width> 632 <height>24</height> 633 <uuid>{094450ee-6000-47b1-a738-91ee9a291e4c}</uuid> 634 <visible>true</visible> 635 <midichan>0</midichan> 636 <midicc>-3</midicc> 637 <label>5.743</label> 638 <alignment>left</alignment> 639 <font>Helvetica</font> 640 <fontsize>12</fontsize> 641 <precision>3</precision> 642 <color> 643 <r>0</r> 644 <g>0</g> 645 <b>0</b> 646 </color> 647 <bgcolor mode="background"> 648 <r>255</r> 649 <g>255</g> 650 <b>255</b> 651 </bgcolor> 652 <bordermode>noborder</bordermode> 653 <borderradius>1</borderradius> 654 <borderwidth>1</borderwidth> 655 </bsbObject> 656 <bsbObject version="2" type="BSBLabel"> 657 <objectName/> 658 <x>213</x> 659 <y>94</y> 660 <width>130</width> 661 <height>25</height> 662 <uuid>{f7d12575-56ae-49e5-b37f-8661a728d2bb}</uuid> 663 <visible>true</visible> 664 <midichan>0</midichan> 665 <midicc>-3</midicc> 666 <label>Filter type</label> 667 <alignment>left</alignment> 668 <font>Helvetica</font> 669 <fontsize>12</fontsize> 670 <precision>3</precision> 671 <color> 672 <r>0</r> 673 <g>0</g> 674 <b>0</b> 675 </color> 676 <bgcolor mode="nobackground"> 677 <r>255</r> 678 <g>255</g> 679 <b>255</b> 680 </bgcolor> 681 <bordermode>noborder</bordermode> 682 <borderradius>1</borderradius> 683 <borderwidth>1</borderwidth> 684 </bsbObject> 685 <bsbObject version="2" type="BSBLabel"> 686 <objectName/> 687 <x>13</x> 688 <y>5</y> 689 <width>709</width> 690 <height>49</height> 691 <uuid>{5cd431c8-1032-4c45-8ddf-beaaaa72f1dd}</uuid> 692 <visible>true</visible> 693 <midichan>0</midichan> 694 <midicc>-3</midicc> 695 <label>Biquad Filter Lab</label> 696 <alignment>left</alignment> 697 <font>Lucida Grande</font> 698 <fontsize>28</fontsize> 699 <precision>3</precision> 700 <color> 701 <r>0</r> 702 <g>0</g> 703 <b>0</b> 704 </color> 705 <bgcolor mode="background"> 706 <r>179</r> 707 <g>179</g> 708 <b>179</b> 709 </bgcolor> 710 <bordermode>noborder</bordermode> 711 <borderradius>1</borderradius> 712 <borderwidth>1</borderwidth> 713 </bsbObject> 714 <bsbObject version="2" type="BSBDisplay"> 715 <objectName>coef</objectName> 716 <x>410</x> 717 <y>91</y> 718 <width>310</width> 719 <height>80</height> 720 <uuid>{64a3dc1c-c9d4-484c-a939-5c207787c41f}</uuid> 721 <visible>true</visible> 722 <midichan>0</midichan> 723 <midicc>-3</midicc> 724 <label>b0=0.144 b1=0.289 b2=0.144 725 726a1=-0.676 a2=0.253</label> 727 <alignment>left</alignment> 728 <font>Arial</font> 729 <fontsize>14</fontsize> 730 <precision>3</precision> 731 <color> 732 <r>0</r> 733 <g>0</g> 734 <b>0</b> 735 </color> 736 <bgcolor mode="nobackground"> 737 <r>255</r> 738 <g>255</g> 739 <b>255</b> 740 </bgcolor> 741 <bordermode>border</bordermode> 742 <borderradius>1</borderradius> 743 <borderwidth>1</borderwidth> 744 </bsbObject> 745</bsbPanel> 746<bsbPresets> 747</bsbPresets> 748<MacOptions> 749Version: 3 750Render: Real 751Ask: Yes 752Functions: ioObject 753Listing: Window 754WindowBounds: 808 138 755 510 755CurrentView: io 756IOViewEdit: On 757Options: -b128 -A -s -m167 -R 758</MacOptions> 759<MacGUI> 760ioView background {52428, 52428, 52428} 761ioSlider {9, 205} {709, 35} 1.000000 22050.000000 7029.313117 freq 762ioGraph {8, 263} {713, 213} table 0.000000 1.000000 763ioText {393, 234} {41, 24} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Hz 764ioText {327, 234} {69, 24} label 7029.313117 0.00100 "freq" right "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder 7029.313 765ioText {411, 67} {130, 25} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Biquad Coefficients 766ioMenu {213, 121} {176, 25} 0 303 "2nd order low-pass,2nd order hi-pass,2nd order low shelving,2nd order high shelving,Parametric eq,First order All Pass,Second Order All Pass,Bypass" type 767ioKnob {12, 87} {80, 80} 20.000000 -20.000000 0.010000 9.200000 gain 768ioText {14, 59} {80, 25} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Gain 769ioText {18, 171} {69, 24} label 9.200000 0.00100 "gain" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder 9.200 770ioText {341, 180} {80, 25} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Frequency 771ioKnob {102, 88} {80, 80} 10.000000 0.100000 0.010000 5.743000 Q 772ioText {104, 60} {80, 25} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Q 773ioText {108, 172} {69, 24} label 5.743000 0.00100 "Q" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder 5.743 774ioText {213, 94} {130, 25} label 0.000000 0.00100 "" left "Helvetica" 12 {0, 0, 0} {65280, 65280, 65280} nobackground noborder Filter type 775ioText {13, 5} {709, 49} label 0.000000 0.00100 "" left "Lucida Grande" 28 {0, 0, 0} {45824, 45824, 45824} nobackground noborder Biquad Filter Lab 776ioText {410, 91} {310, 80} display 0.000000 0.00100 "coef" left "Arial" 14 {0, 0, 0} {65280, 65280, 65280} nobackground noborder b0=0.144 b1=0.289 b2=0.144¬¬a1=-0.676 a2=0.253 777</MacGUI> 778<EventPanel name="" tempo="60.00000000" loop="8.00000000" x="557" y="270" width="608" height="322" visible="true" loopStart="0" loopEnd="0"> </EventPanel> 779