#N canvas 115 104 818 767 10;
#X obj 305 374 sig~;
#X obj 220 441 *~;
#X floatatom 305 320;
#X floatatom 215 321;
#X obj 215 375 sig~;
#X text 26 289 frequency;
#N canvas 323 90 887 830 fft-analysis 1;
#X obj 266 266 + 1;
#X msg 350 377 0;
#X obj 149 223 *~;
#X obj 45 81 *~;
#X obj 44 45 *~;
#X obj 85 513 *~;
#X graph graph1 0 -1 1024 1 467 437 867 137;
#X array fftout 1024 float;
#X pop;
#X obj 44 5 inlet~;
#X obj 44 513 *~;
#X obj 110 319 tabsend~ fftout;
#X obj 89 45 tabreceive~ hanning;
#X obj 45 137 rfft~;
#X obj 44 542 rifft~;
#X obj 44 608 outlet~;
#X text 103 25 Hanning window;
#X text 37 111 forward real FFT;
#X text 61 564 inverse real FFT;
#X obj 42 653 block~ 1024 2;
#X obj 85 81 sig~ 0.03125;
#X graph graph1 0 -1 1024 1 467 780 867 480;
#X array mask 1024 float;
#X pop;
#X obj 110 223 *~;
#X obj 110 252 +~;
#X floatatom 266 295;
#X msg 308 123 0;
#X obj 206 217 float;
#X obj 266 217 + 1;
#X obj 206 145 bang~;
#X obj 206 174 spigot;
#X floatatom 342 103;
#X obj 114 373 tabreceive~ mask;
#X obj 266 324 t b b f;
#X obj 295 377 /;
#X msg 295 348 1;
#X obj 92 405 -~;
#X obj 295 419 sig~;
#X obj 350 348 sel 0;
#X obj 273 454 *~;
#X obj 224 493 +~;
#X obj 224 522 tabsend~ mask;
#X floatatom 350 419;
#X obj 206 246 t f f;
#X text 118 272 power is square;
#X text 118 288 modulus of FFT;
#X obj 342 45 loadbang;
#X obj 363 213 <;
#X msg 278 45 bang;
#X text 278 16 click to make an average;
#X obj 107 480 sig~ 0.03125;
#X text 551 437 power spectrum of this window;
#X text 383 85 Set the number;
#X text 382 98 of frames to;
#X text 382 111 average;
#X text 553 789 average power spectrum;
#X text 308 295 current frame;
#X text 316 443 weight of new;
#X text 306 458 frame in moving;
#X text 340 473 average;
#X msg 342 74 100;
#X connect 0 0 22 0;
#X connect 1 0 34 0;
#X connect 1 0 39 0;
#X connect 2 0 21 1;
#X connect 3 0 11 0;
#X connect 4 0 3 0;
#X connect 5 0 12 1;
#X connect 7 0 4 0;
#X connect 8 0 12 0;
#X connect 10 0 4 1;
#X connect 11 0 8 0;
#X connect 11 0 20 0;
#X connect 11 0 20 1;
#X connect 11 1 5 0;
#X connect 11 1 2 0;
#X connect 11 1 2 1;
#X connect 12 0 13 0;
#X connect 18 0 3 1;
#X connect 20 0 21 0;
#X connect 21 0 9 0;
#X connect 21 0 33 0;
#X connect 22 0 30 0;
#X connect 23 0 24 1;
#X connect 23 0 44 0;
#X connect 24 0 40 0;
#X connect 24 0 25 0;
#X connect 25 0 24 1;
#X connect 26 0 27 0;
#X connect 27 0 24 0;
#X connect 28 0 44 1;
#X connect 29 0 33 1;
#X connect 29 0 37 1;
#X connect 30 1 32 0;
#X connect 30 2 31 1;
#X connect 31 0 34 0;
#X connect 31 0 39 0;
#X connect 32 0 31 0;
#X connect 33 0 36 0;
#X connect 34 0 36 1;
#X connect 35 0 1 0;
#X connect 36 0 37 0;
#X connect 37 0 38 0;
#X connect 40 0 44 0;
#X connect 40 1 0 0;
#X connect 43 0 57 0;
#X connect 44 0 27 1;
#X connect 44 0 35 0;
#X connect 45 0 23 0;
#X connect 47 0 8 1;
#X connect 47 0 5 1;
#X connect 57 0 28 0;
#X restore 116 485 pd fft-analysis;
#X obj 116 324 sig~;
#X obj 116 349 phasor~;
#X obj 116 375 cos~;
#X floatatom 116 298;
#X graph graph1 0 -1 1024 1 402 674 802 374;
#X array scope 1024 float;
#X pop;
#X obj 124 517 tabwrite~ scope;
#X msg 60 497 bang;
#X obj 116 271 / 256;
#X floatatom 115 194;
#X text 24 194 frequency;
#X text 31 210 in bins;
#X text 33 305 in Hz.;
#X text 52 473 scope;
#N canvas 275 71 767 761 hanning-window 0;
#X obj 108 233 phasor~;
#X obj 108 275 cos~;
#X obj 27 386 tabwrite~ hanning;
#X obj 35 297 -~;
#X obj 33 257 sig~ 1;
#X msg 44 201 0;
#X text 57 70 CALCULATE HANNING;
#X text 53 84 WINDOW TABLE;
#X graph graph1 0 -1 1024 1 323 631 723 331;
#X array hanning 1024 float;
#X pop;
#X msg 323 643 \; hanning resize 1024;
#X obj 134 171 / 1024;
#X obj 134 198 sig~;
#X text 206 174 sample rate / window size;
#X msg 27 111 bang;
#X obj 78 316 sig~ 0.5;
#X obj 58 353 *~;
#X obj 26 45 loadbang;
#X obj 133 138 samplerate~;
#X connect 0 0 1 0;
#X connect 1 0 3 1;
#X connect 3 0 15 0;
#X connect 4 0 3 0;
#X connect 5 0 0 1;
#X connect 10 0 11 0;
#X connect 11 0 0 0;
#X connect 13 0 2 0;
#X connect 13 0 5 0;
#X connect 13 0 17 0;
#X connect 14 0 15 1;
#X connect 15 0 2 0;
#X connect 16 0 13 0;
#X connect 17 0 10 0;
#X restore 411 280 pd hanning-window;
#X obj 116 407 *~;
#X text 189 290 oscillator;
#X obj 192 415 noise~;
#X text 299 291 noise;
#X obj 116 440 +~;
#X text 230 277 amplitudes;
#X msg 31 99 \; pd dsp 1;
#X obj 115 243 *;
#X obj 159 217 loadbang;
#X obj 159 241 samplerate~;
#X text 26 60 CLICK HERE;
#X floatatom 691 80;
#N canvas 194 37 397 591 output 0;
#X obj 72 249 t b;
#X obj 72 173 f;
#X obj 73 89 inlet;
#X text 86 54 mute;
#X obj 72 280 f;
#X msg 149 292 0;
#X msg 72 125 bang;
#X obj 73 197 moses 1;
#X obj 149 263 t b f;
#X obj 109 543 outlet;
#X msg 108 503 set \$1;
#X obj 92 337 s master-amp;
#X obj 206 153 r master-amp;
#X obj 107 424 r master-amp;
#X obj 206 186 moses 1;
#X obj 249 494 dbtorms;
#X obj 251 520 pack 0 100;
#X obj 252 548 s master-out;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 11 0;
#X connect 5 0 11 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 10 0 9 0;
#X connect 12 0 1 1;
#X connect 12 0 14 0;
#X connect 13 0 10 0;
#X connect 13 0 15 0;
#X connect 14 1 4 1;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 691 52 pd output;
#X msg 691 24 mute;
#X text 734 84 AMPLITUDE;
#X obj 691 111 s master-amp;
#X text 262 11 NOISE FLOOR MEASUREMENT;
#X text 154 37 This patch shows how you can average the RMS spectra of many windows of an incoming "noise floor" signal to estimate its spectrum. We'll use this in the "denoiser" patch \, next.;
#X text 35 77 TO START;
#X obj 116 606 dac~;
#X obj 155 549 r master-out;
#X text 152 108 The controls below let you send a mixture of a sine wave and white noise. The analysis is done in a subwindow.;
#X obj 155 577 line~;
#X obj 116 577 *~;
#X obj 215 347 dbtorms;
#X obj 305 347 dbtorms;
#X connect 0 0 1 1;
#X connect 1 0 25 1;
#X connect 2 0 46 0;
#X connect 3 0 45 0;
#X connect 4 0 21 1;
#X connect 6 0 12 0;
#X connect 6 0 44 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 21 0;
#X connect 10 0 7 0;
#X connect 13 0 12 0;
#X connect 14 0 10 0;
#X connect 15 0 28 0;
#X connect 21 0 25 0;
#X connect 23 0 1 0;
#X connect 25 0 6 0;
#X connect 28 0 14 0;
#X connect 29 0 30 0;
#X connect 30 0 28 1;
#X connect 32 0 36 0;
#X connect 33 0 32 0;
#X connect 34 0 33 0;
#X connect 41 0 43 0;
#X connect 43 0 44 1;
#X connect 44 0 40 0;
#X connect 44 0 40 1;
#X connect 45 0 4 0;
#X connect 46 0 0 0;
