FastLED 3.10.8
Loading...
Searching...
No Matches
fl::audio::detector::Percussion Class Reference

Detailed Description

Definition at line 20 of file percussion.h.

#include <percussion.h>

+ Inheritance diagram for fl::audio::detector::Percussion:
+ Collaboration diagram for fl::audio::detector::Percussion:

Public Member Functions

 Percussion () FL_NO_EXCEPT
 
 Percussion () FL_NO_EXCEPT
 
 ~Percussion () FL_NO_EXCEPT
 
 ~Percussion () FL_NO_EXCEPT override
 
void fireCallbacks () FL_NO_EXCEPT override
 
float getBassToTotalRatio () const FL_NO_EXCEPT
 
float getClickRatio () const FL_NO_EXCEPT
 
float getHiHatConfidence () const FL_NO_EXCEPT
 
float getKickConfidence () const FL_NO_EXCEPT
 
float getMidToTrebleRatio () const FL_NO_EXCEPT
 
const char * getName () const FL_NO_EXCEPT override
 
float getOnsetSharpness () const FL_NO_EXCEPT
 
float getSnareConfidence () const FL_NO_EXCEPT
 
float getSubBassProxy () const FL_NO_EXCEPT
 
float getTomConfidence () const FL_NO_EXCEPT
 
float getTrebleFlatness () const FL_NO_EXCEPT
 
float getTrebleToTotalRatio () const FL_NO_EXCEPT
 
float getZeroCrossingFactor () const FL_NO_EXCEPT
 
bool isHiHat () const FL_NO_EXCEPT
 
bool isKick () const FL_NO_EXCEPT
 
bool isSnare () const FL_NO_EXCEPT
 
bool isTom () const FL_NO_EXCEPT
 
bool needsFFT () const FL_NO_EXCEPT override
 
bool needsFFTHistory () const FL_NO_EXCEPT override
 
void reset ()
 
void reset () FL_NO_EXCEPT override
 
void setHiHatThreshold (float threshold)
 
void setHiHatThreshold (float threshold) FL_NO_EXCEPT
 
void setKickThreshold (float threshold)
 
void setKickThreshold (float threshold) FL_NO_EXCEPT
 
void setSnareThreshold (float threshold)
 
void setSnareThreshold (float threshold) FL_NO_EXCEPT
 
void setTomThreshold (float threshold) FL_NO_EXCEPT
 
void update (shared_ptr< Context > context)
 
void update (shared_ptr< Context > context) FL_NO_EXCEPT override
 
- Public Member Functions inherited from fl::audio::Detector
virtual ~Detector () FL_NO_EXCEPT=default
 
virtual void setSampleRate (int) FL_NO_EXCEPT
 

Public Attributes

function_list< void()> onHiHat
 
function_list< void()> onKick
 
function_list< void(PercussionType type)> onPercussionHit
 
function_list< void(const char *type)> onPercussionHit
 
function_list< void()> onSnare
 
function_list< void()> onTom
 

Private Member Functions

void applyCrossBandRejection () FL_NO_EXCEPT
 
void computeConfidences () FL_NO_EXCEPT
 
void computeFeatures (const fft::Bins &fft) FL_NO_EXCEPT
 
bool detectHiHat (float trebleEnergy, float trebleFlux, u32 timestamp)
 
bool detectKick (float bassEnergy, float bassFlux, u32 timestamp)
 
bool detectSnare (float midEnergy, float midFlux, u32 timestamp)
 
float getBassEnergy (const fft::Bins &fft)
 
float getMidEnergy (const fft::Bins &fft)
 
float getTrebleEnergy (const fft::Bins &fft)
 

Private Attributes

float mBassToTotal
 
float mClickRatio
 
float mHiHatConfidence
 
bool mHiHatDetected
 
float mHiHatThreshold
 
float mKickConfidence
 
bool mKickDetected
 
float mKickThreshold
 
u32 mLastHiHatTime
 
u32 mLastKickTime
 
u32 mLastSnareTime
 
u32 mLastTomTime
 
float mMidToTreble
 
float mOnsetSharpness
 
float mPrevBassEnergy
 
float mPrevMidEnergy
 
float mPrevTrebleEnergy
 
shared_ptr< const fft::Bins > mRetainedFFT
 
float mSnareConfidence
 
bool mSnareDetected
 
float mSnareThreshold
 
float mSubBassProxy
 
float mTomConfidence
 
bool mTomDetected
 
float mTomThreshold
 
AttackDecayFilter< float > mTotalEnvelope {0.15f, 0.005f}
 
float mTrebleFlatness
 
float mTrebleToTotal
 
float mZeroCrossingFactor
 

Static Private Attributes

static constexpr u32 HIHAT_COOLDOWN_MS = 50
 
static constexpr u32 KICK_COOLDOWN_MS = 100
 
static constexpr u32 SNARE_COOLDOWN_MS = 80
 
static constexpr u32 TOM_COOLDOWN_MS = 100
 

The documentation for this class was generated from the following files: