#N canvas 363 20 641 592 10;
#X obj 242 131 line~;
#X floatatom 58 58 0 0 0 0 - - -;
#X obj 35 309 cos~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array pulse-output 882 float 0;
#X coords 0 1.02 882 -1.02 200 130 1;
#X restore 393 299 graph;
#X obj 58 85 phasor~ 0;
#X obj 242 107 pack 0 50;
#X floatatom 242 58 0 0 100 0 - - -;
#X text 55 37 frequency;
#X obj 58 109 -~ 0.5;
#X obj 58 201 *~;
#X obj 242 82 / 10;
#X obj 35 259 clip~ -0.5 0.5;
#X obj 35 412 hip~ 5;
#N canvas 0 0 450 300 (subpatch) 0;
#X array phase-output 882 float 0;
#X coords 0 1.02 882 -1.02 200 60 1;
#X restore 393 57 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array clip-output 882 float 0;
#X coords 0 1.02 882 -1.02 200 130 1;
#X restore 393 142 graph;
#X text 118 108 phase -1/2 to 1/2;
#X text 144 85 phase 0 to 1;
#X obj 24 228 tabwrite~ phase-output;
#X obj 24 387 tabwrite~ pulse-output;
#X text 108 413 high pass filter to cut DC;
#X text 289 83 fix range;
#X text 296 132 smooth it;
#X text 284 155 add 1;
#X text 46 142 <-- click to graph;
#X text 88 203 increase amplitude;
#X text 169 258 clip back to range -1/2 to 1/2;
#X text 95 310 cosine wave lookup (-1/2 and 1/2 give -1);
#X obj 242 156 +~ 1;
#X obj 24 286 tabwrite~ clip-output;
#X text 425 429 ---- 0.02 seconds ----;
#X obj 24 142 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 35 440 output~;
#X obj 35 332 +~ 1;
#X obj 35 355 *~ 0.5;
#X text 93 331 add one (range now from 0 to 2);
#X text 101 354 ...and now from 0 to 1;
#X text 20 493 This patch computes a pulse train \, with an "index"
control that essentually squeezes the pulses. If "bandwidth" is zero
you get a pure cosine wave \, and for larger values of the bandwidth
\, the cosine wave is squeezed to fill smaller portions of the waveform.
;
#X text 239 39 index;
#X text 600 49 0.5;
#X text 597 105 -0.5;
#X text 595 134 1;
#X text 597 260 -1;
#X text 595 295 1;
#X text 596 418 -1;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header pulse_generator
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 570 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.37. 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 pulse generator;
#X restore 392 572 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 pulse generator- Related Help Documents;
#X text 19 37 links:;
#X restore 103 572 pd References;
#X obj 6 572 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X connect 0 0 27 0;
#X connect 1 0 4 0;
#X connect 2 0 32 0;
#X connect 4 0 8 0;
#X connect 5 0 0 0;
#X connect 6 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 11 0;
#X connect 9 0 17 0;
#X connect 10 0 5 0;
#X connect 11 0 2 0;
#X connect 11 0 28 0;
#X connect 12 0 31 0;
#X connect 12 0 31 1;
#X connect 27 0 9 1;
#X connect 30 0 17 0;
#X connect 30 0 28 0;
#X connect 30 0 18 0;
#X connect 32 0 33 0;
#X connect 33 0 18 0;
#X connect 33 0 12 0;
