diff --git a/packages/superdough/helpers.mjs b/packages/superdough/helpers.mjs index 584b19673..07199aff6 100644 --- a/packages/superdough/helpers.mjs +++ b/packages/superdough/helpers.mjs @@ -172,6 +172,7 @@ export const getADSRValues = (params, curve = 'linear', defaultValues) => { if (a == null && d == null && s == null && r == null) { return defaultValues ?? [envmin, envmin, envmax, releaseMin]; } + const sustain = s != null ? s : (a != null && d == null) || (a == null && d == null) ? envmax : envmin; return [Math.max(a ?? 0, envmin), Math.max(d ?? 0, envmin), Math.min(sustain, envmax), Math.max(r ?? 0, releaseMin)]; };