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

Detailed Description

Definition at line 51 of file drop.h.

#include <drop.h>

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

Public Types

using DropCallback = void(*)(const Drop&)
 
using ImpactCallback = void(*)(float)
 
using VoidCallback = void(*)()
 

Public Member Functions

 DropDetector () FL_NO_EXCEPT
 
 DropDetector () FL_NO_EXCEPT
 
 ~DropDetector () FL_NO_EXCEPT
 
 ~DropDetector () FL_NO_EXCEPT override
 
void fireCallbacks () FL_NO_EXCEPT override
 
float getCurrentImpact (shared_ptr< Context > context) const
 
const Drop & getLastDrop () const
 
const Drop & getLastDrop () const FL_NO_EXCEPT
 
const char * getName () const FL_NO_EXCEPT override
 
u32 getTimeSinceLastDrop (u32 currentTime) 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 setBassThreshold (float threshold)
 
void setBassThreshold (float threshold) FL_NO_EXCEPT
 
void setEnergyFluxThreshold (float threshold)
 
void setEnergyFluxThreshold (float threshold) FL_NO_EXCEPT
 
void setImpactThreshold (float threshold)
 
void setImpactThreshold (float threshold) FL_NO_EXCEPT
 
void setMinTimeBetweenDrops (u32 ms)
 
void setMinTimeBetweenDrops (u32 ms) 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()> onDrop
 
VoidCallback onDrop = nullptr
 
function_list< void(const Drop &)> onDropEvent
 
DropCallback onDropEvent = nullptr
 
function_list< void(float impact)> onDropImpact
 
ImpactCallback onDropImpact = nullptr
 

Private Member Functions

float calculateBassFlux (float currentBass) const
 
float calculateBassFlux (float currentBass) const FL_NO_EXCEPT
 
float calculateDropImpact (float energyFlux, float bassFlux, float spectralNovelty, float rms) const
 
float calculateDropImpact (float energyFlux, float bassFlux, float spectralNovelty, float rms) const FL_NO_EXCEPT
 
float calculateEnergyFlux (float currentRMS) const
 
float calculateEnergyFlux (float currentRMS) const FL_NO_EXCEPT
 
float calculateSpectralNovelty (float bass, float mid, float treble) const
 
float calculateSpectralNovelty (float bass, float mid, float treble) const FL_NO_EXCEPT
 
float getBassEnergy (const fft::Bins &fft) const
 
float getBassEnergy (const fft::Bins &fft) const FL_NO_EXCEPT
 
float getMidEnergy (const fft::Bins &fft) const
 
float getMidEnergy (const fft::Bins &fft) const FL_NO_EXCEPT
 
float getTrebleEnergy (const fft::Bins &fft) const
 
float getTrebleEnergy (const fft::Bins &fft) const FL_NO_EXCEPT
 
bool shouldTriggerDrop (float impact, u32 timestamp) const
 
bool shouldTriggerDrop (float impact, u32 timestamp) const FL_NO_EXCEPT
 
void updateBaselines (float rms, float bass)
 
void updateBaselines (float rms, float bass) FL_NO_EXCEPT
 

Private Attributes

float mBassBaseline
 
float mBassThreshold
 
bool mDropDetectedThisFrame = false
 
float mEnergyBaseline
 
float mEnergyFluxThreshold
 
float mImpactThreshold
 
Drop mLastDrop
 
u32 mMinTimeBetweenDrops
 
float mPrevBassEnergy
 
float mPrevMidEnergy
 
float mPrevRMS
 
float mPrevTrebleEnergy
 
shared_ptr< const fft::Bins > mRetainedFFT
 

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