metronome/rust/pm-kit
Me Here 0c788b1153 pm-kit: live metronome — real tracks, clock, audio clicks, controls, view toggle
The firmware is now an actual metronome (not a static screen):
- embedded-alloc heap → parses tracks with track-format on-device.
- 4 built-in grooves; clock-driven from the Timer; audio clicks on the master
  lane's hits via the GP13 PWM (accent louder/longer), short edge-triggered pulses.
- Controls: A = play/stop, B = grid/notation view; joystick (rotated 90° CCW)
  up/down = tempo +/-, left/right = prev/next groove.
- Renders draw_metronome or draw_notation; a cheap draw_progress strip animates the
  bar position every frame (full redraw only on change → no flicker).
- Robust: all input reads use unwrap_or (no panics in the loop) — addresses the
  self-test crash (likely an ADC unwrap on WouldBlock) and the continuous-buzzer.

Compile + simulator verified (grid renders all 4 grooves incl. triplets/polymeter).
NEEDS ON-DEVICE CHECK: audio timing, joystick directions, and that the crash is gone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 00:18:28 -05:00
..
.cargo Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00
src pm-kit: live metronome — real tracks, clock, audio clicks, controls, view toggle 2026-06-01 00:18:28 -05:00
.gitignore Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00
build.rs Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00
build.sh Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00
Cargo.toml pm-kit: live metronome — real tracks, clock, audio clicks, controls, view toggle 2026-06-01 00:18:28 -05:00
memory.x Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00
uf2.py Rust port Stage 3 milestone 1: pm-kit boot-proof blink (RP2350) 2026-05-31 20:34:46 -05:00