#N canvas 718 55 546 780 12;
#X obj 57 690 snapshot~;
#X floatatom 57 716 5 0 0 0 - - - 0;
#X obj 72 657 metro 100;
#X msg 37 359 1 1000;
#X msg 86 492 stop;
#X msg 75 409 0;
#X text 141 715 see also:;
#X obj 217 716 line;
#X obj 263 716 line~;
#X obj 41 16 vline~;
#X text 105 16 - high-precision audio ramp generator;
#X obj 57 585 vline~;
#X text 43 267 Any number of future ramps may be scheduled and vline~
will remember them and execute them in order. They must be specified
in increasing order of initial delay however \, since a segment cancels
all planned segments at any future time., f 61;
#X text 92 356 ramp up;
#X msg 57 383 0 1000;
#X text 110 384 ramp down;
#X text 86 431 ramp up \, jump down \, ramp up again;
#X text 108 408 jump down;
#X text 129 491 "stop" message freezes vline~ at its current value
;
#X msg 80 457 1 1000 \, 0 0 2000 \, 1 1000 3000;
#X text 298 450 note: times (2000 \, 3000) are cumulative \, not incremental.
, f 29;
#X text 314 714 updated for Pd version 0.47;
#X text 172 624 !!! BUG: vline~ objects inside reblocked subpatches
can have slightly incorrect timing !!!, f 41;
#X floatatom 96 558 5 0 0 0 - - - 0;
#X floatatom 92 524 5 0 0 0 - - - 0;
#X text 135 516 middle inlet sets next ramp time (cleared when ramp
starts!), f 32;
#X text 138 554 right inlet sets next delay time (cleared when ramp
starts!), f 32;
#X text 43 53 The vline~ object \, like line~ \, generates linear ramps
whose levels and timing are determined by messages you send it. It
takes a target value \, a time interval in milliseconds and an initial
delay (also in ms). Ramps may start and stop between audio samples
\, in which case the output is interpolated accordingly., f 61;
#X text 43 142 A list up to three floats distributes the value over
the inlets \, as usual in Pd. Note that the middle and right inlet
(that sets the time and delay) do not remember old values (unlike every
other inlet in Pd). Thus \, if you send vline~ a float without priorly
specifying a ramp time and delay and sent \, it jumps immediately to
the target value. On the other hand \, a list of two values will not
have a delay time if no delay time was priorly set in the right inlet.
, f 61;
#X msg 261 378 \; pd dsp \$1;
#X obj 261 355 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 72 622 loadbang;
#X text 279 356 DSP on/off;
#X connect 0 0 1 0;
#X connect 2 0 0 0;
#X connect 3 0 11 0;
#X connect 4 0 11 0;
#X connect 5 0 11 0;
#X connect 11 0 0 0;
#X connect 14 0 11 0;
#X connect 19 0 11 0;
#X connect 23 0 11 2;
#X connect 24 0 11 1;
#X connect 30 0 29 0;
#X connect 31 0 2 0;
