Repository navigation
Improvement: the site builds Rytm sets on Modwerk's base, send-bus only with a send effect - #1085
Conversation
…heir packages The plain variant is core-ar2 0.7's source alone (e558ad22, repeat98#1047's identity), so a build with no send effect pays none of the bus's cost; send-bus (0c92aa45, unchanged) is the default. Both packages are stock-free: sites carry a hash and Modwerk's bytes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd effect The catalogue serves the base's plain and send-bus packages (record elekloader-modwerk-base-analog-rytm-mkii-2026-10-30.json); machine-build.ts cuts the Rytm's cores to the variant the selection needs: send-bus when it holds a module listed in fx-ids.json, plain otherwise. irpina's core-ar2 0.7 stays as machine:base's reference. rytm-base.test.ts checks the packages' interface in CI and, with the owner's OS, builds CHORUS through the site's builder with Loop Sync's storage kept in place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, the study made this easy to decide.
|
|
One thing has changed since my last comment: Rytm builds can be downloaded since #1190 (3 Nov). So this PR now changes what people actually flash. Every set without a send effect moves from irpina's core-ar2 0.7 to the plain variant, and as your description says, nobody has flashed a plain-only set yet. Send-bus is the base you already ran in MB02, so plain is the one I'm missing. Before I merge, could you flash one plain build from this branch on your Rytm, Loop Sync + Filter Hz ( I'll merge |
|
The plain-variant run you asked for is done on my Rytm (4 November), and the results are in the description under On a unit, plain variant, 4 November: the Loop Sync + Filter Hz build from this branch (base Generated by Claude Code |
main's new Rytm library plans (Pipo Loop, Sample RATE, Silent Pad+Trig, Chromatic Aftertouch Fix, Quick Velocity+Aftertouch Assign, Control In Actions, Audio In FX) carry no send effect, so they plan on the plain base; the README keeps main's note that Rytm downloads are on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ranch # Conflicts: # src/engine/elekloader/digi-build.test.ts
Live Rec Retrig Fix's plan carries no send effect, so it plans on the plain base like the other Rytm library modules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o the Rytm base FX clock branch
…ts, rebuilt on main after repeat98#1085 npm run machine:base -- analog-rytm-mkii --stock <OS 1.74> --write: plain stays e558ad22 byte for byte; send-bus gets this PR's identity (clock, TRK and KIT menu fixes, 32 KB work area) and replaces 0c92aa45 in sdk/imports/packages and vendor/elekloader/catalog. machine.json and the elekloader README carry the new send-bus budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Step 3 of the Rytm base plan studied on #878 ("Rytm: moving the site's builds to the Modwerk base", 29 October): the site builds Analog Rytm MKII sets on Modwerk's own base instead of irpina's unchanged
core-ar2-0.7.elemod, so the send effects can link there. CHORUS (#1060), FLANGER (#1061) and PHASER (#1062) are merged, but they are still in_submissions/, because irpina's core cannot link them.mw_fxcollection and nomw_fx_rate,mw_fx_onepoleormw_fx_tempoexports, so the merged send effects could not be offered. Switching every build to the base with the bus would have cost every Rytm set about 83 KB of the 128 KiB mod area and 62 of the 64 kit storage bits, even with no effect.base.json'svariantsnamessend-bus(the default, withadd: identity0c92aa45…, unchanged since Improvement: the Rytm base carries the send bus, and send effects join its FX list #1057) andplain(core-ar2 0.7's source alone:e558ad22…, Improvement: Modwerk builds its own Analog Rytm MKII base from core-ar2 0.7's source #1047's identity).npm run machine:basebuilds both, checks both against irpina's release (reference.keeps), and records both inbase-binding.json'svariants;--outwrites each under its catalogue name.sdk/imports/packages/modwerk-base-analog-rytm-mkii/andvendor/elekloader/catalog/, pinned by the recordsdk/imports/elekloader-modwerk-base-analog-rytm-mkii-2026-10-30.json(source: this branch's commit 42df786). Stock-free, as irpina's: each site has astock_sha256and Modwerk'snewbytes,copiedis empty, and the build fills stock bytes from the user's OS.src/engine/elekloader/machine-build.ts):selectionCatalogcuts the Rytm's cores to the variant the selection needs, by identity:send-buswhen it holds a module listed infx-ids.json(whichmodules:checkalready ties to every module contributing tomw_fx),plainotherwise.planBuildandprepareBuilduse it; a catalogue without that variant plans no core, so the build fails closed. The kit is unchanged.machine:basechecks the base against.machine.json's toolchain and budgets (plain 11,716 B; send-bus 95,171 B), the interface's status, the MACHINE_RECIPE row (the Modwerk base is the release authority) and Base piece, the Rytm guide and base guide, the vendored kit README.cb0f99d6…e123; Homebrew m68k-elf GCC 16.2.0 + binutils 2.47; kit 0.7.0):npm run machine:base -- analog-rytm-mkii --stock …rebuilds both identities byte for byte.src/engine/elekloader/rytm-base.test.ts, in CI: each variant is served and pinned by its identity; only send-bus hasmw_fxand the three exports, and only it keeps storage; every Rytm module (library and_submissions) whosebuild.jsoncontributes tomw_fxis infx-ids.jsonand plans on send-bus.MODWERK_RYTM_STOCK, andMODWERK_RYTM_FX=build-elemod-packages.mjs --draftsoutput for chorus, flanger and phaser): through the site'sprepareBuildandbuildWithLockand the kit's worker logic, three whole builds, each writing a.syx:e558ad22):test.syx2,063,904 B;0c92aa45): 2,075,936 B;digi-build.test.ts: Filter Hz, Loop Sync and an empty set plan on plain; a set with CHORUS plans on send-bus, and fails closed when the catalogue lacks it.test_machine_base.py: each variant stages with or withoutadd, and the binding records each.npm run pr:ready: Ready.TEST-1085-PLAIN-LoopSync-FilterHz.syx, 2,063,904 B, sha256e7bd53027cd86f1e11ebf2c6590b75756e7aefc38d316b4268831b78a866cc62, made through the site'sprepareBuildandbuildWithLockfrom this branch (d2aa0789) and the owner's stock OS 1.74 (cb0f99d6…e123).e558ad22(core 0.7), Filter Hz 1.2.0 (95e455cb…) and Loop Sync 0.2.0-experimental (2dd3d671…, the version the library serves). The three packages are byte-identical to this branch'svendor/elekloader/catalog/. Its storage layout (0x44390c05) differs from his playing OS's, so he tested on a new empty project and saved nothing._submissions/to the library, each alone, with its package and record (needs_core: "0.7"): the configurator then offers them, on send-bus.scripts/build-elemod-packages.mjs --draftsfails today on two Rytm drafts of other authors (midi-mute'sresources.load.method: "measured", andretrig-grid0.2.0's evidence naming 0.1.0), so the three effects had to be compiled in a copy without them.base-binding.json.base-binding.json'svariants, as the Octatrack's USB Audio layouts are, and let the site pick by selection (docs/MACHINE_RECIPE.md). The Rytm base guide now says how a new identity is published (sdk/machines/analog-rytm-mkii/elekloader/README.md).changelog/2026-10-30-rytm-site-modwerk-base.md.🤖 Generated with Claude Code