#N canvas 412 23 626 748 12;
#X declare -stdpath ./;
#X floatatom 145 686 5 0 0 0 - - - 0;
#X obj 117 576 bp~;
#X obj 94 537 bp~;
#X obj 126 448 mtof;
#X floatatom 126 475 7 0 0 0 - - - 0;
#X floatatom 135 501 3 0 999 0 - #0-q - 0;
#X floatatom 126 426 7 0 150 0 - #0-pitch - 0;
#X obj 145 618 env~ 4096;
#X obj 95 349 *~ 0;
#X obj 94 374 +~ 1;
#X obj 145 640 + 0.5;
#X obj 145 663 int;
#X text 52 51 In this example we use two cascaded bandpass filters
to troll for partials in Jonathan Harvey's famous bell sample., f
70;
#X text 52 212 You can hear partials around 48 \, 51.3 \, 55 (faint!)
\, 57 (fainter!) \, 60 \, two beating partials around 65 \, 67 \, 69
\, 70.9 \, 71.75 \, 72.6 \, 74 \, 74.65 \, 75.6 \, 77 \, 81.2 \, 84.6
\, 86.5 \, and probably many more. There's also one down at 36 \, but
it's easier to see it on the meter than hear it., f 70;
#X text 161 450 (shift-drag to fine tune);
#X obj 59 629 output~;
#X text 378 679 updated for Pd version 0.39;
#X text 52 89 Note that filters can give unexpected level changes.
The bp~ object is designed to have roughly unit gain at the pass band
\, so the higher you set "Q" the more amplitude is lost. You can correct
for this by pushing the output amplitude \, but be sure to remember
to reset the output amplitude before you reduce Q again. I set the
Q to 100 and the output amplitude to 110 or 120 (with the room gain
way down.) Then holding the shift key \, slowly drag the center pitch
upward listening for modes., f 70;
#N canvas 316 23 512 371 startup 0;
#X obj 189 210 r readfile;
#X obj 189 263 soundfiler;
#X obj 123 21 loadbang;
#X obj 123 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 #fcfcfc #000000
#000000;
#X obj 123 68 f \$0;
#X obj 95 278 /;
#X msg 60 248 44100;
#X obj 60 223 t b f, f 8;
#X obj 60 199 r \$0-totsamps;
#X obj 95 301 s \$0-loopf;
#X msg 123 95 \; readfile symbol \$1-array \; \$1-totsamps 143718 \;
\$1-pitch 69 \; \$1-q 0;
#X msg 189 236 read -resize ../sound/bell.aiff \$1;
#X connect 0 0 11 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 10 0;
#X connect 5 0 9 0;
#X connect 6 0 5 0;
#X connect 7 0 6 0;
#X connect 7 1 5 1;
#X connect 8 0 7 0;
#X connect 11 0 1 0;
#X restore 312 580 pd startup;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-array 155944 float 0;
#X coords 0 1 155943 -1 200 150 1;
#X restore 383 346 graph;
#X obj 95 301 r \$0-loopf;
#X obj 95 325 phasor~;
#X obj 94 398 tabread4~ \$0-array;
#X obj 139 349 r \$0-totsamps;
#X text 55 19 MEASURING SPECTRA USING BANDPASS FILTERS;
#X text 183 425 <= center pitch;
#X text 182 476 <= center frequency;
#X text 165 501 <= Q (filter selectivity);
#X obj 452 20 declare -stdpath ./;
#X connect 1 0 7 0;
#X connect 1 0 15 0;
#X connect 1 0 15 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 1;
#X connect 4 0 1 1;
#X connect 5 0 2 2;
#X connect 5 0 1 2;
#X connect 6 0 3 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 22 0;
#X connect 10 0 11 0;
#X connect 11 0 0 0;
#X connect 20 0 21 0;
#X connect 21 0 8 0;
#X connect 22 0 2 0;
#X connect 23 0 8 1;
