docs(rust-port): mark MIDI clock in done

This commit is contained in:
Me Here 2026-06-03 16:08:29 -05:00
parent d035ee2a06
commit dce51866d2

View file

@ -202,10 +202,15 @@ cycles the end-action fires — `end=stop` stops, `end=next`/`end=+N` advances.
Start/Stop on play/stop (button or live-sync), so a DAW can slave its tempo to the Grid. Queued on Start/Stop on play/stop (button or live-sync), so a DAW can slave its tempo to the Grid. Queued on
`tx_q` like everything else (CIN `0xF` single-byte packets). `tx_q` like everything else (CIN `0xF` single-byte packets).
**MIDI clock in — ✅ DONE** (default on): `feed_midi` handles `0xF8` (EMA of the inter-tick interval →
derived BPM, 5300 clamp + jitter reject), `0xFA`/`0xFB` start, `0xFC` stop. While slaved, the ramp
and our own clock-out are suppressed (no feedback); the lock drops after a >1 s gap. Only engages
when a host actually sends clock (the editor doesn't), so it's inert in normal editor use.
**Still deferred** (these need persistent storage the Rust build doesn't have yet — there's no **Still deferred** (these need persistent storage the Rust build doesn't have yet — there's no
`CIRCUITPY` drive; would need a flash KV layer, a separate milestone): on-device practice log, `CIRCUITPY` drive; would need a flash KV layer, a separate milestone): on-device practice log,
`settings.json`, SLSYNC/LOGSYNC (`0x44`/`0x45` set-list + log merge). Also: **MIDI clock in** (slaving `settings.json`, SLSYNC/LOGSYNC (`0x44`/`0x45` set-list + log merge). Also: firmware push (intended:
the Grid to an external clock), firmware push (intended: UF2-flashed now), optional piezo. UF2-flashed now), optional piezo.
### Stage 4 — native A/B + secure boot ### Stage 4 — native A/B + secure boot
Replace the `.mpy`-level A/B hack (`code.py` loads `app.mpy`, rolls back to `app.bak`) with the Replace the `.mpy`-level A/B hack (`code.py` loads `app.mpy`, rolls back to `app.bak`) with the