#N canvas 506 23 562 614 10;
#X declare -stdpath ./;
#X obj 4 591 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 4 340 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 4 506 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 4 560 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 92 350 cnv 17 3 130 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 91 484 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 126 351 float;
#X obj 92 515 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 127 485 float;
#X text 122 515 signal;
#X text 110 569 1) float;
#X text 175 485 - sets the time for the next float send to the left inlet, f 60;
#X text 132 381 list;
#X text 176 569 - sets an initial value for the signal output (default 0);
#X obj 93 536 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 134 537 bang;
#X text 177 536 - a bang is sent when final target is reached, f 60;
#X text 176 515 - current value or a ramp towards the target, f 60;
#X text 175 350 - jumps immediately to that value unless duration is set to other than 0 via the second inlet, f 60;
#X text 126 425 pause;
#X text 120 441 resume;
#X text 132 457 stop;
#X text 175 425 - pauses the output, f 60;
#X text 175 441 - restores the output after being paused, f 60;
#X text 175 457 - stops and clears pending target-time parameter triples (but continues outputting its last value), f 60;
#X obj 499 68 cyclone/dsponoff~;
#X text 175 377 - pairs that specify target value and duration (in ms) to reach it (maximum is 128 target-time pairs). For an odd number of elements \, the last element is treated as another pair with 0 ms duration., f 60;
#N canvas 723 166 410 218 name 0;
#X text 197 171 <= from Pd Vanilla;
#X text 29 134 And still create the vanilla object from vanilla without namespaces as:;
#X obj 147 96 cyclone/line~;
#X obj 151 171 line~;
#X text 30 15 Pd also has a vanilla object named [line~]. Cyclone avoids name clashing and overwriting an internal in Pd Vanilla \, but for that you need to use the cyclone namespace ("cyclone/" before the object name) \, as it's the common practice for cyclone's documentation. So you create it as:;
#X restore 435 257 pd name clash;
#X text 68 84 [cyclone/line~] generates signal ramps or envelopes. It takes a target and a duration (in ms) values and generates a ramp from its current value to the target value in that period. Target and duration can be set as a list or in different inlets., f 64;
#X text 68 134 If you send it a list with an odd number of elements \, the last element is treated as a target and the duration to get there is considered to be 0 ms. A single float value will similarly jump immediately to that value in 0 ms - unless a duration is set to other than "0" via the second inlet., f 64;
#N canvas 476 164 470 290 example 0;
#X msg 263 114 5000;
#X msg 94 66 pause;
#X msg 138 67 resume;
#X msg 153 89 stop;
#X obj 200 95 tgl 15 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000 0 1;
#X floatatom 200 115 5 0 0 0 - - - 0;
#X text 93 167 1;
#X text 93 255 0;
#X text 81 211 0.5;
#X obj 200 53 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 263 167 bng 35 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X text 306 175 <= Bangs when finished;
#X text 299 115 duration;
#X text 153 113 target;
#X text 277 138 argument: initial value;
#X obj 110 138 cyclone/line~ 0.5, f 26;
#X obj 110 169 scope~ 131 98 50 3 128 0 1 0 0 0 0 205 229 232 74 79 77 96 98 102 0 empty;
#X msg 27 19 0 \, 1 1000 0 1000 0.5 2500;
#X msg 66 42 0.25 1000 1 500 0.5;
#X obj 200 73 trigger b b;
#X text 299 35 Test all messages;
#X connect 0 0 15 1;
#X connect 1 0 15 0;
#X connect 2 0 15 0;
#X connect 3 0 15 0;
#X connect 4 0 5 0;
#X connect 5 0 15 0;
#X connect 9 0 19 0;
#X connect 15 0 16 0;
#X connect 15 1 10 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 4 0;
#X connect 19 1 0 0;
#X restore 453 279 pd example;
#X msg 219 235 \$1 1000;
#X obj 219 205 tgl 22 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000 0 1;
#X obj 219 258 cyclone/line~;
#X text 52 246 see also:;
#X obj 51 263 cyclone/curve~;
#N canvas 715 160 388 363 linear_envelope 0;
#X obj 34 132 osc~ 440;
#X obj 34 185 *~;
#X text 170 187 1;
#X obj 188 135 cyclone/line~;
#X msg 188 104 1 100 0.6 100 0.6 500 0 700;
#X text 55 49 [cyclone/line~] generating a linear ADSR envelope;
#X obj 188 193 cyclone/scope~ 150 108 256 3 128 0 1 0 0 0 0 205 229 232 74 79 77 96 98 102 0 empty;
#X text 159 239 0.5;
#X text 172 291 0;
#X obj 34 230 output~;
#X obj 29 315 declare -stdpath ./;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 3 0 1 1;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X restore 406 302 pd linear_envelope;
#X obj 4 4 ./header line~;
#X text 22 60 Linear ramp generator;
#X obj 219 310 nbx 6 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 219 286 cyclone/snapshot~ 1;
#X connect 31 0 33 0;
#X connect 32 0 31 0;
#X connect 33 0 40 0;
#X connect 40 0 39 0;
