65 void getKeyName(
char* buffer,
size_t bufferSize)
const;
76 return !(*
this == other);
89 bool needsFFT()
const override {
return true; }
90 const char*
getName()
const override {
return "KeyDetector"; }
91 void reset()
override;
KeyDetector() FL_NOEXCEPT
shared_ptr< const fft::Bins > mRetainedFFT
void normalizeChroma(float *chroma)
bool needsFFT() const override
void setConfidenceThreshold(float threshold)
float correlateWithProfile(const float *chroma, const float *profile, int rootNote)
static const float MAJOR_PROFILE[12]
~KeyDetector() FL_NOEXCEPT override
vector< float > mChromaHistory[12]
function_list< void()> onKeyEnd
void extractChroma(const fft::Bins &fft, float *chroma)
void setAveragingFrames(int frames)
float mMinorProfileStdDev
function_list< void(const Key &key)> onKeyChange
float mMajorProfileStdDev
static const float MINOR_PROFILE[12]
void updateChromaHistory(const float *chroma)
void fireCallbacks() override
const Key & getCurrentKey() const
function_list< void(const Key &key)> onKey
float mConfidenceThreshold
void update(shared_ptr< Context > context) override
Key detectKey(const float *chroma, u32 timestamp)
void initializeProfileStats()
const char * getName() const override
void setMinDuration(u32 ms)
void getAveragedChroma(float *chroma)
fl::u64 time() FL_NOEXCEPT
Alias for millis64() - returns 64-bit millisecond time.
Base definition for an LED controller.
Key(u8 root, bool minor, float conf, u32 time)
const char * getRootName() const
bool operator!=(const Key &other) const
const char * getQuality() const
bool operator==(const Key &other) const
void getKeyName(char *buffer, size_t bufferSize) const