35void Key::Update(uint32_t now_ms, uint32_t delta_ms,
bool sustain_pedal_on) {
55 return active_lights_factor;
60 return ::AttackRemapFactor(now_ms -
mEventTime);
84 float delta_s = delta_ms / 1000.f;
86 const float kRate = .12f;
93 const float kRate = .05f;
97 float delta_s = delta_ms / 1000.f;
99 const float kRate = 12.0f;
106 const float kRate = 2.0f;
137 color_selector_value);
145 key->
SetOn(velocity, pixel_color_hsv, now_ms);
193 for (
int i = 0; i <
kNumKeys; ++i) {
199 for (
int i = 0; i <
kNumKeys; ++i) {
206 return ::KeyIndex(midi_pitch);
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
void Update(uint32_t now_ms, uint32_t delta_ms)
static const int kNumKeys
void HandleControlChange(uint8_t d1, uint8_t d2)
void HandleAfterTouchPoly(uint8_t note, uint8_t pressure)
void HandleNoteOn(uint8_t midi_note, uint8_t velocity, int color_selector_value, uint32_t now_ms)
static uint8_t KeyIndex(int midi_pitch)
Key * GetKey(int midi_pitch)
void HandleNoteOff(uint8_t midi_note, uint8_t velocity, uint32_t now_ms)
const ColorHSV SelectColor(int midi_note, float brightness, int color_selector_val)
float expf(float value) FL_NOEXCEPT
void SetOff(uint32_t now_ms)
float AttackRemapFactor(uint32_t now_ms)
float IntensityFactor() const
void SetOn(uint8_t vel, const ColorHSV &color, uint32_t now_ms)
float CalcAttackDecayFactor(uint32_t delta_ms) const
void Update(uint32_t now_ms, uint32_t delta_ms, bool sustain_pedal_on)
float VelocityFactor() const
void UpdateIntensity(uint32_t now_ms, uint32_t delta_ms)
float CalcDecayFactor(bool sustain_pedal_on, bool key_on, int key_idx, float velocity, bool dampened_key, float time_elapsed_ms)
float ToBrightness(int velocity)