26 virtual void keyOn(
float tgt=0){}
141 act_value_q = updateFixed();
150 const char*
adsrNames[5] = {
"Idle",
"Attack",
"Decay",
"Sustain",
"Release"};
156 q1_14_t attack_q{0.001f}, decay_q{0.001f}, sustain_q{0.5f}, release_q{0.005f};
157 q1_14_t target_q{0.0f}, act_value_q{0.0f};
159 q1_14_t updateFixed() {
162 act_value_q += attack_q;
163 if ( act_value_q >= target_q ) {
164 act_value_q = target_q;
165 target_q = sustain_q;
172 if ( act_value_q > sustain_q ) {
173 act_value_q -= decay_q;
174 if ( act_value_q <= sustain_q ) {
175 act_value_q = sustain_q;
180 act_value_q += decay_q;
181 if ( act_value_q >= sustain_q ) {
182 act_value_q = sustain_q;
189 act_value_q -= release_q;
190 if ( act_value_q <= q1_14_t(0.0f) ) {
191 act_value_q = q1_14_t(0.0f);
206 return (
float)updateFixed();
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define LOGI(...)
Definition AudioLoggerIDF.h:28