[PD-cvs] pd/doc/3.audio.examples A07.fusion.pd, NONE, 1.1.2.1 A08.beating.pd, NONE, 1.1.2.1 A09.frequency.mod.pd, NONE, 1.1.2.1 A10.review.pd, NONE, 1.1.2.1 C08.analog.sequencer.pd, 1.1.1.1, 1.1.1.1.22.1 I05.compressor.pd, 1.1, 1.1.10.1 I06.timbre.stamp.pd, 1.1, 1.1.10.1 I07.phase.vocoder.pd, 1.1, 1.1.10.1

Hans-Christoph Steiner eighthave at users.sourceforge.net
Sun Nov 4 18:31:57 CET 2007


Update of /cvsroot/pure-data/pd/doc/3.audio.examples
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1047/3.audio.examples

Modified Files:
      Tag: branch-v0-40-extended
	C08.analog.sequencer.pd I05.compressor.pd I06.timbre.stamp.pd 
	I07.phase.vocoder.pd 
Added Files:
      Tag: branch-v0-40-extended
	A07.fusion.pd A08.beating.pd A09.frequency.mod.pd 
	A10.review.pd 
Log Message:
included newest docs from HEAD

Index: I05.compressor.pd
===================================================================
RCS file: /cvsroot/pure-data/pd/doc/3.audio.examples/I05.compressor.pd,v
retrieving revision 1.1
retrieving revision 1.1.10.1
diff -C2 -d -r1.1 -r1.1.10.1
*** I05.compressor.pd	31 Dec 2005 00:59:47 -0000	1.1
--- I05.compressor.pd	4 Nov 2007 17:31:55 -0000	1.1.10.1
***************
*** 66,70 ****
  #X floatatom 57 196 0 0 500 0 - squelch-set -;
  #X obj 57 220 s squelch;
! #N canvas 190 43 427 657 test-signal 0;
  #X obj 90 444 line~;
  #X obj 90 369 f;
--- 66,70 ----
  #X floatatom 57 196 0 0 500 0 - squelch-set -;
  #X obj 57 220 s squelch;
! #N canvas 240 72 427 657 test-signal 0;
  #X obj 90 444 line~;
  #X obj 90 369 f;
***************
*** 82,90 ****
  #X obj 90 469 tabread4~ \$0-sample;
  #X text 21 28 test signal: looped sample playback;
! #X obj 67 131 hip~ 5;
! #X obj 67 107 adc~ 1;
! #X obj 129 131 s insamprate;
  #X obj 67 70 inlet;
! #X obj 129 107 samplerate~;
  #X obj 116 246 r \$0-samplength;
  #X obj 259 246 r \$0-insamprate;
--- 82,90 ----
  #X obj 90 469 tabread4~ \$0-sample;
  #X text 21 28 test signal: looped sample playback;
! #X obj 77 131 hip~ 5;
! #X obj 77 107 adc~ 1;
! #X obj 139 131 s insamprate;
  #X obj 67 70 inlet;
! #X obj 139 107 samplerate~;
  #X obj 116 246 r \$0-samplength;
  #X obj 259 246 r \$0-insamprate;
***************
*** 111,115 ****
  #X connect 16 0 15 0;
  #X connect 18 0 19 0;
! #X connect 18 0 16 0;
  #X connect 19 0 17 0;
  #X connect 20 0 12 0;
--- 111,115 ----
  #X connect 16 0 15 0;
  #X connect 18 0 19 0;
! #X connect 18 0 22 0;
  #X connect 19 0 17 0;
  #X connect 20 0 12 0;
***************
*** 118,122 ****
  #X obj 43 359 output~;
  #N canvas 388 86 722 350 insample 0;
! #N canvas 0 0 450 300 graph1 0;
  #X array \$0-sample 155948 float 0;
  #X coords 0 1 155947 -1 400 150 1;
--- 118,122 ----
  #X obj 43 359 output~;
  #N canvas 388 86 722 350 insample 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array \$0-sample 155948 float 0;
  #X coords 0 1 155947 -1 400 150 1;
***************
*** 179,183 ****
  #X obj 292 259 s read-sample;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 graph1 0;
  #X array \$0-hann 1024 float 0;
  #X coords 0 1 1023 0 300 100 1;
--- 179,183 ----
  #X obj 292 259 s read-sample;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array \$0-hann 1024 float 0;
  #X coords 0 1 1023 0 300 100 1;

--- NEW FILE: A08.beating.pd ---
#N canvas 53 63 581 571 12;
#X obj 31 212 output~;
#X obj 32 178 +~;
#X text 320 537 updated for Pd version 0.40.;
#X obj 32 110 +~;
#X obj 187 105 +~;
#X obj 187 52 osc~ 440;
#X obj 32 57 osc~ 330;
#X obj 53 81 osc~ 330.2;
#X obj 208 75 osc~ 440.33;
#X obj 342 102 +~;
#X obj 343 52 osc~ 587;
#X obj 364 75 osc~ 587.25;
#X obj 33 147 +~;
#X text 133 7 Beating between closely tuned sinusoids;
#X text 33 280 In each of the three pairs of oscillators above \, the
two frequencies are within 1/3 Hz or closer (for example \, the leftmost
ones are close to 330 Hz but separated by 1/5 Hz.) The result is a
gradual change in amplitude as the phases of the two slip against each
other. This is called beating. More complex beating pattenrs may be
made by using three or more oscillators. Also their amplitudes need
not be equal (as they are here).;
#X text 31 407 They are all summed using "+~" boxes. They could have
been summed in any order ("+~" is commutative for practical purposes)
but here they are added in pairs to emphasize the relationships between
them.;
#X text 30 474 In contrast to the previous example \, the oscillators
are not tuned to the overtone series (ratios 1:2:3:4...) and so the
frequencies 330 \, 440 \, and 587 are heard separately.;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 3 0 12 0;
#X connect 4 0 12 1;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 7 0 3 1;
#X connect 8 0 4 1;
#X connect 9 0 1 1;
#X connect 10 0 9 0;
#X connect 11 0 9 1;
#X connect 12 0 1 0;

Index: I07.phase.vocoder.pd
===================================================================
RCS file: /cvsroot/pure-data/pd/doc/3.audio.examples/I07.phase.vocoder.pd,v
retrieving revision 1.1
retrieving revision 1.1.10.1
diff -C2 -d -r1.1 -r1.1.10.1
*** I07.phase.vocoder.pd	31 Dec 2005 00:59:47 -0000	1.1
--- I07.phase.vocoder.pd	4 Nov 2007 17:31:55 -0000	1.1.10.1
***************
*** 348,356 ****
  #X restore 55 480 pd fft-analysis;
  #N canvas 260 23 647 768 phase-tables 0;
! #N canvas 0 0 450 300 graph2 0;
  #X array prev-imag 4096 float 0;
  #X coords 0 1000 4096 -1000 400 300 1;
  #X restore 169 326 graph;
! #N canvas 0 0 450 300 graph3 0;
  #X array prev-real 4096 float 0;
  #X coords 0 500 4096 -500 400 300 1;
--- 348,356 ----
  #X restore 55 480 pd fft-analysis;
  #N canvas 260 23 647 768 phase-tables 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array prev-imag 4096 float 0;
  #X coords 0 1000 4096 -1000 400 300 1;
  #X restore 169 326 graph;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array prev-real 4096 float 0;
  #X coords 0 500 4096 -500 400 300 1;
***************
*** 363,369 ****
  #X obj 56 517 output~;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 graph1 0;
! #X array \$0-hann 1024 float 0;
! #X coords 0 1 1023 0 300 100 1;
  #X restore 82 311 graph;
  #X obj 378 165 osc~;
--- 363,369 ----
  #X obj 56 517 output~;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 (subpatch) 0;
! #X array \$0-hann 2048 float 0;
! #X coords 0 1 2047 0 300 100 1;
  #X restore 82 311 graph;
  #X obj 378 165 osc~;
***************
*** 413,419 ****
  #X restore 440 528 pd hann-window;
  #N canvas 388 86 694 447 insample 0;
! #N canvas 0 0 450 300 graph1 0;
! #X array \$0-sample 160161 float 0;
! #X coords 0 1 160160 -1 400 150 1;
  #X restore 281 135 graph;
  #X obj 28 133 r read-sample;
--- 413,419 ----
  #X restore 440 528 pd hann-window;
  #N canvas 388 86 694 447 insample 0;
! #N canvas 0 0 450 300 (subpatch) 0;
! #X array \$0-sample 62079 float 0;
! #X coords 0 1 62078 -1 400 150 1;
  #X restore 281 135 graph;
  #X obj 28 133 r read-sample;
***************
*** 434,443 ****
  #X obj 28 404 s \$0-samp-msec;
  #X obj 66 357 r \$0-insamprate;
! #X obj 29 70 hip~ 5;
! #X obj 29 46 adc~ 1;
  #X obj 29 9 inlet;
! #X obj 91 46 samplerate~;
  #X obj 29 93 tabwrite~ \$0-sample;
! #X obj 91 70 s \$0-insamprate;
  #X msg 285 383 \; read-sample ../sound/voice.wav;
  #X obj 276 20 inlet;
--- 434,443 ----
  #X obj 28 404 s \$0-samp-msec;
  #X obj 66 357 r \$0-insamprate;
! #X obj 37 68 hip~ 5;
! #X obj 37 44 adc~ 1;
  #X obj 29 9 inlet;
! #X obj 99 44 samplerate~;
  #X obj 29 93 tabwrite~ \$0-sample;
! #X obj 99 68 s \$0-insamprate;
  #X msg 285 383 \; read-sample ../sound/voice.wav;
  #X obj 276 20 inlet;
***************
*** 464,468 ****
  #X connect 19 0 18 0;
  #X connect 20 0 21 0;
! #X connect 20 0 19 0;
  #X connect 21 0 23 0;
  #X connect 25 0 26 0;
--- 464,468 ----
  #X connect 19 0 18 0;
  #X connect 20 0 21 0;
! #X connect 20 0 22 0;
  #X connect 21 0 23 0;
  #X connect 25 0 26 0;

Index: I06.timbre.stamp.pd
===================================================================
RCS file: /cvsroot/pure-data/pd/doc/3.audio.examples/I06.timbre.stamp.pd,v
retrieving revision 1.1
retrieving revision 1.1.10.1
diff -C2 -d -r1.1 -r1.1.10.1
*** I06.timbre.stamp.pd	31 Dec 2005 00:59:47 -0000	1.1
--- I06.timbre.stamp.pd	4 Nov 2007 17:31:55 -0000	1.1.10.1
***************
*** 130,138 ****
  #X obj 90 469 tabread4~ \$0-sample;
  #X text 21 28 test signal: looped sample playback;
! #X obj 40 159 hip~ 5;
! #X obj 40 135 adc~ 1;
! #X obj 102 159 s insamprate;
! #X obj 40 98 inlet;
! #X obj 102 135 samplerate~;
  #X obj 116 246 r \$0-samplength;
  #X obj 191 276 r \$0-insamprate;
--- 130,138 ----
  #X obj 90 469 tabread4~ \$0-sample;
  #X text 21 28 test signal: looped sample playback;
! #X obj 51 159 hip~ 5;
! #X obj 51 135 adc~ 1;
! #X obj 113 159 s insamprate;
! #X obj 40 99 inlet;
! #X obj 113 135 samplerate~;
  #X obj 116 246 r \$0-samplength;
  #X obj 191 276 r \$0-insamprate;
***************
*** 151,159 ****
  #X obj 499 295 t b b f;
  #X obj 425 263 t b f;
! #X obj 348 152 hip~ 5;
! #X obj 348 128 adc~ 1;
  #X obj 348 91 inlet;
! #X obj 410 128 samplerate~;
! #X obj 410 152 s insamprate2;
  #X obj 348 175 tabwrite~ \$0-sample2;
  #X obj 424 239 r \$0-samplength2;
--- 151,159 ----
  #X obj 499 295 t b b f;
  #X obj 425 263 t b f;
! #X obj 360 152 hip~ 5;
! #X obj 360 128 adc~ 1;
  #X obj 348 91 inlet;
! #X obj 422 128 samplerate~;
! #X obj 422 152 s insamprate2;
  #X obj 348 175 tabwrite~ \$0-sample2;
  #X obj 424 239 r \$0-samplength2;
***************
*** 181,185 ****
  #X connect 16 0 15 0;
  #X connect 18 0 19 0;
! #X connect 18 0 16 0;
  #X connect 19 0 17 0;
  #X connect 20 0 12 0;
--- 181,185 ----
  #X connect 16 0 15 0;
  #X connect 18 0 19 0;
! #X connect 18 0 22 0;
  #X connect 19 0 17 0;
  #X connect 20 0 12 0;
***************
*** 205,209 ****
  #X connect 37 0 36 0;
  #X connect 38 0 39 0;
! #X connect 38 0 37 0;
  #X connect 39 0 40 0;
  #X connect 42 0 35 0;
--- 205,209 ----
  #X connect 37 0 36 0;
  #X connect 38 0 39 0;
! #X connect 38 0 41 0;
  #X connect 39 0 40 0;
  #X connect 42 0 35 0;
***************
*** 213,217 ****
  #X text 104 393 <- record ->;
  #N canvas 388 86 722 350 insample2 0;
! #N canvas 0 0 450 300 graph1 0;
  #X array \$0-sample2 62079 float 0;
  #X coords 0 1 62078 -1 400 150 1;
--- 213,217 ----
  #X text 104 393 <- record ->;
  #N canvas 388 86 722 350 insample2 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array \$0-sample2 62079 float 0;
  #X coords 0 1 62078 -1 400 150 1;
***************
*** 254,258 ****
  #X restore 334 430 pd insample2;
  #N canvas 388 86 722 350 insample1 0;
! #N canvas 0 0 450 300 graph1 0;
  #X array \$0-sample 155948 float 0;
  #X coords 0 1 155947 -1 400 150 1;
--- 254,258 ----
  #X restore 334 430 pd insample2;
  #N canvas 388 86 722 350 insample1 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array \$0-sample 155948 float 0;
  #X coords 0 1 155947 -1 400 150 1;
***************
*** 296,300 ****
  #X floatatom 453 432 5 0 0 0 - #0-samp2-msec -;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 graph1 0;
  #X array \$0-hann 1024 float 0;
  #X coords 0 1 1023 0 300 100 1;
--- 296,300 ----
  #X floatatom 453 432 5 0 0 0 - #0-samp2-msec -;
  #N canvas 0 110 565 454 hann-window 0;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array \$0-hann 1024 float 0;
  #X coords 0 1 1023 0 300 100 1;

Index: C08.analog.sequencer.pd
===================================================================
RCS file: /cvsroot/pure-data/pd/doc/3.audio.examples/C08.analog.sequencer.pd,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.22.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.22.1
*** C08.analog.sequencer.pd	9 May 2003 16:03:50 -0000	1.1.1.1
--- C08.analog.sequencer.pd	4 Nov 2007 17:31:55 -0000	1.1.1.1.22.1
***************
*** 1,28 ****
! #N canvas 46 22 825 554 12;
! #N canvas 0 0 450 300 graph1 0;
! #X array 29-sequence 9 float 1;
! #A 0 55 550 385 495 165 385 495 275 615;
! #X coords 0 500 8 0 200 100 1;
  #X restore 621 42 graph;
  #X obj 27 426 *~;
  #X obj 27 454 hip~ 5;
! #N canvas 0 0 450 300 graph1 0;
  #X array 29-envelope 103 float 1;
! #A 0 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.01111 1 0.988889 0.977778
! 0.966667 0.955556 0.944444 0.933333 0.922222 0.911111 0.9 0.888889
! 0.797778 0.737777 0.677777 0.647777 0.617777 0.557777 0.487777 0.467777
! 0.447776 0.417776 0.397776 0.387776 0.377776 0.367776 0.347776 0.327776
! 0.317776 0.297776 0.277776 0.267776 0.257776 0.257776 0.277776 0.297776
! 0.327776 0.357776 0.377776 0.397776 0.407776 0.427776 0.437776 0.387776
! 0.367776 0.347776 0.337776 0.287776 0.277776 0.277776 0.277776 0.267776
! 0.267776 0.267776 0.297776 0.317776 0.347776 0.367776 0.367776 0.357776
! 0.347776 0.337776 0.307776 0.287776 0.257776 0.227776 0.197776 0.167776
! 0.167776 0.167776 0.167776 0.167776 0.157776 0.157776 0.157776 0.157776
! 0.147776 0.147776 0.147776 0.137776 0.137776 0.111111 0.1 0.0888889
! 0.0777778 0.0666667 0.0555556 0.0444444 0.0333333 0.0222222 0.0111111
! 0 -0.0111111;
  #X coords 0 1 102 0 200 100 1;
  #X restore 622 146 graph;
! #N canvas 0 0 450 300 graph1 0;
  #X array 29-sample 259 float 1;
  #A 0 0.989177 1 0.989177 0.95694 0.903989 0.83147 0.740952 0.634394
--- 1,28 ----
! #N canvas 57 74 829 559 12;
! #N canvas 0 0 450 300 (subpatch) 0;
! #X array 29-sequence 9 float 3;
! #A 0 110 550 385 495 165 385 495 275 615;
! #X coords 0 500 9 0 200 100 1;
  #X restore 621 42 graph;
  #X obj 27 426 *~;
  #X obj 27 454 hip~ 5;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array 29-envelope 103 float 1;
! #A 0 -0.0199988 1.0673e-06 0.0500008 0.13 0.16 0.28 0.5 0.6 0.7 0.8
! 1.01111 1 0.988889 0.977778 0.966667 0.955556 0.944444 0.933333 0.922222
! 0.911111 0.9 0.888889 0.797778 0.737777 0.677777 0.647777 0.617777
! 0.557777 0.487777 0.467777 0.447776 0.417776 0.397776 0.387776 0.377776
! 0.367776 0.347776 0.327776 0.317776 0.297776 0.277776 0.267776 0.257776
! 0.257776 0.277776 0.297776 0.327776 0.357776 0.377776 0.397776 0.407776
! 0.427776 0.437776 0.387776 0.367776 0.347776 0.337776 0.287776 0.277776
! 0.277776 0.277776 0.267776 0.267776 0.267776 0.297776 0.317776 0.347776
! 0.367776 0.367776 0.357776 0.347776 0.337776 0.307776 0.287776 0.257776
! 0.227776 0.197776 0.167776 0.167776 0.167776 0.167776 0.167776 0.157776
! 0.157776 0.157776 0.157776 0.147776 0.147776 0.147776 0.137776 0.137776
! 0.111111 0.1 0.0888889 0.0777778 0.0666667 0.0555556 0.0444444 0.0333333
! 0.0222222 0.0111111 0 -0.0111111;
  #X coords 0 1 102 0 200 100 1;
  #X restore 622 146 graph;
! #N canvas 0 0 450 300 (subpatch) 0;
  #X array 29-sample 259 float 1;
  #A 0 0.989177 1 0.989177 0.95694 0.903989 0.83147 0.740952 0.634394
***************
*** 118,129 ****
  #X text 46 1 ANALOG-SYNTH-STYLE SEQUENCER;
  #X obj 26 170 phasor~ 0.6;
- #X text 27 27 Some control operations can be carried out entirely by
- tilde objects passing audio signals around. Here is an imitation of
- an analog sequencer and envelope generator. A phasor~ loops through
- the "sequence" table at 0.6 Hz \, generating 9 frequencies. Simultaneously
- \, by multiplying by 9 and wrapping \, we create a sawtooth at 9*0.6=5.4
- Hz \, which reads a second table for an envelope shape. This becomes
- the grain size for a samplerbased on the 18.sampler.looped example
- earlier.;
  #X text 97 194 main loop: sawtooth of amplitude 9;
  #X text 218 219 read frequency sequence;
--- 118,121 ----
***************
*** 135,138 ****
--- 127,138 ----
  #X text 62 428 multiply by raised-cosine smoothing function;
  #X text 478 401 how to make the tables:;
+ #X text 27 27 Some control operations can be carried out entirely by
+ tilde objects passing audio signals around. Here is an imitation of
+ an analog sequencer and envelope generator. A phasor~ loops through
+ the "sequence" table at 0.6 Hz \, generating 9 frequencies. Simultaneously
+ \, by multiplying by 9 and wrapping \, we create a sawtooth at 9*0.6=5.4
+ Hz \, which reads a second table for an envelope shape. This becomes
+ the grain size for a sampler based on the 18.sampler.looped example
+ earlier.;
  #X connect 1 0 2 0;
  #X connect 2 0 14 0;

--- NEW FILE: A07.fusion.pd ---
#N canvas 18 14 650 653 12;
#X floatatom 32 60 0 0 0 0 - - -;
#X obj 32 86 mtof;
#X obj 32 323 output~;
#X msg 32 34 60;
#X text 67 63 <-- choose a pitch;
#X text 68 34 <-- reset to middle C;
#X obj 32 154 osc~;
#X obj 73 130 * 2;
#X obj 73 154 osc~;
#X obj 137 154 osc~;
#X obj 137 130 * 3;
#X obj 201 155 osc~;
#X obj 201 131 * 4;
#X obj 137 179 *~ 0.2;
#X obj 33 289 +~;
#X obj 74 259 *~;
#X obj 109 260 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 74 210 +~;
#X obj 74 234 +~;
#X text 133 7 Adding sinusoids to make a complex tone;
#N canvas 0 0 450 300 graph1 0;
#X array tab.01.07 882 float 0;
#X coords 0 1.02 881 -1.02 200 130 1;
#X restore 426 222 graph;
#X msg 116 295 bang;
#X text 165 294 <-- click to graph;
#X text 260 129 frequencies of harmonics;
#X text 260 155 four oscillators;
#X text 264 181 adjust amplitudes;
#X text 109 233 add the three overtones together;
#X obj 116 324 tabwrite~ tab.01.07;
#X text 381 632 updated for Pd version 0.40.;
#X text 429 360 ---- 0.02 seconds ----;
#X obj 73 179 *~ 0.1;
#X obj 201 179 *~ 0.5;
#X text 129 259 <-- overtones ON/OFF;
#X text 29 580 To hear the output \, choose a pitch (at top) \, optionally
click the "overtones" control \, and mouse up the output volume. Click
the "bang" message to graph it.;
#X text 31 392 A simple way to build non-sinusoidal \, periodic musical
tones is to sum a series of harmonically tuned sinusoids. Here the
four oscillators have frequencies in a 1:2:3:4 ratio (the three "*"
objects compute the second \, third \, and fourth one). The amplitudes
are adjusted by the "*~ 0.1" \, etc. \, objects. Note that \, since
the frequency (from the "mtof") is a message \, a "*" box suffices
to operate on it \, but the oscillator's output \, being an audio signal
\, needs "*~" instead. The control marked "overtones ON/OFF" is a toggle
switch. Click to turn it on and off. Of the overtones are "off" you
hear only a sinusoid from the forst oscillator. If on \, you hear all
four.;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 7 0;
#X connect 1 0 10 0;
#X connect 1 0 12 0;
#X connect 3 0 0 0;
#X connect 6 0 14 0;
#X connect 7 0 8 0;
#X connect 8 0 30 0;
#X connect 9 0 13 0;
#X connect 10 0 9 0;
#X connect 11 0 31 0;
#X connect 12 0 11 0;
#X connect 13 0 17 1;
#X connect 14 0 2 0;
#X connect 14 0 2 1;
#X connect 14 0 27 0;
#X connect 15 0 14 1;
#X connect 16 0 15 1;
#X connect 17 0 18 0;
#X connect 18 0 15 0;
#X connect 21 0 27 0;
#X connect 30 0 17 0;
#X connect 31 0 18 1;

--- NEW FILE: A09.frequency.mod.pd ---
#N canvas 92 96 760 640 12;
#X obj 259 168 *~;
#X floatatom 259 83 0 0 0 0 - - -;
#X floatatom 169 118 0 0 0 0 - - -;
#X obj 169 188 +~;
#N canvas 0 0 450 300 graph1 0;
#X array fm-output 441 float 0;
#X coords 0 1.02 440 -1.02 200 130 1;
#X restore 527 40 graph;
#X msg 244 228 bang;
#X text 286 228 <-- click to graph;
#X obj 244 252 tabwrite~ fm-output;
#X floatatom 281 138 0 0 0 0 - - -;
#X text 166 75 carrier;
#X text 165 93 frequency;
#X text 244 59 frequency;
#X text 245 42 modulation;
#X text 33 8 FREQUENCY MODULATION ("FM") USING TWO OSCILLATORS;
#X obj 168 232 osc~;
#X text 52 214 "carrier";
#X text 34 232 oscillator -->;
#X text 47 149 add modulator;
#X text 46 167 to carrier;
#X text 44 186 frequency -->;
#X text 320 150 index;
#X text 322 131 modulation;
#X obj 259 108 osc~;
#X text 531 172 --- 0.01 seconds ----;
#X text 53 443 To get the FM sound \, set all three of carrier frequency
\, modulation frequency \, and modulation index in the hundreds. Note
that you get a timbral change as you sweep modulation index \, because
this changes the amplitudes of the components of the output sound but
not their frequencies.;
#X obj 167 270 output~;
#X text 489 613 updated for Pd version 0.37;
#X text 54 332 This patch shows the classical FM synthesis technique
developed by John Chowning. It's nothing but an oscillator with vibrato
controlled by another "modulation" oscillator. First \, to understand
the patch \, set carrier frequency to 400 or so \, modulation frequency
between 5 and 10 \, and try modulation index values between 0 and 400
\, say. You'll hear a sine wave with vibrato.;
#X text 55 526 The component frequencies are equal to the carrier frequency
\, plus or minus multiples of the modulator frequency. A more complete
discussion of FM occurs in part 5 of this series.;
#X connect 0 0 3 1;
#X connect 1 0 22 0;
#X connect 2 0 3 0;
#X connect 3 0 14 0;
#X connect 5 0 7 0;
#X connect 8 0 0 1;
#X connect 14 0 7 0;
#X connect 14 0 25 0;
#X connect 14 0 25 1;
#X connect 22 0 0 0;

--- NEW FILE: A10.review.pd ---
#N canvas 36 68 652 461 12;
#X text 157 10 PART 1 REVIEW;
#X obj 67 113 tabwrite~;
#X obj 67 87 line~;
#X obj 71 220 +;
#X obj 67 61 +~;
#X obj 67 139 osc~;
#X obj 72 319 r;
#X obj 72 295 s;
#X obj 71 269 inlet;
#X obj 114 245 mtof;
#X obj 71 244 ftom;
#X obj 122 269 outlet;
#X obj 67 164 dac~;
#X text 27 34 So far we've seen these audio ("tilde") objects:;
#X text 124 86 -- ramp generator;
#X text 158 113 -- sampler (which we've only used for graphing so far)
;
#X text 113 165 -- audio output ("digital/analog converter" -- a misnomer)
;
#X text 34 193 ... and these "control" objects:;
#X text 162 243 -- frequency to pitch conversion;
#X text 184 270 -- input and output to a subpatch;
#X text 108 296 ("send") -- wireless message sending;
#X text 109 321 ("receive") ... and receiving;
#X text 107 60 (etc.) -- arithmetic on audio signals;
#X text 109 218 (etc.) -- arithmetic;
#X text 385 426 updated for Pd version 0.40.;
#X text 112 139 -- sinusoidal oscillator;
#X obj 74 418 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X text 97 416 -- toggle switch;
#X floatatom 74 395 0 0 0 0 - - -;
#X text 109 394 -- number box;
#X msg 74 372;
#X text 111 372 -- message box;
#X text 43 346 ... and these other (non-object) boxes:;





More information about the Pd-cvs mailing list