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)
DynamicsAnalyzer() FL_NO_EXCEPT
void updatePeak(float rms) FL_NO_EXCEPT
void setSmoothingFactor(float alpha) FL_NO_EXCEPT
function_list< void()> onCrescendo
void updateCompression() FL_NO_EXCEPT
function_list< void(float compression)> onCompressionRatio
void update(shared_ptr< Context > context) FL_NO_EXCEPT override
void reset() FL_NO_EXCEPT override
function_list< void(float trend)> onDynamicTrend
vector< float > mRMSHistory
void setTrendThreshold(float threshold) FL_NO_EXCEPT
function_list< void()> onDiminuendo
float calculateTrend() FL_NO_EXCEPT
void fireCallbacks() FL_NO_EXCEPT override
~DynamicsAnalyzer() FL_NO_EXCEPT override
void setHistorySize(fl::size size) FL_NO_EXCEPT
constexpr common_type_t< T, U > max(T a, U b) FL_NO_EXCEPT
u8 u8 fract8 blur_amount FL_NO_EXCEPT
FL_DISABLE_WARNING_PUSH U constexpr common_type_t< T, U > min(T a, U b) FL_NO_EXCEPT
Base definition for an LED controller.