aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/4.fft.examples/02.noisefft.pd
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc/4.fft.examples/02.noisefft.pd')
-rw-r--r--pd/doc/4.fft.examples/02.noisefft.pd267
1 files changed, 267 insertions, 0 deletions
diff --git a/pd/doc/4.fft.examples/02.noisefft.pd b/pd/doc/4.fft.examples/02.noisefft.pd
new file mode 100644
index 00000000..65b4d92f
--- /dev/null
+++ b/pd/doc/4.fft.examples/02.noisefft.pd
@@ -0,0 +1,267 @@
+#N canvas 24 0 884 580 12;
+#X obj 279 320 sig~;
+#X obj 187 375 *~;
+#X floatatom 279 274 0 0 0;
+#X floatatom 183 273 0 0 0;
+#X obj 183 319 sig~;
+#X text 10 246 frequency;
+#N canvas 45 63 925 609 fft-analysis 0;
+#X obj 241 228 + 1;
+#X msg 313 322 0;
+#X obj 127 190 *~;
+#X obj 38 69 *~;
+#X obj 37 38 *~;
+#X obj 72 436 *~;
+#X graph graph1 0 0 1024 1 476 244 876 44;
+#X array fftout 1024 float 0;
+#X pop;
+#X obj 37 4 inlet~;
+#X obj 37 436 *~;
+#X obj 94 271 tabsend~ fftout;
+#X obj 76 38 tabreceive~ hanning;
+#X obj 38 116 rfft~;
+#X obj 37 461 rifft~;
+#X obj 37 517 outlet~;
+#X text 88 21 Hanning window;
+#X text 31 94 forward real FFT;
+#X text 52 479 inverse real FFT;
+#X obj 36 555 block~ 1024 2;
+#X obj 72 69 sig~ 0.03125;
+#X graph graph1 0 0 1024 1 476 554 876 354;
+#X array mask 1024 float 0;
+#X pop;
+#X obj 94 190 *~;
+#X obj 94 214 +~;
+#X floatatom 241 253 0 0 0;
+#X msg 247 105 0;
+#X obj 175 184 float;
+#X obj 226 184 + 1;
+#X obj 175 123 bang~;
+#X obj 175 148 spigot;
+#X floatatom 303 86 0 0 0;
+#X obj 101 314 tabreceive~ mask;
+#X obj 241 277 t b b f;
+#X obj 266 322 /;
+#X msg 266 298 1;
+#X obj 78 344 -~;
+#X obj 266 358 sig~;
+#X obj 313 298 sel 0;
+#X obj 247 388 *~;
+#X obj 212 419 +~;
+#X obj 227 446 tabsend~ mask;
+#X floatatom 313 358 0 0 0;
+#X obj 175 209 t f f;
+#X text 100 231 power is square;
+#X text 100 245 modulus of FFT;
+#X obj 303 36 loadbang;
+#X obj 298 181 <;
+#X msg 253 36 bang;
+#X text 237 11 click to make an average;
+#X obj 91 408 sig~ 0.03125;
+#X text 574 249 power spectrum of this window;
+#X text 338 70 Set the number;
+#X text 340 85 of frames to;
+#X text 342 101 average;
+#X text 593 573 average power spectrum;
+#X text 272 253 current frame;
+#X text 284 378 weight of new;
+#X text 275 391 frame in moving;
+#X text 304 404 average;
+#X msg 303 61 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 99 412 pd fft-analysis;
+#X obj 99 275 sig~;
+#X obj 99 297 phasor~;
+#X obj 99 319 cos~;
+#X floatatom 99 253 0 0 0;
+#X graph graph1 0 -1 1024 1 431 525 687 325;
+#X array scope 1024 float 0;
+#X pop;
+#X obj 105 439 tabwrite~ scope;
+#X msg 49 418 bang;
+#X obj 99 230 / 256;
+#X floatatom 98 165 0 0 0;
+#X text 10 155 frequency;
+#X text 21 175 in bins;
+#X text 16 259 in Hz.;
+#X text 42 398 scope;
+#N canvas 84 23 767 580 hanning-window 0;
+#X obj 92 198 phasor~;
+#X obj 92 234 cos~;
+#X obj 23 328 tabwrite~ hanning;
+#X obj 30 252 -~;
+#X obj 28 218 sig~ 1;
+#X msg 37 171 0;
+#X text 48 59 CALCULATE HANNING;
+#X text 45 71 WINDOW TABLE;
+#X graph graph1 0 -1 1024 1 290 509 690 209;
+#X array hanning 1024 float 0;
+#X pop;
+#X msg 290 521 \; hanning resize 1024;
+#X obj 114 145 / 1024;
+#X obj 114 168 sig~;
+#X text 175 148 sample rate / window size;
+#X msg 23 94 bang;
+#X obj 66 269 sig~ 0.5;
+#X obj 49 300 *~;
+#X obj 22 38 loadbang;
+#X obj 113 117 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 328 203 pd hanning-window;
+#X obj 99 346 *~;
+#X text 177 250 oscillator;
+#X obj 166 349 noise~;
+#X text 278 249 noise;
+#X obj 99 374 +~;
+#X text 214 232 amplitudes;
+#X msg 26 84 \; pd dsp 1;
+#X obj 98 207 *;
+#X obj 135 181 loadbang;
+#X obj 135 205 samplerate~;
+#X text 22 51 CLICK HERE;
+#X floatatom 673 67 0 0 0;
+#N canvas 194 37 397 591 output 0;
+#X obj 61 212 t b;
+#X obj 61 147 f;
+#X obj 62 76 inlet;
+#X text 73 46 mute;
+#X obj 61 238 f;
+#X msg 127 248 0;
+#X msg 61 106 bang;
+#X obj 62 167 moses 1;
+#X obj 127 224 t b f;
+#X obj 93 462 outlet;
+#X msg 92 428 set \$1;
+#X obj 78 286 s master-amp;
+#X obj 175 130 r master-amp;
+#X obj 91 360 r master-amp;
+#X obj 175 158 moses 1;
+#X obj 212 420 dbtorms;
+#X obj 213 442 pack 0 100;
+#X obj 214 466 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 673 43 pd output;
+#X msg 673 19 mute;
+#X text 710 70 AMPLITUDE;
+#X obj 673 93 s master-amp;
+#X text 241 9 NOISE FLOOR MEASUREMENT;
+#X text 149 31 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 30 65 TO START;
+#X obj 99 515 dac~;
+#X obj 132 467 r master-out;
+#X text 148 100 The controls below let you send a mixture of a sine
+wave and white noise. The analysis is done in a subwindow.;
+#X obj 132 490 line~;
+#X obj 99 490 *~;
+#X obj 183 295 dbtorms;
+#X obj 279 297 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;