FastLED 3.9.15
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_NOEXCEPT
 
 DropDetector () FL_NOEXCEPT
 
 ~DropDetector () FL_NOEXCEPT
 
 ~DropDetector () FL_NOEXCEPT override
 
void fireCallbacks () override
 
float getCurrentImpact (shared_ptr< Context > context) const
 
const DropgetLastDrop () const
 
const DropgetLastDrop () const
 
const char * getName () const override
 
u32 getTimeSinceLastDrop (u32 currentTime) const
 
bool needsFFT () const override
 
bool needsFFTHistory () const override
 
void reset ()
 
void reset () override
 
void setBassThreshold (float threshold)
 
void setBassThreshold (float threshold)
 
void setEnergyFluxThreshold (float threshold)
 
void setEnergyFluxThreshold (float threshold)
 
void setImpactThreshold (float threshold)
 
void setImpactThreshold (float threshold)
 
void setMinTimeBetweenDrops (u32 ms)
 
void setMinTimeBetweenDrops (u32 ms)
 
void update (shared_ptr< Context > context)
 
void update (shared_ptr< Context > context) override
 
- Public Member Functions inherited from fl::audio::Detector
virtual ~Detector () FL_NOEXCEPT=default
 
virtual void setSampleRate (int) FL_NOEXCEPT
 

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
 
float calculateDropImpact (float energyFlux, float bassFlux, float spectralNovelty, float rms) const
 
float calculateDropImpact (float energyFlux, float bassFlux, float spectralNovelty, float rms) const
 
float calculateEnergyFlux (float currentRMS) const
 
float calculateEnergyFlux (float currentRMS) const
 
float calculateSpectralNovelty (float bass, float mid, float treble) const
 
float calculateSpectralNovelty (float bass, float mid, float treble) const
 
float getBassEnergy (const fft::Bins &fft) const
 
float getBassEnergy (const fft::Bins &fft) const
 
float getMidEnergy (const fft::Bins &fft) const
 
float getMidEnergy (const fft::Bins &fft) const
 
float getTrebleEnergy (const fft::Bins &fft) const
 
float getTrebleEnergy (const fft::Bins &fft) const
 
bool shouldTriggerDrop (float impact, u32 timestamp) const
 
bool shouldTriggerDrop (float impact, u32 timestamp) const
 
void updateBaselines (float rms, float bass)
 
void updateBaselines (float rms, float bass)
 

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::BinsmRetainedFFT
 

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