Commit 1567a814 by PLN (Algolia)

docs(status): the page tells tonight's truth, with SOUND as the gate

Five buckets: SET 100%, RIG 95%, SOUND 20% and flagged as the critical path,
STAGE 15%, REHEARSAL 40%. Six items carry a YOU badge because six of them are
PLN's hands and nothing else.

SOUND leads because it is the only thing that can silence the show: seven orbit
faders sit at -inf in the saved session, and Ardour's meters are post-fader so
that failure is indistinguishable from Tidal emitting nothing. The card says so
in one line rather than trusting anyone to remember it.

Every counter computes from the clock — a date-math suite asserts the header
and all three stops across day-before, day-of and day-after, including "gig
played" once it is behind us. Checked at 1440 and 420, and with localStorage
throwing: the page still renders, which is the only state a status page must
never fail in. New storage key, so ticks from the old move list cannot show as
done against new moves.
parent ca21d6b6
......@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Thursday 24 &middot; 2-hour livecoding set</title>
<title>Thursday 24 &middot; AI ENGINEER &middot; 2-hour set</title>
<style>
:root{
--paper:#f6f1e5;
......@@ -144,6 +144,7 @@
.figure{font-family:Georgia,serif;font-size:2.4rem;line-height:1.12;margin:2px 0 0}
.figure small{font-size:.9rem;font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink-faint);letter-spacing:.03em}
.card.gate .figure{color:var(--ribbon)}
.figure.done{color:var(--sage)}
.figure.yours{color:var(--slate)}
.mood{margin:2px 0 12px;font-size:.9rem;color:var(--ink-soft);font-style:italic}
.bar{
......@@ -156,6 +157,10 @@
background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.30) 0 2px, transparent 2px 5px);
}
.fill.low{background-color:var(--ribbon-soft)}
/* the gate's own bar carries the full ribbon, so 20% still reads from a metre away */
.card.gate .fill.low{background-color:var(--ribbon)}
/* halfway: neither shipped nor stalled */
.fill.mid{background-color:var(--amber)}
.fill.wait{background-color:var(--slate)}
ul{list-style:none;margin:0;padding:0}
li{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font-size:.9rem;line-height:1.42}
......@@ -173,9 +178,9 @@
padding:1px 5px;vertical-align:1.5px;
text-transform:uppercase;
}
.rcpt{
.mono{
font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
font-size:.73rem;letter-spacing:-.01em;color:var(--ink-faint);margin-left:5px;white-space:nowrap;
font-size:.82rem;letter-spacing:-.01em;
}
svg{display:block}
.box{fill:none;stroke:var(--ink-faint);stroke-width:1.4}
......@@ -239,7 +244,7 @@
footer a:hover{background:var(--paper-warm)}
@media (max-width:659px){
.wrap{padding:24px 14px 44px}
.wrap{padding:24px 16px 44px}
h1{font-size:1.55rem}
.card,.moves{transform:none}
.counter{white-space:normal}
......@@ -256,8 +261,8 @@
<div class="wrap">
<header>
<h1><span class="nb">Thursday 24</span> &middot; <span class="goal nb">2-hour livecoding set</span></h1>
<p class="sub"><span class="nb">ParVagues gig prep</span> &middot; <span class="nb">five buckets, one gate</span> &middot; <span class="nb">glance and close</span></p>
<h1><span class="nb">Thursday 24</span> &middot; <span class="goal nb">AI ENGINEER</span></h1>
<p class="sub"><span class="nb">ParVagues &middot; 2-hour set</span> &middot; <span class="nb">five buckets, one gate</span> &middot; <span class="nb">glance and close</span></p>
<div class="counters">
<span class="counter hot"><b id="c-gig">&mdash;</b> <span class="lbl">&middot; <span id="c-gig-day">Thu 24 Sept</span></span></span>
<span class="counter"><span class="lbl">on you now</span> <b>3 moves</b></span>
......@@ -270,19 +275,19 @@
<div class="stop">
<span class="dot"></span>
<span class="day">&mdash;</span>
<span class="what">Rig quick &middot; arc to pick</span>
<span class="what">Set locked &middot; rig remapped</span>
<span class="cd">&mdash;</span>
</div>
<div class="stop">
<span class="dot"></span>
<span class="day">&mdash;</span>
<span class="what">Ardour, folds, drills</span>
<span class="what">Faders, folds, full run</span>
<span class="cd">&mdash;</span>
</div>
<div class="stop finale">
<span class="dot"></span>
<span class="day">&mdash;</span>
<span class="what">GOAL &middot; 2-hour set</span>
<span class="what">AI ENGINEER &middot; 2-hour set</span>
<span class="cd">&mdash;</span>
</div>
</div>
......@@ -291,76 +296,76 @@
<section class="buckets" aria-label="Buckets">
<article class="card">
<h2>Rig</h2>
<p class="figure">92%</p>
<p class="mood">Quick and honest. One unknown left.</p>
<div class="bar" role="img" aria-label="rig 92 percent"><div class="fill" style="width:92%"></div></div>
<h2>Set</h2>
<p class="figure done">100%</p>
<p class="mood">Settled. Seventeen tracks, in order.</p>
<div class="bar" role="img" aria-label="set 100 percent"><div class="fill" style="width:100%"></div></div>
<ul>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>OLED repaints on every write<span class="rcpt">9507ad6</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>All 32 knobs on our overlay<span class="rcpt">9a4918a</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Stale-value heal on re-arm<span class="rcpt">bbda3e9</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>55% CPU cap lifted<span class="rcpt">measured 100</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>SC restarted on 0.1s latency<span class="rcpt">aa41686 &middot; 15:03</span></span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="warn" d="M8 2.7 L14.3 13.3 H1.7 Z"/><path class="warn" d="M8 6.8 V9.7"/><path class="warn" d="M8 11.5 V11.6"/></svg></span><span>End-stop slam shipped but unmeasured<span class="rcpt">8e7b713</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>17 tracks, 3 movements, ~9 min each</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span><span class="mono">setlist_thu24.txt</span>, in play order</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>All 17 pass silent-eval seeded</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>pvlint over the set: 0 errors</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Sample-heavy techno cut by ear</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Confirm <span class="mono">ete_a_mauerpark</span> d9 effects</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Fix <span class="mono">sept1</span> to the new controller</span></li>
</ul>
</article>
<article class="card">
<h2>Set</h2>
<p class="figure yours">yours</p>
<p class="mood">Yours now. The tracks are ready.</p>
<div class="bar" role="img" aria-label="set is yours to pick"><div class="fill wait" style="width:100%"></div></div>
<h2>Rig</h2>
<p class="figure">95%</p>
<p class="mood">Coherent for the first time.</p>
<div class="bar" role="img" aria-label="rig 95 percent"><div class="fill" style="width:95%"></div></div>
<ul>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Fourteen candidates validated, silently</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>cyber_hump resurrected from one typo<span class="rcpt">0f99fba</span></span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Five play-history tracks: all OK</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="warn" d="M8 2.7 L14.3 13.3 H1.7 Z"/><path class="warn" d="M8 6.8 V9.7"/><path class="warn" d="M8 11.5 V11.6"/></svg></span><span>techno_orage d2 silent &mdash; fix or cut</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="warn" d="M8 2.7 L14.3 13.3 H1.7 Z"/><path class="warn" d="M8 6.8 V9.7"/><path class="warn" d="M8 11.5 V11.6"/></svg></span><span>Preload misses bass2 and humps</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Pick and order the 2h arc</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Column remap finished: 148 files</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Button conformance 78.9% &rarr; 93.3%</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Orbit compaction: 150 moves, no d6 gap</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Both migrations: zero playability regressions</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>OLED tracks the hand, holds at rest</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Preload 132 banks, covers the set</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Latency 0.1 s live, CPU cap lifted</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Pending: restart SC so preload warms</span></li>
</ul>
</article>
<article class="card">
<h2>Sound</h2>
<p class="figure">15%</p>
<p class="mood">Ardour is awake. The master is not.</p>
<div class="bar" role="img" aria-label="sound 15 percent"><div class="fill low" style="width:15%"></div></div>
<article class="card gate">
<h2>Sound &middot; critical path</h2>
<p class="figure">20%</p>
<p class="mood">Seven orbits silent until you fix this.</p>
<div class="bar" role="img" aria-label="sound 20 percent"><div class="fill low" style="width:20%"></div></div>
<ul>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Twelve orbit faders are fine<span class="rcpt">859c9cb</span></span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Master sits at -30.2 dB</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Ardour OSC off &mdash; preflight flies blind</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Eight dead sends on three orbits</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Quantum 512 listen test pending</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Limiter is the only PA guard</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>7 orbit faders at &minus;inf, saved</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Fader baseline restore, Ardour closed</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Master at &minus;0.5 dB, needs your ear</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>A/B two moved crush buses</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="warn" d="M8 2.7 L14.3 13.3 H1.7 Z"/><path class="warn" d="M8 6.8 V9.7"/><path class="warn" d="M8 11.5 V11.6"/></svg></span><span>Meters are post-fader: silence looks empty</span></li>
</ul>
</article>
<article class="card">
<h2>Stage</h2>
<p class="figure">15%</p>
<p class="mood">Muscle memory, not yet drilled.</p>
<p class="mood">Untested. Nothing here is hard.</p>
<div class="bar" role="img" aria-label="stage 15 percent"><div class="fill low" style="width:15%"></div></div>
<ul>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>gig-up --bt-off kills the radio<span class="rcpt">aa41686</span></span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Zero of 28 headphone fold links</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Record-arm is fifteen manual clicks</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Preflight still shows six warnings</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Pause the corporate agents Thursday</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>QjackCtl in the tray, pw-jack wrapped</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>gig-preflight dry run not done</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>0 of 28 headphone fold links</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Docker off, Pulsar launch unchecked</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Tray icon for midiviz unverified</span></li>
</ul>
</article>
<article class="card gate">
<article class="card">
<h2>Rehearsal</h2>
<p class="figure">10%</p>
<p class="mood">Ardour is open. The 2h run is the gate.</p>
<div class="bar" role="img" aria-label="rehearsal 10 percent"><div class="fill low" style="width:10%"></div></div>
<p class="figure">40%</p>
<p class="mood">Played tonight. Not end to end.</p>
<div class="bar" role="img" aria-label="rehearsal 40 percent"><div class="fill mid" style="width:40%"></div></div>
<ul>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="tick" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Faders tracked to both end stops</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Full 2h run, Ardour recording</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Watch late-count after SC restart</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Re-measure xruns after the cap lift</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Flick a DJF for the delta histogram</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Veto or keep the slam bands</span></li>
<li class="did"><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path class="half" d="M2.4 9.2 C4.1 10.4 5.2 11.7 6.1 13.4"/><path class="half-rest" d="M6.1 13.4 C8.2 8.4 10.6 5.1 14 2.6"/></svg></span><span>Tracks touched tonight, not a full run</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span><span class="badge">you</span>Run the 2h arc, Ardour recording</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Tempo ramp across movements untried</span></li>
<li><span class="mark"><svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><rect class="box" x="2.2" y="2.6" width="11.6" height="11.6" rx="2.4"/></svg></span><span>Transitions unrehearsed</span></li>
</ul>
</article>
......@@ -371,30 +376,30 @@
<ol>
<li>
<label>
<input type="checkbox" data-move="arc">
<input type="checkbox" data-move="faders">
<span class="num"></span>
<span class="mtext"><b>Pick the arc in Set Builder</b><span class="why">Unblocks preload, stems, rehearsal</span></span>
<span class="mtext"><b>Restore the fader baseline</b><span class="why">Unblocks everything audible</span></span>
</label>
</li>
<li>
<label>
<input type="checkbox" data-move="master">
<input type="checkbox" data-move="scwarm">
<span class="num"></span>
<span class="mtext"><b>Set the Master fader</b><span class="why">-30.2 dB, and only your eyes see live</span></span>
<span class="mtext"><b>Restart SC so 132 banks warm</b><span class="why">15 s of silence, no crackle later</span></span>
</label>
</li>
<li>
<label>
<input type="checkbox" data-move="run2h">
<span class="num"></span>
<span class="mtext"><b>Run the full 2h, Ardour recording</b><span class="why">The only end-to-end proof</span></span>
<span class="mtext"><b>Run the full 2h with Ardour recording</b><span class="why">The only test that counts</span></span>
</label>
</li>
</ol>
</section>
<footer>
<p class="path">Critical path: <b>Arc</b> &rarr; <b>master level</b> &rarr; <b>2h rehearsal</b> &rarr; <b>doors</b></p>
<p class="path">Critical path: <b>Faders</b> &rarr; <b>SC restart</b> &rarr; <b>2h rehearsal</b> &rarr; <b>doors</b></p>
<p class="tiny">Not this project: mastering (tidal-ears), Opal setlist.</p>
<p class="tiny">Companion: <a href="/setbuilder.html">Set Builder</a></p>
</footer>
......@@ -421,7 +426,7 @@
var GIG = parseDt("2026-09-24");
/* Timeline stops, in DOM order. Dates live here only, never typed into the markup. */
var STOPS = [
{ dt: "2026-09-22", what: "bench" },
{ dt: "2026-09-22", what: "locked" },
{ dt: "2026-09-23", what: "prep" },
{ dt: "2026-09-24", what: "goal", finale: true }
];
......@@ -493,6 +498,14 @@
var got = gigPhrase(parseDt(c[0]));
if (got !== c[1]) fails.push("gigPhrase " + c[0] + " expected " + c[1] + ", got " + got);
});
/* Every stop's own countdown, on the day before, the day of, and the day after the gig. */
[["2026-09-23T10:00",["yesterday","today","tomorrow"]],
["2026-09-24T10:00",["2 days ago","yesterday","doors today"]],
["2026-09-25T10:00",["3 days ago","2 days ago","yesterday"]],
["2026-09-22T10:00",["today","tomorrow","in 2 days"]]].forEach(function(c){
var got = phrases(parseDt(c[0])).stops.map(function(s){ return s.cd; });
if (got.join("|") !== c[1].join("|")) fails.push("stops " + c[0] + " expected " + c[1].join("|") + ", got " + got.join("|"));
});
/* Weekdays are derived, never typed: 22 Sept 2026 is a Tuesday, 24 Sept a Thursday. */
[["2026-09-22",2],["2026-09-23",3],["2026-09-24",4]].forEach(function(c){
var got = parseDt(c[0]).getDay();
......@@ -546,8 +559,9 @@
todayEl.insertBefore(r, todayEl.firstChild);
}
/* Next-3-moves ticks, remembered locally. Storage is optional: every access guarded. */
var KEY = "pv.gig.thu24.moves";
/* Next-3-moves ticks, remembered locally. New move list, new key: no stale ticks.
Storage is optional: every access guarded, the page renders without it. */
var KEY = "pv.gig.thu24.moves.0922";
var boxes = document.querySelectorAll(".moves input[type=checkbox]");
var saved = {};
try {
......
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