29 bool needsFFT()
const override {
return true; }
30 const char*
getName()
const override {
return "Vocal"; }
31 void reset()
override;
97 float spectralFlatness,
float harmonicDensity,
98 float vocalPresenceRatio,
float spectralFlux,
99 float spectralVariance);
ExponentialSmoother< float > mZcCVSmoother
function_list< void(u8 active)> onVocal
void setSmoothingAlpha(float tau)
float calculateVocalPresenceRatio(const fft::Bins &broadFft)
ExponentialSmoother< float > mEnvelopeJitterSmoother
static constexpr int MIN_FRAMES_TO_TRANSITION
fl::vector< float > mFluxNormBins
shared_ptr< const fft::Bins > mRetainedFormantFFT
friend struct VocalDetectorDiagnostics
ExponentialSmoother< float > mConfidenceSmoother
int mFormantCachedBinCount
void computePCMTimeDomainFeatures(span< const i16 > pcm)
bool mPreviousVocalActive
SpectralVariance< float > mSpectralVarianceFilter
fl::vector< float > mPrevBins
void setSampleRate(int sampleRate) override
bool needsFFT() const override
ExponentialSmoother< float > mAcfIrregularitySmoother
float getConfidence() const
float calculateAutocorrelationIrregularity(span< const i16 > pcm)
float mAutocorrelationIrregularity
void setThreshold(float threshold)
void computeFormantRatio(const fft::Bins &formantFft)
const char * getName() const override
function_list< void()> onVocalStart
function_list< void()> onVocalEnd
void update(shared_ptr< Context > context) override
shared_ptr< const fft::Bins > mRetainedBroadFFT
void computeBroadSpectralFeatures(const fft::Bins &broadFft)
float mVocalPresenceRatio
void fireCallbacks() override
float calculateRawConfidence(float formantRatio, float spectralFlatness, float harmonicDensity, float vocalPresenceRatio, float spectralFlux, float spectralVariance)
~Vocal() FL_NOEXCEPT override
constexpr common_type_t< T, U > max(T a, U b) FL_NOEXCEPT
Base definition for an LED controller.
static float getSpectralVariance(const Vocal &d)
static float getSpectralFlatness(const Vocal &d)
static float getHarmonicDensity(const Vocal &d)
static float getAutocorrelationIrregularity(const Vocal &d)
static float getSpectralCentroid(const Vocal &d)
static float getSpectralFlux(const Vocal &d)
static float getRawConfidence(const Vocal &d)
static float getFormantRatio(const Vocal &d)
static int getNumBins(const Vocal &d)
static int getBroadNumBins(const Vocal &d)
static float getSpectralRolloff(const Vocal &d)
static float getVocalPresenceRatio(const Vocal &d)
static float getEnvelopeJitter(const Vocal &d)
static float getZeroCrossingCV(const Vocal &d)