# Checkpoint A results and device limits Branch: `checkpoint-a-results` → `main` ## What changed Device checkpoint A passed on 2026-11-10 (run by bajdev; pack built from `f36cda3`), which completes M3. This records the results and uses the limits it found. - **Mute groups**: `MaxMuteGroup` 32 → **16**. The device offers none and 1-16. Pads written with 32 still choked, but the device treats the field as 1-16, so mpckit writes only 0-16. - **BPM**: was "any positive number"; now **20-999** (`MinBPM`, `MaxBPM`), the device's tempo control range. All four test tempos (20, 30, 300, 999) worked. - **Bars**: comment updated (64 bars confirmed). `MaxBars` stays 999 because the device maximum is still unknown. - **Pack builder**: `MpckitMute` now uses groups 16 and 1, since 32 is refused. The README notes what the 2026-11-10 run used. - **Docs**: - Format doc: new "Checkpoint A" results in section 7; mute group range added to section 5; open question 1a (tuning limits) closed; question 5 narrowed (extensible header confirmed). - Build plan: results under checkpoint A ("M3 is done"); validation rule for BPM and mute group; the WAV "not yet tested" note and the mute-group and tuning risk rows marked resolved. - `tools/checkpoint-a/README.md`: results table filled in. ## Testing `go vet ./...` and `go test ./...` pass. The tests now check that group 16 and BPM 20/999 are accepted and that group 17, BPM 19.9 and 999.5, NaN and infinity are refused. `go run ./tools/checkpoint-a` still builds the pack.