#N canvas 111 30 865 606 12; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-sum 882 float 0; #X coords 0 0.5 881 -0.5 200 130 1; #X restore 637 359 graph; #X text 636 497 ---- 0.02 seconds ----; #X text 350 505 updated for Pd version 0.39; #X obj 46 242 output~; #X obj 140 276 tabwrite~ \$0-sum; #X obj 130 107 / 100; #X floatatom 130 86 4 0 100 0 - - -; #X obj 206 108 / 100; #X floatatom 206 87 4 0 100 0 - - -; #X obj 151 228 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; #X obj 151 250 metro 193; #X obj 19 95 phasor~; #X floatatom 19 74 5 0 0 0 - - -; #X text 11 51 frequency; #X text 126 50 SLOPES (percent); #X obj 108 137 *~; #X obj 19 129 *~ -1; #X obj 19 154 +~ 1; #X obj 184 156 *~; #X obj 108 189 min~; #X text 596 358 0.5; #X text 593 477 -0.5; #X text 30 6 Making waveforms with corners by specifying line segment slopes; #X text 136 67 up; #X text 209 68 down; #X text 29 317 Occasionally a second method for making corners is more convenient. Here we specify the slopes of the rising and falling segments (as always \, in units per cycle). We then make a triangle wave with a corner at (0 \, 0) and another one \, placed somewhere within the cycle. The slopes of the two lines determine the second point \, which will have an x value of t/(s+t) (if we let s denote the rising slope and t the falling one \, both as positive numbers). The y value is st/(s+t). If we wish instead to specify the corner location (x \, y) (with x in cycles \, 0