The server doesn’t understand symbols. If you want this kind of flexibility consider DemandEnvGen.

If you"re curious you could even do it with Env/EnvGen by using a little trick:

An Env is encoded into an array which you can regard with ‘asArray’.

Check:

```
Env.linen(0.003, 0, 0.003, 0.2, 7).asArray
-> [ 0, 3, -99, -99, 0.2, 0.003, 5, 7, 0.2, 0, 5, 7, 0, 0.003, 5, 7 ]
```

You see where the curvature and the curve type (= shape, see e.g. DemandEnvGen help for this convention) are stored.

Rewriting the above example

```
(
// default shape 5 (exponential curve value)
x = { |curvature = 0, shape = 5, gate = 1|
var env, envSig;
env = [
0, 3, -99, -99, 0.2, 0.003, shape, curvature,
0.2, 0, 1, 0, 0, 0.003, shape, curvature
];
envSig = EnvGen.ar(env, Impulse.ar(100) * gate);
Out.ar(0, envSig!2);
}.scope;
)
// curvature value
x.set(\curvature, 10)
// sine shape
x.set(\shape, 3)
```

Attack and release times could also be made to args etc. But this is kind of a hack, DemandEnvGen is more comfortable.