https://gitlab.synchro.net/main/sbbs/-/commit/5b22fcff57fe8acdd12ae0ab
Modified Files:
docs/superpowers/specs/2026-07-08-syncmoo1-sfx-audio-design.md
Log Message:
syncmoo1: spec -- fix the s_ rationale, flag the transcode-version gap
Two corrections to the SFX audio spec, both found by checking what the
other doors actually do rather than assuming.
The spec claimed the "s_" prefix keeps the sfx and music namespaces from aliasing. It does not, and nothing needs to: cache_name() already
separates them by sub-directory (<prefix>/sfx/<leaf> vs
<prefix>/music/<key>). The prefix is a legibility tag, which is what SyncDuke's own comment says of its "<trackname>_<hash>" scheme -- "the
name just makes the cache files readable". Keep "s_", drop the false
reason.
More usefully: termgfx does not ship our VOC verbatim. sfx_store_bytes() transcodes it to an 8-bit WAV, so s_<hash> names the SOURCE bytes, not
the cached ones. Music already solved this -- mus_key() appends _v<MUS_RENDER_VER> so the name changes when the renderer does. SFX have
no such tag. Harmless today, because every session re-Stores and the
Store overwrites; it becomes a stale-audio bug the moment step 3 makes name-presence mean "skip the upload". Step 3 now says the leaf must gain
its own transcode-version tag (s_<hash8>_v<n>, 13 chars, inside the
16-byte bound termgfx enforces) before, or with, widening the C;L glob.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net