transegr
Prev | Orchestra Opcodes and Operators | Next

## transegr

transegr — Constructs a user-definable envelope with extended release segment.

## Description

Constructs a user-definable envelope. It is the same as transeg, with an extended release segment.

## Syntax

    ares transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ...

    kres transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ...

## Initialization

ia -- starting value.

ib, ic, etc. -- value after idur seconds.

idur -- duration in seconds of first segment. A zero or negative value will cause all initialization to be skipped.

idur2,... idurx etc. -- duration in seconds of segment

itype, itype2, etc. -- if 0, a straight line is produced. If non-zero, then transegr creates the following curve, for n steps:

ibeg + (ivalue - ibeg) * (1 - exp( i*itype/(n-1) )) / (1 - exp(itype))

## Performance

If itype > 0, there is a slowly rising (concave) or slowly decaying (convex) curve, while if itype < 0, the curve is fast rising (convex) or fast decaying (concave). See also GEN16.

This opcode is the same as of transeg with an additional release segment triggered by a MIDI noteoff event, a negative p1 note event in the score or a turnoff2 opcode.

## Examples

Here is an example of the transegr opcode. It uses the file transegr.csd.

Example 1073. Example of the transegr opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac  -+rtmidi=virtual -M0  ;;;realtime audio out and realtime midi in
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o transegr.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    icps cpsmidi
    iamp ampmidi .2
    ;             st,dur1,typ1,val,dur2,typ2,end
    kenv transegr 0,  .2,  2,  .5,  1, - 3,   0
    asig pluck kenv*iamp, icps, icps, 1, 1
         outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f1 0 4096 10 1	;sine

    f0 30	;runs 30 seconds
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

expsega, expsegr, linseg, linsegr, transeg

## Credits

Author: John ffitch
january 2010

New in Csound version 5.12

Prev | Up | Next
transegb | Home | trcross