#N canvas 457 23 563 723 10;
#X declare -stdpath ./;
#X obj 5 695 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 6 462 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 5 571 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 5 606 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 94 471 cnv 17 3 49 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 94 580 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 159 470 signal;
#X obj 94 524 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 94 544 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 159 580 signal;
#X text 147 613 1) float;
#X text 147 629 2) float;
#X text 123 525 float/signal;
#X text 211 470 - input phase signal;
#X text 123 546 float/signal;
#X floatatom 170 185 6 0 0 0 - - - 0;
#X floatatom 226 211 6 0 0 0 - - - 0;
#X floatatom 91 197 0 0 0 0 - - - 0;
#X obj 288 205 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X floatatom 285 229 5 0 0 0 - - - 0;
#X obj 173 157 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 #f0f0f0 #000000 #000000 0 1;
#X obj 229 180 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 #f0f0f0 #000000 #000000 0 1;
#X floatatom 401 226 5 0 0 0 - - - 0;
#X text 210 613 - ramp up (default 0.1);
#X text 210 629 - ramp down (default 0.9);
#X text 211 525 - ramp up (destination point \, changing its steepness);
#X text 210 547 - ramp down (start point \, changing its steepness);
#X obj 4 653 cnv 3 550 3 empty empty attributes 8 12 0 13 #dcdcdc #000000 0;
#X text 163 660 @lo <f> (default 0) - same as "lo" message;
#X text 163 675 @hi <f> (default 1) - same as "hi" message;
#X text 318 204 ramp up;
#X msg 170 207 lo \$1;
#X msg 226 233 hi \$1;
#X text 210 580 - the trapezoidal waveform output;
#X obj 91 222 phasor~ 229;
#X obj 170 256 cyclone/trapezoid~ 0.2 0.8 @lo -1 @hi 1;
#X text 211 489 - changes lowest point (default 0);
#X text 135 488 lo <float>;
#X text 135 505 hi <float>;
#X text 211 504 - changes highest point (default 1);
#X obj 499 69 cyclone/dsponoff~;
#X obj 37 307 output~;
#X obj 3 2 ./header trapezoid~;
#X text 30 58 Trapezoidal wavetable;
#X obj 428 167 declare -stdpath ./;
#X obj 304 298 cnv 19 210 80 empty empty empty 20 12 0 12 #e0e0e0 #404040 0;
#N canvas 0 50 450 250 (subpatch) 0;
#X array \$0-trapezoid 441 float 0;
#X coords 0 1 440 -1 212 82 1 0 0;
#X restore 303 297 graph;
#X obj 180 307 metro 100;
#X obj 180 284 loadbang;
#X obj 170 335 tabwrite~ \$0-trapezoid, f 12;
#X text 39 80 [trapezoid~] is a trapezoidal wavetable that is read with phase values from 0 to 1 into the first inlet \, so a [phasor~] input turns it into a wavetable oscillator. A second and third inlet change the position of ramp up/down points. The default lo/hi values are 0 and 1 \, but may be changed using the lo/hi messages or attributes to any given range., f 70;
#X obj 404 206 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X text 433 206 ramp down;
#X obj 393 433 open-else;
#X text 455 405 click;
#X text 57 414 see also:;
#X msg 393 405 envelope~;
#X text 126 410 Plugdata users or those with ELSE can also use [else/envelope~] as an alternative., f 42;
#X connect 15 0 31 0;
#X connect 16 0 32 0;
#X connect 17 0 34 0;
#X connect 18 0 19 0;
#X connect 19 0 35 1;
#X connect 20 0 15 0;
#X connect 21 0 16 0;
#X connect 22 0 35 2;
#X connect 31 0 35 0;
#X connect 32 0 35 0;
#X connect 34 0 35 0;
#X connect 35 0 41 0;
#X connect 35 0 49 0;
#X connect 47 0 49 0;
#X connect 48 0 47 0;
#X connect 51 0 22 0;
#X connect 56 0 53 0;
