#N canvas 547 60 696 464 12;
#X declare -path else;
#X obj 255 148 bng 20 250 50 0 empty empty empty 17 7 0 10 #dcdcdc
#000000 #000000;
#X obj 237 318 *~;
#X obj 112 279 pmosc~;
#X obj 112 181 nbx 4 14 -1e+37 1e+37 0 1 empty \$0-carrier empty 0
-8 0 10 #dcdcdc #000000 #000000 100 256;
#X obj 166 194 cents2ratio;
#X floatatom 166 218 8 0 0 0 - - - 0;
#X obj 166 171 nbx 4 14 -1e+37 1e+37 0 1 empty \$0-cents empty 0 -8
0 10 #dcdcdc #000000 #000000 705 256;
#X obj 395 341 initmess \; \$0-carrier 100 \; \$0-cents 705;
#X text 67 26 Here's a simple example of a PM patch where we use the
same ratio structure as in the FM patch given before. One addition
is that we're using a cents input instead of a ratio \, and we're also
using envelopes to control both the overall amplitude and the modulation
index., f 54;
#X text 169 150 cents;
#X text 113 157 Hz;
#X text 280 148 <= trigger envelopes;
#X obj 276 214 envgen~ 1500 1 500 0.8 500 1 3000 0;
#X text 532 214 Index;
#X obj 255 280 envgen~ 1000 1 500 0.7 1500 0.7 2000 0;
#X text 530 280 Amplitude;
#X obj 237 370 out~;
#X obj 511 49 declare -path else;
#X obj 125 226 *~;
#X connect 0 0 12 0;
#X connect 0 0 14 0;
#X connect 1 0 16 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 18 0;
#X connect 4 0 5 0;
#X connect 5 0 18 1;
#X connect 6 0 4 0;
#X connect 12 0 2 2;
#X connect 14 0 1 1;
#X connect 18 0 2 1;
