Skip to content

Pattern Sample Locks 0.1.8-experimental: first release, USB only - #1423

Merged
repeat98 merged 3 commits into
repeat98:mainfrom
twwwy:twwwy/pattern-sample-locks-0.1.8-release
Nov 11, 2026
Merged

repeat98 merged 3 commits into
repeat98:mainfrom
twwwy:twwwy/pattern-sample-locks-0.1.8-release

Conversation

@twwwy

@twwwy twwwy commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Module first release: Pattern Sample Locks 0.1.8-experimental (Octatrack MKII, USB only). Owner review requested for the first release.

What changes for players: FUNC + PART opens Sample Locks. Lock writes each chosen Flex/Static track's Part sample into the pattern's sample trigs as SAMPLE locks, and keeps every existing SAMPLE lock unless Replace existing is on. Clear removes all SAMPLE locks on the chosen tracks, manual ones included, and leaves every other lock alone. The page shows per-track counts and YES applies. Playback keeps running, and nothing is saved until the project is saved.

Version and scope: 0.1.8-experimental. The folder moves from sdk/drafts/pattern-sample-locks to sdk/octabam/modules/pattern-sample-locks, with a catalogue row and a USB package (octabam, reconstruction, usbOnly). It needs the Modwerk base over USB, so there is no card form. Release notes are in src/community/module-changelogs/pattern-sample-locks.json.

Compatibility: it claims screen:PART EDIT and has no MIDI path and no stock site shared with another module. It is listed in the USB module set (module-set.test.ts), and the compatibility pairs are regenerated. Known limitations are in the manifest: the unexplained SAMPLE change in one high-load development run, and one long-session case where the menu rows didn't appear until a power cycle.

Evidence:

  • Hardware: functional, reported by twwwy on an MKII on 8 November 2026. The owner's added checks passed: lock two patterns, save, reload, power-cycle, both locks return; clear one, save, reload, it stays clear. The standard USB steps passed too. See TESTING.md's release record.
  • Package: public/octatrack-modules/pattern-sample-locks/0.1.8-experimental.mwrm, sha256 3e13c46fb0054d05f228b045746453e0c50dbbe52fb53b3c229d598ddd7fed79, 10,048 bytes. It is byte-identical to the package tested on the unit.
  • Cycles: worst event 333,805 against the 26,600,000 budget, measured in the emulator and labelled as such. The static bound, stock benchmark and MIDI flood are waived, per the owner's answers recorded in Docs: Sample Locks 0.1.8 owner checks and worst key press #1313.
  • Memory: 10,832 bytes, one instance.
  • The qualification record binds source 800a3ac6a6ac8c523ffa9d19232fc358372bed8697e0b71bbdf77418d62abdcd and image 3e13c46f…. The runtime sources are unchanged since 5a15ac39. The move only corrected the helper scripts' paths to the repository root, and no input pinned by the reconstruction recipe changed.

Attribution: original MIT source by twwwy. The small lettering is reused from twwwy's Beat Slicer under MIT. No stock firmware or extracted tables are included.

What the guides lacked or got wrong: nothing for this module. Along the way, the doctor and two tests didn't recognise usbOnly packages. #1387 and #1388 fixed that as separate Fix: PRs, and both are merged.

  • Changing a module someone else wrote: not applicable, twwwy is the author.
  • I read the guide for its category in docs/module-guides/, and TESTING.md lists what I did not test. An effect module holds one effect.
  • Source and media are mine or properly licensed, with authors and full licence texts kept. Nothing comes from Elektron firmware.
  • Screenshots are real captures of the current module UI. Hardware results are what a named person saw on this exact build; emulator results are labelled as emulator results.

First release, so both automatic-publication boxes stay unticked:

  • Automatically merge and publish my module update after checks pass.
  • I verified the source, licences, UI and qualification reports, including instance isolation and Part/project/reboot persistence where applicable; no required acceptance check is failed or untested.

Reviewer:

  • I checked the cycle and memory reports against the worst case, the attributed hardware evidence against the submitted source and build, and the screenshots, tutorial and access steps against the current UI.

Validation commands and results:

  • npm run pr:ready: Ready on the branch after merging current main.
  • python3 -B scripts/octatrack-module-packages.py --check --stock <OS 1.40C>, with the m68k toolchain and dsp_asm: every Octatrack package identical, Sample Locks 3e13c46f included. Its longest run shared with the stock OS is 11 non-zero bytes, under the limit of 12.
  • npm run module:doctor -- pattern-sample-locks: green.

Note: with dsp_asm present, sdk/tests/test_resident_engines.py fails on a clean main too (the Analog BD engine is 1,004 words, but the test expects 1,009). CI skips that test, and this PR doesn't touch it. I've raised it with the owner on the agent board.

Related to #1088, #1313.

🤖 Generated with Claude Code

twwwy and others added 3 commits November 10, 2026 18:23
Moves the module out of sdk/drafts as the exact package tested on the MKII
(3e13c46f), adds its catalogue entry, USB package, qualification record and
release notes, and points the helper scripts at the new folder depth.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-locks-0.1.8-release

# Conflicts:
#	sdk/catalog.json
#	src/catalog/module-documents.json
#	src/engine/assets/octatrack-module-packages.json
#	src/engine/elekloader/module-set.test.ts
@repeat98
repeat98 merged commit 3dd5972 into repeat98:main Nov 11, 2026
10 checks passed
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.

2 participants