35 u32 timestamp = context->getTimestamp();
122 float recentSum = 0.0f;
123 float olderSum = 0.0f;
126 for (fl::size i = 0; i < halfSize; i++) {
132 for (fl::size i = halfSize; i <
mRMSHistory.size(); i++) {
137 float recentAvg = recentSum / halfSize;
138 float olderAvg = olderSum / halfSize;
141 if (olderAvg < 1e-6f) {
146 float rawTrend = (recentAvg - olderAvg) / olderAvg;
float rms(fl::span< const int16_t > data)
void setTrendThreshold(float threshold)
void update(shared_ptr< Context > context) override
function_list< void()> onCrescendo
~DynamicsAnalyzer() FL_NOEXCEPT override
void setSmoothingFactor(float alpha)
function_list< void(float compression)> onCompressionRatio
function_list< void(float trend)> onDynamicTrend
void updatePeak(float rms)
vector< float > mRMSHistory
function_list< void()> onDiminuendo
DynamicsAnalyzer() FL_NOEXCEPT
void fireCallbacks() override
void setHistorySize(fl::size size)
FL_DISABLE_WARNING_PUSH U constexpr common_type_t< T, U > min(T a, U b) FL_NOEXCEPT
constexpr common_type_t< T, U > max(T a, U b) FL_NOEXCEPT
Base definition for an LED controller.