diff --git a/hv.filters/allpass.coeffs.pd b/hv.filters/allpass.coeffs.pd index 5fb9668..dcc42d7 100644 --- a/hv.filters/allpass.coeffs.pd +++ b/hv.filters/allpass.coeffs.pd @@ -1,176 +1,88 @@ -#N canvas 357 23 608 743 10; -#N canvas 0 22 783 567 hz2rad 0; -#X obj 194 113 samplerate~; -#X obj 194 71 loadbang; -#X obj 194 185 atan; -#X msg 194 160 1; -#X text 382 53 w = 2 * pi * f / SR; -#X obj 194 207 * 8; -#X obj 194 137 t b a; -#X obj 194 230 / 44100; -#X text 260 232 2 * pi / SR; -#X obj 119 269 *; -#X obj 119 35 inlet; -#X obj 119 298 outlet; -#X text 175 300 w(rad); -#X text 167 35 freq(Hz); -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 6 1 7 1; -#X connect 7 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 41 336 pd hz2rad; -#X obj 41 366 t f f; -#X obj 109 396 sin; -#X obj 41 396 cos; -#X obj 109 436 s \$0-wsin; -#X obj 41 436 s \$0-wcos; -#X obj 41 276 clip 20 20000; -#X obj 213 276 clip 0.1 100; -#X obj 138 306 r \$0-wsin; -#X obj 198 436 s \$0-alpha; -#X msg 213 306 1 \$1; -#X obj 213 336 /; -#X obj 198 366 *; -#X obj 198 396 * 0.5; -#N canvas 0 22 450 300 a0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 194 200 outlet; -#X obj 194 139 + 1; -#X connect 2 0 4 0; -#X connect 4 0 3 0; -#X restore 37 476 pd a0; -#X text 305 139 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); -#X obj 22 506 f; -#X msg 22 536 1 \$1; -#X obj 22 566 /; -#X obj 22 656 *; -#X obj 84 656 *; -#X obj 146 656 *; -#X obj 208 657 *; -#X obj 271 657 *; -#X text 280 414 w0 = 2*pi*f0*Fs; -#X text 280 434 alpha = sin(w0)/(2*Q); -#X obj 207 71 t b f; -#X obj 22 51 inlet freq; -#X obj 207 51 inlet q; -#X text 308 176 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); -#X text 264 115 Audio-Cookbook:; -#X text 264 205 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; -#X text 266 157 H(z) = -----------------------------------------; -#X obj 22 596 t f f f f f b; -#X obj 22 181 t b a b; -#X obj 22 698 outlet b0; -#X obj 84 698 outlet b1; -#X obj 146 698 outlet b2; -#X obj 208 698 outlet a1; -#X obj 271 698 outlet a2; -#X text 389 660 b0 = 1 - alpha; -#X text 389 600 a0 = 1 + alpha; -#X text 389 640 a2 = 1 - alpha; -#X text 389 620 a1 = -2*cos(w0); -#X text 389 680 b1 = -2*cos(w0); -#X text 389 700 b2 = 1 + alpha; -#N canvas 0 22 450 300 b0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 194 181 outlet; -#X msg 194 121 1 \$1; -#X obj 194 151 -; -#X connect 2 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 3 0; -#X restore 126 595 pd b0; -#N canvas 0 22 450 300 b1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 178 outlet; -#X obj 54 127 * -2; -#X connect 0 0 4 0; -#X connect 4 0 3 0; -#X restore 166 595 pd b1; -#N canvas 0 22 450 300 b2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 194 198 outlet; -#X obj 194 128 + 1; -#X connect 2 0 4 0; -#X connect 4 0 3 0; -#X restore 206 595 pd b2; -#N canvas 0 22 450 300 a1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 198 outlet; -#X obj 54 127 * -2; -#X connect 0 0 4 0; -#X connect 4 0 3 0; -#X restore 246 595 pd a1; -#N canvas 0 22 450 300 a2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 196 65 r \$0-alpha; -#X obj 196 187 outlet; -#X msg 196 129 1 \$1; -#X obj 196 151 -; -#X connect 2 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 3 0; -#X restore 286 595 pd a2; -#X text 378 580 ALL:; -#X text 19 20 Allpass filter with Q - biquad filter coefficient generator -; -#X obj 113 51 loadbang; -#X obj 22 142 f \$1; -#X obj 213 239 f \$2; -#X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 2 0 4 0; +#N canvas 827 239 527 327 12; +#X obj 39 51 clip~ 20 20000; +#X obj 291 51 clip~ 0.1 100; +#X obj 39 265 sig~ 1; +#X obj 39 325 /~; +#X obj 39 423 *~; +#X obj 209 423 *~; +#X obj 269 423 *~; +#X obj 280 299 +~ 1; +#X obj 329 423 *~; +#X obj 339 299 *~ -2; +#X obj 404 299 sig~ 1; +#X obj 404 321 -~; +#X obj 392 423 *~; +#X obj 84 270 +~ 1; +#X text 375 150 w0 = 2*pi*f0*Fs; +#X text 375 170 alpha = sin(w0)/(2*Q); +#X text 446 45 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); +#X text 404 60 H(z) = -----------------------------------------; +#X text 446 75 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); +#X text 404 20 Audio-Cookbook:; +#X text 404 100 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; +#X obj 39 29 inlet~; +#X obj 291 29 inlet~; +#X obj 39 86 /~ 44100; +#X obj 149 29 loadbang; +#X obj 149 50 samplerate~; +#X text 39 465 (O1) b0; +#X text 209 465 (O2) b1; +#X text 269 465 (O3) b2; +#X text 329 465 (O4) a1; +#X text 392 465 (O5) a2; +#X obj 39 445 outlet~; +#X obj 209 445 outlet~; +#X obj 269 445 outlet~; +#X obj 329 445 outlet~; +#X obj 392 445 outlet~; +#X obj 291 86 *~ 2; +#X obj 280 186 /~; +#X obj 39 199 cos~; +#X obj 149 151 cos~; +#X obj 148 125 -~ 0.25; +#X text 553 246 b0 = 1 - alpha; +#X text 553 186 a0 = 1 + alpha; +#X text 553 226 a2 = 1 - alpha; +#X text 553 206 a1 = -2*cos(w0); +#X text 553 266 b1 = -2*cos(w0); +#X text 553 286 b2 = 1 + alpha; +#X text 542 166 ALL:; +#X obj 137 299 sig~ 1; +#X obj 137 325 -~; +#X obj 219 299 *~ -2; +#X connect 0 0 23 0; +#X connect 1 0 36 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; #X connect 3 0 5 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 12 0; +#X connect 3 0 6 0; +#X connect 3 0 8 0; +#X connect 3 0 12 0; +#X connect 4 0 31 0; +#X connect 5 0 32 0; +#X connect 6 0 33 0; +#X connect 7 0 6 1; +#X connect 8 0 34 0; +#X connect 9 0 8 1; #X connect 10 0 11 0; #X connect 11 0 12 1; -#X connect 12 0 13 0; -#X connect 13 0 9 0; -#X connect 14 0 16 1; -#X connect 16 0 17 0; -#X connect 17 0 18 0; -#X connect 18 0 33 0; -#X connect 19 0 35 0; -#X connect 20 0 36 0; -#X connect 21 0 37 0; -#X connect 22 0 38 0; -#X connect 23 0 39 0; -#X connect 26 0 54 0; -#X connect 26 1 55 1; -#X connect 27 0 54 0; -#X connect 28 0 26 0; -#X connect 33 0 19 0; -#X connect 33 1 20 0; -#X connect 33 2 21 0; -#X connect 33 3 22 0; -#X connect 33 4 23 0; -#X connect 34 0 16 0; -#X connect 34 1 6 0; -#X connect 34 2 55 0; -#X connect 46 0 19 1; -#X connect 47 0 20 1; -#X connect 48 0 21 1; -#X connect 49 0 22 1; -#X connect 50 0 23 1; -#X connect 53 0 54 0; -#X connect 54 0 34 0; -#X connect 55 0 7 0; +#X connect 12 0 35 0; +#X connect 13 0 3 1; +#X connect 21 0 0 0; +#X connect 22 0 1 0; +#X connect 23 0 38 0; +#X connect 23 0 40 0; +#X connect 24 0 25 0; +#X connect 25 0 23 1; +#X connect 36 0 37 1; +#X connect 37 0 11 1; +#X connect 37 0 13 0; +#X connect 37 0 7 0; +#X connect 37 0 49 1; +#X connect 38 0 9 0; +#X connect 38 0 50 0; +#X connect 39 0 37 0; +#X connect 40 0 39 0; +#X connect 48 0 49 0; +#X connect 49 0 4 1; +#X connect 50 0 5 1; diff --git a/hv.filters/allpass.pd b/hv.filters/allpass.pd index 5ddea0e..d8582df 100644 --- a/hv.filters/allpass.pd +++ b/hv.filters/allpass.pd @@ -316,65 +316,15 @@ #X connect 10 0 8 2; #X connect 11 0 8 3; #X restore 35 153 pd @hv_obj biquad; -#X obj 94 43 inlet freq; -#X obj 217 44 inlet q; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 94 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 124 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 155 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 186 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 217 110 pd s; +#X obj 94 43 inlet~ freq; +#X obj 217 44 inlet~ q; #X obj 94 73 allpass.coeffs \$1 \$2; #X connect 1 0 2 0; #X connect 2 0 0 0; -#X connect 3 0 10 0; -#X connect 4 0 10 1; +#X connect 3 0 5 0; +#X connect 4 0 5 1; #X connect 5 0 2 1; -#X connect 6 0 2 2; -#X connect 7 0 2 3; -#X connect 8 0 2 4; -#X connect 9 0 2 5; -#X connect 10 0 5 0; -#X connect 10 1 6 0; -#X connect 10 2 7 0; -#X connect 10 3 8 0; -#X connect 10 4 9 0; +#X connect 5 1 2 2; +#X connect 5 2 2 3; +#X connect 5 3 2 4; +#X connect 5 4 2 5; diff --git a/hv.filters/bandpass1.coeffs.pd b/hv.filters/bandpass1.coeffs.pd index aae456c..a2db172 100644 --- a/hv.filters/bandpass1.coeffs.pd +++ b/hv.filters/bandpass1.coeffs.pd @@ -1,155 +1,82 @@ #N canvas 356 22 613 703 10; -#N canvas 0 22 783 567 hz2rad 0; -#X obj 194 113 samplerate~; -#X obj 194 71 loadbang; -#X obj 194 185 atan; -#X msg 194 160 1; -#X text 382 53 w = 2 * pi * f / SR; -#X obj 194 207 * 8; -#X obj 194 137 t b a; -#X obj 194 230 / 44100; -#X text 260 232 2 * pi / SR; -#X obj 119 269 *; -#X obj 119 35 inlet; -#X obj 119 298 outlet; -#X text 175 300 w(rad); -#X text 167 35 freq(Hz); -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 6 1 7 1; -#X connect 7 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 41 346 pd hz2rad; -#X obj 41 376 t f f; -#X obj 109 406 sin; -#X obj 41 406 cos; -#X obj 109 446 s \$0-wsin; -#X obj 41 446 s \$0-wcos; -#X obj 41 286 clip 20 20000; -#X obj 203 286 clip 0.1 100; -#X obj 138 316 r \$0-wsin; -#X obj 188 446 s \$0-alpha; -#X msg 203 316 1 \$1; -#X obj 203 346 /; -#X obj 188 376 *; -#X obj 188 406 * 0.5; -#N canvas 346 735 450 300 b0 0; -#X obj 124 65 r \$0-wsin; -#X obj 124 99 * 0.5; -#X obj 124 131 outlet; +#X obj 38 264 sig~ 1; +#X obj 38 332 /~; +#X obj 150 457 *~; +#X obj 290 457 *~; +#X obj 375 457 *~; +#X obj 389 347 *~ -2; +#X obj 458 315 sig~ 1; +#X obj 458 347 -~; +#X obj 445 457 *~; +#X text 389 165 w0 = 2*pi*f0*Fs; +#X text 389 185 alpha = sin(w0)/(2*Q); +#X text 418 75 H(z) = -----------------------------------------; +#X text 418 35 Audio-Cookbook:; +#X text 418 115 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; +#X text 460 90 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); +#X text 460 60 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); +#X obj 220 457 sig~ 0; +#X text 514 231 a0 = 1 + alpha; +#X text 514 311 b1 = 0; +#X text 514 271 a2 = 1 - alpha; +#X text 514 251 a1 = -2*cos(w0); +#X text 514 291 b0 = sin(w0)/2 = Q*alpha; +#X text 514 331 b2 = -sin(w0)/2 = -Q*alpha; +#X text 503 211 BPF: (constant skirt gain); +#X obj 163 347 *~ 0.5; +#X obj 303 347 *~ -0.5; +#X obj 88 272 +~ 1; +#X obj 320 58 max~ 0.1; +#X obj 38 91 /~ 44100; +#X obj 38 57 clip~ 20 20000; +#X obj 154 36 loadbang; +#X obj 154 57 samplerate~; +#X obj 38 36 inlet~; +#X obj 320 36 inlet~; +#X text 220 499 b1; +#X text 290 499 b2; +#X text 375 499 a1; +#X text 445 499 a2; +#X obj 150 479 outlet~; +#X obj 220 479 outlet~; +#X obj 290 479 outlet~; +#X obj 375 479 outlet~; +#X obj 445 479 outlet~; +#X text 149 499 b0; +#X obj 38 206 cos~; +#X obj 163 179 cos~; +#X obj 306 232 /~; +#X obj 163 155 -~ 0.25; +#X obj 320 86 *~ 2; #X connect 0 0 1 0; #X connect 1 0 2 0; -#X restore 118 606 pd b0; -#N canvas 864 719 450 300 b2 0; -#X obj 124 119 outlet; -#X obj 124 65 r \$0-wsin; -#X obj 124 87 * -0.5; -#X connect 1 0 2 0; -#X connect 2 0 0 0; -#X restore 202 606 pd b2; -#N canvas 0 22 450 300 a0 0; -#X obj 194 65 r \$0-alpha; -#X obj 194 200 outlet; -#X obj 194 139 + 1; -#X connect 0 0 2 0; -#X connect 2 0 1 0; -#X restore 37 486 pd a0; -#N canvas 616 345 450 300 a1 0; -#X obj 194 109 outlet; -#X obj 194 65 r \$0-wcos; -#X obj 194 87 * -2; -#X connect 1 0 2 0; -#X connect 2 0 0 0; -#X restore 244 606 pd a1; -#N canvas 0 22 450 300 a2 0; -#X obj 196 65 r \$0-alpha; -#X obj 196 187 outlet; -#X msg 196 129 1 \$1; -#X obj 196 151 -; -#X connect 0 0 2 0; -#X connect 2 0 3 0; -#X connect 3 0 1 0; -#X restore 286 606 pd a2; -#X text 308 83 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); -#X obj 22 516 f; -#X msg 22 546 1 \$1; -#X obj 22 576 /; -#X obj 22 666 *; -#X obj 146 666 *; -#X obj 208 667 *; -#X obj 271 667 *; -#X text 270 424 w0 = 2*pi*f0*Fs; -#X text 270 444 alpha = sin(w0)/(2*Q); -#X obj 197 81 t b f; -#X obj 22 61 inlet freq; -#X obj 197 61 inlet q; -#X obj 103 61 loadbang; -#X text 379 610 a0 = 1 + alpha; -#X text 311 120 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); -#X text 267 59 Audio-Cookbook:; -#X text 267 149 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; -#X text 269 101 H(z) = -----------------------------------------; -#X obj 22 191 t b a b; -#X obj 84 708 outlet b1; -#X obj 146 708 outlet b2; -#X obj 208 708 outlet a1; -#X obj 271 708 outlet a2; -#X text 19 10 Bandpass filter with Q - biquad filter coefficient generator -; -#X text 379 690 b1 = 0; -#X obj 22 606 t f f f f; -#X obj 22 708 outlet b0; -#X obj 22 152 f \$1; -#X obj 203 249 f \$2; -#X text 19 32 constant skirt gain \, peak gain = Q; -#X text 341 288 BPF: H(s) = s / (s^2 + s/Q + 1) (constant skirt gain -\, peak gain = Q) b0 = sin(w0)/2 = Q*alpha b1 = 0 b2 = -sin(w0)/2 = --Q*alpha a0 = 1 + alpha a1 = -2*cos(w0) a2 = 1 - alpha; -#X text 379 650 a2 = 1 - alpha; -#X text 379 630 a1 = -2*cos(w0); -#X text 379 670 b0 = sin(w0)/2 = Q*alpha; -#X text 379 710 b2 = -sin(w0)/2 = -Q*alpha; -#X text 368 590 BPF: (constant skirt gain); -#X connect 0 0 1 0; #X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 2 0 4 0; -#X connect 3 0 5 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 12 0; -#X connect 10 0 11 0; -#X connect 11 0 12 1; -#X connect 12 0 13 0; -#X connect 13 0 9 0; -#X connect 14 0 23 1; -#X connect 15 0 24 1; -#X connect 16 0 20 1; -#X connect 17 0 25 1; -#X connect 18 0 26 1; -#X connect 20 0 21 0; -#X connect 21 0 22 0; -#X connect 22 0 45 0; -#X connect 23 0 46 0; -#X connect 24 0 40 0; -#X connect 25 0 41 0; -#X connect 26 0 42 0; -#X connect 29 0 47 0; -#X connect 29 1 48 1; -#X connect 30 0 47 0; -#X connect 31 0 29 0; -#X connect 32 0 47 0; -#X connect 38 0 20 0; -#X connect 38 1 6 0; -#X connect 38 2 48 0; -#X connect 45 0 23 0; -#X connect 45 1 24 0; -#X connect 45 2 25 0; -#X connect 45 3 26 0; -#X connect 47 0 38 0; -#X connect 48 0 7 0; +#X connect 1 0 4 0; +#X connect 1 0 8 0; +#X connect 2 0 38 0; +#X connect 3 0 40 0; +#X connect 4 0 41 0; +#X connect 5 0 4 1; +#X connect 6 0 7 0; +#X connect 7 0 8 1; +#X connect 8 0 42 0; +#X connect 16 0 39 0; +#X connect 24 0 2 1; +#X connect 25 0 3 1; +#X connect 26 0 1 1; +#X connect 27 0 48 0; +#X connect 28 0 44 0; +#X connect 28 0 47 0; +#X connect 29 0 28 0; +#X connect 30 0 31 0; +#X connect 31 0 28 1; +#X connect 32 0 29 0; +#X connect 33 0 27 0; +#X connect 44 0 5 0; +#X connect 45 0 24 0; +#X connect 45 0 25 0; +#X connect 45 0 46 0; +#X connect 46 0 7 1; +#X connect 46 0 26 0; +#X connect 47 0 45 0; +#X connect 48 0 46 1; diff --git a/hv.filters/bandpass1.pd b/hv.filters/bandpass1.pd index 0db248c..6e1832d 100644 --- a/hv.filters/bandpass1.pd +++ b/hv.filters/bandpass1.pd @@ -316,56 +316,15 @@ #X connect 10 0 8 2; #X connect 11 0 8 3; #X restore 35 183 pd @hv_obj biquad; -#X obj 94 43 inlet freq; -#X obj 223 44 inlet q; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 94 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 170 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 202 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 234 110 pd s; #X obj 94 83 bandpass1.coeffs \$1 \$2; -#X obj 126 110 sig~ 0; +#X obj 94 43 inlet~ freq; +#X obj 223 44 inlet~ q; #X connect 1 0 2 0; #X connect 2 0 0 0; -#X connect 3 0 9 0; -#X connect 4 0 9 1; -#X connect 5 0 2 1; -#X connect 6 0 2 3; -#X connect 7 0 2 4; -#X connect 8 0 2 5; -#X connect 9 0 5 0; -#X connect 9 2 6 0; -#X connect 9 3 7 0; -#X connect 9 4 8 0; -#X connect 10 0 2 2; +#X connect 3 0 2 1; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 4 0 3 0; +#X connect 5 0 3 1; diff --git a/hv.filters/bandpass2.coeffs.pd b/hv.filters/bandpass2.coeffs.pd index e74d3fa..4b08a4c 100644 --- a/hv.filters/bandpass2.coeffs.pd +++ b/hv.filters/bandpass2.coeffs.pd @@ -1,150 +1,84 @@ #N canvas 1909 289 613 760 10; -#N canvas 0 22 783 567 hz2rad 0; -#X obj 194 113 samplerate~; -#X obj 194 71 loadbang; -#X obj 194 185 atan; -#X msg 194 160 1; -#X text 382 53 w = 2 * pi * f / SR; -#X obj 194 207 * 8; -#X obj 194 137 t b a; -#X obj 194 230 / 44100; -#X text 260 232 2 * pi / SR; -#X obj 119 269 *; -#X obj 119 35 inlet; -#X obj 119 298 outlet; -#X text 175 300 w(rad); -#X text 167 35 freq(Hz); -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 6 1 7 1; -#X connect 7 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 41 346 pd hz2rad; -#X obj 41 376 t f f; -#X obj 109 406 sin; -#X obj 41 406 cos; -#X obj 109 446 s \$0-wsin; -#X obj 41 446 s \$0-wcos; -#X obj 41 286 clip 20 20000; -#X obj 203 286 clip 0.1 100; -#X obj 138 316 r \$0-wsin; -#X obj 188 446 s \$0-alpha; -#X msg 203 316 1 \$1; -#X obj 203 346 /; -#X obj 188 376 *; -#X obj 188 406 * 0.5; -#N canvas 12 285 450 300 b0 0; -#X obj 124 65 r \$0-alpha; -#X obj 124 109 outlet; -#X connect 0 0 1 0; -#X restore 118 606 pd b0; -#N canvas 155 200 450 300 b2 0; -#X obj 124 65 r \$0-alpha; -#X obj 124 109 outlet; -#X obj 124 87 * -1; -#X connect 0 0 2 0; -#X connect 2 0 1 0; -#X restore 202 606 pd b2; -#N canvas 0 22 450 300 a0 0; -#X obj 194 65 r \$0-alpha; -#X obj 194 200 outlet; -#X obj 194 139 + 1; -#X connect 0 0 2 0; -#X connect 2 0 1 0; -#X restore 37 486 pd a0; -#N canvas 0 22 450 300 a1 0; -#X obj 194 109 outlet; -#X obj 194 65 r \$0-wcos; -#X obj 194 87 * -2; +#X obj 290 57 clip~ 0.1 100; +#X obj 279 95 sig~ 1; +#X obj 279 123 /~; +#X obj 268 263 *~; +#X obj 268 287 *~ 0.5; +#X obj 28 403 sig~ 1; +#X obj 28 441 /~; +#X obj 28 547 *~; +#X obj 258 547 *~; +#X obj 318 547 *~; +#X obj 328 361 *~ -2; +#X obj 392 361 sig~ 1; +#X obj 392 403 -~; +#X obj 385 547 *~; +#X obj 108 403 +~ 1; +#X text 419 172 w0 = 2*pi*f0*Fs; +#X text 419 192 alpha = sin(w0)/(2*Q); +#X text 583 247 a2 = 1 - alpha; +#X text 583 227 a1 = -2*cos(w0); +#X text 448 82 H(z) = -----------------------------------------; +#X text 448 42 Audio-Cookbook:; +#X text 448 122 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; +#X text 490 97 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); +#X text 490 67 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); +#X text 583 207 a0 = 1 + alpha; +#X text 573 187 LPF:; +#X text 543 367 b0 = alpha; +#X text 543 387 b1 = 0; +#X text 543 407 b2 = -alpha; +#X obj 268 403 *~ -1; +#X obj 126 547 sig~ 0; +#X obj 290 31 inlet~; +#X obj 28 569 outlet~; +#X obj 126 569 outlet~; +#X obj 258 569 outlet~; +#X obj 318 569 outlet~; +#X obj 385 569 outlet~; +#X obj 32 57 clip~ 20 20000; +#X obj 32 31 inlet~; +#X obj 32 94 /~ 44100; +#X obj 168 31 loadbang; +#X obj 168 57 samplerate~; +#X text 28 589 (O1) b0; +#X text 126 589 (O2) b1; +#X text 258 589 (O3) b2; +#X text 318 589 (O4) a1; +#X text 385 589 (O5) a2; +#X obj 32 265 cos~; +#X obj 168 199 cos~; +#X obj 168 170 -~ 0.25; +#X connect 0 0 2 1; #X connect 1 0 2 0; -#X connect 2 0 0 0; -#X restore 244 606 pd a1; -#N canvas 0 22 450 300 a2 0; -#X obj 196 65 r \$0-alpha; -#X obj 196 187 outlet; -#X msg 196 129 1 \$1; -#X obj 196 151 -; -#X connect 0 0 2 0; -#X connect 2 0 3 0; -#X connect 3 0 1 0; -#X restore 286 606 pd a2; -#X text 308 83 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); -#X obj 22 516 f; -#X msg 22 546 1 \$1; -#X obj 22 576 /; -#X obj 22 666 *; -#X obj 146 666 *; -#X obj 208 667 *; -#X obj 271 667 *; -#X text 270 424 w0 = 2*pi*f0*Fs; -#X text 270 444 alpha = sin(w0)/(2*Q); -#X obj 197 81 t b f; -#X obj 22 61 inlet freq; -#X obj 197 61 inlet q; -#X obj 103 61 loadbang; -#X text 379 610 a0 = 1 + alpha; -#X text 379 650 a2 = 1 - alpha; -#X text 379 630 a1 = -2*cos(w0); -#X text 311 120 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); -#X text 267 59 Audio-Cookbook:; -#X text 267 149 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; -#X text 269 101 H(z) = -----------------------------------------; -#X obj 22 191 t b a b; -#X obj 84 708 outlet b1; -#X obj 146 708 outlet b2; -#X obj 208 708 outlet a1; -#X obj 271 708 outlet a2; -#X text 19 10 Bandpass filter with Q - biquad filter coefficient generator -; -#X text 379 690 b1 = 0; -#X obj 22 606 t f f f f; -#X text 379 670 b0 = alpha; -#X text 368 590 BPF: (constant 0dB peak gain); -#X text 379 710 b2 = -alpha; -#X obj 22 708 outlet b0; -#X text 19 30 constant 0 dB peak gain; -#X obj 22 152 f \$1; -#X obj 203 249 f \$2; -#X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 2 0 4 0; -#X connect 3 0 5 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 12 0; -#X connect 10 0 11 0; -#X connect 11 0 12 1; -#X connect 12 0 13 0; -#X connect 13 0 9 0; -#X connect 14 0 23 1; -#X connect 15 0 24 1; -#X connect 16 0 20 1; -#X connect 17 0 25 1; -#X connect 18 0 26 1; -#X connect 20 0 21 0; -#X connect 21 0 22 0; -#X connect 22 0 47 0; -#X connect 23 0 51 0; -#X connect 24 0 42 0; -#X connect 25 0 43 0; -#X connect 26 0 44 0; -#X connect 29 0 53 0; -#X connect 29 1 54 1; -#X connect 30 0 53 0; -#X connect 31 0 29 0; -#X connect 32 0 53 0; -#X connect 40 0 20 0; -#X connect 40 1 6 0; -#X connect 40 2 54 0; -#X connect 47 0 23 0; -#X connect 47 1 24 0; -#X connect 47 2 25 0; -#X connect 47 3 26 0; -#X connect 53 0 40 0; -#X connect 54 0 7 0; +#X connect 2 0 3 1; +#X connect 3 0 4 0; +#X connect 4 0 12 1; +#X connect 4 0 14 0; +#X connect 4 0 29 0; +#X connect 4 0 7 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 6 0 9 0; +#X connect 6 0 13 0; +#X connect 7 0 32 0; +#X connect 8 0 34 0; +#X connect 9 0 35 0; +#X connect 10 0 9 1; +#X connect 11 0 12 0; +#X connect 12 0 13 1; +#X connect 13 0 36 0; +#X connect 14 0 6 1; +#X connect 29 0 8 1; +#X connect 30 0 33 0; +#X connect 31 0 0 0; +#X connect 37 0 39 0; +#X connect 38 0 37 0; +#X connect 39 0 47 0; +#X connect 39 0 49 0; +#X connect 40 0 41 0; +#X connect 41 0 39 1; +#X connect 47 0 10 0; +#X connect 48 0 3 0; +#X connect 49 0 48 0; diff --git a/hv.filters/bandpass2.pd b/hv.filters/bandpass2.pd index 17d9e01..5b909dd 100644 --- a/hv.filters/bandpass2.pd +++ b/hv.filters/bandpass2.pd @@ -316,56 +316,15 @@ #X connect 10 0 8 2; #X connect 11 0 8 3; #X restore 35 183 pd @hv_obj biquad; -#X obj 94 43 inlet freq; -#X obj 223 44 inlet q; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 94 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 170 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 202 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 234 110 pd s; -#X obj 126 110 sig~ 0; #X obj 94 83 bandpass2.coeffs \$1 \$2; +#X obj 94 43 inlet~ freq; +#X obj 223 44 inlet~ q; #X connect 1 0 2 0; #X connect 2 0 0 0; -#X connect 3 0 10 0; -#X connect 4 0 10 1; -#X connect 5 0 2 1; -#X connect 6 0 2 3; -#X connect 7 0 2 4; -#X connect 8 0 2 5; -#X connect 9 0 2 2; -#X connect 10 0 5 0; -#X connect 10 2 6 0; -#X connect 10 3 7 0; -#X connect 10 4 8 0; +#X connect 3 0 2 1; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 4 0 3 0; +#X connect 5 0 3 1; diff --git a/hv.filters/highpass.coeffs.pd b/hv.filters/highpass.coeffs.pd index 8549ed4..1a289a4 100644 --- a/hv.filters/highpass.coeffs.pd +++ b/hv.filters/highpass.coeffs.pd @@ -1,180 +1,92 @@ #N canvas 547 134 611 752 10; -#N canvas 0 22 783 567 hz2rad 0; -#X obj 194 113 samplerate~; -#X obj 194 71 loadbang; -#X obj 194 185 atan; -#X msg 194 160 1; -#X text 382 53 w = 2 * pi * f / SR; -#X obj 194 207 * 8; -#X obj 194 137 t b a; -#X obj 194 230 / 44100; -#X text 260 232 2 * pi / SR; -#X obj 119 269 *; -#X obj 119 35 inlet; -#X obj 119 298 outlet; -#X text 175 300 w(rad); -#X text 167 35 freq(Hz); -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 6 1 7 1; -#X connect 7 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 54 339 pd hz2rad; -#X obj 54 369 t f f; -#X obj 122 399 sin; -#X obj 54 399 cos; -#X obj 122 439 s \$0-wsin; -#X obj 54 439 s \$0-wcos; -#X obj 54 279 clip 20 20000; -#X obj 226 279 clip 0.1 100; -#X obj 151 309 r \$0-wsin; -#X obj 211 439 s \$0-alpha; -#X msg 226 309 1 \$1; -#X obj 226 339 /; -#X obj 211 369 *; -#X obj 211 399 * 0.5; -#N canvas 0 22 450 300 a0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 194 200 outlet; -#X obj 194 139 + 1; -#X connect 2 0 4 0; -#X connect 4 0 3 0; -#X restore 50 479 pd a0; -#X text 318 142 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); -#X obj 35 509 f; -#X msg 35 539 1 \$1; -#X obj 35 569 /; -#X obj 35 659 *; -#X obj 97 659 *; -#X obj 159 659 *; -#X obj 221 660 *; -#X obj 284 660 *; -#X text 293 417 w0 = 2*pi*f0*Fs; -#X text 293 437 alpha = sin(w0)/(2*Q); -#X obj 220 74 t b f; -#X obj 35 54 inlet freq; -#X obj 220 54 inlet q; -#X obj 131 53 loadbang; -#X text 321 179 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); -#X text 277 118 Audio-Cookbook:; -#X text 277 208 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; -#X text 279 160 H(z) = -----------------------------------------; -#X obj 35 599 t f f f f f b; -#X obj 35 184 t b a b; -#X obj 35 701 outlet b0; -#X obj 97 701 outlet b1; -#X obj 159 701 outlet b2; -#X obj 221 701 outlet a1; -#X obj 284 701 outlet a2; -#N canvas 1288 285 450 300 b0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 181 outlet; -#X obj 54 136 * 0.5; -#X obj 54 107 + 1; -#X connect 0 0 5 0; -#X connect 4 0 3 0; -#X connect 5 0 4 0; -#X restore 139 599 pd b0; -#N canvas 1224 264 450 300 b1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 178 outlet; -#X obj 54 107 + 1; -#X obj 54 137 * -1; -#X connect 0 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 3 0; -#X restore 179 599 pd b1; -#N canvas 1219 308 450 300 b2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 198 outlet; -#X obj 54 136 * 0.5; -#X obj 54 107 + 1; -#X connect 0 0 5 0; -#X connect 4 0 3 0; -#X connect 5 0 4 0; -#X restore 219 599 pd b2; -#N canvas 0 22 450 300 a1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 198 outlet; -#X obj 54 127 * -2; -#X connect 0 0 4 0; -#X connect 4 0 3 0; -#X restore 259 599 pd a1; -#N canvas 0 22 450 300 a2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 196 65 r \$0-alpha; -#X obj 196 187 outlet; -#X msg 196 129 1 \$1; -#X obj 196 151 -; -#X connect 2 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 3 0; -#X restore 299 599 pd a2; -#X text 399 602 a0 = 1 + alpha; -#X text 399 642 a2 = 1 - alpha; -#X text 399 622 a1 = -2*cos(w0); -#X text 399 682 b1 = -(1 + cos(w0)); -#X text 399 702 b2 = (1 + cos(w0))/2; -#X text 399 662 b0 = (1 + cos(w0))/2; -#X text 391 583 HPF:; -#X text 32 23 Highpass filter with Q - biquad filter coefficient generator -; -#X obj 35 145 f \$1; -#X obj 226 242 f \$2; -#X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 2 0 4 0; -#X connect 3 0 5 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 12 0; -#X connect 10 0 11 0; -#X connect 11 0 12 1; -#X connect 12 0 13 0; -#X connect 13 0 9 0; -#X connect 14 0 16 1; -#X connect 16 0 17 0; -#X connect 17 0 18 0; -#X connect 18 0 34 0; -#X connect 19 0 36 0; -#X connect 20 0 37 0; -#X connect 21 0 38 0; -#X connect 22 0 39 0; -#X connect 23 0 40 0; -#X connect 26 0 54 0; -#X connect 26 1 55 1; -#X connect 27 0 54 0; -#X connect 28 0 26 0; -#X connect 29 0 54 0; -#X connect 34 0 19 0; -#X connect 34 1 20 0; -#X connect 34 2 21 0; -#X connect 34 3 22 0; -#X connect 34 4 23 0; -#X connect 35 0 16 0; -#X connect 35 1 6 0; -#X connect 35 2 55 0; -#X connect 41 0 19 1; -#X connect 42 0 20 1; -#X connect 43 0 21 1; -#X connect 44 0 22 1; -#X connect 45 0 23 1; -#X connect 54 0 35 0; -#X connect 55 0 7 0; +#X obj 45 73 clip~ 20 20000; +#X obj 301 73 clip~ 0.1 100; +#X obj 45 287 sig~ 1; +#X obj 45 347 /~; +#X obj 45 485 *~; +#X obj 143 321 +~ 1; +#X obj 143 347 *~ 0.5; +#X obj 215 485 *~; +#X obj 230 317 +~ 1; +#X obj 230 343 *~ -1; +#X obj 275 485 *~; +#X obj 290 317 +~ 1; +#X obj 290 343 *~ 0.5; +#X obj 335 485 *~; +#X obj 350 317 *~ -2; +#X obj 410 321 sig~ 1; +#X obj 410 343 -~; +#X obj 395 485 *~; +#X obj 90 292 +~ 1; +#X text 381 172 w0 = 2*pi*f0*Fs; +#X text 381 192 alpha = sin(w0)/(2*Q); +#X text 545 207 a0 = 1 + alpha; +#X text 545 247 a2 = 1 - alpha; +#X text 545 227 a1 = -2*cos(w0); +#X text 545 287 b1 = -(1 + cos(w0)); +#X text 545 267 b0 = (1 + cos(w0))/2; +#X text 535 187 HPF:; +#X text 545 307 b2 = (1 + cos(w0))/2; +#X text 452 67 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); +#X text 410 82 H(z) = -----------------------------------------; +#X text 452 97 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); +#X text 410 42 Audio-Cookbook:; +#X text 410 122 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; +#X obj 45 51 inlet~; +#X obj 301 51 inlet~; +#X obj 45 108 /~ 44100; +#X obj 155 51 loadbang; +#X obj 155 72 samplerate~; +#X text 45 527 (O1) b0; +#X text 215 527 (O2) b1; +#X text 275 527 (O3) b2; +#X text 335 527 (O4) a1; +#X text 395 527 (O5) a2; +#X obj 45 507 outlet~; +#X obj 215 507 outlet~; +#X obj 275 507 outlet~; +#X obj 335 507 outlet~; +#X obj 395 507 outlet~; +#X obj 301 108 *~ 2; +#X obj 290 193 /~; +#X obj 45 221 cos~; +#X obj 155 173 cos~; +#X obj 154 147 -~ 0.25; +#X connect 0 0 35 0; +#X connect 1 0 48 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 0 10 0; +#X connect 3 0 13 0; +#X connect 3 0 17 0; +#X connect 4 0 43 0; +#X connect 5 0 6 0; +#X connect 6 0 4 1; +#X connect 7 0 44 0; +#X connect 8 0 9 0; +#X connect 9 0 7 1; +#X connect 10 0 45 0; +#X connect 11 0 12 0; +#X connect 12 0 10 1; +#X connect 13 0 46 0; +#X connect 14 0 13 1; +#X connect 15 0 16 0; +#X connect 16 0 17 1; +#X connect 17 0 47 0; +#X connect 18 0 3 1; +#X connect 33 0 0 0; +#X connect 34 0 1 0; +#X connect 35 0 50 0; +#X connect 35 0 52 0; +#X connect 36 0 37 0; +#X connect 37 0 35 1; +#X connect 48 0 49 1; +#X connect 49 0 16 1; +#X connect 49 0 18 0; +#X connect 50 0 5 0; +#X connect 50 0 8 0; +#X connect 50 0 11 0; +#X connect 50 0 14 0; +#X connect 51 0 49 0; +#X connect 52 0 51 0; diff --git a/hv.filters/highpass.pd b/hv.filters/highpass.pd index 7f971c8..c2b19c8 100644 --- a/hv.filters/highpass.pd +++ b/hv.filters/highpass.pd @@ -316,65 +316,15 @@ #X connect 10 0 8 2; #X connect 11 0 8 3; #X restore 35 153 pd @hv_obj biquad; -#X obj 94 43 inlet freq; -#X obj 223 44 inlet q; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 94 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 126 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 158 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 190 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 223 110 pd s; #X obj 94 83 highpass.coeffs \$1 \$2; +#X obj 94 43 inlet~ freq; +#X obj 211 44 inlet~ q; #X connect 1 0 2 0; #X connect 2 0 0 0; -#X connect 3 0 10 0; -#X connect 4 0 10 1; -#X connect 5 0 2 1; -#X connect 6 0 2 2; -#X connect 7 0 2 3; -#X connect 8 0 2 4; -#X connect 9 0 2 5; -#X connect 10 0 5 0; -#X connect 10 1 6 0; -#X connect 10 2 7 0; -#X connect 10 3 8 0; -#X connect 10 4 9 0; +#X connect 3 0 2 1; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 4 0 3 0; +#X connect 5 0 3 1; diff --git a/hv.filters/lowpass.coeffs.pd b/hv.filters/lowpass.coeffs.pd index 3a43792..d7ae210 100644 --- a/hv.filters/lowpass.coeffs.pd +++ b/hv.filters/lowpass.coeffs.pd @@ -1,184 +1,102 @@ #N canvas 1309 219 590 745 10; -#N canvas 0 22 783 567 hz2rad 0; -#X obj 194 113 samplerate~; -#X obj 194 71 loadbang; -#X obj 194 185 atan; -#X msg 194 160 1; -#X text 382 53 w = 2 * pi * f / SR; -#X obj 194 207 * 8; -#X obj 194 137 t b a; -#X obj 194 230 / 44100; -#X text 260 232 2 * pi / SR; -#X obj 119 269 *; -#X obj 119 35 inlet; -#X obj 119 298 outlet; -#X text 175 300 w(rad); -#X text 167 35 freq(Hz); -#X connect 0 0 6 0; -#X connect 1 0 0 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 5 0 7 0; -#X connect 6 0 3 0; -#X connect 6 1 7 1; -#X connect 7 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X restore 41 336 pd hz2rad; -#X obj 41 366 t f f; -#X obj 109 396 sin; -#X obj 41 396 cos; -#X obj 109 436 s \$0-wsin; -#X obj 41 436 s \$0-wcos; -#X obj 41 276 clip 20 20000; -#X obj 213 276 clip 0.1 100; -#X obj 138 306 r \$0-wsin; -#X obj 198 436 s \$0-alpha; -#X msg 213 306 1 \$1; -#X obj 213 336 /; -#X obj 198 366 *; -#X obj 198 396 * 0.5; -#N canvas 1288 285 450 300 b0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 181 outlet; -#X obj 54 146 * 0.5; -#X msg 54 101 1 \$1; -#X obj 54 123 -; -#X connect 0 0 5 0; -#X connect 4 0 3 0; -#X connect 5 0 6 0; -#X connect 6 0 4 0; -#X restore 118 596 pd b0; -#N canvas 1224 264 450 300 b1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 178 outlet; -#X msg 54 116 1 \$1; -#X obj 54 138 -; -#X connect 0 0 4 0; +#X obj 381 166 sig~ 1; +#X obj 381 187 /~; +#X obj 370 314 *~; +#X obj 370 340 *~ 0.5; +#X obj 47 479 sig~ 1; +#X obj 47 541 /~; +#X obj 47 683 *~; +#X obj 139 541 *~ 0.5; +#X obj 207 683 *~; +#X obj 267 683 *~; +#X obj 327 683 *~; +#X obj 340 543 *~ -2; +#X obj 402 479 sig~ 1; +#X obj 402 541 -~; +#X obj 387 683 *~; +#X obj 92 504 +~ 1; +#X text 475 236 w0 = 2*pi*f0*Fs; +#X text 475 256 alpha = sin(w0)/(2*Q); +#X text 639 311 a2 = 1 - alpha; +#X text 639 291 a1 = -2*cos(w0); +#X text 504 146 H(z) = -----------------------------------------; +#X text 504 106 Audio-Cookbook:; +#X obj 139 477 sig~ 1; +#X obj 139 519 -~; +#X obj 218 521 sig~ 1; +#X obj 218 543 -~; +#X obj 281 543 *~ 0.5; +#X obj 281 479 sig~ 1; +#X obj 281 521 -~; +#X text 546 161 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); +#X text 546 131 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); +#X text 639 271 a0 = 1 + alpha; +#X text 639 331 b0 = (1 - cos(w0))/2; +#X text 639 351 b1 = (1 - cos(w0)); +#X text 639 371 b2 = (1 - cos(w0))/2; +#X text 629 251 LPF:; +#X obj 47 198 /~ 44100; +#X obj 152 118 loadbang; +#X obj 152 139 samplerate~; +#X obj 396 145 max~ 0.1; +#X obj 47 118 inlet~; +#X obj 396 124 inlet~; +#X obj 47 704 outlet~; +#X obj 207 704 outlet~; +#X obj 267 704 outlet~; +#X obj 327 704 outlet~; +#X obj 387 704 outlet~; +#X text 504 186 https://www.musicdsp.org/en/latest/Filters/197-rbj-audio-eq-cookbook.html; +#X text 47 724 (O1) b0; +#X text 207 724 (O2) b1; +#X text 267 724 (O3) b2; +#X text 327 724 (O4) a1; +#X text 387 724 (O5) a2; +#X text 396 104 (I2) Q factor; +#X text 47 98 (I1) Frequency; +#X obj 47 139 clip~ 0 20000; +#X obj 47 339 cos~; +#X obj 230 272 cos~; +#X obj 230 246 -~ 0.25; +#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 3 0; -#X restore 160 596 pd b1; -#N canvas 1219 308 450 300 b2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 198 outlet; -#X obj 54 146 * 0.5; -#X msg 54 101 1 \$1; -#X obj 54 123 -; -#X connect 0 0 5 0; -#X connect 4 0 3 0; #X connect 5 0 6 0; -#X connect 6 0 4 0; -#X restore 202 596 pd b2; -#N canvas 0 22 450 300 a0 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 194 200 outlet; -#X obj 194 139 + 1; -#X connect 2 0 4 0; -#X connect 4 0 3 0; -#X restore 37 476 pd a0; -#N canvas 0 22 450 300 a1 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 194 65 r \$0-alpha; -#X obj 54 198 outlet; -#X obj 54 127 * -2; -#X connect 0 0 4 0; -#X connect 4 0 3 0; -#X restore 244 596 pd a1; -#N canvas 0 22 450 300 a2 0; -#X obj 54 65 r \$0-wcos; -#X obj 124 65 r \$0-wsin; -#X obj 196 65 r \$0-alpha; -#X obj 196 187 outlet; -#X msg 196 129 1 \$1; -#X obj 196 151 -; -#X connect 2 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 3 0; -#X restore 286 596 pd a2; -#X text 305 139 (b0/a0) + (b1/a0)*z^(-1) + (b2/a0)*z^(-2); -#X obj 22 506 f; -#X msg 22 536 1 \$1; -#X obj 22 566 /; -#X obj 22 656 *; -#X obj 84 656 *; -#X obj 146 656 *; -#X obj 208 657 *; -#X obj 271 657 *; -#X text 280 414 w0 = 2*pi*f0*Fs; -#X text 280 434 alpha = sin(w0)/(2*Q); -#X obj 207 71 t b f; -#X obj 22 51 inlet freq; -#X obj 207 51 inlet q; -#X text 379 600 a0 = 1 + alpha; -#X text 379 640 a2 = 1 - alpha; -#X text 379 620 a1 = -2*cos(w0); -#X text 379 660 b0 = (1 - cos(w0))/2; -#X text 379 700 b2 = (1 - cos(w0))/2; -#X text 379 680 b1 = (1 - cos(w0)); -#X text 308 176 1 + (a1/a0)*z^(-1) + (a2/a0)*z^(-2); -#X text 264 115 Audio-Cookbook:; -#X text 264 205 http://musicdsp.org/files/Audio-EQ-Cookbook.txt; -#X text 266 157 H(z) = -----------------------------------------; -#X text 378 580 LPF:; -#X text 19 20 Lowpass filter with Q - biquad filter coefficient generator -; -#X obj 22 596 t f f f f f b; -#X obj 22 181 t b a b; -#X obj 22 698 outlet b0; -#X obj 84 698 outlet b1; -#X obj 146 698 outlet b2; -#X obj 208 698 outlet a1; -#X obj 271 698 outlet a2; -#X obj 113 51 loadbang; -#X obj 22 142 f \$1; -#X obj 213 239 f \$2; -#X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 1 1 2 0; -#X connect 2 0 4 0; -#X connect 3 0 5 0; -#X connect 6 0 0 0; -#X connect 7 0 10 0; -#X connect 8 0 12 0; -#X connect 10 0 11 0; -#X connect 11 0 12 1; +#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 42 0; +#X connect 7 0 6 1; +#X connect 8 0 43 0; +#X connect 9 0 44 0; +#X connect 10 0 45 0; +#X connect 11 0 10 1; #X connect 12 0 13 0; -#X connect 13 0 9 0; -#X connect 14 0 24 1; -#X connect 15 0 25 1; -#X connect 16 0 26 1; -#X connect 17 0 21 1; -#X connect 18 0 27 1; -#X connect 19 0 28 1; -#X connect 21 0 22 0; +#X connect 13 0 14 1; +#X connect 14 0 46 0; +#X connect 15 0 5 1; #X connect 22 0 23 0; -#X connect 23 0 46 0; -#X connect 24 0 48 0; -#X connect 25 0 49 0; -#X connect 26 0 50 0; -#X connect 27 0 51 0; -#X connect 28 0 52 0; -#X connect 31 0 54 0; -#X connect 31 1 55 1; -#X connect 32 0 54 0; -#X connect 33 0 31 0; -#X connect 46 0 24 0; -#X connect 46 1 25 0; -#X connect 46 2 26 0; -#X connect 46 3 27 0; -#X connect 46 4 28 0; -#X connect 47 0 21 0; -#X connect 47 1 6 0; -#X connect 47 2 55 0; -#X connect 53 0 54 0; -#X connect 54 0 47 0; -#X connect 55 0 7 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 58 0; +#X connect 36 0 56 0; +#X connect 37 0 38 0; +#X connect 38 0 36 1; +#X connect 39 0 1 1; +#X connect 40 0 55 0; +#X connect 41 0 39 0; +#X connect 55 0 36 0; +#X connect 56 0 23 1; +#X connect 56 0 25 1; +#X connect 56 0 28 1; +#X connect 56 0 11 0; +#X connect 57 0 2 0; +#X connect 58 0 57 0; diff --git a/hv.filters/lowpass.pd b/hv.filters/lowpass.pd index a6970e2..b60c091 100644 --- a/hv.filters/lowpass.pd +++ b/hv.filters/lowpass.pd @@ -316,65 +316,15 @@ #X connect 10 0 8 2; #X connect 11 0 8 3; #X restore 35 153 pd @hv_obj biquad; -#X obj 94 43 inlet freq; -#X obj 217 44 inlet q; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 94 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 128 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 163 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 198 110 pd s; -#N canvas 0 22 173 173 s 0; -#X obj 37 46 inlet; -#X obj 37 90 line~; -#X obj 37 112 outlet~; -#X msg 37 68 \$1 10; -#X connect 0 0 3 0; -#X connect 1 0 2 0; -#X connect 3 0 1 0; -#X restore 234 110 pd s; #X obj 94 83 lowpass.coeffs \$1 \$2; +#X obj 94 43 inlet~ freq; +#X obj 206 44 inlet~ q; #X connect 1 0 2 0; #X connect 2 0 0 0; -#X connect 3 0 10 0; -#X connect 4 0 10 1; -#X connect 5 0 2 1; -#X connect 6 0 2 2; -#X connect 7 0 2 3; -#X connect 8 0 2 4; -#X connect 9 0 2 5; -#X connect 10 0 5 0; -#X connect 10 1 6 0; -#X connect 10 2 7 0; -#X connect 10 3 8 0; -#X connect 10 4 9 0; +#X connect 3 0 2 1; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 4 0 3 0; +#X connect 5 0 3 1; diff --git a/hv.filter~-help.pd b/hv.filter~-help.pd index ad298cd..3d832d1 100644 --- a/hv.filter~-help.pd +++ b/hv.filter~-help.pd @@ -1,51 +1,32 @@ -#N canvas 1 52 1156 753 10; +#N canvas 1 52 1156 953 10; #X obj 33 188 noise~; #X obj 33 210 *~ 0.1; -#X obj 453 108 line; -#X obj 456 63 hsl 128 15 100 10000 0 0 empty empty empty -2 -8 0 10 --262144 -1 -1 0 1; +#X obj 456 63 hsl 128 15 20 20000 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; #X obj 453 41 r freq @hv_param 100 10000 300; #X text 70 96 Available filters:; #X obj 33 326 s~ \$0-bp1; #X obj 785 207 hv.filters/spectrolog; #X obj 786 454 hv.filters/spectrolog; -#X text 31 57 Includes signal-rate coefficient updating to avoid clicks -when sweeping the controls.; -#X obj 453 130 s \$0-freq; +#X text 31 57 Includes signal-rate coefficient updating to avoid clicks when sweeping the controls.; #X obj 440 205 hv.filters/spectrolog; #X obj 441 452 hv.filters/spectrolog; #X obj 440 180 r~ \$0-bp1; #X obj 441 427 r~ \$0-bp2; #X obj 33 270 r~ \$0-noise; #X obj 33 370 r~ \$0-noise; -#X obj 665 108 line; -#X obj 668 63 hsl 128 15 0.1 100 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; +#X obj 668 63 hsl 128 15 0.1 100 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1; #X obj 665 41 r q @hv_param 0.1 100 0.707; -#X obj 665 130 s \$0-q; #X msg 665 86 \$1 100; -#X obj 115 270 r \$0-freq; #X obj 33 426 s~ \$0-bp2; #X obj 33 232 s~ \$0-noise; -#X obj 198 270 r \$0-q; -#X obj 112 370 r \$0-freq; -#X obj 192 370 r \$0-q; #X obj 33 460 r~ \$0-noise; -#X obj 106 460 r \$0-freq; -#X obj 180 460 r \$0-q; #X obj 33 550 r~ \$0-noise; -#X obj 106 550 r \$0-freq; #X obj 33 640 r~ \$0-noise; -#X obj 109 640 r \$0-freq; -#X obj 186 642 r \$0-q; #X obj 33 516 s~ \$0-allpass; -#X text 31 19 Generic filter module with swappable filter types and -frequency \, Q settings.; -#X msg 453 86 \$1 1000; +#X text 31 19 Generic filter module with swappable filter types and frequency \, Q settings.; #X obj 785 182 r~ \$0-lp; #X obj 786 429 r~ \$0-hp; #X obj 33 696 s~ \$0-hp; -#X obj 180 550 r \$0-q; #X text 120 112 allpass; #X text 120 132 lowpass; #X text 120 152 highpass; @@ -58,37 +39,55 @@ frequency \, Q settings.; #X obj 33 488 hv.filter~ allpass 1000 2; #X obj 33 577 hv.filter~ lowpass 1000 2; #X obj 33 668 hv.filter~ highpass 1000 2; +#X obj 112 370 r~ \$0-freq; +#X obj 192 370 r~ \$0-q; +#X obj 453 108 line~; +#X obj 665 108 line~; +#X obj 453 139 s~ \$0-freq; +#X obj 665 139 s~ \$0-q; +#X obj 106 550 r~ \$0-freq; +#X obj 180 550 r~ \$0-q; +#X obj 109 640 r~ \$0-freq; +#X obj 186 642 r~ \$0-q; +#X obj 115 270 r~ \$0-freq; +#X obj 198 270 r~ \$0-q; +#X obj 106 460 r~ \$0-freq; +#X obj 180 460 r~ \$0-q; +#X obj 440 696 hv.filters/spectrolog; +#X obj 440 679 r~ \$0-allpass; +#X msg 453 86 \$1 100; #X connect 0 0 1 0; -#X connect 1 0 24 0; -#X connect 2 0 10 0; -#X connect 3 0 38 0; -#X connect 4 0 3 0; -#X connect 13 0 11 0; -#X connect 14 0 12 0; -#X connect 15 0 50 0; -#X connect 16 0 51 0; -#X connect 17 0 20 0; -#X connect 18 0 21 0; -#X connect 19 0 18 0; -#X connect 21 0 17 0; -#X connect 22 0 50 1; -#X connect 25 0 50 2; -#X connect 26 0 51 1; -#X connect 27 0 51 2; -#X connect 28 0 52 0; -#X connect 29 0 52 1; -#X connect 30 0 52 2; -#X connect 31 0 53 0; -#X connect 32 0 53 1; -#X connect 33 0 54 0; -#X connect 34 0 54 1; -#X connect 35 0 54 2; -#X connect 38 0 2 0; -#X connect 39 0 7 0; -#X connect 40 0 8 0; -#X connect 42 0 53 2; -#X connect 50 0 6 0; -#X connect 51 0 23 0; -#X connect 52 0 36 0; -#X connect 53 0 49 0; -#X connect 54 0 41 0; +#X connect 1 0 19 0; +#X connect 2 0 56 0; +#X connect 3 0 2 0; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 13 0 35 0; +#X connect 14 0 36 0; +#X connect 15 0 17 0; +#X connect 16 0 15 0; +#X connect 17 0 43 0; +#X connect 20 0 37 0; +#X connect 21 0 38 0; +#X connect 22 0 39 0; +#X connect 25 0 6 0; +#X connect 26 0 7 0; +#X connect 35 0 5 0; +#X connect 36 0 18 0; +#X connect 37 0 23 0; +#X connect 38 0 34 0; +#X connect 39 0 27 0; +#X connect 40 0 36 1; +#X connect 41 0 36 2; +#X connect 42 0 44 0; +#X connect 43 0 45 0; +#X connect 46 0 38 1; +#X connect 47 0 38 2; +#X connect 48 0 39 1; +#X connect 49 0 39 2; +#X connect 50 0 35 1; +#X connect 51 0 35 2; +#X connect 52 0 37 1; +#X connect 53 0 37 2; +#X connect 55 0 54 0; +#X connect 56 0 42 0; diff --git a/hv.filter~.pd b/hv.filter~.pd index 354a199..80086e1 100644 --- a/hv.filter~.pd +++ b/hv.filter~.pd @@ -1,10 +1,10 @@ #N canvas 1049 51 259 226 10; -#X obj 108 63 inlet freq; -#X obj 164 90 inlet q; #X obj 53 42 inlet~; #X obj 53 171 outlet~; #X obj 53 139 hv.filters/\$1 \$2 \$3; -#X connect 0 0 4 1; -#X connect 1 0 4 2; -#X connect 2 0 4 0; -#X connect 4 0 3 0; +#X obj 100 63 inlet~ freq; +#X obj 147 93 inlet~ q; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 1; +#X connect 4 0 2 2;