bool32.rising trigger
frac32.bipolar attack time modulation
frac32.bipolar decay time modulation
bool32.pulse end of cycle
frac32.positive envelope output
frac32.s.map.klineartime.exp a
frac32.s.map.kdecaytime.exp d
int8_t stage;
int nreset;
int32_t val;
nreset = 0;
val = 0;
stage = 1;
if ((inlet_reset > 0) && !nreset) {
nreset = 1;
stage = 1;
val = 0;
} else if (!(inlet_reset > 0)) {
nreset = 0;
}
outlet_end = 0;
if (stage == 0) {
val = ___SMMUL(val, param_d) << 1;
if (val <= 0) {
stage = 1;
val = 0;
outlet_end = 1;
}
} else {
int32_t t;
MTOF(-param_a, t);
val = val + (t >> 3);
if (val < 0) {
val = 0x7FFFFFFF;
stage = 0;
}
}
outlet_env = val >> 4;