bool32.rising reset
frac32.positive a
frac32.positive d
bool32.risingfalling gate
frac32.positive envelope output
int32_t val;
val = 0;
if (inlet_gate > 0)
val = ___SMMLA((1 << 27) - val, (1 << 27) - inlet_a, val);
else
val = ___SMMLA(val, (-1 << 27) + inlet_d, val);
if (inlet_reset)
val = 0;
outlet_env = val;