Use Non-Frames Version Previous Page Next Page
Signal Generators: Linear and Exponential Generators

adsr, madsr, xadsr, mxadsr

  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]

Description

Calculates the classical ADSR envelope

Initialization

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

Performance

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.


Use Non-Frames Version Previous Page Next Page
Signal Generators: Linear and Exponential Generators