I've recently been looking into the ELSE library, and specifically the envgen~ object. In creating a simple ADSR-like envelope, I was trying to set the 'suspoint', and found some curious behavior.
In using the following list for the breakpoints, and setting the suspoint to 3,
[0 100 1 300 .7 1000 .2 3000 0 (
when I execute this it starts the envelope and it stops when it gets to the .7 value, and when it is released, it immediately goes to the last stage, bypassing the .2 value.
But when I set the suspoint to 4, the envelope operates properly and stops at the .2 value. Then when I release the envelope, it just stays at the .2 value, and does not execute the last stage.
Next I tried to add one more stage and run using the same suspoints of 3 and 4... when I run it with stage 3, upon release it uses the time from the following stage (segment 4), not the last.
Am I missing something here? It seems to me that the first one (set to stage 3) is operating correctly, but when the stage is set to 4, it ignores the last stage upon release.