# PREREG — Round 4, the prompt spread (mnml adapter due diligence)

*Pre-registered 2026-09-03 ~03:1xZ by the orchestrator, BEFORE any Round 4
clip was rendered. Ruling: D-20260903-01 (article 3 is go; the operator same night: "maybe make a
dozen or so ~30s clips of varying adjacent techno/house/edm style prompts with and without
our adapter" + "generate these new audio clips at 0, .5, and 1 on adapter strength" + "I
can listen to those too in the morning, with the article"). The prompts, arms, seeds and pins
below are FIXED by this file; the render lane may not alter them. Anything that must change
is an AMENDMENT block appended below, dated, with the reason.*

## 1. Purpose

Rounds 1–3 judged the wide-corpus adapter (mnml0) and its one-artist control (fmctl0) on
four captions. The operator's due-diligence question: **does the verdict depend on the
prompt?** Round 4 renders twelve captions across adjacent electronic styles — from the
corpus's own genre outward to styles the corpus never contained — at three adapter doses,
with the one-artist control as a fourth arm, so the morning ear (and the CLAP arm of the
coherence bench, PREREG-COHERENCE.md Metric 2) can see the adapter's effect as a function of
prompt distance from the corpus.

This round is DUE DILIGENCE and exploratory. It carries no gate. The only pre-stated
expectation (H4, exploratory): if the adapter does anything audible, the effect is largest on
P01–P06 (techno-family, nearest the corpus) and smallest on P07–P12 (house / breaks / trance).
A null — no audible or measured difference at any dose on any prompt — publishes as a null.

## 2. Design

| dimension | value | note |
|---|---|---|
| prompts | 12 (§3) | fixed text; bpm per prompt in the pin, not in the caption text |
| arms | 4 (§4) | base (dose 0) · mnml0 @0.5 · mnml0 @1.0 · fmctl0 @1.0 |
| seeds | 1 per prompt, shared across its 4 arms | seed = 4000 + prompt index (4001 … 4012) |
| clips | 48 | 12 × 4 |
| duration | 30.0 s | the operator: "~30s clips" (Rounds 1–3 were 60 s) |
| model variant | acestep-v15-turbo | as Rounds 1–3 |
| inference steps | 8 | the turbo clamp (MATERIALS §12 of the composers pack) |
| guidance_scale | 1.0 | stated; turbo bakes guidance in and the engine overrides any other value |
| shift | 1.0 | as Rounds 1–3 |
| lyrics | `[Instrumental]` | as Rounds 1–3 |
| keyscale | `A minor` | held constant across all 12 (one fewer variable) |
| timesignature | 4 | as Rounds 1–3 |
| box | the 96 GB workstation-class training box, beside its live seats | Rounds 1–3 rendered there; the evaluation box refused tonight (warm-seats timer needs sudo; ComfyUI pair resident) |
| process model | ONE CLIP PER PROCESS | Round 3's law: unload_lora does not restore the base decoder bit-exactly; every clip starts from a clean load |
| measurements per clip | LUFS-I, true peak dBTP, sha256, render seconds (engine-timed), model-load seconds | the Round 3 instrument, unchanged |

## 3. The twelve prompts (FIXED)

Caption register = Round 1's "Caption A" shape (genre, groove, instrumentation, texture,
mood). Adapter arms PREPEND the adapter's trigger token exactly as Rounds 1–3 did (mnml0:
its trigger word; fmctl0: `fm-control`); the base arm drops it. P01 is Round 1's Caption A
verbatim, so this round bridges to Rounds 1–2 by caption.

| id | style | bpm pin | caption text (verbatim, base arm) |
|---|---|---|---|
| P01 | minimal techno (the corpus's own) | 128 | minimal techno, hypnotic rolling groove, analog drum machine, deep sub bass, sparse percussion, late night |
| P02 | dub techno | 122 | dub techno, deep chord stabs drenched in delay, soft muffled kick, tape hiss, slow underwater swing |
| P03 | Detroit techno | 132 | detroit techno, soaring string pads, crisp 909 drums, warm bassline, futuristic and soulful |
| P04 | melodic techno | 124 | melodic techno, driving arpeggiated synth, big reverb, emotive chord progression, steady four on the floor |
| P05 | hard techno | 145 | hard techno, distorted rumbling kick, industrial percussion, relentless, dark warehouse |
| P06 | acid techno | 130 | acid techno, squelching 303 bassline, resonant filter sweeps, tight drum machine, raw and hypnotic |
| P07 | deep house | 122 | deep house, warm rhodes chords, shuffled hi-hats, smooth sub bass, soulful and laid back |
| P08 | tech house | 126 | tech house, chunky rolling bassline, tight clap, minimal percussion fills, groovy and punchy |
| P09 | disco house | 124 | disco house, filtered disco loop, live strings and brass stabs, funky bass guitar, joyful |
| P10 | progressive house | 128 | progressive house, long atmospheric build, plucked synth melody, sidechained pads, euphoric drop |
| P11 | electro breaks | 130 | electro breakbeat, syncopated broken drums, robotic bass synth, vocoder stabs, retro futuristic |
| P12 | uplifting trance | 138 | uplifting trance, supersaw lead melody, huge breakdown, pumping kick, euphoric festival energy |

## 4. The four arms (FIXED)

| arm | adapter | checkpoint | scale | caption |
|---|---|---|---|---|
| `base` | none | — | — | caption text as-is |
| `mnml-0.5` | mnml0 (run 20260831T023450Z-mnml0-r64) | the SAME checkpoint Rounds 1–2 rendered from (the shipped-by-loss one; the lane names it in records) | 0.5 | `<mnml trigger>, ` + caption text |
| `mnml-1.0` | mnml0, same checkpoint | same | 1.0 | `<mnml trigger>, ` + caption text |
| `fm-control-1.0` | fmctl0 (run 20260831T193904Z-fmctl0-r64) | the SAME checkpoint Round 3 rendered from | 1.0 | `fm-control, ` + caption text |

The lane records the adapter file sha256 for each arm beside every clip, as Round 3 did.

## 5. Outputs

- `music/out/mnml-shakedown/round-4/` on the training box: 48 WAVs named
  `P<nn>__<arm>__seed<seed>.wav`, `_records/` per clip, `records.json` (arm, prompt id,
  caption as sent, seed, bpm, LUFS, true peak, sha256, render s, load s, adapter sha),
  `render.log`, `MANIFEST.sha256`.
- Mirrored byte-for-byte to the laptop's hosted mirror `s2s-hosted-mirror/mnml-first-listen/clips4/`
  and to the barry room as **"Round 4 — the prompt spread"**: one row per prompt with four
  LABELED players (0 · 0.5 · 1.0 · control) for the operator's due-diligence listen, plus a
  BLIND SHEET (12 shuffled pairs, base vs mnml-1.0, order sealed in `_records/blind-key.json`,
  never shown on the page) for a verdict if the operator wants one.
- The 48 clips feed PREREG-COHERENCE.md Metric 2 (render-to-corpus-centroid distance by dose).

## 6. What this round does NOT claim

- Nothing about musical quality: a dose that moves an embedding is not a dose that sounds better.
- Nothing about the control's corpus beyond its licence class (one artist, one netlabel, BY-SA).
- No verdict: the operator's ear rules; this file only fixes what the ear will hear.

## 7. Receipts the lane must print

nvidia-smi before/after (seats still resident, by process list), `df -h` before, the 48-row
records table, MANIFEST.sha256 (and `sha256sum -c` on the laptop mirror = 48 OK), the barry
page's live 200 + one clip 200 behind the gate, and the total wall-clock.

---

## AMENDMENT A — 2026-09-03T03:1xZ, filed by the render lane BEFORE the first render

Four §5 mechanics changed on the orchestrator's lane brief. **Nothing in §3 (the twelve prompts),
§4 (the four arms), the seeds, the per-prompt bpm pins, the keyscale, the duration, the step
count or the one-clip-per-process law is touched** — the design is rendered exactly as
pre-registered.

| # | §5 said | rendered as | reason |
|---|---|---|---|
| A1 | output dir `music/out/mnml-shakedown/round-4/` | `music/out/mnml-round4/round-4/` | the lane brief names it; keeps Round 4's artifacts out of the Rounds 1–2 tree, where a later reader could mistake them for the same experiment |
| A2 | 48 WAVs | **49** — the 48 design clips plus one `base-repeat` of P01, rendered last in its own fresh process | D-20260903-04 rules "one clip per process **+ a determinism repeat**". 30 s re-composes, so Rounds 1–3's cross-round byte check does not carry over; the repeat is the replacement instrument. The repeat is not a design arm and stays off the page's labelled section |
| A3 | blind sheet = 12 pairs, all `base vs mnml-1.0` | **odd prompt ids contest `base vs mnml-1.0`; even ids contest `base vs fm-control-1.0`**; shuffle seed **4104**; labels `alpha` / `beta` | the one-artist control is a full arm in Round 4 and the operator's due-diligence question covers it. Twelve pairs all contesting the same two arms would leave the control unheard blind. The pairing RULE is printed on the page; only the within-pair ORDER is sealed |
| A4 | key sealed in `_records/blind-key.json` | key written **only** to `estate/bench/ace-mnml-2026-09/round4-blind-key.json` and the laptop's Round-4 out dir | `_records/` travels with the round on every rsync; a key that rides the round is one careless glob from the shelf (runbook TRAP 6). The blind clips are also byte-copied to neutral names (`clips4/blind/P01-alpha.wav`) so the `src=` attribute leaks nothing — blindness implemented, not claimed |

§7's *"live 200 + one clip 200 behind the gate"* is answered as the runbook's step 12b directs:
the fence receipt from an unauthenticated client is **401**, measured on page, clip and blind
clip; the 200s are measured behind the gate with the shelf's own credentials where the lane
holds them, and reported as whichever it actually got. A 401 is never reported as if it were
a 200.
