aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/3.audio.examples/07.frequency.mod.pd
blob: a7bab032fb60024a482b4798dd7fbdef878fddd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#N canvas 52 144 760 640 12;
#X obj 256 180 *~;
#X floatatom 256 95 0 0 0;
#X floatatom 166 130 0 0 0;
#X obj 166 200 +~;
#X graph graph1 0 -1.02 440 1.02 527 170 727 40;
#X array fm-output 441 float 0;
#X pop;
#X floatatom 204 300 0 0 100;
#N canvas 159 26 516 274 output 1;
#X obj 338 160 t b;
#X obj 338 110 f;
#X obj 338 60 inlet;
#X text 344 29 mute;
#X obj 338 185 f;
#X msg 396 182 0;
#X msg 338 85 bang;
#X obj 338 135 moses 1;
#X obj 391 110 moses 1;
#X obj 83 148 dbtorms;
#X obj 391 85 r master-lvl;
#X obj 83 42 r master-lvl;
#X obj 338 210 s master-lvl;
#X obj 20 182 inlet~;
#X obj 199 41 inlet;
#X text 199 18 level;
#X obj 199 104 s master-lvl;
#X msg 96 65 set \$1;
#X obj 96 90 outlet;
#X msg 214 65 \; pd dsp 1;
#X obj 83 198 line~;
#X obj 20 207 *~;
#X obj 20 232 dac~;
#X obj 83 173 pack 0 50;
#X text 20 159 audio;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 12 0;
#X connect 5 0 12 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 5 0;
#X connect 8 1 4 1;
#X connect 9 0 23 0;
#X connect 10 0 1 1;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 11 0 17 0;
#X connect 13 0 21 0;
#X connect 14 0 16 0;
#X connect 14 0 19 0;
#X connect 17 0 18 0;
#X connect 20 0 21 1;
#X connect 21 0 22 0;
#X connect 21 0 22 1;
#X connect 23 0 20 0;
#X restore 166 328 pd output;
#X msg 242 301 MUTE;
#X text 283 301 <-- output amplitude;
#X msg 242 248 bang;
#X text 284 248 <-- click to graph;
#X obj 242 272 tabwrite~ fm-output;
#X floatatom 278 150 0 0 0;
#X text 163 87 carrier;
#X text 162 105 frequency;
#X text 241 71 frequency;
#X text 242 54 modulation;
#X text 33 8 FREQUENCY MODULATION ("FM") USING TWO OSCILLATORS;
#X obj 166 252 osc~;
#X text 50 234 "carrier";
#X text 32 252 oscillator -->;
#X text 40 161 add modulator;
#X text 39 179 to carrier;
#X text 37 198 frequency -->;
#X text 317 162 index;
#X text 319 143 modulation;
#X text 477 601 updated for Pd version 0.34;
#X obj 256 120 osc~;
#X text 52 363 This 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 531 172 --- 0.01 seconds ----;
#X text 51 478 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 text 48 564 The component frequencies are equal to the carrier frequency
\, plus or minus multiples of the modulator frequency.;
#X connect 0 0 3 1;
#X connect 1 0 27 0;
#X connect 2 0 3 0;
#X connect 3 0 18 0;
#X connect 5 0 6 1;
#X connect 6 0 5 0;
#X connect 7 0 6 2;
#X connect 9 0 11 0;
#X connect 12 0 0 1;
#X connect 18 0 11 0;
#X connect 18 0 6 0;
#X connect 27 0 0 0;