From 43e1b72c32ab2119bca88b59b93eb6a37a2de98a Mon Sep 17 00:00:00 2001 From: ERROR_404 Date: Thu, 8 Oct 2026 08:33:07 +0100 Subject: [PATCH] =?UTF-8?q?Source=20Vault:=20access=20number=20N=C2=BA404;?= =?UTF-8?q?=20copy=20updated=20now=20the=20stems=20are=20live?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nº004 becomes Nº404 everywhere (nav, phone menu, seal, stats, credits, unlock intro). SOON / UPLOADING SOON placeholders go: the STEMS stat counts the stems (220), each stems tab shows its count, ALL STEMS shows its size once the release answers (dash if it can't), the lede says WAV and MIDI, and a failed download reads UNAVAILABLE · TRY AGAIN. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 1 + src/vault/main.js | 26 ++++++++++++++------------ vault/index.html | 18 +++++++++--------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f47631..9a9c567 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and ### Changed +- Source Vault: the access number is now **Nº404** everywhere (nav, phone menu, header seal, stats, end credits, unlock intro). With the stems uploaded, the "SOON" / "UPLOADING SOON" placeholders are gone: the STEMS stat counts the stems (220, each as WAV + MIDI), ALL STEMS shows its total size once the release answers, each track's stems tab shows its stem count, the intro line reads "full stems as WAV and MIDI", and a failed download now says UNAVAILABLE · TRY AGAIN instead of NOT UPLOADED YET. - Source Vault stems: the remastered stems are in. Each track's zip holds its WAV stems and MIDI files (10–12 stems per track, every one as WAV + MIDI), and the stem lists now match the real files. ALL STEMS hands over the 20 track zips one after another (a chapter zip would pass GitHub's 2 GB per-file cap). The per-stem WAV / MIDI chips are labels now, not mock-up buttons. - Source Vault phone menu: one link is always lit with the gradient, like the site's menu. At the top of the page that's PROMPTS, the first section. - Source Vault phone menu: it now opens exactly like the site's menu: full screen with the slat wipe, the SYS::OPEN chip, big outlined poster links with numbered captions (the section you're on fills with the gradient), and the split buttons at the bottom. diff --git a/src/vault/main.js b/src/vault/main.js index eb7006d..d4c4b79 100644 --- a/src/vault/main.js +++ b/src/vault/main.js @@ -344,7 +344,7 @@ function unlockSequence() { const T = []; const at = (ms, f) => T.push(setTimeout(f, ms)); const line = (i, extra = "") => - `
> KEY ACCEPTED · ACCESS Nº004
> DECRYPTING ${pad(i)}/20${i ? `${titles[i - 1]}_STEMS.ZIP` : ""}
${extra}`; + `
> KEY ACCEPTED · ACCESS Nº404
> DECRYPTING ${pad(i)}/20${i ? `${titles[i - 1]}_STEMS.ZIP` : ""}
${extra}`; term.classList.remove("out"); term.innerHTML = line(0); for (let i = 1; i <= 20; i++) at(250 + (i - 1) * 150, () => (term.innerHTML = line(i))); @@ -531,7 +531,7 @@ function rowHTML(t) {
${t.stems.map((s) => `
${s.name.toUpperCase()}${s.wav ? "WAV" : ""}${s.mid ? "MIDI" : ""}
`).join("")}
-
${esc(t.asset.toUpperCase())} · WAV + MIDI${STEMS_READY ? "" : " · UPLOADING SOON"}
+
${esc(t.asset.toUpperCase())} · ${t.stems.length} STEMS · WAV + MIDI
LENGTH
${t.durationText}
${t.duration.toFixed(1)} s, read from the remastered file.
@@ -842,8 +842,9 @@ async function download(slug) { r = null; } if (!r || !r.ok) { - const why = r && r.status === 401 ? "KEY NOT ACCEPTED · LOCK AND UNLOCK AGAIN" : "NOT UPLOADED YET"; - st(r && r.status === 401 ? "LOCKED" : "PENDING", "var(--amber)"); + const why = + r && r.status === 401 ? "KEY NOT ACCEPTED · LOCK AND UNLOCK AGAIN" : "UNAVAILABLE · TRY AGAIN"; + st(r && r.status === 401 ? "LOCKED" : "NO SIGNAL", "var(--amber)"); log.innerHTML += `
> ${esc(f.label)} · ${why}`; continue; } @@ -1228,16 +1229,16 @@ async function stemsApi(body) { async function loadSizes() { try { const r = await stemsApi({}); - if (!r.ok) return; - const d = await r.json(); - SIZES = d.sizes || {}; - STEMS_READY = d.ready; + if (r.ok) { + const d = await r.json(); + SIZES = d.sizes || {}; + STEMS_READY = d.ready; + } } catch { /* offline: sizes just stay hidden */ } const total = TRACKS.reduce((n, t) => n + (SIZES[t.asset] || 0), 0); - $("#stemTotal").textContent = STEMS_READY && total ? mb(total) : "SOON"; - $("#allSize").textContent = STEMS_READY && total ? mb(total) : "SOON"; + $("#allSize").textContent = STEMS_READY && total ? mb(total) : "—"; if (STEMS_READY) render(); } function applyData(d) { @@ -1245,8 +1246,9 @@ function applyData(d) { loaded = true; TRACKS = d.tracks; parsePrompts(d.prompts); - $("#stemTotal").textContent = "SOON"; - $("#allSize").textContent = "SOON"; + // every stem comes as WAV + MIDI; the zip sizes arrive from the release (loadSizes) + $("#stemTotal").textContent = TRACKS.reduce((n, t) => n + t.stems.length, 0); + $("#allSize").textContent = "…"; $("#masterBox").textContent = MASTER; $("#palette").innerHTML = PSTYLES.map( (p) => diff --git a/vault/index.html b/vault/index.html index 72b77f8..b2455d7 100644 --- a/vault/index.html +++ b/vault/index.html @@ -87,7 +87,7 @@

ACCESS REQUIRED.

Nº004Nº404Nº404 @@ -182,8 +182,8 @@

ACCESS REQUIRED.

Source vaultACCESS Nº004 · ISSUED 07.10.26 · 20 FILES + >ACCESS Nº404 · ISSUED 07.10.26 · 20 FILES