#N canvas 337 19 711 648 10;
#X obj 138 405 cos~;
#X obj 138 359 *~;
#X obj 181 407 cos~;
#X obj 222 308 wrap~;
#X obj 185 307 -~;
#X obj 181 384 +~;
#X obj 179 442 -~;
#X obj 200 468 *~;
#X obj 185 277 samphold~;
#X floatatom 202 157 4 0 200 0 - - -, f 4;
#X obj 202 180 / 10;
#X obj 202 229 line~;
#X obj 202 206 pack 0 50;
#X obj 91 212 phasor~;
#X floatatom 91 189 4 0 0 0 - - -, f 4;
#X text 77 151 fundamental;
#X text 77 166 (= mod freq);
#X text 400 185 index;
#X text 400 200 (percent);
#X floatatom 405 224 4 0 500 0 - - -, f 4;
#X obj 355 290 cos~;
#X obj 405 293 line~;
#X obj 355 313 *~;
#X obj 405 247 / 100;
#X obj 405 270 pack 0 50;
#X obj 138 382 +~;
#X text 358 339 modulating;
#X text 358 355 oscillator;
#X text 42 381 both phases-->;
#X text 11 368 add modulator to;
#X obj 203 561 output~;
#X obj 202 530 hip~;
#N canvas 122 211 558 609 fft 0;
#X obj 23 55 inlet~;
#X obj 210 303 inlet;
#X obj 27 215 rfft~;
#X obj 27 248 *~;
#X obj 58 248 *~;
#X obj 27 278 sqrt~;
#X obj 334 200 block~ 4096 1;
#X obj 27 304 biquad~ 0 0 0 0 1;
#X text 91 216 Fourier series;
#X text 96 269 magnitude;
#X text 94 254 calculate;
#X text 21 3 This subpatch computes the spectrum of the incoming signal
with a (rectangular windowed) FFT. FFTs aren't properly introduced
until much later.;
#X text 83 61 signal to analyze;
#X text 195 255 delay two samples;
#X text 193 273 for better graphing;
#X obj 292 79 samplerate~;
#X obj 240 352 metro 500;
#X obj 240 329 inlet;
#X text 293 327 toggle to graph repeatedly;
#X text 264 303 bang to graph once;
#X obj 27 328 /~ 4096;
#X obj 292 54 bang~;
#X msg 211 413 \; pd dsp 1;
#X obj 237 390 tabwrite~ F10-spectrum;
#X obj 292 102 / 4096;
#X obj 58 135 osc~;
#X obj 58 163 +~ 1;
#X obj 28 188 *~;
#X text 113 138 hanning window;
#X obj 254 79 0.5;
#X connect 0 0 27 0;
#X connect 1 0 22 0;
#X connect 1 0 23 0;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 2 1 4 0;
#X connect 2 1 4 1;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 7 0 20 0;
#X connect 15 0 24 0;
#X connect 16 0 23 0;
#X connect 17 0 16 0;
#X connect 17 0 22 0;
#X connect 20 0 23 0;
#X connect 21 0 15 0;
#X connect 21 0 29 0;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 27 1;
#X connect 27 0 2 0;
#X connect 29 0 25 1;
#X restore 256 530 pd fft;
#X obj 289 485 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 289 506 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X text 310 505 <-- repeatedly;
#X text 311 485 <-- graph once;
#N canvas 0 0 450 300 (subpatch) 0;
#X array F10-spectrum 259 float 0;
#X coords 0 0.51 258 -0.008 256 130 1;
#X restore 440 394 graph;
#X text 432 525 0;
#X obj 177 494 +~;
#X text 20 37 We can apply the two-cosine method to FM synthesis to
get FM spectra which slide up and down: we just treat the cosines like
carrier signals in an FM instrument. This doesn't work as well as you'd
wish \, because the phases of the partials of the two FM instruments
don't line up \, so that \, for indices of modulation above about 20%
\, you get beating effects as the center frequency goes up and down.
;
#X text 521 535 -- frequency --;
#X text 672 526 2700;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header applying_two-cosine_carrier_to_FM
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 626 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 44 246 494 284 META 0;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 HELP_PATCH_AUTHORS Updated for release 0.34. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 25 KEYWORDS signal;
#X text 12 65 DESCRIPTION applying two-cosine carrier to FM;
#X restore 392 628 pd META;
#N canvas 13 202 428 190 References 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 frequency modulation- Related Help Documents;
#X text 19 37 links:;
#X restore 103 628 pd References;
#X obj 6 628 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 202 122 center freq.;
#X text 202 136 in tenths of fundamental);
#X connect 0 0 6 1;
#X connect 0 0 39 0;
#X connect 1 0 25 0;
#X connect 2 0 6 0;
#X connect 3 0 4 1;
#X connect 3 0 7 1;
#X connect 4 0 1 1;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 7 0 39 1;
#X connect 8 0 4 0;
#X connect 8 0 3 0;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 11 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 8 1;
#X connect 13 0 20 0;
#X connect 13 0 1 0;
#X connect 13 0 5 1;
#X connect 14 0 13 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 21 0 22 1;
#X connect 22 0 25 1;
#X connect 23 0 24 0;
#X connect 24 0 21 0;
#X connect 25 0 5 0;
#X connect 25 0 0 0;
#X connect 31 0 30 0;
#X connect 31 0 30 1;
#X connect 33 0 32 1;
#X connect 34 0 32 2;
#X connect 39 0 31 0;
#X connect 39 0 32 0;
