The Alternative Csound Reference Manual
Previous |  | Next

# xtratim

xtratim -- Extend the duration of real-time generated events.

## Description

Extend the duration of real-time generated events and handle their extra life (see also linenr).

## Syntax

xtratim iextradur

## Initialization

iextradur -- additional duration of current instrument instance

## Performance

xtratim extends current MIDI-activated note duration of iextradur seconds after the corresponding noteoff message has deactivated current note itself. This opcode has no output arguments.

This opcode is useful for implementing complex release-oriented envelopes.

## Examples

     instr 1 ;allows complex ADSR envelope with MIDI events
      inum notnum
      icps cpsmidi
      iamp ampmidi 4000
     ;
     ;------- complex envelope block ------
      xtratim 1 ;extra-time, i.e. release dur
      krel init 0
      krel release ;outputs release-stage flag (0 or 1 values)
      if (krel  .5) kgoto rel ;if in release-stage goto release section
     ;
     ;************ attack and sustain section ***********
      kmp1 linseg 0, .03, 1, .05, 1, .07, 0, .08, .5, 4, 1, 50, 1
      kmp = kmp1*iamp
       kgoto done
     ;
     ;--------- release section --------
       rel:
      kmp2 linseg 1, .3, .2, .7, 0
      kmp = kmp1*kmp2*iamp
      done:
     ;------
      a1 oscili kmp, icps, 1
      out a1
     endin

## See Also

linenr, release

## Credits

Author: Gabriel Maldonado
Italy

New in Csound version 3.47

Previous | Home | Next
xscanu | Up | xyin