FastLED 3.10.8
Loading...
Searching...
No Matches
fl::audio::detector::EqualizerDetector Class Reference

Detailed Description

WLED-style equalizer detector that provides a 16-bin frequency spectrum normalized to 0.0-1.0, plus convenience bass/mid/treble/volume getters.

Unlike FrequencyBands (which gives raw float band energies), this detector outputs pre-normalized values suitable for direct LED mapping.

Usage:

// Via Processor (recommended):
audio->onEqualizer([](const Equalizer& eq) {
float bass = eq.bass; // 0.0-1.0
float bin5 = eq.bins[5]; // 0.0-1.0
});
// Or polling:
float bass = audio.getEqBass(); // 0.0-1.0
span< const float, kNumBins > bins
16 bins, each 0.0-1.0
Definition equalizer.h:58
Snapshot of equalizer state, passed to onEqualizer callbacks.
Definition equalizer.h:49

Definition at line 83 of file equalizer.h.

#include <equalizer.h>

+ Inheritance diagram for fl::audio::detector::EqualizerDetector:
+ Collaboration diagram for fl::audio::detector::EqualizerDetector:

Public Member Functions

 EqualizerDetector () FL_NO_EXCEPT
 
 ~EqualizerDetector () FL_NO_EXCEPT override
 
void configure (const EqualizerConfig &config) FL_NO_EXCEPT
 Reconfigure equalizer tuning parameters at runtime.
 
void fireCallbacks () FL_NO_EXCEPT override
 
float getAutoGain () const FL_NO_EXCEPT
 
float getBass () const FL_NO_EXCEPT
 
float getBin (int index) const FL_NO_EXCEPT
 
const float * getBins () const FL_NO_EXCEPT
 
float getDominantFreqHz () const FL_NO_EXCEPT
 
float getDominantMagnitude () const FL_NO_EXCEPT
 
bool getIsSilence () const FL_NO_EXCEPT
 
float getMid () const FL_NO_EXCEPT
 
const char * getName () const FL_NO_EXCEPT override
 
float getTreble () const FL_NO_EXCEPT
 
float getVolume () const FL_NO_EXCEPT
 
float getVolumeDb () const FL_NO_EXCEPT
 
float getVolumeNormFactor () const FL_NO_EXCEPT
 
float getZcf () const FL_NO_EXCEPT
 
bool needsFFT () const FL_NO_EXCEPT override
 
void reset () FL_NO_EXCEPT override
 
void setMicProfile (MicProfile profile) FL_NO_EXCEPT
 Set microphone correction profile (propagated from Processor).
 
void setSampleRate (int rate) FL_NO_EXCEPT override
 
void update (shared_ptr< Context > context) FL_NO_EXCEPT override
 
- Public Member Functions inherited from fl::audio::Detector
virtual ~Detector () FL_NO_EXCEPT=default
 
virtual bool needsFFTHistory () const FL_NO_EXCEPT
 

Public Attributes

function_list< void(const Equalizer &)> onEqualizer
 

Static Public Attributes

static constexpr int kNumBins = 16
 

Private Member Functions

void computeBinCenters (float *out) const FL_NO_EXCEPT
 
void recomputePinkNoiseGains () FL_NO_EXCEPT
 

Private Attributes

float mBass = 0
 
vector< AttackDecayFilter< float > > mBinMaxFilters
 
vector< AttackDecayFilter< float > > mBinOutputFilters
 
float mBins [kNumBins] = {}
 
vector< ExponentialSmoother< float > > mBinSmoothers
 
EqualizerConfig mConfig
 
MicProfile mCurrentMicProfile = MicProfile::None
 
float mDominantFreqHz = 0.0f
 
float mDominantMagnitude = 0.0f
 
float mEqBuffer [kNumBins] = {}
 
float mGain = 1.0f
 
bool mHasMicCorrection = false
 
bool mIsSilence = false
 
float mMicGains [kNumBins] = {}
 
float mMid = 0
 
float mPinkNoiseGains [kNumBins] = {}
 
shared_ptr< const fft::Bins > mRetainedFFT
 
int mSampleRate = 44100
 
SpectralEqualizer mSpectralEq
 
float mTreble = 0
 
bool mUseAttackDecaySmoothing = false
 
float mVolume = 0
 
float mVolumeDb = -100.0f
 
AttackDecayFilter< float > mVolumeMax {0.001f, 4.0f, 0.0f}
 
float mVolumeNormFactor = 1.0f
 
float mZcf = 0
 

Static Private Attributes

static constexpr float kFFTDownscale = 0.40f
 

The documentation for this class was generated from the following files: