Of these, I liked using transegr in the past so that one could have
linear or convex kind of attack and exponential/concave decay and
release. I'd probably try madsr and mxadsr first, which should solve
your click problem, then work out which envelope generators works best
random thought. i have also had problems getting envelopes to close out properly if i haven't completed the termination slightly prior to the actual p3 time ...
i.e. allowing at least 1 kr cycle for the envelope to completely resolve its trajectory (perhaps there can be minor float-type errors or something ...)
'terminate slightly early' is always a general principle i follow now with terminating envelopes ... & then extend the final 0 at the end for the 0.005 secs or so just to be safe & ensure 'full closure' ...
again, another reason i prefer to have separate note on / note off response management via midiin opcode, transmitting to a second instrument with:
* negative p3 duration on note on, &
* fixed release time with tied event management for note off ...
(i apologise, that particular application of negative p3 & tiestatus i don't think is actually spelled out in Stevens article from 2006 ... but the mechanism for implementing the tie & goto command sequence is ...)