MCPcopy Create free account
hub / github.com/FastLED/FastLED / detectBeats

Method detectBeats

src/fl/audio/audio_reactive.cpp.hpp:882–897  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

880}
881
882void BeatDetectors::detectBeats(span<const float, 16> frequencyBins, Data& audioData) {
883 // Calculate current band energies
884 mBassEnergy = (frequencyBins[0] + frequencyBins[1]) / 2.0f;
885 mMidEnergy = (frequencyBins[6] + frequencyBins[7]) / 2.0f;
886 mTrebleEnergy = (frequencyBins[14] + frequencyBins[15]) / 2.0f;
887
888 // Simple threshold-based detection using per-band energy deltas.
889 audioData.bassBeatDetected = (mBassEnergy > mPreviousBassEnergy * 1.3f) && (mBassEnergy > 0.1f);
890 audioData.midBeatDetected = (mMidEnergy > mPreviousMidEnergy * 1.25f) && (mMidEnergy > 0.08f);
891 audioData.trebleBeatDetected = (mTrebleEnergy > mPreviousTrebleEnergy * 1.2f) && (mTrebleEnergy > 0.05f);
892
893 // Update previous energies
894 mPreviousBassEnergy = mBassEnergy;
895 mPreviousMidEnergy = mMidEnergy;
896 mPreviousTrebleEnergy = mTrebleEnergy;
897}
898
899void BeatDetectors::setThresholds(float bassThresh, float midThresh, float trebleThresh) {
900#if SKETCH_HAS_LARGE_MEMORY

Callers 2

detectEnhancedBeatsMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected