25 const float clamped = std::clamp(normalized, 0.0f, 1.0f);
26 return static_cast<uint8_t
>(std::lround(clamped * 127.0f));
32 knob.on_change = [&bus, channel, cc](
float v) {
39 fader.on_change = [&bus, channel, cc](
float v) {
47 slider.
on_change = [&bus, channel, cc](
float v) {
60 toggle.on_toggle = [&bus, channel, cc](
bool on) { bus.
send_cc(channel, cc,
on ? 127 : 0); };
65 uint8_t note, uint8_t velocity = 100) {
66 button.
on_toggle = [&bus, channel, note, velocity](
bool on) {
76 uint8_t velocity = 100) {
77 toggle.on_toggle = [&bus, channel, note, velocity](
bool on) {
Definition midi_control_bus.hpp:27
bool send_cc(uint8_t channel, uint8_t cc, uint8_t value)
Convenience senders (UI thread).
Definition midi_control_bus.hpp:34
bool send_note_on(uint8_t channel, uint8_t note, uint8_t velocity)
Definition midi_control_bus.hpp:37
bool send_note_off(uint8_t channel, uint8_t note)
Definition midi_control_bus.hpp:40
Definition widgets.hpp:1337
Definition widgets.hpp:901
Definition widgets.hpp:1750
std::function< void(float)> on_change
Fired when the value changes — from drag, click, or set_value().
Definition widgets.hpp:1972
Definition widgets.hpp:2036
Lock-free publication of MIDI events from a UI control to the audio thread.
Definition accessibility_provider.hpp:65
uint8_t to_cc_value(float normalized)
Definition midi_binding.hpp:24
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
void bind_midi_note(ToggleButton &button, midi::MidiControlBus &bus, uint8_t channel, uint8_t note, uint8_t velocity=100)
Toggle button → MIDI note: note-on while on, note-off when off.
Definition midi_binding.hpp:64
void bind_midi_cc(Knob &knob, midi::MidiControlBus &bus, uint8_t channel, uint8_t cc)
Knob → MIDI CC.
Definition midi_binding.hpp:31
@ fader
Definition design_ir.hpp:261
@ toggle
Definition design_ir.hpp:272
@ knob
Definition design_ir.hpp:260
@ v
Definition input_events.hpp:41
@ on
Definition accessibility.hpp:132