This may seem a fine point but, let's say I want to turn the Synchron Prime Clarinet Sforzatissimo into a short using the Envelope control on the Edit panel. I set Hold to 0.25, Decay to 0.45, Sustain to -inf, and Release to 0. It's a short when the note is kept held down now, fine.
But, while you're playing, release the note before the hold + decay time is done (experiment with different key up times). An "echo" which is the release sample triggering now appears. With a sustain level of -inf and the sound decayed to inaudibility already, the release sample should be played at the effective level of the decay (which if it's -inf, could be skipped entirely as an optimization). Instead it's triggered audibly and joltingly, as the decay factor hasn't been applied, which is the bug.
Note that a "fix" where the level of the release sample is naively set to the sustain level would not be a fix. The release sample should still be played if the sustain portion of the envelope hasn't been reached yet. An actual fix is to play the release sample at the current level set by the envelope, wherever that is at the time of key up. I'm surprised this got through to release but I suppose people don't use these envelopes much.
"You shouldn't be doing that that way...use shorts for shorts" responses will be ignored, unless there really is so much better of a way of doing this that the envelope bug can be safely ignored. But it's still a bug, and I should be able to turn a long into a short with the envelope if I want to without needing to be careful how I play it. Thank you...
OK now I play with it a bit more, I think what's going on is the decay factor is getting applied, but the release sample in this case has gain up above that, which is being added to the decay factor, not scaled. So the fix then is, in cases where the release sample has extra gain, it should be scaled by the envelope coefficient, not simply added to whatever it determined unity to presently be.
Of course, now that we see this bug, a fix would have to keep the libraries all built sounding the same. So a compromise might be to only scale it when the envelope nears inaudibility so that these echoes don't appear, but otherwise leave it as it is so people's projects don't change in sound much. Or maybe you solve this with a legacy switch in the patches so that only new instantiations of the patches get the fix, but existing projects will still play with the buggy envelope. This is why you've really got to get all the bugs out of audio plugins before they ship...