kr adsr iatt, idec, islev, irel[, idel] kr madsr iatt, idec, islev, irel[, idel] kr xadsr iatt, idec, islev, irel[, idel] kr mxadsr iatt, idec, islev, irel[, idel] ar adsr iatt, idec, islev, irel[, idel] ar madsr iatt, idec, islev, irel[, idel] ar xadsr iatt, idec, islev, irel[, idel] ar mxadsr iatt, idec, islev, irel[, idel]
Calculates the classical ADSR envelope
iatt - duration of attack phase
idec - duration of decay
islev - level for sustain phase
irel - duration of release phase
idel - period of zero before the envelope starts
The envelope is the range 0 to 1 and may need to be scaled further. The envelope may be described as:
The length of the sustain is calculated from the length of the note. This means adsr is not suitable for use with MIDI events. The opcode madsr uses the linsegr mechanism, and so can be used in MIDI applications. The opcodes xadsr and mxadsr are identical to adsr and madsr, respectively, except they use exponential, rather than linear, line segments. adsr and madsr new in Csound version 3.49. xadsr and mxadsr new in Csound version 3.51.