#N canvas 519 48 697 713 12;
#X declare -stdpath ./;
#X obj 168 337 wrap~;
#X obj 168 366 -~ 0.5;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-sum 882 float 0;
#X coords 0 1.02 881 -1.02 200 130 1;
#X restore 412 484 graph;
#X text 427 624 ---- 0.02 seconds ----;
#X obj 220 623 output~;
#X obj 270 586 tabwrite~ \$0-sum;
#X obj 168 309 -~;
#X obj 186 260 / 100;
#X floatatom 186 234 4 -100 100 0 - - - 0;
#X obj 192 423 / 100;
#X floatatom 192 396 4 -100 100 0 - amp - 0;
#X obj 237 337 wrap~;
#X obj 237 366 -~ 0.5;
#X obj 237 309 -~;
#X obj 255 261 / 100;
#X floatatom 255 235 4 -100 100 0 - - - 0;
#X obj 262 423 / 100;
#X floatatom 262 397 4 -100 100 0 - - - 0;
#X obj 308 337 wrap~;
#X obj 308 366 -~ 0.5;
#X obj 308 309 -~;
#X obj 326 262 / 100;
#X floatatom 326 236 4 -100 100 0 - - - 0;
#X obj 333 423 / 100;
#X floatatom 333 397 4 -100 100 0 - - - 0;
#X text 188 208 -- PHASES (percent) --;
#X text 370 397 AMPLITUDES (percent);
#X obj 219 487 +~;
#X obj 219 523 +~;
#X obj 270 523 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1;
#X obj 80 255 phasor~ 88.2;
#X obj 270 550 metro 193;
#X text 68 119 If the amplitudes sum to zero (with negative ones to balance positive ones) \, the slope of each linear segment becomes zero. Otherwise \, the segments have just enough slope to make up for the three jumps and get to the same starting value after each cycle., f 70;
#X text 68 67 Here we combine three sawtooth waves with controllable relative phases and amplitudes (in percent \, between -100 and 100.) Each sawtooth wave gives rise to one jump (upward or downward) per cycle., f 70;
#X obj 43 19 cnv 5 5 25 empty empty Making\ Trapezoidal\ Waves\ from\ Sawtooth\ Waves 15 13 0 16 #dfdfdf #202020 0;
#X obj 237 451 *~ 0;
#X obj 308 453 *~ 0;
#X obj 168 450 *~ 0;
#N canvas 940 269 326 281 init 0;
#X obj 104 208 declare -stdpath ./;
#X obj 113 124 loadbang;
#X text 71 41 this subpatch initializes the patch and loads values in number boxes., f 29;
#X msg 113 154 \; amp 100;
#X connect 1 0 3 0;
#X restore 464 287 pd init;
#X connect 0 0 1 0;
#X connect 1 0 37 0;
#X connect 6 0 0 0;
#X connect 7 0 6 1;
#X connect 8 0 7 0;
#X connect 9 0 37 1;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X connect 12 0 35 0;
#X connect 13 0 11 0;
#X connect 14 0 13 1;
#X connect 15 0 14 0;
#X connect 16 0 35 1;
#X connect 17 0 16 0;
#X connect 18 0 19 0;
#X connect 19 0 36 0;
#X connect 20 0 18 0;
#X connect 21 0 20 1;
#X connect 22 0 21 0;
#X connect 23 0 36 1;
#X connect 24 0 23 0;
#X connect 27 0 28 0;
#X connect 28 0 5 0;
#X connect 28 0 4 0;
#X connect 29 0 31 0;
#X connect 30 0 6 0;
#X connect 30 0 13 0;
#X connect 30 0 20 0;
#X connect 31 0 5 0;
#X connect 35 0 27 1;
#X connect 36 0 28 1;
#X connect 37 0 27 0;
