#N canvas 1017 81 667 604 10; #X obj 317 563 dac~; #X obj 445 380 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 3810 1; #X obj 326 511 *~; #X obj 301 29 vsl 15 128 100 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 6400 1; #X obj 39 33 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 776 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 9 348 pd droplets; #X obj 343 195 * 0.95; #X obj 377 217 * 0.9; #X obj 393 242 * 0.85; #X obj 431 264 * 0.8; #X obj 431 292 * 0.75; #X obj 439 324 * 0.7; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 183 348 pd droplets; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 4205 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 272 348 pd droplets; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 11317 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 8396 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 357 348 pd droplets; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 444 347 pd droplets; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 529 347 pd droplets; #N canvas 565 31 997 796 droplets 0; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 97 423 pd droplet; #X obj 443 677 outlet~; #X obj 182 368 delay 50; #X msg 182 392 1; #X msg 264 392 1; #X obj 264 367 delay 100; #X msg 506 391 1; #X msg 425 392 1; #X msg 344 391 1; #X msg 586 389 1; #X msg 668 391 1; #X msg 744 390 1; #X msg 828 388 1; #X obj 345 367 delay 150; #X obj 426 367 delay 200; #X msg 98 391 1; #X obj 506 367 delay 250; #X obj 586 367 delay 300; #X obj 667 367 delay 350; #X obj 747 367 delay 400; #X obj 830 367 delay 450; #X obj 89 80 inlet; #X obj 629 34 inlet; #X obj 457 46 * 0.95; #X obj 455 76 * 0.9; #X obj 467 98 * 0.85; #X obj 483 130 * 0.8; #X obj 508 156 * 0.75; #X obj 539 180 * 0.7; #X obj 586 211 * 0.65; #X obj 655 232 * 0.6; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 265 423 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 345 422 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 509 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 428 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 590 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 748 419 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 669 421 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 830 417 pd droplet; #N canvas 785 49 838 710 droplet 0; #X obj 296 468 osc~; #X obj 296 525 *~; #N canvas 0 22 887 729 adsr 0; #X obj 105 111 inlet; #X obj 435 151 inlet; #X text 101 86 trigger; #X obj 105 139 sel 0; #X obj 244 155 t b; #X obj 166 264 f \$1; #X obj 166 289 pack 0 \$2; #X obj 492 151 inlet; #X obj 438 281 del \$2; #X obj 458 429 line~; #X obj 462 304 f \$4; #X obj 501 379 pack 0 \$3; #X obj 554 151 inlet; #X obj 616 151 inlet; #X obj 689 150 inlet; #X msg 105 170 stop; #X obj 612 306 pack 0 \$5; #X text 435 129 level; #X obj 501 355 * \$1; #X obj 458 454 outlet~; #X text 102 378 and pack with; #X text 103 398 attack time; #X text 31 126 if zero; #X text 32 143 release; #X text 12 160 and cancel; #X text 43 177 decay; #X text 284 272 on attack \, set a; #X text 278 305 recall sustain value; #X text 315 378 pack with decay time; #X text 605 332 on release ramp; #X text 606 349 back to zero; #X obj 462 329 * 0.01; #X text 47 567 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 change them on the fly.; #X text 13 2 ADSR ENVELOPE; #X text 488 129 attack; #X text 555 128 decay; #X text 609 129 sustain; #X text 686 129 release; #X text 202 71 attack; #X obj 204 92 moses; #X obj 194 122 t b b; #X msg 128 290 0; #X text 20 273 optionally; #X text 10 291 bash to zero; #X text 25 246 ATTACK:; #X text 49 477 When you send this patch a positive trigger it schedules a line~ to do an attack and decay \, and if zero \, it starts the release ramp.; #X text 495 629 Updated for Pd version 0.37; #X text 255 89 test for negative trigger; #X text 253 113 if so \, zero; #X text 254 129 the output; #X text 278 165 in any case; #X text 303 355 multiply by peak level; #X text 280 286 delay for sustain; #X text 276 328 convert from percent; #X text 155 340 ... then; #X text 103 359 recall peak level; #X text 439 113 peak; #X text 281 149 ... do this; #X text 47 529 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location).; #X text 208 1 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; #X connect 0 0 3 0; #X connect 1 0 5 1; #X connect 1 0 18 1; #X connect 3 0 15 0; #X connect 3 0 16 0; #X connect 3 1 39 0; #X connect 4 0 5 0; #X connect 4 0 8 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 7 0 8 1; #X connect 8 0 10 0; #X connect 9 0 19 0; #X connect 10 0 31 0; #X connect 11 0 9 0; #X connect 12 0 11 1; #X connect 13 0 10 1; #X connect 14 0 16 1; #X connect 15 0 8 0; #X connect 16 0 9 0; #X connect 18 0 11 0; #X connect 31 0 18 0; #X connect 39 0 40 0; #X connect 39 1 4 0; #X connect 40 0 4 0; #X connect 40 1 41 0; #X connect 41 0 9 0; #X restore 459 520 pd adsr 1 0 30 0 10; #X msg 373 454 1; #X floatatom 298 423 5 0 0 0 - - -; #X msg 413 453 0; #X msg 457 465 1; #X msg 569 464 0; #X obj 244 443 vsl 15 128 1000 10000 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 12700 1; #X msg 532 464 5; #X msg 608 464 10; #X msg 492 465 2; #X msg 107 75 1; #X msg 143 75 0; #X obj 103 119 metro 1000; #X obj 216 160 random 1000; #X obj 155 340 * 10; #X obj 521 365 loadbang; #X obj 295 627 outlet~; #X obj 98 23 inlet; #X obj 249 23 inlet; #X obj 294 583 *~ 0.1; #X connect 0 0 1 0; #X connect 1 0 21 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 0 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X connect 7 0 2 4; #X connect 8 0 4 0; #X connect 9 0 2 3; #X connect 10 0 2 5; #X connect 11 0 2 2; #X connect 12 0 14 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 0 3 0; #X connect 15 0 14 1; #X connect 15 0 16 0; #X connect 16 0 8 0; #X connect 17 0 6 0; #X connect 17 0 11 0; #X connect 17 0 9 0; #X connect 17 0 7 0; #X connect 17 0 10 0; #X connect 19 0 14 0; #X connect 20 0 15 1; #X connect 21 0 18 0; #X restore 182 424 pd droplet; #X obj 722 252 * 0.55; #X connect 0 0 1 0; #X connect 2 0 3 0; #X connect 3 0 39 0; #X connect 4 0 31 0; #X connect 5 0 4 0; #X connect 6 0 33 0; #X connect 7 0 34 0; #X connect 8 0 32 0; #X connect 9 0 35 0; #X connect 10 0 37 0; #X connect 11 0 36 0; #X connect 12 0 38 0; #X connect 13 0 8 0; #X connect 14 0 7 0; #X connect 15 0 0 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X connect 18 0 10 0; #X connect 19 0 11 0; #X connect 20 0 12 0; #X connect 21 0 15 0; #X connect 21 0 2 0; #X connect 21 0 5 0; #X connect 21 0 13 0; #X connect 21 0 14 0; #X connect 21 0 16 0; #X connect 21 0 17 0; #X connect 21 0 18 0; #X connect 21 0 19 0; #X connect 21 0 20 0; #X connect 22 0 0 1; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 22 0 28 0; #X connect 22 0 29 0; #X connect 22 0 30 0; #X connect 22 0 40 0; #X connect 23 0 39 1; #X connect 24 0 31 1; #X connect 25 0 32 1; #X connect 26 0 34 1; #X connect 27 0 33 1; #X connect 28 0 35 1; #X connect 29 0 37 1; #X connect 30 0 36 1; #X connect 31 0 1 0; #X connect 32 0 1 0; #X connect 33 0 1 0; #X connect 34 0 1 0; #X connect 35 0 1 0; #X connect 36 0 1 0; #X connect 37 0 1 0; #X connect 38 0 1 0; #X connect 39 0 1 0; #X connect 40 0 38 1; #X restore 97 348 pd droplets; #X obj 319 537 lop~ 3000; #X text 330 21 drops; #X text 329 152 buckets; #X obj 83 315 delay 20; #X obj 134 290 delay 30; #X obj 175 263 delay 40; #X obj 198 233 delay 50; #X obj 216 209 delay 60; #X obj 223 184 delay 70; #X obj 39 11 loadbang; #X msg 498 424 0.3; #X msg 301 6 5000; #X text 469 549 (CC) 2007 Mikael Fernstrom; #X connect 1 0 2 1; #X connect 2 0 18 0; #X connect 3 0 6 0; #X connect 3 0 7 0; #X connect 3 0 8 0; #X connect 3 0 9 0; #X connect 3 0 10 0; #X connect 3 0 5 1; #X connect 3 0 11 0; #X connect 4 0 5 0; #X connect 4 0 21 0; #X connect 4 0 22 0; #X connect 4 0 23 0; #X connect 4 0 24 0; #X connect 4 0 25 0; #X connect 4 0 26 0; #X connect 4 0 28 0; #X connect 5 0 2 0; #X connect 6 0 17 1; #X connect 7 0 12 1; #X connect 8 0 13 1; #X connect 9 0 14 1; #X connect 10 0 15 1; #X connect 11 0 16 1; #X connect 12 0 2 0; #X connect 13 0 2 0; #X connect 14 0 2 0; #X connect 15 0 2 0; #X connect 16 0 2 0; #X connect 17 0 2 0; #X connect 18 0 0 0; #X connect 18 0 0 1; #X connect 21 0 17 0; #X connect 22 0 12 0; #X connect 23 0 13 0; #X connect 24 0 14 0; #X connect 25 0 15 0; #X connect 26 0 16 0; #X connect 27 0 4 0; #X connect 27 0 29 0; #X connect 28 0 1 0; #X connect 29 0 3 0;