Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/verification/2026-11-07-rytm-slice-loop-library.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Analog Rytm MKII: Slice Loop 1.0.0 in the library — 7 November 2026

Iced-Cream's Slice Loop, in `_submissions/` since #937, moves into the library as 1.0.0 (same version, same code), with the author's OK in [#1291](https://github.com/repeat98/modwerk/pull/1291#issuecomment-6706064243). It is the elemod port of MrScruff's rytm-mods `0012-slice-loop`: SLICE LOOP in the track menu fills an empty sound track with sixteen trigs, each locked to the next sixteenth of the sample. Its source-only OS 1.74 package is pinned in `sdk/imports/elekloader-slice-loop-2026-11-07.json` (commit `983fe2ec`).

- **Build:** `scripts/build-elemod-isolated.sh` in `modwerk-source-tools` (image `28323550…`, from `sdk/build/Dockerfile`, unchanged since 5 October) from a clean checkout of `b307442d`, the move alone. The export reproduces with `package-elemod-recipe.mjs --check`.
- **Package:** `slice-loop-1.0.0-os1.74.elemod` `8e9a7d2e…93bd`, fetched into the vendored catalogue through its pin by `npm run elekloader:update -- --overlay`. 752 bytes of `.run`, 1 site, no `.bss`. Its `.run`, sites, symbols and relocations equal rytm2_mods v1.2's release object (`b1b8f51b…1cf9`); where that object takes 46 runs (440 bytes) from the stock OS at link time, this package carries the bytes compiled from the source, as Filter Hz's package does.
- **Code:** unchanged from the submission; `sdk/imports/rytm2-mods-slice-loop-afd461d.json` names module-relative paths, so its hashes stand as recorded. The move adds the package, its pins and the release notes, and TESTING.md's library package section.
- **Linking:** `planBuild` plans it beside Env Reset Amp and Quick Trig Conditions on the plain base (`src/engine/elekloader/digi-build.test.ts`).
- **On a unit:** the author's Analog Rytm MKII ran it in R8T2 and C3A4 (beside other rytm2_mods ports), SXH4 (beside the other five Modwerk submissions) and SLH4 (alone), all with core-ar2 0.3 or earlier, as [TESTING.md](../../sdk/analog-rytm-mkii/modules/slice-loop/TESTING.md) records. This package's bytes have not been linked against a stock OS file or flashed from the site, and it has not run on the Modwerk base (core-ar2 0.7).
4 changes: 2 additions & 2 deletions sdk/analog-rytm-mkii/modules/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Analog Rytm MKII modules

Each folder here is a library module for the Analog Rytm MKII on OS 1.74 and core-ar2 0.7 (modules built for 0.3 link with it, but for mods that patch a page's entry or a page key's list themselves: see the [SDK guide](../../machines/analog-rytm-mkii/README.md#parameter-pages-core-04-and-later)): [CHORUS](chorus/), [Pad Pressure Fix](chromatic-aftertouch-fix/), [Control In Actions](control-in-actions/), [Ctrl All](ctrl-all/), [Env Reset Amp](env-reset-amp/), [Filter Hz](filter-hz/), [FLANGER](flanger/), [Live Rec Retrig Fix](live-rec-retrig-fix/), [Loop Sync](loop-sync/), [Main RMS](main-rms/), [PHASER](phaser/), [Pipo Loop](pipo-loop/), [QPERF](qperf/), [Quick Trig Conditions](quick-fill-trig-condition/), [Quick Velocity+Aftertouch Assign](quick-velocity-aftertouch-assign/), [Sample RATE](sample-rate/), [Silent Pad+Trig Settings](silent-pad-trig/), [Temp Save](temp-save/) and [WAVEFOLDER](wavefolder/). CHORUS, FLANGER, PHASER and WAVEFOLDER are send effects: a set holding one builds on the Modwerk base's send-bus variant ([Send effects](../../machines/analog-rytm-mkii/README.md#send-effects)). A new module comes here with its pinned package and is live once merged ([Create a mod](../../machines/analog-rytm-mkii/README.md#create-a-mod)); `_submissions/` holds older submissions and takes no new modules or changes. Loop Sync 0.2.0-experimental entered on the owner's approval with emulator evidence for its source; its [TESTING.md](loop-sync/TESTING.md) records what is still open. Pipo Loop, Sample RATE and Silent Pad+Trig Settings entered on 2 November 2026, on the owner's approval with the author's unit reports; each TESTING.md records what is still open. Quick Trig Conditions (was Quick Fill Trig Condition, merged into `_submissions/` in #1149) entered with 0.2.0-experimental on 4 November 2026, with the author's unit report on its build FC09.
Each folder here is a library module for the Analog Rytm MKII on OS 1.74 and core-ar2 0.7 (modules built for 0.3 link with it, but for mods that patch a page's entry or a page key's list themselves: see the [SDK guide](../../machines/analog-rytm-mkii/README.md#parameter-pages-core-04-and-later)): [CHORUS](chorus/), [Pad Pressure Fix](chromatic-aftertouch-fix/), [Control In Actions](control-in-actions/), [Ctrl All](ctrl-all/), [Env Reset Amp](env-reset-amp/), [Filter Hz](filter-hz/), [FLANGER](flanger/), [Live Rec Retrig Fix](live-rec-retrig-fix/), [Loop Sync](loop-sync/), [Main RMS](main-rms/), [PHASER](phaser/), [Pipo Loop](pipo-loop/), [QPERF](qperf/), [Quick Trig Conditions](quick-fill-trig-condition/), [Quick Velocity+Aftertouch Assign](quick-velocity-aftertouch-assign/), [Sample RATE](sample-rate/), [Silent Pad+Trig Settings](silent-pad-trig/), [Slice Loop](slice-loop/), [Temp Save](temp-save/) and [WAVEFOLDER](wavefolder/). CHORUS, FLANGER, PHASER and WAVEFOLDER are send effects: a set holding one builds on the Modwerk base's send-bus variant ([Send effects](../../machines/analog-rytm-mkii/README.md#send-effects)). A new module comes here with its pinned package and is live once merged ([Create a mod](../../machines/analog-rytm-mkii/README.md#create-a-mod)); `_submissions/` holds older submissions and takes no new modules or changes. Loop Sync 0.2.0-experimental entered on the owner's approval with emulator evidence for its source; its [TESTING.md](loop-sync/TESTING.md) records what is still open. Pipo Loop, Sample RATE and Silent Pad+Trig Settings entered on 2 November 2026, on the owner's approval with the author's unit reports; each TESTING.md records what is still open. Quick Trig Conditions (was Quick Fill Trig Condition, merged into `_submissions/` in #1149) entered with 0.2.0-experimental on 4 November 2026, with the author's unit report on its build FC09.

Temp Save (merged into `_submissions/` in #1116) entered with 0.1.0-experimental on 5 November 2026, with the author's unit report on its build TS09. Env Reset Amp (merged into `_submissions/` in #934) entered with 1.0.0 on 7 November 2026, with the author's unit reports on its builds R8T2, C3A4, SXH4 and ERH4. Ctrl All (merged into `_submissions/` in #936) entered with 1.2.0 on 7 November 2026, with the author's unit reports on its builds R8K4, C3A4, SXH4 and CAH4. Main RMS (merged into `_submissions/` in #935) entered with 1.0.0 on 7 November 2026, with the author's unit reports on its builds R8T2, C3A4, SXH4 and MRH4.
Temp Save (merged into `_submissions/` in #1116) entered with 0.1.0-experimental on 5 November 2026, with the author's unit report on its build TS09. Env Reset Amp (merged into `_submissions/` in #934) entered with 1.0.0 on 7 November 2026, with the author's unit reports on its builds R8T2, C3A4, SXH4 and ERH4. Ctrl All (merged into `_submissions/` in #936) entered with 1.2.0 on 7 November 2026, with the author's unit reports on its builds R8K4, C3A4, SXH4 and CAH4. Main RMS (merged into `_submissions/` in #935) entered with 1.0.0 on 7 November 2026, with the author's unit reports on its builds R8T2, C3A4, SXH4 and MRH4. Slice Loop (merged into `_submissions/` in #937) entered with 1.0.0 on 7 November 2026, with the author's unit reports on its builds R8T2, C3A4, SXH4 and SLH4.

Create one with `npm run module:new -- my-mod --machine analog-rytm-mkii --author your-github-login`; see [the Analog Rytm MKII SDK guide](../../machines/analog-rytm-mkii/README.md).
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ field by field, and the loop was not heard with a real sample. No output froze o

## Source build comparison

The module is a submission (`modules/_submissions/`) until the browser can build it. Modwerk's own validation and compiler path, run on this folder:
While the module waited in `modules/_submissions/`, Modwerk's own validation and compiler path ran on this folder:

```sh
node scripts/machine-modules.mjs --drafts --base origin/main
Expand All @@ -77,6 +77,14 @@ Compiler: Ubuntu 24.04 `m68k-linux-gnu` GCC 13.3.0 and binutils 2.42. Modwerk's
toolchain was not run here, and CI's `elemod-source` job compiles published folders only. The
firmware and the linked builds stayed on the owner's computer.

## Library package

On 2026-11-07 the folder moved into the library, code unchanged. `scripts/build-elemod-isolated.sh` compiled it in
Modwerk's pinned `modwerk-source-tools` image (`m68k-elf`, from `sdk/build/Dockerfile`) from a clean checkout of
`b307442d`, and `scripts/package-elemod-recipe.mjs` exported
`sdk/imports/packages/slice-loop/slice-loop-1.0.0-os1.74.elemod` (`8e9a7d2e…93bd`); `--check` reproduces it. Its
752-byte `.run`, 1 site, symbols and relocations equal rytm2_mods v1.2's release object (`b1b8f51b…1cf9`), except that where that object takes 46 runs (440 bytes) from the stock OS at link time, this package carries the bytes compiled from the source, as Filter Hz's package does. This package's own bytes have not been linked against a stock OS file or run on a unit.

## Emulator

[rytm-emu](https://github.com/trigcondition/rytm-emu) `c5732f0`, headless `dtboot`
Expand Down
34 changes: 34 additions & 0 deletions sdk/imports/elekloader-slice-loop-2026-11-07.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"schema": 1,
"kind": "elekloader-catalog",
"revision": "slice-loop-2026-11-07",
"about": "Modwerk source-only slice-loop package for Analog Rytm MKII OS 1.74, compiled from sdk/analog-rytm-mkii/modules/slice-loop.",
"cores": [],
"mods": [
{
"file": "slice-loop-1.0.0-os1.74.elemod",
"sha256": "8e9a7d2ea0c9a6102414142d27c1677e86302e6818f2bdb530922172807893bd",
"id": "slice-loop",
"version": "1.0.0",
"device": "analog-rytm-mk2",
"os": "1.74",
"license": "GPL-2.0-only",
"source": {
"repo": "repeat98/modwerk",
"commit": "983fe2ecf99645a6f9890477bb833008321ca627",
"path": "sdk/imports/packages/slice-loop/slice-loop-1.0.0-os1.74.elemod"
},
"title": "Slice Loop",
"requires": [
"core"
],
"conflicts": [],
"summary": "SLICE LOOP in the track menu fills an empty sound track with sixteen trigs, each locked to the next sixteenth of the sample.",
"description": "Slice Loop adds SLICE LOOP after SAVE TRACK in the track menu (FUNC + CHRO). On an empty sound track of 16 steps or more it sets the TRIG defaults to SYN off and SMP on, places trigs on steps 1 to 16, locks trig n's sample STA to 6(n-1) and END to 6n, then shows LOOP SLICED. It is meant for a one-bar loop padded so the bar fills 96/120 of the sample. On a track with any trig, a shorter track or the FX track it refuses and changes nothing. It is an elemod port of MrScruff's rytm-mods 0012-slice-loop, with his code unchanged.",
"category": "Sequencer",
"author": "Iced-Cream",
"needs_core": "0.3",
"on_unit": "On an Analog Rytm MKII on OS 1.74, as reported by the author: on an empty sound track SLICE LOOP showed LOOP SLICED, and choosing it again showed TRACK NOT EMPTY, in builds R8T2 and C3A4 beside other rytm2_mods ports, SXH4 beside the other five Modwerk submissions and SLH4 alone. All four used core-ar2 0.3 or earlier. This package's own bytes have not been flashed from the site."
}
]
}
Loading
Loading