#N canvas 15 126 835 625 12; #X obj 272 163 line~; #X floatatom 53 64 0 0 0 0 - - -; #X obj 30 315 cos~; #N canvas 0 0 450 300 graph1 0; #X array pulse-output 882 float 0; #X coords 0 1.02 882 -1.02 200 130 1; #X restore 583 409 graph; #X obj 53 91 phasor~ 0; #X obj 272 139 pack 0 50; #X floatatom 272 90 0 0 100 0 - - -; #X text 50 43 frequency; #X obj 53 115 -~ 0.5; #X obj 53 207 *~; #X obj 272 114 / 10; #X obj 30 265 clip~ -0.5 0.5; #X obj 30 418 hip~ 5; #N canvas 0 0 450 300 graph1 0; #X array phase-output 882 float 0; #X coords 0 1.02 882 -1.02 200 60 1; #X restore 583 150 graph; #N canvas 0 0 450 300 graph1 0; #X array clip-output 882 float 0; #X coords 0 1.02 882 -1.02 200 130 1; #X restore 583 272 graph; #X text 113 114 phase -1/2 to 1/2; #X text 139 91 phase 0 to 1; #X text 119 5 PULSE GENERATOR; #X obj 19 234 tabwrite~ phase-output; #X obj 19 393 tabwrite~ pulse-output; #X text 103 419 high pass filter to cut DC; #X text 319 115 fix range; #X text 326 164 smooth it; #X text 314 187 add 1; #X text 41 148 <-- click to graph; #X text 83 209 increase amplitude; #X text 164 264 clip back to range -1/2 to 1/2; #X text 90 316 cosine wave lookup (-1/2 and 1/2 give -1); #X obj 272 188 +~ 1; #X obj 19 292 tabwrite~ clip-output; #X text 585 539 ---- 0.02 seconds ----; #X obj 19 148 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 30 446 output~; #X obj 30 338 +~ 1; #X obj 30 361 *~ 0.5; #X text 574 589 updated for Pd version 0.37; #X text 88 337 add one (range now from 0 to 2); #X text 96 360 ...and now from 0 to 1; #X text 20 531 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 269 71 index; #X text 790 142 0.5; #X text 787 198 -0.5; #X text 785 264 1; #X text 787 390 -1; #X text 785 405 1; #X text 786 528 -1; #X connect 0 0 28 0; #X connect 1 0 4 0; #X connect 2 0 33 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 18 0; #X connect 10 0 5 0; #X connect 11 0 2 0; #X connect 11 0 29 0; #X connect 12 0 32 0; #X connect 12 0 32 1; #X connect 28 0 9 1; #X connect 31 0 18 0; #X connect 31 0 29 0; #X connect 31 0 19 0; #X connect 33 0 34 0; #X connect 34 0 19 0; #X connect 34 0 12 0;