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

Public Attributes

function_list< void(const Equalizer &)> onEqualizer
 

Static Public Attributes

static constexpr int kNumBins = 16
 

Private Member Functions

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

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::BinsmRetainedFFT
 
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: