Commit b084c0b
hwci: audition AMYboard World sketches over the SysEx control API (#1071)
Expand the AMYboard HW CI beyond the built-in reference tones: after the
tones, download real AMYboard World sketches (shorepine's acid_generator,
house_generator, universal_hair, woodpiano), push each onto the board over
the SysEx "write to sketch" flow (docs/amyboard/control_api.md), drive it
with a simple MIDI arpeggio, record it, and spectral-compare to a committed
reference. This covers far more of AMY than the tones — the drum-heavy
generators exercise the path PR #1067's drums regression broke, which the
tone-only test missed.
The World sketches are fetched with stdlib urllib (the Pi CI venv has no
requests) and transferred with proper AK flow control — a stdbuf -oL
`amidi -d` reader on the Pi / mido input callback on mac, one frame in
flight. Without it the larger sketches' chunked transfers overflow the
board's SysEx ring buffer and corrupt sketch.py, which self-heals to the
silent default; the generative sketches recorded as silence until this was
added. The random *_generator sketches still reproduce at ~0.98 spectral
similarity run-to-run (timbre is stable even when the notes aren't), so they
compare with the existing timing/phase-invariant avg-spectrum metric.
References captured on the bench against the rolling amyboard release and
listened-to before commit. Disable the suite with --no-flash's sibling
--no-world.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 9fc8c68 commit b084c0b
6 files changed
Lines changed: 344 additions & 34 deletions
File tree
- .github/workflows
- tulip/amyboard/hwci
- ref
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
9 | 12 | | |
10 | 13 | | |
11 | 14 | | |
| |||
200 | 203 | | |
201 | 204 | | |
202 | 205 | | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
203 | 210 | | |
204 | 211 | | |
205 | 212 | | |
| |||
236 | 243 | | |
237 | 244 | | |
238 | 245 | | |
239 | | - | |
| 246 | + | |
240 | 247 | | |
241 | 248 | | |
242 | 249 | | |
243 | 250 | | |
244 | 251 | | |
245 | | - | |
| 252 | + | |
246 | 253 | | |
247 | 254 | | |
248 | 255 | | |
| |||
0 commit comments