168 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f,
169 1.1f, 1.2f, 1.3f, 1.4f, 1.4f, 1.4f, 1.3f, 1.2f,
170 1.1f, 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f,
171 0.3f, 0.2f, 0.2f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f
static constexpr float A_WEIGHTING_16BAND[16]
A-weighting coefficients for 16-band frequency analysis These approximate the A-weighting curve acros...
float applyCompression(float value) const FL_NO_EXCEPT
Apply dynamic range compression per band.
void configure(const SpectralEqualizerConfig &config) FL_NO_EXCEPT
Configure the spectral equalizer This calculates per-band gain multipliers based on the selected curv...
~SpectralEqualizer() FL_NO_EXCEPT
void calculateFlatGains() FL_NO_EXCEPT
Calculate flat gains (all 1.0)
void calculateAWeightingGains() FL_NO_EXCEPT
Calculate A-weighting gains.
void resetStats() FL_NO_EXCEPT
Reset statistics.
void apply(span< const float > inputBins, span< float > outputBins) const FL_NO_EXCEPT
Apply equalization to frequency bins.
SpectralEqualizer() FL_NO_EXCEPT
const Stats & getStats() const FL_NO_EXCEPT
float calculateMakeupGain(span< const float > inputBins, span< const float > outputBins) const FL_NO_EXCEPT
Calculate makeup gain to maintain target level.
span< const float > getGains() const FL_NO_EXCEPT
Get current per-band gains.
void calculateGains() FL_NO_EXCEPT
Calculate gains based on current curve.
const SpectralEqualizerConfig & getConfig() const FL_NO_EXCEPT
Get current configuration.
static constexpr float A_WEIGHTING_32BAND[32]
A-weighting coefficients for 32-band frequency analysis.
void setCustomGains(span< const float > gains) FL_NO_EXCEPT
Set custom per-band gains (switches to Custom curve)
SpectralEqualizerConfig mConfig
vector< float > mGains
Per-band gain multipliers.
Get statistics (for debugging/monitoring)
#define constexpr
Declares that it is possible to evaluate a value at compile time, introduced in C++11.
EqualizationCurve
Equalization curve type.
EqualizationCurve curve
Equalization curve type.
float compressionThreshold
Compression threshold (0.0-1.0) Signals above this level are compressed.
bool enableCompression
Enable dynamic range compression per band Compresses loud signals to reduce dynamic range.
float makeupGainTarget
Makeup gain target level (0.0-1.0) The equalizer will scale output to maintain this average level.
bool applyMakeupGain
Apply makeup gain to compensate for overall level changes If true, automatically adjusts overall gain...
float compressionRatio
Compression ratio (1.0 = no compression, higher = more compression) 2.0 = 2:1 ratio,...
vector< float > customGains
Custom per-band gain multipliers (only used if curve = Custom) Size must match numBands.
size numBands
Number of frequency bands (must match FrequencyBinMapper output)
Configuration for spectral equalizer.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
constexpr int type_rank< T >::value
Base definition for an LED controller.