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