#N canvas 185 377 602 343 10; #X obj 66 99 vsl 8 64 0 100 0 0 \$0-a \$0-ain a 0 -8 1729 8 -355 -260818 -143491 600 1; #X obj 164 99 vsl 8 64 0 200 0 0 \$0-d \$0-din d 0 -8 1729 8 -355 -260818 -143491 800 1; #X obj 275 99 vsl 8 64 0 1 0 0 \$0-s \$0-sin s 0 -8 1729 8 -355 -260818 -143491 2800 1; #X obj 392 99 vsl 8 64 0 1000 0 0 \$0-r \$0-rin r 0 -8 1729 8 -355 -260818 -143491 6300 1; #X obj 17 177 inlet; #X obj 17 302 outlet~; #N canvas 0 0 600 400 envelope 0; #X obj 173 134 r \$0-level; #X obj 252 135 r \$0-a; #X obj 307 134 r \$0-d; #X obj 361 133 r \$0-s; #X obj 413 132 r \$0-r; #X obj 117 169 inlet; #X obj 176 292 outlet~; #N canvas 231 224 600 400 adsr 0; #X text 52 50 This patch is used as an abstraction in 25.envelope.pd ; #X obj 95 108 inlet; #X obj 298 111 inlet; #X text 91 79 trigger; #X obj 95 138 sel 0; #X obj 144 138 t b; #X obj 104 334 f \$1; #X obj 104 359 pack 0 \$2; #X obj 362 112 inlet; #X obj 309 301 del \$2; #X obj 371 422 line~; #X obj 338 324 f \$4; #X obj 371 369 pack 0 \$3; #X obj 410 112 inlet; #X obj 459 111 inlet; #X obj 504 111 inlet; #X msg 95 191 stop; #X obj 517 360 pack 0 \$5; #X text 378 86 Traditional A \, D \, S \, R; #X text 296 88 level; #X obj 364 346 * \$1; #X text 32 302 ATTACK; #X obj 371 449 outlet~; #X text 7 325 recall level; #X text 7 345 and pack with; #X text 8 365 attack time; #X text 28 124 if zero; #X text 29 141 release; #X text 17 183 and cancel; #X text 17 199 decay; #X text 148 120 bang if attack; #X text 183 294 on attack \, set a; #X text 147 307 delay to go to sustain; #X text 189 324 recall sustain value; #X text 185 347 multiply by overall level; #X text 220 370 pack with decay time; #X text 510 386 on release ramp; #X text 511 403 back to zero; #X text 63 12 adsr - arguments: level \, attack time \, decay time \, sustain level \, release time; #X text 17 487 When you send this patch a nonzero trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 18 533 Objects such as "f" and "pack" can be given dollar sign arguments to initialize their contents from adsr's creation arguments. Inlets are supplied to update them on the fly.; #X connect 1 0 4 0; #X connect 2 0 6 1; #X connect 2 0 20 1; #X connect 4 0 16 0; #X connect 4 0 17 0; #X connect 4 1 5 0; #X connect 5 0 6 0; #X connect 5 0 9 0; #X connect 6 0 7 0; #X connect 7 0 10 0; #X connect 8 0 7 1; #X connect 8 0 9 1; #X connect 9 0 11 0; #X connect 10 0 22 0; #X connect 11 0 20 0; #X connect 12 0 10 0; #X connect 13 0 12 1; #X connect 14 0 11 1; #X connect 15 0 17 1; #X connect 16 0 9 0; #X connect 17 0 10 0; #X connect 20 0 12 0; #X restore 176 238 pd adsr -----------; #X obj 446 305 outlet; #X obj 508 170 t b f; #X obj 455 171 t b f; #X obj 409 172 t b f; #X obj 458 274 pack 0 0 0 0; #X connect 0 0 7 1; #X connect 1 0 7 2; #X connect 1 0 12 0; #X connect 2 0 7 3; #X connect 2 0 11 0; #X connect 3 0 7 4; #X connect 3 0 10 0; #X connect 4 0 7 5; #X connect 4 0 9 0; #X connect 5 0 7 0; #X connect 7 0 6 0; #X connect 9 0 12 0; #X connect 9 1 12 3; #X connect 10 0 12 0; #X connect 10 1 12 2; #X connect 11 0 12 0; #X connect 11 1 12 1; #X connect 12 0 8 0; #X restore 17 277 pd envelope; #X text 24 5 Graphical ADSR; #X obj 140 253 inlet; #X obj 290 274 inlet; #X obj 362 274 inlet; #X obj 434 274 inlet; #X obj 505 274 inlet; #X obj 191 299 s \$0-levelin; #X obj 290 299 s \$0-ain; #X obj 362 299 s \$0-din; #X obj 434 299 s \$0-sin; #X obj 505 299 s \$0-rin; #X obj 307 201 loadbang; #X obj 307 248 unpack 0 0 0 0 0; #X obj 307 224 pack \$1 \$2 \$3 \$4 \$5; #X obj 566 97 f; #X obj 15 80 f; #X obj 511 100 vsl 8 64 0 1 0 0 \$0-level \$0-levelin lvl 0 -8 1729 8 -62784 -262144 -260818 4018 1; #X obj 140 273 select 0; #X obj 87 303 outlet; #X obj 472 27 unpack 0 0 0 0; #X obj 308 59 s \$0-ain; #X obj 373 58 s \$0-din; #X obj 437 59 s \$0-sin; #X obj 500 58 s \$0-rin; #X obj 566 56 inlet; #X connect 4 0 6 0; #X connect 6 0 5 0; #X connect 6 1 25 0; #X connect 8 0 24 0; #X connect 9 0 14 0; #X connect 10 0 15 0; #X connect 11 0 16 0; #X connect 12 0 17 0; #X connect 18 0 20 0; #X connect 19 0 13 0; #X connect 19 1 14 0; #X connect 19 2 15 0; #X connect 19 3 16 0; #X connect 19 4 17 0; #X connect 20 0 19 0; #X connect 22 0 21 0; #X connect 24 1 13 0; #X connect 26 0 27 0; #X connect 26 1 28 0; #X connect 26 2 29 0; #X connect 26 3 30 0; #X connect 31 0 26 0; #X coords 0 0 1 1 80 90 1;