hwci: record generative sketches clean; fix cross-sketch audio contamination#1100
Merged
Conversation
…ination Two contamination bugs made World-suite scores unstable and misleading: - The previous sketch's loop() keeps executing while the next sketch's SysEx transfer streams in, re-arming sequencer events after our amy.reset() — so e.g. house_generator kept playing underneath the woodpiano recording (its 0.44-0.74 'failures' were never a bad ref: with the bleed fixed woodpiano scores 1.0000 against the UNCHANGED ref). load_world_sketch now stops the sequencer transport (zY0Z), kills the running sketch (amyboard.stop_sketch()) and clears held notes before resetting and transferring. - The board boots into its SAVED sketch, which also answers MIDI and contaminated the built-in-tones recording on warm (--no-flash) runs (hwci_basic 0.9997 -> 0.6456 when woodpiano was the saved sketch). The same silencing now runs before the basic test. Also per review-by-ear: generative sketches (acid/house) are recorded as-is, without the A-minor MIDI arpeggio on top — the pattern now only drives non-generative patch sketches (woodpiano), which still proves the USB-MIDI note path. acid/house references re-captured from the bench accordingly (their old refs had the arpeggio baked in; they also predate the Gamma9001 kit switch to patch 384). Verified on the bench against current main firmware: hwci_basic 0.9997 / acid 0.9698 / house 0.9476 / woodpiano 0.9999 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bwhitman
added a commit
that referenced
this pull request
Jul 7, 2026
Comment-only change to re-trigger the preview -> HW CI chain now that main has the amy#804 revert, the Tulip SysEx-ring SPIRAM fix (amy#820), and the harness contamination fixes + new refs (#1100). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🔌 AMYboard PR previewEditor + flasher: https://amyboard-pr-1100.vercel.app/editor/ This preview bundles this PR's firmware — its flasher only flashes this build (not the release). Rebuilt on every push; removed when the PR closes. The hardware CI has been kicked off and should return within a few minutes, stand by! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the two audio-contamination bugs behind today's flaky World-suite scores, and changes the stimulus per review-by-ear:
loop()keeps running during the next sketch's SysEx transfer and re-arms sequencer events afteramy.reset()— house_generator was audibly playing under the woodpiano recording.load_world_sketchnow stops the transport (zY0Z), kills the sketch (amyboard.stop_sketch()) and clears notes before transferring. woodpiano's ref was never stale — with the bleed fixed it scores 1.0000 against the unchanged checked-in ref.Bench verification against current main firmware (amy 145e3d8):
🤖 Generated with Claude Code