32template <
typename SampleType>
39template <
typename SampleType>
46template <
typename SampleType>
53template <
typename SampleType>
60template <
typename SampleType>
77template <
typename SampleType>
83template <
typename SampleType>
86 for (
auto& old :
yold)
90template <
typename SampleType>
95 if (
levelType == LevelCalculationType::RMS)
96 inputValue *= inputValue;
98 inputValue = std::abs (inputValue);
100 SampleType cte = (inputValue >
yold[(size_t) channel] ?
cteAT :
cteRL);
102 SampleType
result = inputValue + cte * (
yold[(size_t) channel] - inputValue);
105 if (
levelType == LevelCalculationType::RMS)
106 return std::sqrt (
result);
111template <
typename SampleType>
114 for (
auto& old :
yold)
118template <
typename SampleType>
121 return timeMs < static_cast<SampleType> (1.0e-3) ? 0
122 :
static_cast<SampleType
> (std::exp (
expFactor / timeMs));
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_BallisticsFilter.h:46
std::vector< SampleType > yold
Definition juce_BallisticsFilter.h:143
SampleType processSample(int channel, SampleType inputValue)
Definition juce_BallisticsFilter.cpp:91
void reset()
Definition juce_BallisticsFilter.cpp:78
SampleType cteRL
Definition juce_BallisticsFilter.h:145
double expFactor
Definition juce_BallisticsFilter.h:144
BallisticsFilter()
Definition juce_BallisticsFilter.cpp:33
void setAttackTime(SampleType attackTimeMs)
Definition juce_BallisticsFilter.cpp:40
SampleType calculateLimitedCte(SampleType) const noexcept
Definition juce_BallisticsFilter.cpp:119
void prepare(const ProcessSpec &spec)
Definition juce_BallisticsFilter.cpp:61
SampleType cteAT
Definition juce_BallisticsFilter.h:145
BallisticsFilterLevelCalculationType LevelCalculationType
Definition juce_BallisticsFilter.h:49
SampleType releaseTime
Definition juce_BallisticsFilter.h:145
double sampleRate
Definition juce_BallisticsFilter.h:144
void setReleaseTime(SampleType releaseTimeMs)
Definition juce_BallisticsFilter.cpp:47
SampleType attackTime
Definition juce_BallisticsFilter.h:145
void snapToZero() noexcept
Definition juce_BallisticsFilter.cpp:112
LevelCalculationType levelType
Definition juce_BallisticsFilter.h:146
void setLevelCalculationType(LevelCalculationType newCalculationType)
Definition juce_BallisticsFilter.cpp:54
void snapToZero(SIMDRegister< Type > &) noexcept
Definition juce_SIMDRegister_Impl.h:167
Definition juce_AudioBlock.h:29
Definition carla_juce.cpp:31
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
static constexpr FloatType pi
Definition juce_MathsFunctions.h:382
Definition juce_ProcessContext.h:38
uint32 numChannels
Definition juce_ProcessContext.h:46
double sampleRate
Definition juce_ProcessContext.h:40
int result
Definition process.c:1455