gtadsr — A gated linear attack-decay-sustain with exponential release.
This opcode can work either as a signal generator or as a signal processor. It is controlled by a gate k-rate signal (0 or > 0) which switches the envelope attack-decay-sustain phase on/off. With gate > 0 (high), the envelope cycles through the attack and decay phases, and is sustained at the sustain level. Whenever gate is 0 (low), the envelope enters the release phase, decaying exponentially to 0. The attack and decay times are fixed with gate > 0, but can be changed once the gate is zero.
ares gtadsr asig, katt, kdec, ksus,
krel, kgate
xres gtadsr kamp, katt, kdec, ksus,
krel, kgate
x/ares -- output signal (k or a-rate)
asig -- input signal (envelope as an amplitude processor)
kamp -- maximum amplitude (envelope as a signal generator)
katt -- duration of attack phase
kdec -- duration of decay
ksus -- level for sustain phase (in the range 0 - 1)
krel -- duration of release phase
kgate -- gate signal (0 = low, > 0 high).
The length of the sustain is calculated from the length of the note. This means gtadsr is not suitable for use with MIDI events.
Here is an example of the gtadsr opcode. It uses the file gtadsr.csd.
Example 410. Example of the gtadsr opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> 0dbfs = 1 instr 1 gkamp = p4 gkfr = p5 gkgate = 1 gkatt = p6 gkdec = p7 gksus = p8 gkrel = p9 endin instr 2 a1 oscili gkamp,gkfr a2 gtadsr a1,gkatt,gkdec,gksus,gkrel,gkgate out a2 gkgate = 0; endin </CsInstruments> <CsScore> i1 0 1 1 440 0.1 0.1 0.5 0.1 i1 1.2 1 1 660 0.01 0.1 0.2 0.3 i1 2.5 1 1 550 0.01 0.1 0.7 1 i2 0 5 </CsScore> </CsoundSynthesizer>