transeg — Constructs a user-definable envelope.
ares transeg ia, idur, itype, ib [, idur2] [, itype] [, ic] ...
kres transeg 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 transeg 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
Here is an example of the transeg opcode. Play transeg.csd The example produces the following output:
Example 1112. Example of the transeg 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 ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o transeg.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 128 nchnls = 2 0dbfs = 1 instr 1 ;p4 and p5 determine the type of curve for each ;section of the envelope kenv transeg 0.01, p3*0.25, p4, 1, p3*0.75, p5, 0.01 a1 oscil kenv, 440, 1 outs a1, a1 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 i 1 0 2 2 2 i 1 + . 5 5 i 1 + . 1 1 i 1 + . 0 0 i 1 + . -2 -2 i 1 + . -2 2 i 1 + . 2 -2 e </CsScore> </CsoundSynthesizer>