104 void update(fl::u32 currentTimeMs);
314#if SKETCH_HAS_LARGE_MEMORY
316 fl::size mHistoryIndex;
317 float calculateAdaptiveThreshold();
328 void setThresholds(
float bassThresh,
float midThresh,
float trebleThresh);
331#if SKETCH_HAS_LARGE_MEMORY
360 0.5f, 0.6f, 0.8f, 1.0f, 1.2f, 1.3f, 1.4f, 1.4f,
361 1.3f, 1.2f, 1.0f, 0.8f, 0.6f, 0.4f, 0.2f, 0.1f
364#if SKETCH_HAS_LARGE_MEMORY
366 fl::size mHistoryIndex;
UINumberField palette("Palette", 0, 0, 2)
A fixed-size array implementation similar to std::array.
FrequencyBinMapper maps FFT output bins to perceptually-spaced frequency channels.
NoiseFloorTracker maintains an adaptive estimate of the background noise floor for audio signals,...
Get current statistics (for monitoring/debugging)
void applyLoudnessCompensation(Data &data, float referenceLevel) const
PerceptualWeighting() FL_NOEXCEPT
static constexpr float A_WEIGHTING_COEFFS[16]
void applyAWeighting(Data &data) const
~PerceptualWeighting() FL_NOEXCEPT
float getBackbeatConfidence()
float mapFrequencyBin(int fromBin, int toBin)
float getDownbeatConfidence()
float getMidEnergy() const
void updateSpectralFlux()
void detectEnhancedBeats(fl::u32 currentTimeMs)
float mPinkNoiseGains[16]
float getBackbeatStrength()
void begin(const ReactiveConfig &config=ReactiveConfig{})
fl::u8 volumeToScale255() const
void update(fl::u32 currentTimeMs)
fl::u8 frequencyToScale255(fl::u8 binIndex) const
float getBuildupIntensity()
const SignalConditioner::Stats & getSignalConditionerStats() const
void detectBeat(fl::u32 currentTimeMs)
float getChordConfidence()
void calculateBandEnergies()
float getBassEnergy() const
void processSample(const Sample &sample)
fl::unique_ptr< SpectralFluxDetector > mSpectralFluxDetector
SilenceEnvelope mDominantFrequencyEnvelope
fl::unique_ptr< SpectralEqualizer > mSpectralEqualizer
CRGB volumeToColor(const CRGBPalette16 &palette) const
fl::unique_ptr< detector::MultiBandBeat > mMultiBandBeatDetector
float getTempoConfidence()
float getTrebleEnergy() const
shared_ptr< Context > mContext
fl::unique_ptr< Processor > mAudioProcessor
float getTransientStrength()
bool isSpectralEqualizerEnabled() const
Processor & ensureAudioProcessor()
float getNoteConfidence()
void processFFT(const Sample &sample)
SilenceEnvelope mMagnitudeEnvelope
float getSpectralFlux() const
void setConfig(const ReactiveConfig &config)
SignalConditioner mSignalConditioner
float getBuildupProgress()
NoiseFloorTracker mNoiseFloorTracker
const Data & getSmoothedData() const
void applyLoudnessCompensation()
void mapFFTBinsToFrequencyChannels()
fl::unique_ptr< detector::MusicalBeat > mMusicalBeatDetector
const SpectralEqualizer::Stats & getSpectralEqualizerStats() const
fl::unique_ptr< PerceptualWeighting > mPerceptualWeighting
fl::array< float, 16 > mPreviousMagnitudes
float getVocalConfidence()
const NoiseFloorTracker::Stats & getNoiseFloorStats() const
static constexpr fl::u32 BEAT_COOLDOWN
float getPitchConfidence()
u8 getCurrentBeatNumber()
const Data & getData() const
bool isTrebleBeat() const
float getBeatConfidence()
float computeRMS(const fl::vector< fl::i16 > &samples)
SilenceEnvelope mSpectralFluxEnvelope
FrequencyBinMapper mFrequencyBinMapper
void applySpectralEqualization()
void updateVolumeAndPeak(const Sample &sample)
SignalConditioner performs low-level audio preprocessing to clean raw PCM samples before FFT analysis...
Get current statistics (for debugging/monitoring)
Get statistics (for debugging/monitoring)
SpectralFluxDetector() FL_NOEXCEPT
void setThreshold(float threshold)
~SpectralFluxDetector() FL_NOEXCEPT
float calculateSpectralFlux(span< const float, 16 > currentBins, span< const float, 16 > previousBins)
bool detectOnset(span< const float, 16 > currentBins)
float getThreshold() const
fl::array< float, 16 > mPreviousMagnitudes
MultiBandBeat performs frequency-specific beat detection.
MusicalBeat distinguishes true musical beats from random onset detection.
#define constexpr
Declares that it is possible to evaluate a value at compile time, introduced in C++11.
Utility functions for color fill, palettes, blending, and more.
Defines the 8-bit red, green, and blue (RGB) pixel type in the fl namespace.
float spectralFluxThreshold
bool enableSpectralEqualizer
bool enableMultiBandBeats
bool enableSignalConditioning
bool enableNoiseFloorTracking
float musicalBeatConfidence
bool enableMusicalBeatDetection
CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode)
Sample a pixel from a 2D CRGB grid at floating-point coordinates.
Base definition for an LED controller.
Representation of an 8-bit RGB pixel (Red, Green, Blue)
void setThresholds(float bassThresh, float midThresh, float trebleThresh)
~BeatDetectors() FL_NOEXCEPT
void detectBeats(span< const float, 16 > frequencyBins, Data &audioData)
float mPreviousTrebleEnergy
float mPreviousBassEnergy
BeatDetectors() FL_NOEXCEPT
SpectralFluxDetector combined