40 bool needsFFT()
const override {
return false; }
41 const char*
getName()
const override {
return "Note"; }
42 void reset()
override;
fl::UISlider sensitivity("Sensitivity", 1.5f, 0.3f, 4.0f, 0.1f)
function_list< void(u8 note, u8 velocity)> onNoteOn
bool needsFFT() const override
void setNoteOnThreshold(float confidenceThreshold)
void setNoteChangeThreshold(u8 semitones)
void setVelocitySensitivity(float sensitivity)
float calculatePitchBend(float hz, u8 note) const
const char * getName() const override
void fireCallbacks() override
float mVelocitySensitivity
bool isNoteActive() const
~Note() FL_NOEXCEPT override
static constexpr u8 A4_MIDI_NOTE
float midiNoteToFrequency(u8 note) const
bool shouldTriggerNoteOn(float confidence, float pitch) const
bool shouldTriggerNoteOff(float confidence, bool voiced) const
function_list< void(u8 note, u8 velocity)> onNoteChange
float getPitchBend() const
u8 getCurrentNote() const
void setPitchDetector(shared_ptr< Pitch > pitchDetector)
void setNoteOffThreshold(float confidenceThreshold)
function_list< void(u8 note)> onNoteOff
void setMinNoteDuration(u32 ms)
shared_ptr< Pitch > mPitchDetector
u8 frequencyToMidiNote(float hz) const
u8 calculateVelocity(float energy, float confidence) const
float getCurrentPitch() const
void update(shared_ptr< Context > context) override
static constexpr float A4_FREQUENCY
bool shouldTriggerNoteChange(u8 newNote, u8 currentNote) const
u8 getLastVelocity() const
shared_ptr< Pitch > getPitchDetector() const
static constexpr u8 NO_NOTE
Base definition for an LED controller.