Envgen.kr(Env.adsr

Both EnvGen gates are set to 1 ,Env.perc releases from server, Env.adsr does not
One can’t possibly expect this to be logical at all

//Env perc frees server 
(
{
EnvGen.ar(Env.perc(0,0.500,1,-5),doneAction:2,gate:1)*SinOsc.ar(220)!2
}.play
)
//adsr does not 
(
{
EnvGen.ar(Env.adsr(0,0.500,0,0),doneAction:2,gate:1)*SinOsc.ar(220)!2
}.play
)
//