#N canvas 427 83 763 668 12;
#X obj 353 355 line~;
#X obj 89 448 cos~;
#X floatatom 120 564 0 0 0 0 - - -;
#N canvas 176 241 532 273 output 0;
#X obj 338 160 t b;
#X obj 338 110 f;
#X obj 338 60 inlet;
#X text 344 29 mute;
#X obj 338 185 f;
#X msg 425 178 0;
#X msg 338 85 bang;
#X obj 338 135 moses 1;
#X obj 398 111 moses 1;
#X obj 83 148 dbtorms;
#X obj 398 86 r master-lvl;
#X obj 83 42 r master-lvl;
#X obj 338 210 s master-lvl;
#X obj 17 148 inlet~;
#X obj 199 41 inlet;
#X text 199 18 level;
#X obj 199 100 s master-lvl;
#X msg 96 65 set \$1;
#X obj 96 89 outlet;
#X msg 214 64 \; pd dsp 1;
#X obj 83 194 line~;
#X obj 22 212 *~;
#X obj 22 241 dac~;
#X obj 83 171 pack 0 50;
#X text 15 125 audio;
#X text 93 110 show level;
#X obj 17 177 hip~ 1;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 12 0;
#X connect 5 0 12 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 5 0;
#X connect 8 1 4 1;
#X connect 9 0 23 0;
#X connect 10 0 1 1;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 11 0 17 0;
#X connect 13 0 26 0;
#X connect 14 0 16 0;
#X connect 14 0 19 0;
#X connect 17 0 18 0;
#X connect 20 0 21 1;
#X connect 21 0 22 0;
#X connect 21 0 22 1;
#X connect 23 0 20 0;
#X connect 26 0 21 0;
#X restore 90 591 pd output;
#X msg 150 564 MUTE;
#X obj 353 331 pack 0 50;
#X floatatom 353 259 0 0 0 0 - - -;
#X obj 89 360 -~ 0.5;
#X obj 89 399 *~;
#X obj 353 283 / 10;
#X obj 89 424 clip~ -0.5 0.5;
#X text 353 237 bandwidth;
#X obj 353 379 +~ 1;
#X obj 90 471 +~ 1;
#X obj 239 444 cos~;
#X obj 90 500 *~;
#X floatatom 257 273 4 0 0 0 - - -;
#X obj 257 297 / 10;
#X obj 239 418 *~;
#X text 255 228 center;
#X text 255 247 freq.;
#X obj 353 307 max 0;
#X obj 257 369 line~;
#X obj 257 345 pack 0 50;
#X obj 257 321 max 0;
#X floatatom 89 312 4 0 0 0 - - -;
#X obj 89 336 phasor~ 100;
#X text 85 287 freq.;
#X text 85 268 fundamental;
#N canvas 0 22 450 278 (subpatch) 0;
#X array spectrum 128 float 0;
#X coords 0 500 128 0 256 130 1;
#X restore 428 396 graph;
#X msg 153 502 bang;
#N canvas 590 187 368 296 fft 0;
#X obj 46 48 inlet~;
#X obj 137 179 tabwrite~ spectrum;
#X obj 137 143 inlet;
#X obj 46 78 rfft~;
#X obj 46 111 *~;
#X obj 77 111 *~;
#X obj 77 142 sqrt~;
#X obj 165 82 block~ 1024 1;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 4 1;
#X connect 3 1 5 0;
#X connect 3 1 5 1;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X connect 6 0 1 0;
#X restore 114 528 pd fft;
#X text 427 536 0;
#X text 675 533 5512;
#X text 47 28 WINDOWED PACKET SPECTRUM;
#X text 94 75 Here's the spectrum you get. Note that even if you put
the center frequency right on a partial \, there is significant energy
in neighboring partials (try fundamental 440 \, "center freq" 30 \,
bandwidth 0.), f 76;
#X text 94 129 The center frequency is in units of ten per partial
\, or in other words a value of "30" means "centered on the third partial".
, f 76;
#X text 520 596 updated for Pd version 0.34;
#X text 94 169 This technique only works if you're doing Hanning-window
shaped PWM--you can't combine this naturally with FM or with the waveshaping
technique we'll see later., f 76;
#X text 193 563 <= output;
#X text 194 502 <= graph;
#X connect 0 0 12 0;
#X connect 1 0 13 0;
#X connect 2 0 3 1;
#X connect 3 0 2 0;
#X connect 4 0 3 2;
#X connect 5 0 0 0;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 7 0 18 0;
#X connect 8 0 10 0;
#X connect 9 0 21 0;
#X connect 10 0 1 0;
#X connect 12 0 8 1;
#X connect 13 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 3 0;
#X connect 15 0 31 0;
#X connect 16 0 17 0;
#X connect 17 0 24 0;
#X connect 18 0 14 0;
#X connect 21 0 5 0;
#X connect 22 0 18 1;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 25 0 26 0;
#X connect 26 0 7 0;
#X connect 30 0 31 1;
