21template<
typename CurveEngine = dsp::FloatDefaultWarp>
36 float sustain,
float release_ms,
40 {1.0f, curve, attack_ms},
41 {sustain, curve, decay_ms},
42 {0.0f, curve, release_ms},
44 env.gen_.configure(segs, 3, 1);
53 {1.0f, curve, attack_ms},
54 {0.0f, curve, release_ms},
56 env.gen_.configure(segs, 2, 0);
62 float release_ms,
float curve = 0.0f) {
65 {1.0f, curve, attack_ms},
66 {1.0f, 0.0f, hold_ms},
67 {0.0f, curve, release_ms},
69 env.gen_.configure(segs, 3, -1);
78 {1.0f, curve, attack_ms},
79 {0.0f, curve, decay_ms},
81 env.gen_.configure(segs, 2, -1);
87 int8_t sustain_index = -1) {
89 env.gen_.configure(segments, count, sustain_index);
105 gen_.process(out, frames);
110 float level()
const {
return gen_.level(); }
111 bool active()
const {
return gen_.active(); }