#N canvas 59 68 575 532 10; #X obj 207 28 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 -1; #X obj 105 26 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 -1; #X obj 140 123 vsl 8 50 0 127 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 3908 0; #X obj 152 123 vsl 8 50 0 127 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 3021 0; #X obj 164 123 vsl 8 50 0 127 0 1 empty empty empty 0 -9 0 10 -262144 -1 -1 0 0; #X obj 176 123 vsl 8 50 2 5000 1 1 empty empty empty 0 -9 0 10 -262144 -1 -1 2508 0; #X obj 209 247 pack 0 100; #X obj 144 87 delay 100; #X msg 65 188 1; #X obj 105 4 inlet; #X obj 207 4 inlet; #X obj 145 430 outlet~; #X msg 169 50 stop; #X text 139 120 A D S R; #X text 101 -14 Trigger; #X text 205 -14 Release; #X obj 65 247 pack 1 5; #X obj 129 247 pack 0.5 100; #X text 211 43 Cancel decay/sustain if release occurs before attack is finished; #X text 214 87 Trigger the decay after attack is complete; #X text 4 -50 ADSR Envelope Generator; #X text -5 460 2010-02-08 Dan Ellis dpwe@ee.columbia.edu; #X text 15 229 Attack segment; #X text 106 265 Decay to sustain level; #X text 293 241 Release to zero; #X text 199 355 Generate linear segments; #X text 200 368 based on parameter messages; #X obj 145 294 unpack; #X obj 145 361 line~; #X obj 145 316 sqrt; #X obj 145 339 sqrt; #X obj 145 382 *~; #X obj 145 406 *~; #X text 201 315 Map to x^.25 domain; #X text 200 395 Expand back to original domain; #X text 201 327 so linear segments look more exponential; #X text 304 156 Control parameters; #X text 305 170 via global signals; #X obj 259 134 r \$1-A; #X obj 259 153 r \$1-D; #X obj 259 172 r \$1-S; #X obj 259 191 r \$1-R; #X text 7 -32 Now uses \$1 creation arg to differentiate individual instances.; #X obj 104 182 cmap 10 500 1; #X obj 115 203 cmap 50 1000 1; #X obj 129 225 cmap 0 1; #X obj 219 227 cmap 2 5000 1; #X connect 0 0 6 0; #X connect 0 0 12 0; #X connect 1 0 2 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 43 0; #X connect 3 0 44 0; #X connect 4 0 45 0; #X connect 5 0 46 0; #X connect 6 0 27 0; #X connect 7 0 3 0; #X connect 7 0 4 0; #X connect 8 0 16 0; #X connect 9 0 1 0; #X connect 10 0 0 0; #X connect 12 0 7 0; #X connect 16 0 27 0; #X connect 17 0 27 0; #X connect 27 0 29 0; #X connect 27 1 28 1; #X connect 28 0 31 0; #X connect 28 0 31 1; #X connect 29 0 30 0; #X connect 30 0 28 0; #X connect 31 0 32 0; #X connect 31 0 32 1; #X connect 32 0 11 0; #X connect 38 0 2 0; #X connect 39 0 3 0; #X connect 40 0 4 0; #X connect 41 0 5 0; #X connect 43 0 16 1; #X connect 43 0 7 1; #X connect 44 0 17 1; #X connect 45 0 17 0; #X connect 46 0 6 1; #X coords 0 -1 1 1 85 74 1 100 104;