Repository navigation
Output Matrix 0.1.1-experimental: always-on LEV label and smaller core-0 DSP, on the USB base (from #687) - #705
Merged
Merged
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 #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 #634 and #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
…ecipe 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 #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>
…blishes the base Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SakBf5zGyZY61TAzvKCKHC
E-Verb 0.1.2 (#703) and this PR changed different rows of the same compiled package files, plus the moduleVersions map. Each merged file is exactly main's file with this PR's changes applied (checked path by path), so it is what the compiler writes for the merged tree; the sourceCommit stamps are this PR's. module-build.json and the Analog BD proofs carry the merged tree's fingerprint (moduleSourceFingerprint) and file hashes, and the Tape Echo and Euclid standalone recipes hash the four merged asset files. CI's publish rebuilds the packages from source and refuses them unless they match. CHANGELOG.md keeps this PR's entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SakBf5zGyZY61TAzvKCKHC
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.
This is @npp1993's #687 with current
mainmerged in, including E-Verb 0.1.2 (#703). Their commits are unchanged; I couldn't push to their fork. The changes themselves are theirs: the LEV box always shows the track's destination, the core-0 DSP is smaller (657 + 14 words, same output), and the beta base and controller package are rebuilt for it. Full description and evidence are in #687.What the merge adds
moduleVersionsmap).module-build.jsonand the Analog BD proofs carry the merged tree's fingerprint (moduleSourceFingerprint) and file hashes.CHANGELOG.md: keeps this PR's base entry.src/community/module-changelogs/output-matrix.json):What the owner accepts by merging
Checked:
npm run check -- --base origin/main(2,367 tests) andnpm run pr:ready(Ready) on the merged tree.Supersedes #687.
Generated by Claude Code