Repository navigation
Conversation
… refusing When a floating ColdFire cave (Recorder Loop Fix's) did not fit the menu cave window, build_bus.py asserted "past the stock zero run" before its own overflow fallback ran. The browser composer (requestedCaves) puts the cave in the overflow run at 0x400d24d0 and goes on to the real limit, so the two refused the same selection for different reasons and module:verify counted a mismatch (two EVERB selections on main, LOFI2's 13-module ones). Native now places the cave by the browser's rule first (floating_cave_at): the window at the next 128 bytes if it fits whole, else the overflow at the next 4, else refuse. - sdk/infrastructure-verification/floating-cave-overflow-builder.json: 128 native selections built in the pinned image with main's and this build_bus.py (66 ledger-refused ones left out). All 100 images are identical, 10 refusals change only their reason, nothing refused now builds. Chained into the infrastructure tests, with unit tests for the placement rule and its parity with the browser's overflow constants. - Analog BD composition proofs re-exported natively: all 212 identical, only builderSources and moduleSourceTreeSha256 change; verify-analog-bd-native.mjs passes (162 comparisons, 50 refusals, 6 round trips). - Module packages rebuilt in the isolated image and imported (--development): source-commit stamps only. The Tape Echo and Euclid standalone recipes' hashes of the four rebuilt shared asset rows are refreshed (provenance only, as in repeat98#634). With LOFI2's branch, module:verify lofi2 reports 0 mismatches of 130. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In MATRIX the LEV box now always shows where the track plays (MN, PHN, ...) instead of LEV, not only while CUE is held. A detour at 0x4004dcfa replaces the plain LEV label push; the level value while turning, XLV, FUNC's MAIN view, NORMAL and STUDIO stay stock. Gate 117/117; LCD captures in TESTING.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… start Run.rms took each capture's own last 2,000 samples, so two runs that captured a different number of frames after transport start were compared one sample apart (DIR AB 127 failed at +0.057% in combined image OMXATS27; lined up from transport start the two match to 26 LSB). Checks that compare runs (MATRIX MAIN vs stock, the level law, mono vs stereo, DIR) now trim every capture to the shortest before taking the window. Tolerances unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One bus-ramp routine through Y pointers (the first frame runs it twice), pointer-based per-sample ramps and end copy, OR-ed input gain tests, direct address-register moves, a parallel move per bus level, and the destination table packed three list numbers to a word. Sample-identical to the previous build in 26 ot_emu scenarios; worst-case mixdown 4,240 -> 4,194 executed instructions per frame; gate 117/117. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… re-pins, base and packages rebuilt The LEV box label (new detour lev_box_lev at 0x4004dcfa, shared dest_label) and the smaller core-0 DSP (657 + 14 words instead of 727 + 42) change sources the USB base pins. Controller (stock_hook_controllers.py): the label moves the CUE-held path's stock-equal span from offset 58 to 38 of lev_box_cue, and lev_box_lev repeats the same 14 bytes (stock 0x4003ffd8, same SHA-256), so STOCK_COPIES gets both entries (six copies). controller_sites picks up the new detour: 20 sites. The package's stock-free scan passes (10 shared non-zero bytes, fails at 12). Re-pinned manifest.py, matrix_mix.asm and matrix.s in resident_dsp.py, stock_hook_controllers.py and test_analog_bd_part_fence.py. The resident Matrix unit is 675 words (was 773). Base rebuilt from main a59677e with the beta flags (--write; main's committed base reproduced byte for byte here first): package a9b5fe45, identity 3e3e3de1, browser .bin = build_core.py .bin ca8b457f. The lease entries did not move, so Analog BD's and Sidechain's package bytes are unchanged; packages relinked, the other base-bound packages only change requiredBase. New trust rows for Output Matrix's package e2df2fbf. Version 0.1.1-experimental (catalog, manifest), changelog entries. The qualification record stays 0.1.0's until the USB hardware report exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ld, development import) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The author's panel checks on a RAM-booted beta base built from this source (MAIN.raw 5ca0afbf, package e2df2fbf): MATRIX on and off, the always-on LEV label, routing to MAIN, CUE, PHONES, a mono jack and OFF, and MIX as the PHONES level, all passed. Qualification moves to 0.1.1 with the current DSP figures (275 instructions/sample; 657 + 14 P words) and evidence/usb-hardware.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The capture plan rerun on a static 0.1.1 image (mainos a9d5e3b8): the four screenshots are pixel-identical to 0.1.0's (the always-on label equals the CUE-held one); records and captions updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rformance record - module-source and dsp-package tests: Output Matrix's version and its 671-word core-0 package. - Tape Echo and Euclid standalone recipes: the four rebuilt shared asset rows' hashes (provenance only, as in repeat98#634 and repeat98#645). - evidence/performance.json for 0.1.1: 275 executed instructions per sample; the 32 s stress run was made on 0.1.0 and is not repeated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….1.1 Re-exported natively (export-composition-proofs.py --suite analog-bd --static-stock --vendored-sdk): all 212 proofs identical; only moduleSourceTreeSha256 changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…claude/output-matrix-lev-label-usb # Conflicts: # CHANGELOG.md # sdk/machines/octatrack/module-adapters/standalone-recipes.json # src/engine/assets/analog-bd-composition-proofs.json # src/engine/assets/bootstrap-package.json # src/engine/assets/coldfire-packages.json # src/engine/assets/descriptor-recipes.json # src/engine/assets/dsp-packages.json # src/engine/assets/menu-recipes.json # src/engine/assets/module-build.json # src/engine/assets/platform-writes.json # src/engine/assets/requested-packages.json # src/engine/assets/resident-dsp.json # src/engine/assets/rom-packages.json # src/engine/assets/usb-audio-packages.json # src/engine/assets/utility-packages.json
…es and recipe provenance Packages rebuilt in the isolated image on the merged tree and imported (--development); Tape Echo and Euclid standalone recipes name the four rebuilt shared asset rows' hashes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-exported natively: all 212 proofs and builderSources identical; only moduleSourceTreeSha256 changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
module:verify output-matrix: 52 native module-owned images match, 74 matching refusals, 0 mismatches of 126 selections (with repeat98#682's builder fix; without it the two 11-module selections refused for different reasons). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ce record Only evidence/performance.json changed since the tested commit; manifest.py, matrix.s, matrix_mix.asm and verify.py are as tested. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
module:verify rewrote the file with POLY8's entry in another position (no content change); main's order keeps the committed base, the one tested on the MKII, unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The author flashed the tested base: a power cycle kept MATRIX, the routing and all seven installed modules. After it the LEV box showed stock's split bars until CUE redrew the page (display only), recorded as a limitation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
repeat98
added a commit
that referenced
this pull request
Oct 19, 2026
…e-0 DSP, on the USB base (#687) (#705) npp1993's Output Matrix 0.1.1-experimental from #687, merged with main (including E-Verb 0.1.2). The LEV box is always labelled with the track's destination; the core-0 DSP is 657 + 14 words with the same output; the beta base (3e3e3de1) and the controller package are rebuilt for it. Merge: E-Verb 0.1.2 and this change touched different rows of the same compiled package files; each merged file is main's plus this change's rows, and module-build.json, the Analog BD proofs and the Tape Echo and Euclid standalone recipes carry the merged hashes. Release notes now say the DSP code ran on hardware over USB inside the base (card: emulator only), that this publishes the new base, and that the 0.1.1 card image, Part/project reload, MASTER TRACK and STUDIO were not checked on the unit. Co-authored-by: Nathaniel Pawelczyk <nathaniel.pawelczyk@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Owner
|
Thanks @npp1993. This is merged as #705: your commits with current I also corrected three things in the release notes:
Closing in favour of #705. I'll follow the publish run. Generated by Claude Code |
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.
Output Matrix 0.1.1-experimental, on the USB beta base: the always-on LEV label and a smaller core-0 DSP. Builds on #682 and contains its commit until that merges.
What changes for users
lev_box_levat0x4004dcfa, sharingdest_labelwith the CUE-held path.USB base and package
manifest.py,matrix.sandmatrix_mix.asminresident_dsp.py,stock_hook_controllers.pyandtest_analog_bd_part_fence.py.lev_box_cue's stock-equal span from offset 58 to 38, andlev_box_levrepeats the same 14 bytes. That makes 20 sites and six stock copies, with new trust rows for packagee2df2fbf…. The package's stock-free scan passes (10, fails at 12).3e3e3de1…, browser.bin=build_core.py.binca8b457f…. On this machine the same command first reproduced main's committed base byte for byte. The lease entries didn't move, so Analog BD's and Sidechain's package bytes are unchanged; the other base-bound packages only changerequiredBase.Checked
MKII over USB, 16 Oct 2026. I ran the panel checks; the base was RAM-booted and the package installed over USB by Claude Code. Base MAIN.raw
5ca0afbf…, packagee2df2fbf…. Five checks, all passed:Details are in
evidence/usb-hardware.md. The first 10 s trial's rollback was refused once withneeds-recoveryand completed by the base without a further command, which is the caseoctatrack-link.tsretries.module:verify output-matrix: 52 images match, 74 matching refusals, 0 mismatches of 126. Without Fix: native builder places a floating cave in the overflow run before refusing #682 two 11-module selections refused for different reasons, which is that PR's bug.Packages: rebuilt in the isolated image and imported (
--development). Tape Echo's and Euclid's standalone recipes name the four rebuilt shared asset rows' hashes (provenance only, as in Fix: write Formatter.PLAIN's zero formatter words without a stepped slot (#626) #634 and BBD Delay 0.1.1-experimental: over USB for beta testers, stop kill, cheaper worst case #645).Analog BD composition proofs: re-exported natively; all 212 and
builderSourcesidentical, onlymoduleSourceTreeSha256changes.OT UI captures: re-run on a static 0.1.1 image; pixel-identical to 0.1.0's.
npm run pr:ready: Ready.Limits
evidence/performance.jsonwas made on 0.1.0 and not repeated.module:verifyrewrotechooser-metadata.jsonwith POLY8's entry in another position and no content change. I kept main's order so the committed base stays the one tested on the unit.🤖 Generated with Claude Code