#N canvas 314 144 767 839 12; #X obj 115 429 cnv 15 400 200 empty empty LPG 20 12 0 14 -204786 -66577 0; #X obj 255 451 sig~ 0.001; #N canvas 0 22 450 300 resonant-lowpass~ 0; #N canvas 616 433 842 444 lowpass.coeffs 0; #X obj 350 170 sig~ 1; #X obj 350 191 /~; #X obj 335 212 *~; #X obj 335 238 *~ 0.5; #X obj 89 301 sig~ 1; #X obj 89 323 /~; #X obj 199 339 *~; #X obj 214 317 *~ 0.5; #X obj 259 339 *~; #X obj 319 339 *~; #X obj 379 339 *~; #X obj 394 295 *~ -2; #X obj 454 273 sig~ 1; #X obj 454 295 -~; #X obj 439 339 *~; #X obj 134 307 +~ 1; #X text 440 234 w0 = 2*pi*f0*Fs; #X text 440 254 alpha = sin(w0)/(2*Q); #X text 604 309 a2 = 1 - alpha; #X text 604 289 a1 = -2*cos(w0); #X text 469 144 H(z) = -----------------------------------------; #X text 469 104 Audio-Cookbook:; #X obj 214 273 sig~ 1; #X obj 214 295 -~; #X obj 274 273 sig~ 1; #X obj 274 295 -~; #X obj 334 317 *~ 0.5; #X obj 334 273 sig~ 1; #X obj 334 295 -~; #X text 511 159 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); #X text 511 129 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); #X text 604 269 a0 = 1 + alpha; #X text 604 329 b0 = (1 - cos(w0))/2; #X text 604 349 b1 = (1 - cos(w0)); #X text 604 369 b2 = (1 - cos(w0))/2; #X text 594 249 LPF:; #X obj 89 158 /~ 44100; #X obj 157 12 loadbang; #X obj 134 101 samplerate~; #X obj 89 180 *~ 6.28319; #X obj 194 196 expr~ sin($v1); #X obj 89 279 expr~ cos($v1); #X obj 365 149 max~ 0.1; #X obj 12 116 inlet~; #X obj 365 128 inlet~; #X msg 157 33 bang; #X msg 184 122 1; #X obj 184 143 atan; #X obj 184 164 * 8; #X obj 157 54 t b b; #X obj 199 360 outlet~; #X obj 259 360 outlet~; #X obj 319 360 outlet~; #X obj 379 360 outlet~; #X obj 439 360 outlet~; #X text 469 184 https://www.musicdsp.org/en/latest/Filters/197-rbj-audio-eq-cookbook.html ; #X text 199 380 (O1) b0; #X text 259 380 (O2) b1; #X text 319 380 (O3) b2; #X text 379 380 (O4) a1; #X text 439 380 (O5) a2; #X text 365 108 (I2) Q factor; #X text 12 96 (I1) Frequency; #X obj 12 137 clip~ 0 20000; #X connect 0 0 1 0; #X connect 1 0 2 1; #X connect 2 0 3 0; #X connect 3 0 13 1; #X connect 3 0 15 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 5 0 8 0; #X connect 5 0 9 0; #X connect 5 0 10 0; #X connect 5 0 14 0; #X connect 6 0 50 0; #X connect 7 0 6 1; #X connect 8 0 51 0; #X connect 9 0 52 0; #X connect 10 0 53 0; #X connect 11 0 10 1; #X connect 12 0 13 0; #X connect 13 0 14 1; #X connect 14 0 54 0; #X connect 15 0 5 1; #X connect 22 0 23 0; #X connect 23 0 7 0; #X connect 24 0 25 0; #X connect 25 0 8 1; #X connect 26 0 9 1; #X connect 27 0 28 0; #X connect 28 0 26 0; #X connect 36 0 39 0; #X connect 37 0 45 0; #X connect 38 0 36 1; #X connect 39 0 40 0; #X connect 39 0 41 0; #X connect 40 0 2 0; #X connect 41 0 23 1; #X connect 41 0 25 1; #X connect 41 0 28 1; #X connect 41 0 11 0; #X connect 42 0 1 1; #X connect 43 0 63 0; #X connect 44 0 42 0; #X connect 45 0 49 0; #X connect 46 0 47 0; #X connect 47 0 48 0; #X connect 48 0 39 1; #X connect 49 0 38 0; #X connect 49 1 46 0; #X connect 63 0 36 0; #X restore 78 53 pd lowpass.coeffs; #X obj 12 160 outlet~; #N canvas 776 547 365 190 @hv_obj 0; #X obj 12 31 inlet~; #N canvas 1097 522 303 331 zeros 0; #X obj 12 217 czero~; #X obj 12 273 czero~; #X obj 12 299 outlet~; #X obj 75 299 outlet~; #X obj 12 31 inlet~; #X obj 47 122 *~ -1; #X obj 47 143 *~ 0.5; #X obj 132 58 *~; #X obj 132 92 -~; #X obj 187 78 *~ 4; #X obj 187 57 *~; #X obj 132 113 abs~; #X obj 132 155 *~ 0.5; #X obj 132 176 /~; #N canvas 773 235 262 212 location 0; #X obj 12 12 inlet~; #X obj 62 12 inlet~; #X obj 207 12 inlet~; #X obj 12 174 outlet~; #X obj 72 174 outlet~; #X obj 132 174 outlet~; #X obj 192 174 outlet~; #N canvas 725 189 180 137 gte 0; #X obj 117 12 inlet~; #X obj 12 12 inlet~; #X obj 12 100 outlet~; #N canvas 758 270 144 76 @hv_obj 0; #X obj 62 12 inlet~; #X obj 12 12 inlet~; #X obj 12 34 outlet~; #X connect 1 0 2 0; #X restore 12 78 pd @hv_obj __and~f; #X obj 117 56 sig~ 1; #N canvas 945 362 136 178 @hv_obj 0; #X obj 12 56 -~; #X obj 12 78 clip~ -1e-37 0; #X obj 12 12 inlet~; #X obj 62 12 inlet~; #X obj 12 144 outlet~; #X obj 12 122 *~ 1e+37; #X obj 12 34 min~; #X obj 12 100 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 3 0 6 1; #X connect 3 0 0 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 12 34 pd @hv_obj __gte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 62 49 pd gte; #N canvas 845 375 187 138 lte 0; #X obj 117 12 inlet~; #X obj 12 12 inlet~; #X obj 12 100 outlet~; #N canvas 467 216 140 82 @hv_obj 0; #X obj 72 12 inlet~; #X obj 12 12 inlet~; #X obj 12 39 outlet~; #X connect 1 0 2 0; #X restore 12 78 pd @hv_obj __and~f; #X obj 117 56 sig~ 1; #N canvas 715 101 137 184 @hv_obj 0; #X obj 12 56 -~; #X obj 12 78 clip~ -1e-37 0; #X obj 12 12 inlet~; #X obj 62 12 inlet~; #X obj 12 144 outlet~; #X obj 12 122 *~ 1e+37; #X obj 12 34 min~; #X obj 12 100 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 2 0 0 1; #X connect 3 0 6 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 12 34 pd @hv_obj __lte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 127 49 pd lte; #X obj 12 152 +~; #X obj 160 22 sig~ 0; #X obj 147 125 *~; #X obj 192 125 *~; #X obj 132 152 -~; #X obj 192 152 *~ -1; #X connect 0 0 9 0; #X connect 0 0 13 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 11 1; #X connect 2 0 12 1; #X connect 7 0 11 0; #X connect 8 0 12 0; #X connect 9 0 3 0; #X connect 10 0 7 1; #X connect 10 0 8 1; #X connect 11 0 9 1; #X connect 11 0 13 1; #X connect 12 0 4 0; #X connect 12 0 14 0; #X connect 13 0 5 0; #X connect 14 0 6 0; #X restore 34 190 pd location; #X obj 132 134 sqrt~; #X obj 47 164 /~; #X obj 252 203 inlet; #X text 62 11 b0; #X text 132 11 b1; #X text 202 11 b2; #X obj 202 31 inlet~; #X obj 132 31 inlet~; #X obj 62 31 inlet~; #X text 252 183 clear; #X connect 0 0 1 0; #X connect 0 1 1 1; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 4 0 0 0; #X connect 5 0 6 0; #X connect 6 0 16 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 8 0 14 1; #X connect 9 0 8 1; #X connect 10 0 9 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 14 2; #X connect 14 0 0 2; #X connect 14 1 0 3; #X connect 14 2 1 2; #X connect 14 3 1 3; #X connect 15 0 12 0; #X connect 16 0 14 0; #X connect 17 0 0 0; #X connect 17 0 1 0; #X connect 21 0 10 1; #X connect 22 0 5 0; #X connect 22 0 7 1; #X connect 22 0 7 0; #X connect 23 0 10 0; #X connect 23 0 13 1; #X connect 23 0 16 1; #X restore 12 89 pd zeros; #X obj 12 52 *~; #N canvas 1083 390 288 282 poles 0; #X obj 12 181 cpole~; #X obj 12 228 cpole~; #X obj 12 249 outlet~; #X obj 12 31 inlet~; #X obj 62 31 inlet~; #N canvas 739 258 279 198 location 0; #X obj 12 12 inlet~; #X obj 127 12 inlet~; #X obj 222 49 inlet~; #X obj 12 155 outlet~; #X obj 62 155 outlet~; #X obj 112 155 outlet~; #X obj 172 155 outlet~; #N canvas 796 341 183 142 gte 0; #X obj 117 12 inlet~; #X obj 12 12 inlet~; #X obj 12 100 outlet~; #N canvas 679 326 140 75 @hv_obj 0; #X obj 72 12 inlet~; #X obj 12 12 inlet~; #X obj 12 34 outlet~; #X connect 1 0 2 0; #X restore 12 78 pd @hv_obj __and~f; #X obj 117 56 sig~ 1; #N canvas 754 439 132 184 @hv_obj 0; #X obj 12 56 -~; #X obj 12 78 clip~ -1e-37 0; #X obj 12 12 inlet~; #X obj 62 12 inlet~; #X obj 12 144 outlet~; #X obj 12 122 *~ 1e+37; #X obj 12 34 min~; #X obj 12 100 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 3 0 6 1; #X connect 3 0 0 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 12 34 pd @hv_obj __gte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 127 39 pd gte; #N canvas 816 493 187 138 lte 0; #X obj 117 12 inlet~; #X obj 12 12 inlet~; #X obj 12 100 outlet~; #N canvas 467 216 142 76 @hv_obj 0; #X obj 72 12 inlet~; #X obj 12 12 inlet~; #X obj 12 34 outlet~; #X connect 1 0 2 0; #X restore 12 78 pd @hv_obj __and~f; #X obj 117 56 sig~ 1; #N canvas 715 101 131 178 @hv_obj 0; #X obj 12 56 -~; #X obj 12 78 clip~ -1e-37 0; #X obj 12 12 inlet~; #X obj 62 12 inlet~; #X obj 12 144 outlet~; #X obj 12 122 *~ 1e+37; #X obj 12 34 min~; #X obj 12 100 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 2 0 0 1; #X connect 3 0 6 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 12 34 pd @hv_obj __lte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 172 39 pd lte; #X obj 12 83 +~; #X obj 205 12 sig~ 0; #X obj 127 66 *~; #X obj 172 66 *~; #X obj 112 133 -~; #X obj 172 133 *~ -1; #X connect 0 0 9 0; #X connect 0 0 13 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 11 1; #X connect 2 0 12 1; #X connect 7 0 11 0; #X connect 8 0 12 0; #X connect 9 0 3 0; #X connect 10 0 7 1; #X connect 10 0 8 1; #X connect 11 0 9 1; #X connect 11 0 13 1; #X connect 12 0 4 0; #X connect 12 0 14 0; #X connect 13 0 5 0; #X connect 14 0 6 0; #X restore 34 155 pd location; #X obj 72 78 *~ 0.5; #X obj 122 57 *~; #X obj 122 78 +~; #X obj 182 64 *~ 4; #X obj 122 99 abs~; #X obj 122 141 *~ 0.5; #X obj 122 120 sqrt~; #X obj 232 167 inlet; #X text 182 11 a2; #X text 122 11 a1; #X obj 122 31 inlet~; #X obj 182 31 inlet~; #X text 232 147 clear; #X connect 0 0 1 0; #X connect 0 1 1 1; #X connect 1 0 2 0; #X connect 3 0 0 0; #X connect 4 0 0 1; #X connect 5 0 0 2; #X connect 5 1 0 3; #X connect 5 2 1 2; #X connect 5 3 1 3; #X connect 6 0 5 0; #X connect 7 0 8 0; #X connect 8 0 5 1; #X connect 8 0 10 0; #X connect 9 0 8 1; #X connect 10 0 12 0; #X connect 11 0 5 2; #X connect 12 0 11 0; #X connect 13 0 0 0; #X connect 13 0 1 0; #X connect 16 0 6 0; #X connect 16 0 7 0; #X connect 16 0 7 1; #X connect 17 0 9 0; #X restore 12 133 pd poles; #X obj 12 159 outlet~; #X obj 212 117 *~ -1; #X obj 262 117 *~ -1; #X obj 312 73 inlet; #X obj 62 31 inlet~; #X obj 112 31 inlet~; #X obj 162 31 inlet~; #X obj 212 31 inlet~; #X obj 262 31 inlet~; #X text 62 11 b0; #X text 112 11 b1; #X text 162 11 b2; #X text 212 11 a1; #X text 262 11 a2; #X text 312 53 clear; #X connect 0 0 2 0; #X connect 1 0 3 0; #X connect 1 1 3 1; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 5 0 3 2; #X connect 6 0 3 3; #X connect 7 0 1 4; #X connect 7 0 3 4; #X connect 8 0 2 1; #X connect 8 0 1 1; #X connect 9 0 1 2; #X connect 10 0 1 3; #X connect 11 0 5 0; #X connect 12 0 6 0; #X restore 12 89 pd @hv_obj biquad; #X obj 12 31 inlet~; #X obj 177 32 inlet~; #X obj 78 31 inlet~; #X obj 227 52 inlet; #X msg 227 73 clear; #X text 78 11 (I2) Frequency; #X text 177 12 (I3) Q Factor; #X text 227 32 (I4) Clear internal state; #X text 12 11 (I1) Input; #X text 12 180 (O1) Output; #X obj 12 113 clip~ -1 1; #X connect 0 0 2 1; #X connect 0 1 2 2; #X connect 0 2 2 3; #X connect 0 3 2 4; #X connect 0 4 2 5; #X connect 2 0 13 0; #X connect 3 0 2 0; #X connect 4 0 0 1; #X connect 5 0 0 0; #X connect 6 0 7 0; #X connect 7 0 2 6; #X connect 13 0 1 0; #X restore 171 576 pd resonant-lowpass~; #N canvas 0 22 450 300 >=~ 0; #X obj 143 46 inlet~; #X obj 44 46 inlet~; #X obj 44 141 outlet~; #N canvas 467 216 450 300 @hv_obj 0; #X obj 217 60 inlet~; #X obj 120 60 inlet~; #X obj 170 183 outlet~; #X connect 1 0 2 0; #X restore 44 117 pd @hv_obj __and~f; #X obj 149 95 sig~ 1; #N canvas 715 101 223 209 @hv_obj 0; #X obj 46 22 inlet~; #X obj 46 147 outlet~; #X obj 46 124 *~; #X obj 129 22 inlet~; #X obj 61 80 sig~ 1; #X obj 61 102 -~; #N canvas 0 23 450 300 hv.lte 0; #X obj 150 34 inlet~; #X obj 45 34 inlet~; #X obj 45 129 outlet~; #N canvas 467 216 450 300 @hv_obj 0; #X obj 217 60 inlet~; #X obj 120 60 inlet~; #X obj 170 183 outlet~; #X connect 1 0 2 0; #X restore 45 105 pd @hv_obj __and~f; #X obj 150 83 sig~ 1; #N canvas 715 101 191 233 @hv_obj 0; #X obj 49 83 -~; #X obj 50 109 clip~ -1e-37 0; #X obj 49 32 inlet~; #X obj 93 33 inlet~; #X obj 50 174 outlet~; #X obj 50 151 *~ 1e+37; #X obj 49 58 min~; #X obj 50 130 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 2 0 0 1; #X connect 3 0 6 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 45 57 pd @hv_obj __lte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 116 54 pd hv.lte; #N canvas 0 23 238 193 hv.gte 0; #X obj 150 34 inlet~; #X obj 45 34 inlet~; #X obj 45 129 outlet~; #N canvas 467 216 290 220 @hv_obj 0; #X obj 158 52 inlet~; #X obj 61 52 inlet~; #X obj 61 136 outlet~; #X obj 61 100 *~; #X connect 0 0 3 1; #X connect 1 0 3 0; #X connect 3 0 2 0; #X restore 45 105 pd @hv_obj __and~f; #X obj 150 83 sig~ 1; #N canvas 249 541 148 189 @hv_obj 0; #X obj 23 69 -~; #X obj 23 94 clip~ -1e-37 0; #X obj 23 18 inlet~; #X obj 67 19 inlet~; #X obj 23 159 outlet~; #X obj 23 136 *~ 1e+37; #X obj 23 44 min~; #X obj 23 115 +~ 1e-37; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 3 0 6 1; #X connect 3 0 0 1; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 7 0 5 0; #X restore 45 57 pd @hv_obj __gte~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 46 54 pd hv.gte; #X connect 0 0 7 0; #X connect 0 0 6 0; #X connect 2 0 1 0; #X connect 3 0 7 1; #X connect 3 0 6 1; #X connect 4 0 5 0; #X connect 5 0 2 1; #X connect 6 0 5 1; #X connect 7 0 2 0; #X restore 44 69 pd @hv_obj __gt~f; #X connect 0 0 5 1; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X restore 216 475 pd >=~; #X text 255 431 -60 dB; #X text 276 523 <= Cutoff Frequency; #X text 332 552 <= Q / Resonance; #X obj 171 51 tgl 15 0 empty empty START 17 7 0 10 -4034 -1 -1 1 1 ; #X obj 171 95 i; #X obj 201 95 + 1; #X obj 171 143 t b f; #X obj 171 217 random 24; #X obj 171 241 + 60; #X obj 171 265 mtof; #X obj 203 167 sel 0; #X obj 171 734 clip~ -1 1; #X obj 171 758 hip~ 3; #X obj 171 782 *~ 0.9; #X obj 171 806 dac~ 1 2; #X obj 171 289 phasor~; #X obj 171 313 cos~; #X obj 171 710 *~ 0.9; #X obj 412 645 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 412 665 metro 50; #X obj 412 689 tabwrite~ \$0-scope; #N canvas 0 22 450 278 (subpatch) 0; #X array \$0-scope 100 float 1; #A 0 0.886156 0.888308 0.89063 0.892781 0.895103 0.897254 0.899575 0.901725 0.904045 0.906195 0.908515 0.910664 0.912984 0.915132 0.917452 0.9196 0.921919 0.924654 0.926973 0.929708 0.932443 0.93495 0.937685 0.940192 0.942928 0.945245 0.947981 0.950716 0.95322 0.955955 0.958272 0.961008 0.963324 0.965825 0.968561 0.970877 0.973613 0.976349 0.978847 0.981583 0.983898 0.986395 0.989132 0.991447 0.993942 0.996679 0.998994 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; #X coords 0 1 99 -1 200 140 1; #X restore 549 466 graph; #X text 286 499 <= Attack/Release 20 Hz = 50ms; #X obj 216 365 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 171 119 % 8; #X obj 171 337 *~; #X text 116 555 (I1) AUDIO INPUT; #X obj 216 499 lop~ 20; #X text 209 409 (I2) GATE; #X obj 171 71 metro 100; #X msg 203 192 seed 41649; #X obj 171 681 *~; #X obj 189 661 tgl 15 0 empty empty LISTEN 17 7 0 10 -258113 -1 -1 0 1; #X obj 216 523 *~ 8000; #X obj 262 552 sig~ 2; #X obj 213 318 osc~ 40; #X connect 1 0 3 1; #X connect 2 0 24 0; #X connect 2 0 35 0; #X connect 3 0 31 0; #X connect 7 0 33 0; #X connect 8 0 28 0; #X connect 9 0 8 1; #X connect 10 0 11 0; #X connect 10 0 27 0; #X connect 10 1 14 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 19 0; #X connect 14 0 34 0; #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 17 0 18 0; #X connect 17 0 18 1; #X connect 19 0 20 0; #X connect 20 0 29 0; #X connect 21 0 15 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 27 0 3 0; #X connect 28 0 9 0; #X connect 28 0 10 0; #X connect 29 0 2 0; #X connect 31 0 37 0; #X connect 33 0 8 0; #X connect 34 0 11 0; #X connect 35 0 21 0; #X connect 36 0 35 1; #X connect 37 0 2 1; #X connect 38 0 2 2; #X connect 39 0 29 1;