transegr — Constructs a user-definable envelope with extended release segment.
Constructs a user-definable envelope. It is the same as transeg, with an extended release segment.
ares transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ...
kres transegr ia, idur, itype, ib [, idur2] [, itype] [, ic] ...
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))
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.
Here is an example of the transegr opcode. It uses the file transegr.csd.
Example 944. 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>