#N canvas 492 38 722 748 12;
#X floatatom 57 315 7 0 0 0 - - - 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-real 64 float 2;
#X coords 0 64 64 -64 256 200 1;
#X restore 419 236 graph;
#X floatatom 57 215 5 0 32 0 - - - 0;
#X obj 89 287 samplerate~;
#X obj 57 262 t f b;
#X obj 57 287 *;
#X obj 94 636 metro 250;
#X obj 56 705 tabwrite~ \$0-real;
#X obj 81 682 tabwrite~ \$0-imaginary;
#X obj 56 444 osc~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-imaginary 64 float 2;
#X coords 0 64 64 -64 256 200 1;
#X restore 419 469 graph;
#X obj 81 420 f;
#X floatatom 99 371 5 0 100 0 - - - 0;
#X obj 99 395 / 100;
#X obj 57 238 / 64;
#X text 600 217 real part;
#X text 566 450 imaginary part;
#X obj 94 603 loadbang;
#X obj 100 659 s \$0-snap;
#X obj 81 342 r \$0-snap;
#X msg 57 126 0;
#X msg 65 151 10;
#X msg 72 174 10.5;
#X text 112 423 sync phase with snapshots;
#X obj 56 476 fft~;
#X text 140 60 The [fft~] object has separate inlets for the real and imaginary parts of a complex-valued signal and outputs its Fourier transform \, again using separate outlets for the real and imaginary part. The transform is done on one block of samples (here the block size is 64 \, Pd's default.) The outputs give the complex amplitudes of the harmonics of the input signal \, from DC up. The harmonics are tuned to the fundamental frequency of the analysis \, 1/64th of the sample rate. If the frequency (in harmonics) is an integer \, the result is two harmonics symmetric about the Nyquist frequency. Fractional frequencies spill across harmonics. Changing the initial phase rotates energy from real to imaginary and back., f 81;
#X obj 235 592 ../5.reference/set-dsp-tgl;
#X text 266 595 DSP on/off;
#X msg 235 627 \; pd dsp \$1;
#X text 100 215 <-- frequency (as multiple of SR/64 \, the fundamental), f 26;
#X text 114 315 <-- frequency \, Hz.;
#X text 144 370 <--;
#X text 171 369 phase in hundredths of a cycle, f 10;
#X text 153 342 bang-on-snapshot from below;
#X text 97 474 [fft~] computes the Fourier transform \, given the real and imaginary part of a complex-valued signal. Here the imaginary part is zero (the input is real-valued). The output is a (real \, imaginary) pair for each frequency from 0 to 63 (in units of SR/64)., f 41;
#X text 246 688 real and imaginary outputs are graphed separately., f 27;
#X obj 85 21 cnv 5 5 25 empty empty Fourier\ Analysis 15 13 0 16 #dfdfdf #202020 0;
#X connect 0 0 9 0;
#X connect 2 0 14 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 4 1 3 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 6 0 18 0;
#X connect 9 0 24 0;
#X connect 11 0 9 1;
#X connect 12 0 13 0;
#X connect 13 0 11 1;
#X connect 14 0 4 0;
#X connect 17 0 6 0;
#X connect 19 0 11 0;
#X connect 20 0 2 0;
#X connect 21 0 2 0;
#X connect 22 0 2 0;
#X connect 24 0 7 0;
#X connect 24 1 8 0;
#X connect 26 0 28 0;
