FastLED 3.9.15
Loading...
Searching...
No Matches
spectral_equalizer.h File Reference
#include "fl/stl/int.h"
#include "fl/stl/vector.h"
#include "fl/stl/span.h"
#include "fl/stl/noexcept.h"
+ Include dependency graph for spectral_equalizer.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  fl::audio::SpectralEqualizer
 SpectralEqualizer applies frequency-dependent gain correction to address mid-frequency dominance and provide perceptual weighting of audio spectra. More...
 
struct  fl::audio::SpectralEqualizer::Stats
 Get statistics (for debugging/monitoring) More...
 
struct  fl::audio::SpectralEqualizerConfig
 Configuration for spectral equalizer. More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::audio
 

Enumerations

enum class  fl::audio::EqualizationCurve { fl::audio::Flat , fl::audio::AWeighting , fl::audio::Custom }
 Equalization curve type. More...
 

Class Documentation

◆ fl::audio::SpectralEqualizer::Stats

struct fl::audio::SpectralEqualizer::Stats
Class Members
u32 applicationsCount = 0
float avgInputLevel = 0.0f
float avgOutputLevel = 0.0f
float lastInputPeak = 0.0f
float lastMakeupGain = 1.0f
float lastOutputPeak = 0.0f

◆ fl::audio::SpectralEqualizerConfig

struct fl::audio::SpectralEqualizerConfig
+ Collaboration diagram for fl::audio::SpectralEqualizerConfig:
Class Members
bool applyMakeupGain = false Apply makeup gain to compensate for overall level changes If true, automatically adjusts overall gain to maintain average level.
float compressionRatio = 2.0f Compression ratio (1.0 = no compression, higher = more compression) 2.0 = 2:1 ratio, 4.0 = 4:1 ratio, etc.
float compressionThreshold = 0.7f Compression threshold (0.0-1.0) Signals above this level are compressed.
EqualizationCurve curve = EqualizationCurve::Flat Equalization curve type.
vector< float > customGains Custom per-band gain multipliers (only used if curve = Custom) Size must match numBands.

Default: all 1.0 (no eq)

bool enableCompression = false Enable dynamic range compression per band Compresses loud signals to reduce dynamic range.
float makeupGainTarget = 0.5f Makeup gain target level (0.0-1.0) The equalizer will scale output to maintain this average level.
size numBands = 16 Number of frequency bands (must match FrequencyBinMapper output)