#N canvas 254 96 747 724 10; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-min 882 float 0; #X coords 0 1 881 -1 200 130 1; #X restore 463 276 graph; #X text 462 414 ---- 0.02 seconds ----; #X obj 295 55 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 295 77 metro 193; #X floatatom 94 61 5 0 0 0 - - -; #X text 86 38 frequency; #X obj 118 135 *~ -1; #X obj 118 160 +~ 1; #X obj 94 221 min~; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-phas 882 float 0; #X coords 0 1 881 -1 200 130 1; #X restore 463 16 graph; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-1-phas 882 float 0; #X coords 0 1 881 -1 200 130 1; #X restore 463 146 graph; #X obj 295 131 tabwrite~ \$0-phas; #X obj 295 239 tabwrite~ \$0-1-phas; #X text 419 394 -1; #X text 422 275 1; #X text 137 244 rescale; #X text 160 163 1-phasor; #X obj 94 82 phasor~ 192; #X obj 68 472 / 100; #X floatatom 68 449 5 0 0 0 - - -; #X obj 98 526 * -1; #X obj 68 572 min; #X obj 68 497 t a a; #X obj 168 489 hsl 128 15 0 1 0 0 empty empty phasor -2 -8 1 10 -262144 -1 -1 12700 1; #X obj 168 566 hsl 128 15 0 1 0 0 empty empty 1-phasor -2 -8 1 10 -262144 -1 -1 0 1; #X obj 168 616 hsl 128 15 0 1 0 0 empty empty triangle -2 -8 1 10 -262144 -1 -1 0 1; #X obj 98 549 + 1; #N canvas 0 0 395 371 auto 0; #X obj 118 85 inlet; #X obj 118 254 outlet; #X msg 118 174 0 \, 100 1000; #X obj 118 227 line 0 20; #X obj 118 111 metro 1000; #X connect 0 0 4 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 2 0; #X restore 68 428 pd auto; #X obj 295 343 tabwrite~ \$0-min; #X text 59 380 triangle ramp for messages:; #X msg 134 221 1; #X msg 164 221 2; #X obj 94 244 *~ 1; #X msg 101 577 1; #X msg 131 577 2; #X obj 68 599 * 1; #N canvas 0 0 471 591 clipped-version 0; #X obj 98 147 / 100; #X floatatom 98 124 5 0 0 0 - - -; #X obj 128 201 * -1; #X obj 98 172 t a a; #X obj 198 283 hsl 128 15 0 1 0 0 empty empty phasor -2 -8 1 10 -262144 -1 -1 0 1; #X obj 198 351 hsl 128 15 0 1 0 0 empty empty 1-phasor -2 -8 1 10 -262144 -1 -1 6350 1; #X obj 198 501 hsl 128 15 0 1 0 0 empty empty triangle -2 -8 1 10 -262144 -1 -1 0 1; #X obj 128 224 + 1; #N canvas 0 0 395 371 auto 0; #X obj 118 85 inlet; #X obj 118 254 outlet; #X msg 118 174 0 \, 100 1000; #X obj 118 227 line 0 20; #X obj 118 111 metro 1000; #X connect 0 0 4 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 2 0; #X restore 98 103 pd auto; #X obj 128 308 clip 0 0.5; #X obj 98 256 clip 0 0.5; #X obj 98 357 +; #X text 89 55 triangle ramp for messages using clipped "phasors"; #X obj 98 384 - 0.5; #X msg 114 422 1; #X msg 144 422 2; #X obj 98 454 * 1; #X obj 98 84 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 7 0; #X connect 3 0 10 0; #X connect 3 1 2 0; #X connect 7 0 9 0; #X connect 8 0 1 0; #X connect 9 0 11 1; #X connect 9 0 5 0; #X connect 10 0 4 0; #X connect 10 0 11 0; #X connect 11 0 13 0; #X connect 13 0 16 0; #X connect 14 0 16 1; #X connect 15 0 16 1; #X connect 16 0 6 0; #X connect 17 0 8 0; #X restore 461 526 pd clipped-version; #X obj 68 409 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 312 614 the triangle "wave" is built by always using the smaller value ("min") of the two "phasors"; #X connect 2 0 3 0; #X connect 3 0 12 0; #X connect 3 0 11 0; #X connect 3 0 28 0; #X connect 4 0 17 0; #X connect 6 0 7 0; #X connect 7 0 12 0; #X connect 7 0 8 1; #X connect 8 0 32 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 8 0; #X connect 18 0 22 0; #X connect 18 0 23 0; #X connect 19 0 18 0; #X connect 20 0 26 0; #X connect 21 0 35 0; #X connect 22 0 21 0; #X connect 22 1 20 0; #X connect 26 0 21 1; #X connect 26 0 24 0; #X connect 27 0 19 0; #X connect 30 0 32 1; #X connect 31 0 32 1; #X connect 32 0 28 0; #X connect 33 0 35 1; #X connect 34 0 35 1; #X connect 35 0 25 0; #X connect 37 0 27 0;