I finally fixed up my adjustable envelope object I've been messing around with forever. You can get it here.

Click image for larger version. 

Name:	envelope-examples.jpg 
Views:	33 
Size:	17.6 KB 
ID:	24086

Shape is adjustabe from a sharp exponential curve, 1.0 is a very chonky log for each ADSR stage.
Lengths of the envelope stages and amplitude of sustain is unaffected by shape change.

It can also be triggered works like a standard slope generator. Triggering it will produce the attack and decay stages and then end.

This works well on the teensy 4.x and only takes about 2% processor on the 4.0 but on the 3.2 itís over 100% due to all the powf use. Each update of envelope has two calls to fscale and then interpolates between them for the other values in the 8 output batch.
If there's demand I'll make a LUT version of it for the 3.x

Let me know what bugs you find!