From 28f0d102bc77fab876a90d99c00e3189d63dfaec Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sun, 26 Jul 2026 14:49:20 +0000 Subject: [PATCH] refactor(audio): lay music out as music//.mp3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The licence and attribution belong to the artist, not to each file, and a folder per artist is where a reader looks for that. Tracks are Þrøngva, original work by the project owner, now recorded in PROVENANCE.md. It also removes a real bug rather than just tidying. The download-budget guard excluded music with a `^music_` filename pattern, which silently under-counted the moment a track arrived under its own name — two did, and 22 MB of songs ended up inside a 6 MB guard. Music now sits in a subdirectory and the guard counts the flat .mp3 files in the audio root, so a track cannot be misfiled into the shell budget by a naming slip. The track table carries title and artist alongside the path, so a "now playing" line needs no second source of truth. Co-Authored-By: Claude Opus 5 (1M context) --- apps/game/public/assets/manifest.json | 14 ++--- apps/game/public/audio/PROVENANCE.md | 25 +++++++++ .../throngva/frost-on-the-oar.mp3} | Bin .../throngva/ironwood-oath.mp3} | Bin .../throngva/runes-on-ice.mp3} | Bin .../throngva/storm-crown-oath.mp3} | Bin .../throngva/the-wolf-called-want-part-2.mp3} | Bin .../throngva/the-wolf-called-want.mp3} | Bin apps/game/src/audio.ts | 50 ++++++++++++++---- tools/art/build-assets.mjs | 29 ++++++---- 10 files changed, 90 insertions(+), 28 deletions(-) rename apps/game/public/audio/{music_frost-on-the-oar.mp3 => music/throngva/frost-on-the-oar.mp3} (100%) rename apps/game/public/audio/{music_ironwood-oath.mp3 => music/throngva/ironwood-oath.mp3} (100%) rename apps/game/public/audio/{music_runes-on-ice.mp3 => music/throngva/runes-on-ice.mp3} (100%) rename apps/game/public/audio/{music_storm-crown-oath.mp3 => music/throngva/storm-crown-oath.mp3} (100%) rename apps/game/public/audio/{music_the-wolf-called-want-part-2.mp3 => music/throngva/the-wolf-called-want-part-2.mp3} (100%) rename apps/game/public/audio/{music_the-wolf-called-want.mp3 => music/throngva/the-wolf-called-want.mp3} (100%) diff --git a/apps/game/public/assets/manifest.json b/apps/game/public/assets/manifest.json index da000be..05a56b9 100644 --- a/apps/game/public/assets/manifest.json +++ b/apps/game/public/assets/manifest.json @@ -1,7 +1,7 @@ { "generator": "tools/art/build-assets.mjs", "blender": "Blender 4.5.12 LTS", - "commit": "ad926825e31ded8e6197881e6d68cf00f368ed65", + "commit": "e132eb8caf8583e204fe8a2292219ebce39c6955", "license": "Original work, © NIGHTCELL 7. No third-party assets.", "source": "Generated procedurally from the scripts in tools/art. No asset is downloaded, photographed, traced, or derived from another game.", "textureSize": 1024, @@ -69,12 +69,12 @@ "ui_hover.mp3" ], "music": [ - "music_frost-on-the-oar.mp3", - "music_ironwood-oath.mp3", - "music_runes-on-ice.mp3", - "music_storm-crown-oath.mp3", - "music_the-wolf-called-want-part-2.mp3", - "music_the-wolf-called-want.mp3" + "throngva/frost-on-the-oar.mp3", + "throngva/ironwood-oath.mp3", + "throngva/runes-on-ice.mp3", + "throngva/storm-crown-oath.mp3", + "throngva/the-wolf-called-want-part-2.mp3", + "throngva/the-wolf-called-want.mp3" ], "bytes": { "models": 4206012, diff --git a/apps/game/public/audio/PROVENANCE.md b/apps/game/public/audio/PROVENANCE.md index ac0352d..2271c4f 100644 --- a/apps/game/public/audio/PROVENANCE.md +++ b/apps/game/public/audio/PROVENANCE.md @@ -59,3 +59,28 @@ variations exist to prevent. Original work, © NIGHTCELL 7. No third-party audio, no sampled material, and nothing produced by a generative audio model. + +## Music + +Original work by **Þrøngva**, written for this game by the project owner. Not +licensed from a third party, so there is no external licence to comply with and +no attribution obligation — the credit below is for the record. + +Laid out as `music//.mp3`. The licence and attribution belong to +the artist rather than to each file, and a folder per artist is where a reader +looks for that. It also removed a real bug: the download-budget guard used to +exclude music by a `^music_` filename pattern, which silently under-counted the +moment a track arrived under its own name and put 22 MB of songs inside a 6 MB +guard. A directory cannot be misspelt into the wrong bucket. + +| File | Title | +| ------------------------------------------------ | ----------------------------- | +| `music/throngva/frost-on-the-oar.mp3` | Frost on the Oar | +| `music/throngva/runes-on-ice.mp3` | Runes on Ice | +| `music/throngva/ironwood-oath.mp3` | Ironwood Oath | +| `music/throngva/storm-crown-oath.mp3` | Storm Crown Oath | +| `music/throngva/the-wolf-called-want.mp3` | The Wolf Called Want | +| `music/throngva/the-wolf-called-want-part-2.mp3` | The Wolf Called Want (Part 2) | + +Streamed by an `