FastLED 3.9.15
Loading...
Searching...
No Matches

◆ detectBeats()

void fl::BeatDetectors::detectBeats ( const float * frequencyBins,
AudioData & audioData )

Definition at line 675 of file audio_reactive.cpp.

675 {
676 // Calculate current band energies
677 mBassEnergy = (frequencyBins[0] + frequencyBins[1]) / 2.0f;
678 mMidEnergy = (frequencyBins[6] + frequencyBins[7]) / 2.0f;
679 mTrebleEnergy = (frequencyBins[14] + frequencyBins[15]) / 2.0f;
680
681#if SKETCH_HAS_LOTS_OF_MEMORY
682 // Use separate detectors for each band
683 audioData.bassBeatDetected = bass.detectOnset(&mBassEnergy, &mPreviousBassEnergy);
684 audioData.midBeatDetected = mid.detectOnset(&mMidEnergy, &mPreviousMidEnergy);
685 audioData.trebleBeatDetected = treble.detectOnset(&mTrebleEnergy, &mPreviousTrebleEnergy);
686#else
687 // Use simple threshold detection for memory-constrained platforms
688 audioData.bassBeatDetected = (mBassEnergy > mPreviousBassEnergy * 1.3f) && (mBassEnergy > 0.1f);
689 audioData.midBeatDetected = (mMidEnergy > mPreviousMidEnergy * 1.25f) && (mMidEnergy > 0.08f);
690 audioData.trebleBeatDetected = (mTrebleEnergy > mPreviousTrebleEnergy * 1.2f) && (mTrebleEnergy > 0.05f);
691#endif
692
693 // Update previous energies
697}

References fl::AudioData::bassBeatDetected, mBassEnergy, fl::AudioData::midBeatDetected, mMidEnergy, mPreviousBassEnergy, mPreviousMidEnergy, mPreviousTrebleEnergy, mTrebleEnergy, and fl::AudioData::trebleBeatDetected.