1 #ifndef EXPONENTIAL_DECAY_ENVELOPE_H
2 #define EXPONENTIAL_DECAY_ENVELOPE_H
13 return 1.0 + (logf(endLevel) - logf(startLevel)) / (lengthInSamples+20);
30 void trigger(
bool state,
int triggerDelay){
34 void gate(
bool state,
int triggerDelay){
51 [[deprecated(
"use generate() instead.")]]
virtual void gate(bool state)
virtual float process(float input)
float calculateMultiplier(float startLevel, float endLevel, size_t lengthInSamples)
void setDecaySamples(float samples)
static ExponentialDecayEnvelope * create(float sr)
void trigger(bool state, int triggerDelay)
void gate(bool state, int triggerDelay)
ExponentialDecayEnvelope(float sr=48000)
void setSampleRate(float sampleRate)
void setLevel(float level)
float generate()
Produce the next envelope sample.
static void destroy(ExponentialDecayEnvelope *env)
virtual float generate()
Produce the next consecutive sample.