Commit f87c8ead by PLN (Algolia)

docs(board): a resume point for an unattended run — and two progress metrics that lie

PLN went to bed with the CosmicFest pipeline in flight. This is the block a cold
session needs to pick it up without reconstructing anything, written because the
run outlives the session that started it.

The teardown test came back the way the design hoped: every harness background
waiter in that session was killed between turns, while all three systemd --user
units kept running untouched. So the resume instructions lead with systemctl and
journalctl rather than with anything session-local, and the expected end state is
listed in full — masters, both split directories, eda_stems.json,
master_report.json, FINISH_SUMMARY.txt, and the section plus global stems — because
cosmic-finish.service is ordered After= both producers and gets there on its own.

Two progress metrics are recorded as WRONG, since I used both and both fooled me.
Counting directories under stems_demucs/sections/ counts sections STARTED, not
finished: the directory appears the instant chunked_separate opens its four
writers. And libsndfile buffers, so a stem file sits at 44 bytes — a bare WAV
header — through minutes of genuine work. I read "4 of 14 done" off the first and
put a speed claim in commit 37eb401f on the strength of it. Judge by mtime and
flushed bytes, or simply by whether the unit is still activating.

The board now also names the first question to ask of the EDA, because it decides
a parameter that is currently an admitted guess. The air shelf sits at +5 dB
against a measured 8-16 kHz share of 0.12%, which on its face justifies far more;
it is held back because a 320 kbps MP3 puts codec hiss in exactly that band. The
EDA prints the verdict: HF concentrated in drums by 2x or more means cymbals and
the shelf can open, HF spread evenly across all four stems means noise and it
stays shut. Re-rendering on that basis costs nothing, since PLN has not yet heard
any of it — which is the one moment such a change is free.

Blockers are ordered by what actually gates a shipment. First is the canonical www
gig page, because build_release_plan refuses without it and every upload adapter
reads that plan; the derivable half is already drafted, so PLN owes four
frontmatter fields and the set's movements. Then the tone, which no measurement
settles. Then three smaller calls, and the still-unreviewed merge 2f947c2c.

Recorded as ready-but-deliberately-undone: OPAL's SoundCloud is 7 of 15 tracks
short and the re-run is idempotent, but PLN was sharing OPAL links that evening
and mutating the account under him was the wrong risk to take unattended. And a
standing warning against uploading CosmicFest's split before he approves the tone —
SoundCloud is idempotent by permalink, so a v2 re-render is silently skipped
rather than replaced, which is the take-five-drops defect waiting to happen
fourteen more times.
parent b40c7fb5
......@@ -1254,3 +1254,64 @@ piment start sound"*). Score lives at `live/collab/raph/piment_bresilien.tidal`
`-- |+ note 12.``|- note 12`, i.e. the melodic layer transposed down an octave
instead of up. Decide whether that edit is the collab's starting point before
branching.
### RESUME POINT — 2026-09-01 ~23:00, unattended run in flight
Three `systemd --user` units carry the CosmicFest pipeline. They **survive session
teardown** (verified: every harness background waiter in that session was killed while
all three units kept running). Check state before doing anything:
```bash
systemctl --user is-active cosmic-master.service cosmic-demucs.service cosmic-finish.service
journalctl --user -u cosmic-master.service -o cat | tail -20
cat /home/pln/Work/Sound/Prod/Cosmic26_master/FINISH_SUMMARY.txt # written by the finisher
```
`cosmic-finish.service` is ordered `After=` both producers and does split → verify →
stem EDA on its own, so the expected end state (~03:00) with **no further action** is:
- `Cosmic26_v1_streaming.flac` (+ `club` if its target was reachable)
- `tracks_v1_streaming/` — 14 FLACs, and `tracks_v1_club/` if the club master exists
- `eda_stems.json` + `master_report.json` + `FINISH_SUMMARY.txt`
- `stems_demucs/sections/01..14/{drums,bass,other,vocals}.wav` + `stems_demucs/global/`
**Progress metrics that LIE — do not reuse them.** Counting dirs under
`stems_demucs/sections/` counts sections *STARTED*, because a dir appears the moment the
writers open. And libsndfile buffers, so a stem sits at **44 bytes** (a bare WAV header)
through minutes of real work. Judge progress by `mtime` + flushed bytes, or just by
whether the unit is still `activating`.
#### The first question to ask of `eda_stems.json`
Q1 decides a mastering parameter that is currently a deliberate guess. The air shelf is
`AIR_G = 5.0` in `master_stemless.py` against a measured 8–16 kHz share of **0.12%**,
which would justify far more — held back because a 320 k MP3 puts codec hiss in that band
too. The EDA prints the verdict directly: if the HF is concentrated in `drums` by ≥2×, it
is cymbals and the shelf can open; if it is spread evenly across all four stems, it is
noise and the shelf stays shut. **A re-render on that basis invalidates nothing** — PLN
has not yet heard any of it.
#### Blocked on PLN, in priority order
1. **`content/lives/2026/cosmicfest-2026.md` + `cosmicfest-2026/tracks.json`** — the hard
gate in `build_release_plan.py`; without it NO upload adapter can run. Derivable parts
are drafted (`build_gig_tracksjson.py`); he owes **set title, venue, stage,
description** and the per-track `section` movements.
2. **The tone** on the streaming master — the one thing no measurement settles.
3. `Outro: La Dub Sirène` — album track or mix-only? (renders as `Outro_ La Dub
Sirène.flac`; the FLAC title tag keeps the colon.)
4. Club target: −9 LUFS may be unreachable here without flattening the music (the LRA
floor tripped on the trial at −10.5). Chase it or ship the miss?
5. **The unreviewed merge `2f947c2`** — still standing on master.
#### Ready to run, deliberately NOT done tonight
OPAL's SoundCloud has **7 of 15** tracks still missing and the board's re-run command is
idempotent by permalink. Left alone because PLN was actively sharing OPAL links that
evening and mutating the account under him was the wrong risk. Its two known defects
(`take-five-drops` uploaded ~24 s short; `ghosts-in-the-toilets` has one malformed tag)
still need the browser edit FORM — api-v2 PUT is dead for both create and update.
⚠️ **Do not upload CosmicFest's 14-track split before PLN approves the tone.** SoundCloud
is idempotent by permalink: a v2 re-render would be silently SKIPPED, not replaced. The
continuous mix goes up first, for judgement; the split follows approval.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment