#N canvas 0 26 799 603 10; #X text 13 -77 Exponential ramp generator; #X text 69 309 line output; #X obj 684 310 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 692 268 parameter; #X text 617 269 time; #X msg 138 196 1 \, 0 1000 0.5; #X floatatom 684 237 0 0 0 0 - - -; #X msg 589 236 1 \, 0 500; #X msg 532 237 0 \, 1 500; #X obj 63 244 line~; #X msg 250 196 1 \, 0.5 500 0.5 0 500 -0.5; #X msg 43 192 0 \, 1 1000 0.5; #X text 9 -65 curve~ is similar to line~. It produces a signal that goes from an initial to target value over a specified number of milliseconds. However \, it produces non-linear ramps using a piecewise approximation of an exponential function. You specify the parameter to this exponential function in the curve~ object's right inlet. Values from 0 to 1 produce an "exponential" curve when increasing in value and values from -1 to 0 produce a "logarithmic" curve. The closer to 0 the curve parameter is \, the closer the curve is to a straight line \, and the farther away the parameter is from 0 \, the steeper the curve. curve~ can also accept a list of up two or three arguments (the previous curve parameter is used if there are two arguments) \, or a list with two or more value \, time \, parameter triples. curve~ is limited to 42 such triples in a single list. The object's approximation of the exponential becomes better when the vector size is smaller \, but the object also becomes more computationally expensive.; #X text 194 236 optional arguments set initial value (default 0) and parameter (default 0); #X text 540 269 value; #X text 542 305 curve signal out; #X text 700 300 bang when done; #X text 210 296 curve output; #X text 18 485 Special thanks to Richard Dudas for the suggestion of a curve equation to use.; #X text 1 175 amp examples: compare curve~ and line~; #X text 255 179 example of an "s" curve; #X obj 138 246 curve~; #X obj 207 320 Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255 51 135 135 135 0; #X obj 64 332 Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255 51 135 135 135 0; #X text 500 201 try different curve parameters (-1 to 1); #X obj 532 283 curve~; #X obj 532 329 Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255 51 135 135 135 0; #N canvas 325 206 494 401 META 0; #X text 12 215 HELP_PATCH_AUTHORS Christoph Kummerer. Revised by Jonathan Wilkes for Pd-extended 0.42 to conform to the PDDP template.; #X text 12 185 WEBSITE http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html ; #X text 12 5 KEYWORDS signal conversion max_compatible ramp; #X text 12 45 DESCRIPTION exponential ramp generator; #X text 12 65 INLET_0 float list; #X text 12 105 INLET_2 float; #X text 12 85 INLET_1 float; #X text 12 125 OUTLET_0 signal; #X text 12 145 OUTLET_1 bang; #X text 12 25 LICENSE SIBSD; #X text 12 165 AUTHOR Krzysztof Czaja; #X restore 749 498 pd META; #X connect 5 0 9 0; #X connect 5 0 21 0; #X connect 6 0 25 2; #X connect 7 0 25 0; #X connect 8 0 25 0; #X connect 9 0 23 0; #X connect 10 0 21 0; #X connect 11 0 9 0; #X connect 11 0 21 0; #X connect 21 0 22 0; #X connect 25 0 26 0; #X connect 25 1 2 0;