89 void apply(
span<const
float> inputBins,
span<
float> outputBins) const;
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...
SpectralEqualizer() FL_NOEXCEPT
const SpectralEqualizerConfig & getConfig() const
Get current configuration.
void calculateGains()
Calculate gains based on current curve.
void setCustomGains(span< const float > gains)
Set custom per-band gains (switches to Custom curve)
void configure(const SpectralEqualizerConfig &config)
Configure the spectral equalizer This calculates per-band gain multipliers based on the selected curv...
~SpectralEqualizer() FL_NOEXCEPT
void resetStats()
Reset statistics.
float calculateMakeupGain(span< const float > inputBins, span< const float > outputBins) const
Calculate makeup gain to maintain target level.
const Stats & getStats() const
void calculateFlatGains()
Calculate flat gains (all 1.0)
void calculateAWeightingGains()
Calculate A-weighting gains.
void apply(span< const float > inputBins, span< float > outputBins) const
Apply equalization to frequency bins.
float applyCompression(float value) const
Apply dynamic range compression per band.
static constexpr float A_WEIGHTING_32BAND[32]
A-weighting coefficients for 32-band frequency analysis.
span< const float > getGains() const
Get current per-band gains.
SpectralEqualizerConfig mConfig
vector< float > mGains
Per-band gain multipliers.
Get statistics (for debugging/monitoring)
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.
constexpr int type_rank< T >::value
Base definition for an LED controller.