#N canvas 507 23 517 678 12;
#X obj 78 503 snapshot~;
#X obj 31 15 line~;
#X obj 78 441 line~;
#X floatatom 78 536 8 0 0 0 - - - 0;
#X msg 50 207 1 1000;
#X msg 91 313 2;
#X msg 77 260 stop;
#X text 114 261 "stop" message freezes line~ at its current value;
#X msg 86 290 0;
#X text 16 643 see also:;
#X obj 94 644 line;
#X text 85 14 - audio ramp generator;
#X text 304 642 updated for Pd version 0.33;
#X obj 140 644 vline~;
#X floatatom 110 400 5 0 0 0 - - - 0;
#X text 125 295 a single number jumps to value immediately if no value is priorly sent to the right outlet, f 45;
#X text 152 393 right inlet sets next ramp time (cleared when ramp starts!), f 31;
#X text 117 207 a pair of numbers starts a ramp (first value: destination \, second: ramp time), f 38;
#X msg 62 230 0 5000;
#X obj 145 472 metro 100;
#X obj 145 445 loadbang;
#X msg 281 485 \; pd dsp \$1;
#X obj 8 46 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 427 13 <= click;
#N canvas 742 179 579 267 reference 0;
#X obj 9 41 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0;
#X obj 9 169 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0;
#X obj 9 203 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0;
#X obj 8 237 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X obj 9 74 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0;
#X text 133 79 float - set target value and start ramp.;
#X text 141 98 stop - stop the ramp.;
#X obj 9 126 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #9f9f9f #000000 0;
#X text 133 135 float - set next ramp time (cleared when ramp starts).;
#X obj 26 12 line~;
#X text 80 11 - audio ramp generator;
#X text 126 178 signal - ramp values.;
#X text 141 212 NONE;
#X restore 333 13 pd reference;
#X obj 8 629 cnv 1 500 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X msg 106 351 0 \, 1 1000;
#X text 185 344 setting start \, target and duration with two messages., f 28;
#X obj 281 449 set-dsp-tgl;
#X text 312 453 DSP on/off;
#X text 37 568 Note that the [line~] object cannot start and stop ramps in the middle of an audio block. For that \, you can use [vline~] \, which also has a delay parameter to schedule different line ramps., f 63;
#X text 28 60 The [line~] object generates linear ramps whose levels and timing are determined by messages you send it. Note that the right inlet value (for ramp time in milliseconds) is cleared when the object receives a value in the left inlet (unlike other objects in Pd). Thus \, if you don't reset a time in the right inlet before sending [line~] a float \, it jumps immediately to the target value. You can also use a list of two floats to distribute the values over the inlets (as usual in Pd) \, which keeps resetting the time ramp., f 66;
#X connect 0 0 3 0;
#X connect 2 0 0 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 8 0 2 0;
#X connect 14 0 2 1;
#X connect 18 0 2 0;
#X connect 19 0 0 0;
#X connect 20 0 19 0;
#X connect 26 0 2 0;
#X connect 28 0 21 0;
