Repository navigation
FRACT three-grain track machine (source and native FLEX support) - #926
Conversation
Three-grain Flex granulator and stereo SPACE, with source, media, resource evidence and the partial exact-build MKII hardware report. Authorship: ex1010. Attribution-only rebuild retains the installed runtime package bytes.
|
Hey, thanks for FRACT. The README and the tests are really thorough. Before the smaller fixes, one bigger thing. Reading Why:
One catch on my side: Smaller things you'll hit either way:
Keep it as a draft until then. Happy to answer questions here. |
An effect processes its slot's audio on the DSP; a module that makes or replaces a track's sound is a machine; one that makes notes is a MIDI generator. The module guides say when to choose each category, the new-module plan settles it first, the PR review checks it, and module:doctor refuses an effect whose performance record prices audio work on the ColdFire (FRACT, #926). Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for pulling #926 and #1108 into one PR, it's much easier to follow this way. FRACT as a track machine with its own START and render is what I was hoping for. The grains go through the frame guard now, and nobody has to turn TSTR off. The native FLEX opt-in leaves every other machine's path exactly as it was. On the base: the room I promised has been on Two small things:
Once this is merged, the listed release comes as its own PR from your side. It needs the package and its row, plus the exact public build on your unit (install, Keep, Undo, removal and a power cycle) recorded in TESTING.md. I'll write the approval record at that point. |
|
Thanks, that all makes sense. Please go ahead with FR:1 in UNBOUND8 is my own separate project (ex1010/toli). The "approved Variant D" reference in Agreed on the sequence: a short run of the regenerated base on a physical unit before this PR merges, then a separate listed-release PR with the package, catalogue entry and exact-public-build install/Keep/Undo/removal/power-cycle evidence in |
The boot's battery restore keeps a FRACT track's twelve bytes while the module is not yet reinstalled (beta finding 24), as SYNTIZ's WV 1-15 did (996abd9). FRACT's uiClaims become [] (its SRC pages come through the base's machine list; ex1010 agreed on repeat98#926), and the draft's README, TESTING, START contract and manifest no longer say main lacks FR:1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
npm run octatrack:base -- --beta --write, then npm run octatrack:module-packages -- --base-only: only requiredBase moved. 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>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…417) main's repeat98#1007 moved the beta base to 462fbd2b. The generated base assets were taken from main and rebuilt on the merged source, so FR 1 sits on main's new base: npm run octatrack:base -- --stock OS.bin --beta --write (base 9b3ba417...), then npm run octatrack:module-packages -- --base-only --stock OS.bin: only requiredBase moved. 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>
|
Thanks for the quick answers, and good to know UNBOUND8 is yours. I've pushed what we agreed to your branch: FR:1 in Could you give that base a short run on your unit? It's the last thing before this merges, and I can't get to mine for a few days. A minute or two is plenty:
Please put what you saw and the base id in TESTING.md, or post it here and I'll add it. If another base change reaches Generated by Claude Code |
Preserve native FLEX opt-in guidance alongside the new stock-level requirement. Record owner-reported sound and Part restoration, independently verified USB cold-boot identities, and the limits of the short private-pair check. All 233 base proof inputs and 64 module recipe source inputs remain identical to the tested pair.
FRACT is a three-grain track machine with its own START and render, centered SIZE, wrapping POS and native FLEX pitch. This PR combines the machine source and the native FLEX reader support from #1108. Author: ex1010.
Ready for maintainer review of the source integration. The short hardware check requested for base
9b3ba417is complete. This remains an unlisted source submission; the listed package/catalogue and its full qualification will be a separate PR. No automatic release is requested.Source and shared support
sdk/drafts/fract-machine, with owned helpers, guarded private builder, licences and tests.known[], with its regression test.compatibility.uiClaimsis[]: SRC MAIN/SETUP use the shared machine list. The machine guide preserves this native FLEX contract alongside main's new stock-level requirement.Short physical check — 5 November 2026
The owner reports that ordinary machines and FRACT play, and that after saving a Part and powering the unit off/on, the track returns as FRACT and plays. Independent USB readback confirms base
9b3ba417, the exact installed set, one FRACT, a new boot session, and confirmed slot 1 generation 7 with no fallback. The previous confirmed slot 0 is intact. Native integrity SELF TEST passed before the power cycle (1/1 modules, no failures); it was not restarted after boot.TESTING.md records the full base/module/set hashes and distinguishes owner observations from USB evidence. Main was merged and the guide conflict resolved after testing; all 233 base-proof inputs and 64 module-recipe source inputs still match the tested pair. No firmware rebuild or further device update was needed.
Validation
On commit
a0dcb680,npm run pr:readysays Ready, exit 0: 343 app test files, 2,816 passed / 2 skipped; 563 SDK tests / 28 skipped; 39 supporting tests / 1 skipped. Typecheck, lint, bundle, catalogue, licences and compatibility pass (11 existing lint warnings). Both tracked-source-only isolated Docker builds pass; Octatrack development verification validates existing artifacts/source inventory/version pins, and all 37 current elemod release exports reproduce. GitHub CI is checked separately after the push.The firmware-free gate compiles 10 C units plus one assembler unit, links at two synthetic origins and rejects obsolete FX/SPACE symbols. Normal/profile/detail checks and the draft-doctor temporary location were verified during consolidation. The current short-check preparation reran the normal source gate, 47 FRACT host tests (4 historical skips), 12 machine-event tests and the exact private pair in the full emulator (native FLEX, three advancing grains, retrigger and nonzero PCM; no loader errors). Emulator evidence is not physical timing qualification.
Source review remains partial: the consolidation checkpoint classified 10/499 parsed chunks, with 0 flags and 10 uncertainty records investigated; 489 parsed chunks plus 10 file blockers remain deferred, with 24 static exclusions. Review scope and investigation. This report adds documentation and merges reviewed main; it does not claim complete source review.
Preview
Original conceptual artwork; illustrative values. SVG, PNGs and MIT reuse notice.
Select FRACT in SRC SETUP.
Choose a loaded FLEX sample.
Play with three grain markers. These are private-prototype emulator captures supplied by ex1010, not exact-public-build hardware evidence. Screenshot and interface rights remain with their respective owners.
Remaining release work
The draft doctor still reports absent listing/package/fingerprint, compatibility pairs and full release qualification. A separate listed-release PR still needs the exact package and catalogue row, install/Keep/Undo/removal/power-cycle evidence, memory/cycle measurements, companion loads and the owner's approval record. Long stress, physical live-trigger deletion and parameter-extreme audio quality remain untested.
Firmware, extracted stock code, samples, audio, memory dumps, card/NVRAM images and private build outputs are excluded. Guide correction: native FLEX opt-in and shared voice-memory regression requirements are documented; this update also preserves main's stock-level requirement. No additional guide gap was found in the short hardware check.