# Performance & recording notes — the archivist's log

Durable capture of **PLN's ear-feedback** on recordings, performances, samples,
transitions, mistakes and fixes. This is source material for better sampling,
effect choices, and auto-mastering heuristics — write down everything, even
small reactions. One section per take/performance; cite track + timecode.

> Convention (see project CLAUDE.md): every listening pass that yields a reaction
> gets logged here. Times are in the take's proxy/stem seconds unless noted.

---

## Take89 — Montreuil Algorave V3 "Mai Floral", 2026-05-22 (15 tracks)

> Gig metadata (venue **Les Nouveaux Sauvages, Montreuil**, org @a_f_alfl, visuals
> @shipow, poster, setlist) is canonical in `Work/Web/www/next/content/lives/2026/
> montreuil-algorave.md` + `/tracks.json` — **do not duplicate or invent here.**
> Mastering artifacts reference take-id + date only. (split_bandcamp.py's
> `ALBUM="…La Cour des Lézards"` is WRONG → fix in metadata quest.)

Boundaries (machine-readable, merged + conflict-resolved):
`tide-table/boundaries_take89_validated.json`. Calibration: proxy ≈ GT_master − 3.

### Listening pass 2026-06-05 — RESPLIT review, phone + Sony WH-1000XM5

> PLN auditioned ~half the Montreuil resplit masters on **mobile + WH-1000XM5**
> (phone playback = real mono/translation + small-driver test). Track numbers per
> canonical setlist (montreuil-algorave/tracks.json). Times = within-resplit-track.
> These drive #26 (resplit crossfade bleed), #31 (edge-detection), and a NEW
> cross-track-consistency concern (kick level, high-end harshness).

- **T2 Piment Brésilien** — *"stylé!"* BUT *"les aigus un peu trop perçants sur mobile
  quand il monte vraiment high le piment comme les keys, surtout quand les effets sont
  forts."* → **high-end harshness on mobile** when the lead/keys climb high + FX heavy.
  Fix candidate: dynamic high-shelf / de-ess tied to FX intensity; check 4–8kHz on a
  mobile-sim curve. (Tonal-balance instrument, mono/small-driver target.)
- **Boundary bleed (~T2→T3?)** — *"le début de la suivante mal cut genre 5s trop tôt?
  On entend le changement de basse AVANT le cut!"* → split point ~5s too early; the
  **next track's bass change is audible in the current track's tail**. Classic
  crossfade/boundary bleed (#26). Likely Piment→Take5Drops; confirm by ear.
- **T3 Take 5 Drops → T4 Super Sunny Side Up** — *"transition un peu abrupte: silence à
  la fin de la 3 puis 4 qui démarre direct?"* → **hard silence→onset**, no overlap.
  Needs a short crossfade or trim-to-groove rather than dead-silence butt-join.
- **T4 Super Sunny Side Up** — *"se terminerait à 0400, ou à 0409 sur un petit fade —
  moins laborieux la fin."* → **end is laborious**; trim to **4:00**, or **4:09 w/ a
  small fade**. (Outro edge-detection #31.)
- **T5 W.I.P. W.A.P.**:
  - *"commence sur 1s+ de break puis vocal? Commence direct au vocal voyons!"* →
    **trim the ~1s break intro, start on the vocal** (#31 intro-trim).
  - *"silence bizarre de 0329 à 0331 — investigate?"* → **~2s odd silence/dropout @
    3:29–3:31**; investigate source (gap in stems? mute glitch?).
  - *"ensuite c'est le bordel jusqu'à 0342 où on commence à crossfade 'Plosive."* →
    messy tail 3:31–3:42. **Proposal: crossfade directly ~3:26 → 3:45+ into 'Plosive.**
    PLN wants to **test fragments** of this transition. 😁
- **T6 'Plosive**:
  - *"au casque Sony WH5, le kick est trop fort comparé aux basses et même aux éléments
    mélodiques — ptet trop 'loud' comparé au mix du kick dans les autres pistes."* →
    **kick level inconsistent across the set** (Plosive kick hotter than others).
    Cross-track kick-gain matching needed (set-relative mastering, not per-track only).
  - *"2:59 'Plosive ends, next sound is Bogdan **Jeudrill** sample — bad cut."* → the
    resplit of 'Plosive (T6) **runs into T7 Jeudi Drill** (jeudrill.tidal, Bogdan
    sampled voice). Boundary ~5–10s late / includes next-track head (#26).

**Cross-cutting takeaways (feed the engines):**
1. **Boundaries are still bleeding both ways** — too-early (bass pre-echo) and too-late
   (next-track head). Per-orbit timbral novelty (#25) + ear-gate, not level alone.
2. **High-end harshness is mobile-specific** → need a **mobile/mono translation check**
   in the tonal instrument, not just LUFS/TP.
3. **Kick loudness must be matched ACROSS tracks** (set-relative), a new dimension on
   top of per-track −14.
4. PLN wants a **fragment-test loop** for transitions (esp. WAP→'Plosive crossfade).

### Sample / sound identity (measured + PLN)
- **PunkAChien**: core riff = **cpluck** (orbit-05, A♯/G♯) octave-dropped — the
  bass/riff spine, plays nearly throughout. **acid** = vec1_acid (orbit-04, D2),
  front-half + a build. **moog** (orbit-09) = the deep mononote **sub**, drop-only
  (enters ~242–281s of the single). `meth_bass` (orbit-06) **silent this take**
  (named like a wobble monster, plays zero seconds — verify by ear, not by name).
- **Piment brésilien**: has an **iconic g-funk "piment" sample** (entry ~6:00) —
  signature, recognisable. Outro carries a **d10 ambient** tail that lingers.
- **You My Sunshine**: built entirely on the **`no_sunshine`** sample ("Ain't No
  Sunshine" — the "I know I know" vocal on d5, guitar/chops on d7/d9/d11).
- **Take 5 Drops**: marimba/melodic riff is the recognisable entry.

### Transitions & live mistakes (per PLN, by ear)
- **→ Jeudi Drill (30:09→30:22)**: *bad live transition* — "I changed tracks badly
  this time": a weird silence then hesitant first seconds. Fix for release: start
  clean at the **marimba-riff entry 30:22**, drop 30:09–30:22.
- **→ Aria (34:21)**: clean.
- **→ PunkAChien (38:29)**: riff "suddenly steals Aria's stage" — cpluck carries
  across; kick+acid land ~38:50; perceived steal at 38:29 (= pattern re-trigger /
  break dip). Wants maybe a touch earlier — precise pin pending timbral detection.
- **→ You My Sunshine (~43:27)**: slight silence after PunkAChien; real sound at
  43:26–27 → trim the gap for the split.
- **→ Desire (~48:46)**: a few secs of silence between the last "I know I know"
  linger and Desire's synth loop — trim it.
- **Premier Septembre → Techno Orage (62:20→62:34)**: Sept1 chill pianos end ~62:20;
  **d9 at 62:31 is a MISTAKE → silence orbit-09 there, period**; start Orage at
  **62:34** on a nice fade-in of the orage drums+keys loops.
- **→ La Révolution (69:33)**: preceded by silence, claps, **encore** — trim all
  for the track release.

### Desired edits / fragment experiments
- **La Révolution — end on a BANG**: ring out the **last note of d10**; fade **d4
  OUT earlier** so it isn't lingering when d10 rings; try **larger reverb** (broader
  ring) + **a little delay**. → render a few **fragment** versions to choose.
- **Club master**: true −9 LUFS needs a limiter stage (current linear loudnorm caps
  at ~−11.5 to respect −1 dBTP).

## How ParVagues performs (perspective for the whole system)

> Why this matters for tooling: a recorded take is **one live performance**, not a
> canonical arrangement. The same track sounds structurally different take-to-take
> because the *entry* is improvised to fit the set's momentum. Our analysis must not
> assume a fixed intro/section layout — detect it per-take.

- **The intro is a live transition decision.** Where each element spawns depends on
  what came before and the floor energy. Examples of opening moves PLN uses:
  - **spawn the bass early** when transitioning *onto a hot dancefloor* from a
    previous track (skip the slow build — keep the body moving);
  - **start ambient/atmos first** (e.g. lead with `d9`) for a slow, breathing open;
  - **start on a drums transition** — e.g. HPF the incoming `jungle_breaks` and do a
    `d8`-into-`d8` file switcharoo so the groove crossfades from the prior track.
- Consequence: "where does the track really start?" and section boundaries are
  **performance-dependent**; the same single mastered from two takes will have
  different lead-ins, builds, and drop placement. This is *why* the A/B players are
  two **independent** transports (not a shared playhead) — and why intro/outro
  edge-detection (#31) must be content-driven per take, never inferred from the score.

### Instrument / controller ergonomics (affects fingerprinting!)
- **`d6` (meth_bass) is sporadic, NOT track-specific.** PLN uses meth_bass *sometimes,
  not always* — and its absence is partly a **controller-ergonomics artifact**: `d6` is
  awkward to reach/trigger on the LaunchControl XL right now. So **orbit-06 silence is
  not a discriminative fingerprint feature** — don't use it to identify a track; many
  takes drop d6 for reasons that have nothing to do with the score. (Caught me
  over-weighting "orbit-06 silent" as a PunkAChien tell, 2026-06-05.)
- **Long-run idea:** fix d6 ergonomics on the Tidal/MIDI side (remap so meth_bass is
  reachable mid-flow) so its use reflects musical intent, not reach.

### Mastering reactions (PunkAChien)
- Montreuil reads **bass-forward** (centroid ~639 Hz, dom=sub) — confirm punchy not
  boomy by ear. Montreuil is the **dynamic** take (LRA 7.4, has breakdown+drop).
- **38C3 take found = Take35** (2026-06-05): 2024-12-25, "Pitbul Punk", 4:35 standalone
  track take. Fingerprint matches on *track-specific* signals: cpluck riff (orbit-05) +
  acid (04) + percs + 4:35 length. **Pending PLN ear-verify** before `verified`.
- ⚠️ The old "Hamburg/Take87" PunkAChien was a **misidentification** (actually La Fin
  de l'Insouciance → Liquid Finale @ 39C3). Do NOT A/B against it; real second take =
  Take35 (38C3), plus Take36 (the 61:46 Toilet set) for an in-set version.

---

## Take35 — "Septième Armée" (Seven Nation Army cover), 2024-12-25

**Blind-test identification (2026-06-05).** Hunting the 38C3 PunkAChien, the take the
date-join labeled "Pitbul Punk/38C3 (±3d)" turned out — on PLN's ears, blind — to be
**Septième Armée** (`live/collab/raph/septieme_armee.tidal`), a Seven Nation Army-riff
cover at 90 BPM. Objective corroboration: the take's active orbits (1,2,3,4,5,8,9;
6/7/10/11/12 silent) match the `.tidal` orbit→sound map exactly, incl. **d4 `bassWarsaw`**
= the SNA bass riff (Take35 orbit-04 was 89% sub — the bass), d5 `FMRhodes1`, d9 `moogBass`.

Lessons:
- **Date-joins lie; the ear is the oracle** (3rd metadata miss caught by ear — see
  [[feedback_locate_matrix_method]]). Take35 ≠ PunkAChien; take_gig_map corrected.
- **Fingerprint must include SYNTHS, not just samples** — `bassWarsaw`/`moogBass`/
  `FMRhodes1` are the identity here and TF-IDF (Dirt-Samples-only) was blind to them.
  Fixed: sample_tfidf now indexes all sound-context tokens (samples ∪ synths).
- **PLN reaction:** "great one — good single, or at least a SoundCloud ébauche to push."
  ⚠️ It's a **cover** (White Stripes / Jack White) → needs a mechanical/cover license for
  paid/DSP release; SoundCloud ébauche is lower-risk. Treat like the other covers bucket.

**Open:** the real 38C3 PunkAChien ("Pitbul Punk") is still unfound — Take35 eliminated.
Candidates left: Take36 / the 61:41 "House of Tea" set, Take37/38 (Chaos Music Club),
or it was never recorded as a standalone. Hunt deferred behind the bleed-detector build.

**Foundry kit audition — superfreak/hammer (2026-07-11, PLN on-disk verify).** Ear-report
on the forged kits: (1) "lots don't loop well or are not audible — bass_deep is not
audible"; (2) "other_skank is good but seems not starting right — loops feel 'timed ok'
but cut BCDA or DABC, not at a good start"; (3) "vox superfreak/kinkygirl are very
high-pass filtered? some bass split? is this demucs?"

Measured confirmation (all three are real, none is a duration bug):
- **bass_deep inaudible** = pure-sub sample: RMS −12.8 dBFS (loud!) but 99% of energy
  <150 Hz (75% in 60–150), centroid 478 Hz. Physically invisible on small monitors —
  equal-loudness, not level. It's a sub LAYER (two-layer bass idiom), not a standalone.
- **BCDA/DABC rotation confirmed**: strongest onset beat-slot inside each loop —
  drums_dub slot 1/16, bass_deep slot 4/16, other_skank slot 2/8; other_skank's first
  30 ms is −23 dB below its loudest 30 ms (starts mid-phrase). Root cause: the PLP beat
  grid has no downbeat anchor, candidates start on ANY beat. The loops are bar-exact
  (tempo-locked) but musically rotated.
- **vox high-pass = demucs htdemucs**, not our cuts: the vocals STEMS have ~0 energy
  <150 Hz (superfreak 0.1% in 60–150, hammer 0.9%) — vocal chest/low end is routed into
  the bass/other stems by the model. superfreak bass stem holds 70% of its energy at
  60–150. Lyric cuts inherit the thinness.

Fix directions (foundry): rotate-to-downbeat export post-pass (a clean-seam bar-exact
loop can be rotated freely — the new seam is an interior continuity point → zero risk,
pick rotation with strongest attack at 0); vocals via engine2 BS-Roformer (keeps low
end far better than htdemucs) then re-cut the same phrase bounds; bass_deep → optional
harmonic-saturation "audible" variant, or accept as sub layer + in-session shape.

**Hammer kit re-listen (2026-07-19, PLN).** Ear-report on the v1 `hammer` kit:
(1) "some cases it's not even just the voices" (vox cuts carry instrumental);
(2) "06_vox_breakitdown doesn't loop well"; (3) overall "we didn't do honor to
hammer". superfreak folder judged good on re-listen.

All three measured + fixed (v2 rebuild, see catch `report.md` + `review_v2_bleed_metric.py`):
- Vox bleed confirmed: v1 cuts (demucs stem) held riff energy at only −2.4 dB
  (03) / −6.5 dB (06) below cut RMS during vocal-silence frames. v2 re-cut from
  the BS-Roformer vocals → bleed −27..−62 dB below signal.
- **New lesson beyond the 07-11 note: the CUT BOUNDS were bleed-biased too.** The
  energy-corrected bounds fitted on the bleedy demucs stem started 06 a full
  second before the word ("break" is at 202.81, cut at 201.70) and 04 450 ms
  early. "Re-cut the same phrase bounds" (07-11 fix direction) was insufficient —
  bounds must be re-anchored on the cleanest vocal render's true onsets.
- 06 "doesn't loop": it was an 8.30-beat one-shot; v2 adds 09_vox_breakitdown_loop
  (2.000 bars exact, x4 join 0.00x) and keeps 06 as a full-tail one-shot (4.95 s).
- Rotation finally promoted to the shipped kit (v1 drums/bass opened −65/−52 dB
  below peak); instruments re-cut from a roformer-instrumental→demucs CASCADE
  (no rap ghosts: source windows carried vocals at −23 dB).

## OPAL practice take 94 — first machine-trimmed mix (2026-07-29, PLN)

Listening to `mix/take94/take94_trimmed.wav` (19.15 min, uniform −16 dB, 119 s auto-trimmed).

> *"mix is total decent. i hear 3 or 4 tracks well. some moments ive been blocked in
> loops stuck practice as i was doing other things but tbh great mix itself its clean"*

> *"silence around 18 is not normal its a bad transition ahah in a real mixing work wed
> cut it proper and fade or at least trim most"*

**What this validates:** the sum + uniform gain trim is clean — no routing fault, no
bleed audible, the balance PLN performed survives a flat −16 dB. The stretches he
noticed as "stuck in loops" are exactly the `loop` kind take-lens detects and
deliberately does NOT auto-cut (hands idle + a couple of orbits droning).

**What this corrects — the rule, in his words.** A silence at a TRANSITION is junk, and
the mix answer is *cut it proper and fade*, not leave it. The 18 s gap he heard was
detected and reported, and survived anyway because `SILENT_RUN_S` was 20 s: all three
remaining gaps (17 s, 18 s, 11 s) sat just under the bar. A threshold tuned to never eat
a musical break had quietly become a threshold that keeps every bad transition.

Two changes follow, and they generalise past this take:
1. **Clamp, don't binary-cut.** A silence longer than ~8 s is not a musical rest at
   120-140 BPM (4 bars ≈ 8 s), so trim it down to a short breath rather than choosing
   between "keep all 18 s" and "remove every trace". Keeps the seam musical, removes the
   dead air. This is "or at least trim most" implemented literally.
2. **Fade every seam.** A butt-join between two takes of a live room is a click, and
   until now every cut this tool made was a butt-join. Short equal-power crossfades at
   every removal boundary.

**Ear-gate note for the future:** he heard 3-4 tracks "well" out of a ~21 min take — the
take has NO track timeline (gig-log gained `k:"track"` the same evening), so his count is
currently the only boundary data that exists for take 94.

---

## 2026-08-02 — Sunday KRK rehearsal, J-6. Track-by-track, live commentary

The one-before-last KRK-enabled run. PLN narrated as he played, track by track. This is
the densest ear-feedback session so far and almost every reaction turned out to have a
mechanical cause underneath it — logged here with the diagnosis, because the pattern
(*"a taste complaint is often a bug report"*) is the reusable part.

### The verdicts

| track | his words | what it actually was |
|---|---|---|
| bombe_dj | *"bombe goes well"* | — |
| wap | *"not bad it works even the riser!"* | the #33 safe riser passes its first hearing |
| do_it_right | *"great track banger piece of the intro, 'now we're talking' moment"* | — |
| do_it_right | *"i feel d5 loud? does it touch the red in ardour? Gosh yes!"* | see gain-staging below |
| do_it_right | *"definitely the kicks too saturate"* | `# gain 2` = **+24.1 dB**, on a line stacking TWO samples |
| do_it_right | *"not seeing effects on button 44 nor 43?"* | both genuinely unmapped, not broken |
| take_5_drops | *"i hear no d7? or its muffed"* | moogBass = a 4-pole lowpass parked at **1 kHz** |
| take_5_drops | *"arp up... its now a set of 4 muffed short notes LOL"* | `legato 2` over quarter-length arp notes |
| piment_bresilien | *"banger"* | — |
| ouais_je_funk | *"d10 scale up is shitty... the scale climb is irritating"* | a stepwise scale run 0 1 2 3 3 4 5 6 |
| ouais_je_funk | *"effects are cool sound fine its too high-ish on the crush"* | crush floor 3.5 bits + pinned an octave up half the time |
| ouais_je_funk | *"no buttons 42 43?"* | the clap had no gate at all |
| lime_tacos | *"actually weak. removed from set"* | cut. 15 tracks, then 14, then 15 with the soundcheck |

### The loudness finding — measured, and it generalises

SuperDirt amplitude is `gain^4`. That exponent is why authored gains read so innocent
and meter so hot:

| `# gain` | dB |
|---|---|
| 1.0 | 0.0 |
| 1.4 | +11.7 |
| 1.5 | +14.1 |
| 1.8 | +20.4 |
| **2.0** | **+24.1** |

Across the OPAL set the **median orbit sits at +11.7 dB**, and four orbits sit at
+24.1 dB (`gain 2`): piment d10, gimme_acid d1, do_it_right d1, bombe_dj d7.
do_it_right's kick was a **10 dB outlier against its own bassline** *and* stacked two
samples on one line, so ~+30 dB into the orbit. Dropped to 1.5.

**The general rule this suggests:** when one orbit clips, do not reach for its fader —
rank the track's orbits in dB first. A 10 dB intra-track outlier is a bug; a 2 dB one is
a mix choice. Relates to #91 (record bus ~16 dB hot) and #17.

### The pattern worth keeping

Every single "it sounds wrong" this session had a mechanical cause that was visible in
the code or the SynthDef, and **none of them were mix problems**:

- *"muffed"* → a synth's own 1 kHz filter, plus no cut group, plus a shared FX bus
- *"loud"* → `gain^4`
- *"irritating"* → a literal ascending scale used as a melody
- *"no buttons"* → unmapped CCs
- *"weak"* (lime_tacos) → the only track never touched by the column remap, so half its
  board was in the wrong place while he played it

**So: before adjusting anything by ear, run `pvlint` + read the SynthDef.** Two new lint
rules came directly out of this session (PV014, PV011-as-error) and immediately found
the same defect class in `mafia_sans_serif` — which was already carrying PLN's own note
*"FIXME ACID WEIRD NOT GOOD"* with no known cause.

---

## OPAL Festival 2026 — "Sunset Forest" — 2026-08-08, Scène Cabane

Timecodes are in **master time** (`Opal26_Master_Raw.flac`, t=0 at the first
recorded frame). The set proper runs `bombe_dj` → `REVOLUTION`; the 9:45 before
the recording is soundcheck, and `quand_on_decolle` after `REVOLUTION` was an
ambient transition out, not a set piece.

### Floor reactions

- `0:36:51` · **Piment Bresilien** · `[+]` **PEAK DANCEFLOOR.** "so hot, people
  danced bang, i let it last" — PLN extended it live to 8:26, the longest track
  of the night. Measured: loudest track of the set (−16.2 LUFS), joint-widest
  (0.37), 32% sub / 49% bass, centroid 297 Hz. *The one to study: this is what
  the arc should aim at.*
- `1:01:22` · **Mafia** · `[+]` "got a real strong floor reaction too <3".
  Measured: near-MONO (width 0.05, narrowest of the night) and the most
  bass-dominant track (78% in 60–250 Hz, only 10% sub). Floor impact clearly does
  not require width — worth remembering before "fixing" it.
- `0:29:54` · **Take five Drops** · `[+]` "perfect vibe match" at sunset; PLN has
  a video of a dancer during it. Landed at the golden hour by luck of ordering.
- `1:04:33` · **Vague de CRIME** · `[-]` "mixed fb compared to my hopes."
  Measured: densest track of the set (crest 14.8 dB, LRA 9.3 — the most
  compressed), and the thinnest low end so far at 7.6% sub.
- `1:09:12` · **Desire** · `[-]` "uncooked and imo not great." Measured −21.6
  LUFS, 3.5 dB below the track before it. Its bass had been repaired from a
  non-compiling state only 5 days earlier (J-5) and never played to a floor.
- `1:15:47` · **REVOLUTION** · `[-]` "a fair but not bang conclusion."
  Measured: quietest track of the set (−23.7 LUFS) and almost no low end at all
  — **1.9% sub** against 30–50% for most of the set. Highest centroid (422 Hz).
- Mid-set the crowd thinned because **the festival kitchen called dinner**, not
  because of the music. PLN judged the quieter back half as matching the actual
  floor energy. Real, but he still endorses the criticism for future arcs.

### Transitions

- `0:18:28 → 0:25:41` · **do_it_right → You My Sunshine** · `[+]` "blend of voice
  into sunshine was perfect... at least one 'magic vocal transition across
  tracks'." The good case to reproduce deliberately.
- `0:25:41` · **You My Sunshine** · `[-]` an **arp lingering from the previous
  track** audible through the whole track, gone once `take_5_drops` starts.
  `[!]` To remove in the master. *(Orbit not yet pinned: the RMS-duty scan is
  too coarse — d10 triples its duty during Sunshine and dies in take_5, but
  Sunshine declares d10, so it is not a declaration-level ghost. Needs a
  pitched/spectral lens, not a level lens.)*
- `1:15:36` · 34 s of **full digital silence** before REVOLUTION — this was a
  **clap / encore moment**, not a dropout. With no floor mic it recorded as dead
  air. `[!]` Trim to ~4 s in the master.
- PLN "forgot quand_on_decolle" as the intro and "ran head first into diams
  techno" — the set opened on `bombe_dj` instead of the planned ambient intro.

### Sound / technical

- `0:00:00–0:00:06` · **intro** · `[!]` cut to 0:06 — first *diams* note.
- **intro** · `[-]` **the régie son reported the diams intro was saturated.**
  An outside ear, on the PA, at the very start. `[?]` not yet reproduced in the
  recording — the master's own true peak is −1.0 dBFS with zero flat samples, so
  if it was real it happened downstream of our capture or in the PA.
- `1:02:10` · **Mafia** · `[-]` "bass goes too high for a few secs."
  PLN filed this at 1:03:10; measurement puts it at **1:02:10.6 (+24.5 dB over
  local median in 60–250 Hz)** and **1:02:13.2–1:02:15.5 (+15.0 dB)** — one digit
  off, same event. Found only with a band-limited lens; broadband RMS saw
  nothing. This is what motivated `tidal-ears master saturation --band`.
- `0:08:50` · **WAP** · `[?]` "bass is very wobbly, lets confirm and cleanup if
  we can." Not yet cross-checked.
- Whole set · `[+]` "honestly it works great on jack no sound drop/worries."
  Measured: **17 xruns in the whole 1h27**, in two events (+16 at 3:25, +1 at
  76:10). Against 1676 in a 10h48 rehearsal, this was a clean run — despite the
  package hitting 100 °C with sustained throttling.
- Master · PLN's own first pass was "a quick 80/20 audacity jab." He judged it
  **"not loud enough — like i had to set to max volume or closeby."**
  Measured −18.2 LUFS: ~4 dB under the −14 streaming target. His ear and the
  meter agreed exactly.

### Execution

- `[+]` **15 of 15 tracks played in the exact planned order** (backlog.md
  setlist vs the gig log's track events). No improvised reordering, no skips.

### Listening pass 2026-08-12 — the "ghost arp" verdict (solo-orbit A/B)

PLN auditioned solo-orbit clips from the `you_my_sunshine` window (1600–1640 s)
against the master, to identify an arp he had reported lingering from the
previous track. **Verdict: there is no arp problem.**

- master reference — *"i hear it low only at the end"*, then on a second pass
  *"wait rehearing master i dont hear any issue?"*
- **d6** — *"i hear a blast 2s we could kill but no more"* → a single ~2 s
  transient, not a lingering arp. `[?]` optional micro-edit, low value.
- **d3** — *"good percs tho a bit dry"* `[!]` candidate for a touch of space in
  a future mix; not a defect.
- **d10** — *"ok riser"* — behaving as intended.

**Decision: "ignore the arp variants, lets keep and lets confirm what we have."**
No stem surgery. The delivered masters stand as rendered.

Worth keeping as method: the machine narrowed five candidates and still could
not call it (d12 fit the theory perfectly and turned out to be −72.6 dBFS —
inaudible). Forty seconds of PLN's ear closed it, and the answer was that the
premise was wrong. Reserve his ears for identification and taste; use the
machine for objective errors.

---

## 2026-08-16 — OPAL-26 v4 splits: the boundary pass (set-judge, first use)

First run of the set-judge SPA. PLN judged through #10 and stopped: *"listened
to 7, then errors seem to compound"*. Every note below is his, verbatim, with
the absolute master-time boundary it implies against `segments_v3.json`.

**The finding: the track boundaries are wrong, and the error grows through the
middle of the set.** These are not mastering complaints — the audio is fine, the
CUTS are in the wrong place.

| # | track | verdict | what he heard | implied true start |
|---|---|---|---|---|
| 1 | Ceci n'est pas Une Bombe | GO | — | 0.0 (ok) |
| 2 | WAP | GO | — | 531.35 (ok) |
| 3 | There's Something About Drums | NOGO | *"theres a bit of WAP bass till like 001:50? then silence, then at 0:03 maybe SabDrums real starts. also at end 3:44 misses last note!!"* | **893.0** |
| 4 | Am i Doing it Right | NOGO | *"starts really at 0:04 on the overlap of melodc and start of the daft sound, we have 4s too much at start. and at 0715 its the start of sunshine!!!"* | **1118.4** (and #5 starts inside it) |
| 5 | You My Sunshine | MAYBE | *"we lack some at start as said before. ends abrupt?"* | **1549.4** |
| 6 | Take five Drops | — | *"yea still some sunshine bass here :( starts real at 00:10 or sth you have a clear bass change texture!"* | **1808.1** |
| 7 | Piment Bresilien | — | *"this start is still the drops! piment starts real at 0:21 only or sth, check careful youll see the xfade!!!"* | **2248.8** |
| 8 | Eh ouais je Funk | — | *"almost there, a few secs of piment bleed in, maybe a single note of perfect in at the end, not even sure"* | ~2723 (small) |
| 9 | Perfect | — | *"perfect starts perfect :lol:"* | 2954.4 **(correct)** |
| 10 | Gimme Acid | — | *"gimme however starts on a perfect sound lol, 0.16.7 is the moment to gimme acid i think"* | **3269.0** |
| 11–15 | — | not yet judged | | |

**Mechanism.** He named it himself: *"check careful youll see the xfade"*. Every
`dN` is a 4-cycle crossfade, so across a switch the ORBIT SET barely changes —
d1 is a kick before and a kick after. Every activity-based detector therefore
sees continuity and passes the cut. What changes is the SAMPLE on each orbit.
The longer and more relaxed the transition, the further the true boundary drifts
from the detected one: 3 s at #3, 21 s at #7.

**Two instruments failed on this, and both said they passed.**

* `tidal-ears master cuts verify` reported **13/15 boundaries pass**. It caught
  #3 and #4 (agreeing with his ear to within a second — it detects the *stutter*
  shape: short fragment, gap, real start) and passed #5, #6, #7 where the errors
  were 9, 10 and 21 seconds.
* `cut_lens.py`, written that afternoon specifically to see timbre rather than
  activity, was validated against these five ear-verified boundaries and missed
  by a **median 24 s, worst 40 s**. Discarded, not shipped. The validation
  harness is the only part worth keeping.

**Feature this produced:** *"players need to autoplay next so we can see how it
goes into ;)"* — the set-judge now chains into the next track by default, since
a per-track list otherwise makes transitions the one thing you cannot hear.

**Method note.** The corpus rule held again: the machine was supposed to catch
objective errors so his ears are spent on taste, and here the objective error
was one no machine we own can currently see. Ear-truth first; instruments earn
trust by reproducing it.

### 2026-08-16 (cont.) — REVOLUTION mix, Desire, and the structural verdict

**REVOLUTION.** PLN: *"like_sugar:10 too loud needs way lighter mix. maybe the
revolution too loud too? on laptop speaker i hear mostly it ahah maybe bass also
is a lil too saturated?"*

Measured over the track's span, full-range vs the band a laptop actually
reproduces (400 Hz–8 kHz):

| orbit | sound | full-range | laptop band |
|---|---|---|---|
| d5 | the_revolution | −33.2 | **−34.3** |
| d4 | like_sugar:0 (bass) | −31.6 | −48.0 |
| d10 | like_sugar:21 trigger | −44.4 | −48.8 |
| d1 | kick | −36.7 | −52.8 |
| d9 | like_sugar/2 SUGAR CHOIR | **−240** | **−240** |

His SECOND guess was right and his first was wrong: **d5 `the_revolution`
dominates the laptop band by 13.7 dB**; d10 sits 14.5 dB below it and is
*quieter* on a laptop than full-range. Cutting d10 would change nothing he can
hear. The kick and bass each lose ~16 dB on a laptop — expected, not a defect.
Lesson: on a small speaker the loudest thing is the one that SURVIVES the band,
not the one with the highest fader.

**Silent orbit found by accident: d9 SUGAR CHOIR is digital silence** for the
whole track, though the score declares it. Confirmed twice (band measurement and
the judge's own rail dropping it as never-audible).

**Desire.** *"im not fan of it in the end wonder if i dont even wanna cut it and
do crimewave as last official one :P"* — a taste call, not logged as decided.
Reading: drop #14 Desire, making #13 Vague de CRIME the last *official* track,
with #15 REVOLUTION remaining the Encore (its section in tracks.json).
NEEDS CONFIRMATION before any re-cut.

---

## 2026-08-16 — THE STRUCTURAL VERDICT (floor feedback from the gig)

PLN, relaying the main criticism he got at OPAL:

> *"I DIDNT KEEP THE KICK LONG ENOUGH. MAIN criticism / negfb I GOT:
> 'destructure. les gens etaient un peu perdu', genre individually good tracks,
> overall confusing, you get some that you lose later and vice versa. fair
> point."*

**This is measurable, and the measurement agrees with the floor.** Kick (d1)
audibility per track over the OPAL-26 stems, 2 s bins, −52 dB floor:

    WHOLE SET: the kick is audible 59% of the time.
    13 of 15 tracks are below 70%.

    longest kickless stretches
      164 s  #4  Am i Doing it Right
      116 s  #7  Piment Bresilien
       78 s  #14 Desire
       72 s  #6  Take five Drops
       64 s  #13 Vague de CRIME

Two minutes forty-four with no floor, inside a single track, on a main stage at
sunset. The audience feedback and the stem data are the same fact.

**Design consequence he asked for:** pre-gig tooling to catch this before the
set, and a during-gig HUD that warns when the floor has been gone too long —
*"2am-elevated-UX ... like macdonalds' screens help avoid cold burgers"*.

Unit note for whoever builds it: the set runs **89–166 BPM**, so a
seconds-based budget is wrong by up to 2x. Count BARS.


## OPAL-26 · boundary lab session — 2026-08-16

Ear calls on the five open cuts, made in the boundary lab (bounds.html). Times
are absolute MASTER seconds.

| cut | call | PLN's words | vs machine |
|---|---|---|---|
| #11 Ghosts in the Toilets | 3557.33 | *"takeover is the right cut time here."* | takeover +0.13 s |
| #12 Mafia | 3680.10 | *"here the right cut is mid :)"* | takeover −8.00 s |
| #13 Vague de CRIME | 3887.25 | — | ear-only, no candidate possible |
| #14 (= END of #13) | 4166.30 | *"00:31:3 is a decent end of crimewave to cut early on end of the crime sound"* | ear-only |
| #15 REVOLUTION | 4547.57 | — | ear-only, no candidate possible |

**The reaction worth keeping:** on #11 the machine's `takeover` was right to
0.13 s; on #12 the same estimator was 8 s late and PLN picked `mid` instead.
Two adjacent cuts, opposite answers. There is no universal fraction-through-the-
crossfade — where a cut belongs is a musical judgement about that particular
handover, not a parameter. Offer candidates, never average them.

**On #14** he is cutting the last official track EARLY, on the decay rather than
after it: the crime sound gaps to −71 dB at 4164.5 and he takes 4166.3, 13.7 s
before the nominal 4180.0. Preference to note for future ends — he'd rather stop
on the tail of the sound than let the bar run out.


## OPAL-26 · release sign-off — 2026-08-16

The record CLEARED by ear. On the rebuilt seams: *"listened to 13... perfect end
for crime. revolution starts good. listened to 99... all good perfect ending!"*

This is the listen that matters, because both clips were audio built FROM his
approvals rather than audio he had approved — the 2 s rest and the MORE reverb
tail existed only as instructions until this pass.

**Two taste calls to carry forward:**

* **Silence is a musical element, and it belongs to the outgoing track.** His
  fix for the CRIME→REVOLUTION seam was not a longer fade or a different cut
  point — the cut was already approved. It was *"add after seam 2s silence in
  crime file, then seam is start of [the] revolution"*. He wanted the last
  official track to end **on its own silence** and the encore to start clean.
  A future set-ending seam should offer a rest as a candidate, not only fades.
* **He revised the reverb after living with it.** First pass, auditioned A/B in
  isolation: *"pick subtle"*. Heard again in the context of the finished
  record: *"allez lets use the B version, the more option"* — and the B version
  is roughly 2.7× the ring (650 ms top tap vs 240 ms). An effect judged on a
  clip and the same effect judged as an ending are different judgements. Render
  the A/B **in place** next time, not just as a bare tail.

Both were his second listen changing the answer, which is the argument for
keeping the audition loop cheap: neither correction cost more than a re-render.
