transegb — Constructs a user-definable envelope in absolute time.
ares transegb ia, itim, itype, ib [, itim2] [, itype] [, ic] ...
kres transegb ia, itim, itype, ib [, itim2] [, itype] [, ic] ...
ia -- starting value.
ib, ic, etc. -- value after itim seconds.
itim -- time in seconds of end of first segment.
itim2,... itimx etc. -- time in seconds at the end of the segment.
itype, itype2, etc. -- if 0, a straight line is produced. If non-zero, then transegb 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 transegb opcode. It uses the file transegb.csd. The example produces the following output:
Example 943. Example of the transegb 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 transegb 0.01, p3*0.25, p4, 1, p3, 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>