#N canvas 371 70 681 562 12;
#X declare -stdpath ./;
#X floatatom 130 134 5 0 0 0 - - - 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-difference 882 float 0;
#X coords 0 1.02 881 -1.02 200 130 1;
#X restore 448 351 graph;
#X text 52 134 frequency;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-phasor1 882 float 0;
#X coords 0 1.02 882 -1.02 200 130 1;
#X restore 447 32 graph;
#X obj 130 164 + 0.2;
#X obj 112 247 -~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-phasor2 882 float 0;
#X coords 0 1.02 882 -1.02 200 130 1;
#X restore 448 191 graph;
#X text 468 492 ---- 0.02 seconds ----;
#X obj 112 330 output~;
#X obj 209 234 tabwrite~ \$0-phasor1;
#X obj 197 268 tabwrite~ \$0-phasor2;
#X obj 183 300 tabwrite~ \$0-difference;
#X obj 56 188 phasor~;
#X obj 197 167 metro 193;
#X obj 197 140 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1;
#X obj 254 357 declare -stdpath ./;
#X obj 130 188 phasor~;
#X text 221 139 <-- start/stop graphing;
#X text 66 418 This patch demonstrates pulse width modulation \, which is accomplished simply by subtracting two sawtooth waves at a varying phase difference. Here their frequencies are set to differ by 1/5 Hz so that the relative phase wanders continuously., f 47;
#X obj 46 26 cnv 5 5 25 empty empty Classical\ Pulse\ Width\ Modulation 15 13 0 16 #dfdfdf #202020 0;
#X obj 130 83 loadbang;
#X msg 130 108 50;
#X connect 0 0 4 0;
#X connect 0 0 12 0;
#X connect 4 0 16 0;
#X connect 5 0 8 0;
#X connect 5 0 11 0;
#X connect 12 0 5 0;
#X connect 12 0 9 0;
#X connect 13 0 9 0;
#X connect 13 0 10 0;
#X connect 13 0 11 0;
#X connect 14 0 13 0;
#X connect 16 0 5 1;
#X connect 16 0 10 0;
#X connect 20 0 21 0;
#X connect 21 0 0 0;
