FastLED 3.9.15
Loading...
Searching...
No Matches
fl::audio::detector::Vocal Class Reference

Detailed Description

Definition at line 21 of file vocal.h.

#include <vocal.h>

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

Public Member Functions

 Vocal () FL_NOEXCEPT
 
 Vocal () FL_NOEXCEPT
 
 ~Vocal () FL_NOEXCEPT
 
 ~Vocal () FL_NOEXCEPT override
 
void fireCallbacks () override
 
float getConfidence () const
 
float getConfidence () const
 
float getFormantRatio () const
 
const char * getName () const override
 
float getSpectralCentroid () const
 
float getSpectralRolloff () const
 
bool isVocal () const
 
bool isVocalActive () const
 
bool needsFFT () const override
 
void reset ()
 
void reset () override
 
void setSampleRate (int sampleRate) override
 
void setSmoothingAlpha (float tau)
 
void setThreshold (float threshold)
 
void setThreshold (float threshold)
 
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 bool needsFFTHistory () const FL_NOEXCEPT
 

Public Attributes

function_list< void(u8 active)> onVocal
 
function_list< void()> onVocalEnd
 
function_list< void()> onVocalStart
 

Private Member Functions

float calculateAutocorrelationIrregularity (span< const i16 > pcm)
 
float calculateRawConfidence (float formantRatio, float spectralFlatness, float harmonicDensity, float vocalPresenceRatio, float spectralFlux, float spectralVariance)
 
float calculateSpectralCentroid (const fft::Bins &fft)
 
float calculateSpectralRolloff (const fft::Bins &fft)
 
float calculateVocalPresenceRatio (const fft::Bins &broadFft)
 
void computeBroadSpectralFeatures (const fft::Bins &broadFft)
 
void computeFormantRatio (const fft::Bins &formantFft)
 
void computePCMTimeDomainFeatures (span< const i16 > pcm)
 
bool detectVocal (float centroid, float rolloff, float formantRatio)
 
float estimateFormantRatio (const fft::Bins &fft)
 

Private Attributes

ExponentialSmoother< float > mAcfIrregularitySmoother {0.08f}
 
float mAutocorrelationIrregularity = 0.0f
 
int mBroadNumBins = 16
 
float mConfidence
 
ExponentialSmoother< float > mConfidenceSmoother {0.05f}
 
float mEnvelopeJitter = 0.0f
 
ExponentialSmoother< float > mEnvelopeJitterSmoother {0.08f}
 
fl::vector< float > mFluxNormBins
 
int mFormantCachedBinCount = -1
 
int mFormantF1MaxBin = 0
 
int mFormantF1MinBin = 0
 
int mFormantF2MaxBin = 0
 
int mFormantF2MinBin = 0
 
int mFormantNumBins = 64
 
float mFormantRatio
 
int mFramesInState = 0
 
float mHarmonicDensity = 0.0f
 
float mOffThreshold = 0.52f
 
float mOnThreshold = 0.65f
 
fl::vector< float > mPrevBins
 
bool mPreviousVocalActive
 
shared_ptr< const fft::BinsmRetainedBroadFFT
 
shared_ptr< const fft::BinsmRetainedFormantFFT
 
int mSampleRate = 44100
 
float mSpectralCentroid
 
float mSpectralFlatness = 0.0f
 
float mSpectralFlux = 0.0f
 
float mSpectralRolloff
 
float mSpectralVariance = 0.0f
 
SpectralVariance< float > mSpectralVarianceFilter {0.2f}
 
bool mStateChanged = false
 
float mThreshold
 
bool mVocalActive
 
float mVocalPresenceRatio = 0.0f
 
ExponentialSmoother< float > mZcCVSmoother {0.08f}
 
float mZeroCrossingCV = 0.0f
 

Static Private Attributes

static constexpr int MIN_FRAMES_TO_TRANSITION = 3
 

Friends

struct VocalDetectorDiagnostics
 

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