30template <
typename SampleType>
37template <
typename SampleType>
44template <
typename SampleType>
47 jassert (
newRatio >=
static_cast<SampleType
> (1.0));
53template <
typename SampleType>
60template <
typename SampleType>
68template <
typename SampleType>
71 jassert (
spec.sampleRate > 0);
72 jassert (
spec.numChannels > 0);
74 sampleRate =
spec.sampleRate;
76 envelopeFilter.prepare (
spec);
82template <
typename SampleType>
85 envelopeFilter.reset();
89template <
typename SampleType>
93 auto env = envelopeFilter.processSample (channel,
inputValue);
97 : std::pow (
env * thresholdInverse, ratioInverse -
static_cast<SampleType
> (1.0));
103template <
typename SampleType>
107 thresholdInverse =
static_cast<SampleType
> (1.0) / threshold;
108 ratioInverse =
static_cast<SampleType
> (1.0) / ratio;
110 envelopeFilter.setAttackTime (attackTime);
111 envelopeFilter.setReleaseTime (releaseTime);
static Type decibelsToGain(Type decibels, Type minusInfinityDb=Type(defaultMinusInfinitydB))
void setThreshold(SampleType newThreshold)
SampleType processSample(int channel, SampleType inputValue)
void prepare(const ProcessSpec &spec)
void setAttack(SampleType newAttack)
void setRelease(SampleType newRelease)
void setRatio(SampleType newRatio)