Skip to main contentCrate midi_controller
Source pub use config::DefaultConfig;pub use config::DefaultPreset;pub use controller::DefaultController;pub use state::DefaultPresetState;pub use state::DefaultPresetStateStore;
- action
- Action executor: converts preset button actions into raw MIDI bytes.
- config
- Pedalboard configuration types shared between CLI and firmware.
- controller
- Unified controller: single entry point for all input processing.
- encoder_accel
- Encoder acceleration: converts time intervals between detents into step multipliers.
- engine
- Preset engine: processes abstract input events against preset config.
Pure business logic — no hardware dependencies.
- led
- LED ring renderer: spatial patterns + temporal modifiers.
- long_press
- Long-press detection: distinguishes short press from long press using timestamps.
- property_exchange
- Minimal MIDI-CI Property Exchange (PE) framing.
- state
- Per-preset runtime state: tracks toggle/cycle/encoder state per preset
and generates recall MIDI on preset switch.
- tap_tempo
- Tap tempo state machine: computes BPM from press intervals.