75 function_list<
void(
u8 beatNumber,
float confidence,
float strength)>
onBackbeat;
void reset() FL_NO_EXCEPT override
bool detectBackbeat(float accentStrength, const fft::Bins &fft) FL_NO_EXCEPT
void updateAdaptiveThresholds() FL_NO_EXCEPT
float getConfidence() const FL_NO_EXCEPT
Returns backbeat detection confidence (0-1)
shared_ptr< Beat > mBeatDetector
void updateBeatPosition() FL_NO_EXCEPT
u8 getLastBackbeatNumber() const FL_NO_EXCEPT
Returns the beat number of the last detected backbeat (1-based)
void setDownbeatDetector(shared_ptr< Downbeat > downbeatDetector) FL_NO_EXCEPT
Share an external Downbeat instance.
float getBackbeatRatio() const FL_NO_EXCEPT
Returns ratio of backbeat to downbeat energy (0-2+)
void setBassThreshold(float threshold) FL_NO_EXCEPT
Set bass accent threshold (default: 1.2)
bool needsFFTHistory() const FL_NO_EXCEPT override
deque< float > mBackbeatAccents
MultibandAccent mPreviousAccent
const char * getName() const FL_NO_EXCEPT override
float detectBackbeatAccent(const MultibandAccent &accent) FL_NO_EXCEPT
void fireCallbacks() FL_NO_EXCEPT override
Backbeat(shared_ptr< Beat > beatDetector) FL_NO_EXCEPT
Construct with shared Beat.
void updateBackbeatProfile(const fft::Bins &fft) FL_NO_EXCEPT
void setHighThreshold(float threshold) FL_NO_EXCEPT
Set high accent threshold (default: 1.1)
static constexpr size MAX_ACCENT_HISTORY
~Backbeat() FL_NO_EXCEPT override
function_list< void(u8 beatNumber, float confidence, float strength)> onBackbeat
Fires on detected backbeat (beats 2, 4) with beat number, confidence, and strength.
void setBackbeatExpectedBeats(u8 beatMask) FL_NO_EXCEPT
Set which beats are backbeats using bitmask (bit 0=beat 1, bit 1=beat 2, etc.)
bool needsFFT() const FL_NO_EXCEPT override
float calculatePatternConfidence(const fft::Bins &fft) FL_NO_EXCEPT
float getStrength() const FL_NO_EXCEPT
Returns current backbeat accent strength (0-1+)
void updateBeatDetector(shared_ptr< Context > context) FL_NO_EXCEPT
bool isBackbeatPosition() const FL_NO_EXCEPT
vector< float > mBackbeatSpectralProfile
void update(shared_ptr< Context > context) FL_NO_EXCEPT override
void setConfidenceThreshold(float threshold) FL_NO_EXCEPT
Set minimum confidence for backbeat detection (default: 0.6)
void setMidThreshold(float threshold) FL_NO_EXCEPT
Set mid accent threshold (default: 1.3) - critical for snare.
void setAdaptive(bool enable) FL_NO_EXCEPT
Enable/disable adaptive threshold learning (default: true)
shared_ptr< Downbeat > mDownbeatDetector
float mConfidenceThreshold
shared_ptr< const fft::Bins > mRetainedFFT
MultibandAccent calculateMultibandAccent(const fft::Bins &fft) FL_NO_EXCEPT
bool mOwnsDownbeatDetector
bool isBackbeat() const FL_NO_EXCEPT
Returns true if backbeat was detected this frame.
void setBeatDetector(shared_ptr< Beat > beatDetector) FL_NO_EXCEPT
Share an external Beat instance.
static constexpr size SPECTRAL_PROFILE_SIZE
deque< float > mNonBackbeatAccents
Backbeat() FL_NO_EXCEPT
Construct with standalone Beat.
Multi-band accent information for backbeat detection.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Base definition for an LED controller.