I just spent a little more time to see how the ADSR works.
As I said in an earlier post, the peak level is always 100% (it's not DLEVEL), then there is a ramp from 100% to DLEVEL over DECAY time, then a ramp from DLEVEL to SLEVEL over SUSTAIN time.
NEW: now, I discovered a new bug or imprecision in documentation: if SLEVEL is greater than DLEVEL, then SLEVEL is simply ignored. For instance with DLEVEL = 60 % and SLEVEL = 50%, the ADSR generates a ramp from 60% to 50% over SUSTAIN time, what is correct. BUT set DLEVEL = 60% and SLEVEL = 70%, and then, no ramp at all is generated from 60 to 70, the adsr stays at 60 during the SUSTAIN time, and ignores the 70 value.
Jean-Francois.