hsc3-0.21: Help/Ugen/envAdsr.help.hs
-- envAdsr ; random release time
let g = setResetFF 1 (dustId 'α' kr 1)
p = envAdsr 0.01 0.25 0.15 0.75 1 (EnvNum (-4)) 0
e = envGen kr g 0.1 0 1 RemoveSynth p
in sinOsc ar 440 0 * e
-- envAdsr
let c = control kr "gate" 1
p = envAdsr 0.75 2.75 0.1 7.25 1 (EnvNum (-4)) 0
e = envGen kr c 1 0 1 RemoveSynth p
in sinOsc ar 440 0 * e * 0.1
-- envAdsr ; record variant
let g = control kr "gate" 1
c = EnvNum (-4)
r = Adsr {adsr_attackTime = 0.75
,adsr_decayTime = 0.75
,adsr_sustainLevel = 0.5
,adsr_releaseTime = 0.75
,adsr_peakLevel = 1
,adsr_curve = (c,c,c)
,adsr_bias = 0}
p = envAdsr_r r
e = envGen kr g 0.1 0 1 DoNothing p
in sinOsc ar 440 0 * e
-- envAdsr ; adsr_def
let g = control kr "gate" 1
p = envAdsr_r adsr_def
e = envGen kr g 0.1 0 1 DoNothing p
in sinOsc ar 440 0 * e
---- ; close gate message
withSc3 (Sound.OSC.sendMessage (n_set1 (-1) "gate" 0))
---- ; drawings
import Sound.Sc3.Plot {- hsc3 -}
plotEnvelope [envAdsr 0.75 0.75 0.5 0.75 1 (EnvNum (-4)) 0
,envAdsr 0.02 0.2 0.25 1 1 (EnvNum (-4)) 0
,envAdsr 0.001 0.2 0.25 1 1 (EnvNum (-4)) 0
,envAdsr 0 2 1 0.1 0.5 EnvSin 0
,envAdsr 0.001 1.54 1 0.001 0.4 EnvSin 0]
---- ; help
Sound.Sc3.Lang.Help.viewSc3Help "Env.*adsr"
---- ; coord ; [0,3,2,-99,1,0.01,5,-4,0.5,0.3,5,-4,0,1,5,-4]
envelope_sc3_array (envAdsr 0.01 0.3 0.5 1 1 (EnvNum (-4)) 0)
---- ; coord ; [0,3,2,-99,1,0.3,5,-4,0.1,0.4,5,-4,0,1.2,5,-4]
envelope_sc3_array (envAdsr 0.3 0.4 0.1 1.2 1 (EnvNum (-4)) 0)
---- ; sc3
Env.adsr.asArray == [0,3,2,-99,1,0.01,5,-4,0.5,0.3,5,-4,0,1,5,-4];
x = {|gate=0, freq=440 | EnvGen.kr(Env.adsr,gate) * SinOsc.ar(freq,0) * 0.1}.play
x.set(\gate,1);
x.set(\gate,0);