# OTTO DESIGN SCRATCHPAD
##
## LFO / MODULATION / SYNTH CONTROL
Synth button. Possibly several screens
Envelope button. Screens (possibly):
- Volume envelope
- Modulation envelope
- LFO xN
- reusable elements (widgets)
- Screen change animation (dots?)
- pitch lfo target
## FM:
- Move out envelopes to env. screens
- Encoders:
- Global: Algorithm
- Operator: Ratio + Detune (shift)
- Operator: Volume + Global: All modulators volume/FM amount (shift)
- Global/Operator: Feedback
- Envelopes:
- 4 ADSRs, all visible. Not-selected envelopes are 'minimized' to a line.
- Shift changes a parameter for all envelopes. Perhaps split into only modulators or only carriers.
### Graphics
Very industrial-looking
- Algorithm is a dial or a line of numbers like an old clock where each digit moves independently.
- Ratio: animate the numerator and denominator separately, floats cast to ints, quad in-out.
- Detune is a smaller line with a center marking
- Volume: Bar that fills up. Perhaps with squiggly effect? When shift is held, the fill fades away, leaving vaguely coloured lines for the modulators that you are controlling together.
- Feedback: Some thing that lights up and gets more squiggly
## I2C Protocol:
17 bytes? 1 Command byte, 16 databytes
Commands/Events:
- midi: Data bytes are normal 3 midi data bytes.
- set_led: 1 byte for LED ID, 3 bytes for colors
- clear_all_leds: No data, used on boot, shutdown
- Keypress/Keyrelease/encoderEvent:
- power_off: no data
- battery_level: to be used with battery add-on
- button_state (TODO)
- 1st byte: Command type (Button state, LED events, encoderturn, HW MIDI, USB MIDI, Power info)
- Optionally subdivided into query/response
## LEDs
- Disabled keys are off
- Synth mode:
- All blue
- keyboard leds light up midi post midi fx
- Drum mode:
- All green
- Accent colors on black keys to show active channel
- Colors on white keys to show current and triggered steps