Skip to content

POLY8 0.3.3-experimental: VECTOR's SRC SETUP page 2 beside POLY8 on card builds (#1119) - #1142

Closed
repeat98 wants to merge 13 commits into
mainfrom
claude/poly8-033-vector-setup
Closed

repeat98 wants to merge 13 commits into
mainfrom
claude/poly8-033-vector-setup

Conversation

@repeat98

@repeat98 repeat98 commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

POLY8 0.3.3-experimental: on card builds with POLY8 and VECTOR, POLY8's shared SRC SETUP hooks now ask VECTOR for its page 2, as the base does over USB. This is the POLY8 half of #1119 (also #842/#843). The VECTOR half is #1141.

Related to #1119

What was wrong

In a card composition, POLY8 replaces VECTOR's SRC SETUP hooks at 0x4003a52e and 0x4003cd98 with mr_setup_edit6/mr_setup_draw6. Those map every module row to its backing pool's stock setup and never call VECTOR. So a double tap on SRC on a VECTOR track shows LOOP … TSTR AUTO instead of SEED/SPAN, which is the reporter's "TSTR is in AUTO".

What changes

  • mr_setup_edit6/mr_setup_draw6 ask mr_setup_knob/mr_setup_page first, mirroring the base's mw_setup_edit6/mw_setup_draw6 (same registers and stack slots). This happens only with SRC SETUP's cursor on VECTOR's row and the current track a VECTOR track. The page is then st_setup_page's, and encoders A-F go to st_setup_knob.
  • The encoders follow only a page VECTOR actually drew (setup_shown). With VECTOR 0.2.5, whose st_setup_page still wants row 5, everything stays stock, so the two PRs can merge in either order.
  • USB: nothing changes. The package drops the machine_registry unit (shared-machine.s) and stays 0.3.1's; the lag note is updated.
  • Pins updated: machine-ports.json, machine-recipes.json. Packages are rebuilt in the isolated toolchain and imported, and POLY8's build gates pass (addressing, loaded state, 256 signature masks).

How I checked it

Emulator only (ot_emu from upstream octabam, MKII panel, DSP on, empty scratch card). Images were composed by the site's builder and driven with scripts/capture-module-ui.py. Details are in TESTING.md.

  • main (POLY8 0.3.2 + VECTOR 0.2.5 + FM Synth) reproduces the report.
  • POLY8 0.3.3 + VECTOR 0.2.6 + FM Synth: VECTOR's page 2 shows. Encoder A gives SEED 4, encoder E gives RPT 2, and the cursor on POLY8 shows the stock setup.
  • POLY8 0.3.3 + VECTOR 0.2.5: every screen is pixel-identical to main's. The stock encoders change nothing visible on that row in either build, so the claim that encoders stay stock comes from reading the code, not from observation.
  • Not tested: a unit, MKI, a set with Analog BD (VECTOR on row 7), reload, power cycle.

Refreshed 6 Nov 2026

Merged main (about 500 commits). Packages rebuilt in the isolated toolchain and imported; Analog BD proofs re-exported (all 212 unchanged, only the source-tree hash moves); Tape Echo and Euclid recipes re-pinned; the machine recipes name the merged machine-ports.json and the new shared-machine.s (images unchanged). evidence/performance.json now names 0.3.3 (no new measurement: the render and its limits are 0.3.1's, as 0.3.2 did), which moves the native source hash. Two fixes the old head needed and CI never reached (it stopped at modules:check):

  • the 0.3.3 release-note line was 206 characters (limit 200); split in two;
  • machine_composition.py (the VECTOR/FM bridge) pins shared-machine.c and shared-machine-hooks.s, which 0.3.3 changes, so sdk/tests refused its proofs. Re-pinned; its tests pass. Analog BD's hash-only analog_bd_native_observations.json pins that file for the FLAGS it imports, which are unchanged, so that one pin moves with it. Say if you'd rather that observation record stay untouched.

Checked locally: lint, typecheck, sdk/tests (563, all pass with Node 24), elekloader/compat/pairs, board. Every remaining red is downstream of the record: modules:check, the catalogue still at 0.3.2 (the composer tests: "compiled module versions differ from the catalog"), the release notes being newer than the catalogue, generated module media for the bundle and page tests, and POLY8's native comparison.

Needs you: the approval record

sdk/poly8-build-approval.json binds POLY8's exact source, so modules:generate stops until you approve 0.3.3. I didn't write it. Same shape as 0.3.2's: version 0.3.3-experimental, sourceSha256 06ed886b4ca22c146fcf2436b9794657335888e78718e03cd6ae7a33c86c6c48, the same four waived items (they also cover the doctor's three performance rows), retainedUiVersion 0.2.7-experimental.

Then: npm run modules:generate, npm run module:verify -- poly8 --os <1.40C> (the native builds for this tree are cached on your Mac since 6 Nov; the browser side refuses until the catalogue is at 0.3.3), commit the record, the catalogue and sdk/native-comparisons/poly8.json, and npm run pr:ready.

Whichever of this and #1141 merges second needs a refresh: both rebuild the shared package files and pins.

What the guides lacked: same as #1141, fixed in #1144. Nothing new in the 6 Nov refresh.

🤖 Generated with Claude Code

repeat98 and others added 3 commits November 1, 2026 19:44
…ard builds (#1119)

POLY8's shared SRC SETUP hooks replace VECTOR's in a card composition and
mapped every module row to its pool's stock setup. They now ask VECTOR first
(mr_setup_page, mr_setup_knob), as the base's mw_setup_page/mw_setup_knob do
over USB. Encoders follow only a page VECTOR drew, so VECTOR 0.2.5 keeps the
stock page and encoders. The USB package drops this unit and stays 0.3.1's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
repeat98 and others added 10 commits November 1, 2026 20:06
…and Euclid standalone recipes re-pinned

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or-setup

Generated package assets, Analog BD proofs and standalone recipe pins taken from main; they are rebuilt next. Machine recipes name the merged machine-ports.json and POLY8's 0.3.3 shared-machine.s (images unchanged).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ted asset files

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e tree (212 proofs unchanged)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t; the render and its limits are 0.3.1's)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
machine_composition.py pins shared-machine.c and shared-machine-hooks.s; 0.3.3 changes both (mr_setup_page and
mr_setup_knob, weak VECTOR symbols), so the VECTOR/FM and FM-only composition proofs were refused. Its tests pass on
the new sources. Analog BD's hash-only observations pin machine_composition.py for the FLAGS they import, which are
unchanged; that pin moves with the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or-setup

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@repeat98

Copy link
Copy Markdown
Owner Author

Closing this as superseded. POLY8 0.3.3 changed the card build only (VECTOR's second SRC SETUP page beside POLY8), and since today modwerk.app builds no card firmware (#1451, #1453). On the Modwerk base the base itself opens VECTOR's second page, so there is nothing to carry over.

@repeat98 repeat98 closed this Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant