five-on-it / apps/tools/src/audio-placeholders
apps/tools/src/audio-placeholders
The radio's placeholder content (npm run audio:placeholders [-- --force]): the five sample stations' items, written once and committed, for a developer to replace with real recordings file by file. Each item starts with a spoken ident that names its station and itself and says it is a placeholder; a song goes on with music synthesized here (pop, synthwave), an episode speaks its script over a quiet bed (a news bed, ambient pads).
The voice is the operating system's text-to-speech (Windows' System.Speech through PowerShell, say on macOS, espeak-ng on Linux), the music and the mix are made here on a seeded random stream (the same files every time), and Blender's bundled FFmpeg (audaspace) encodes every item to a mono MP3 of 48 kbit/s in one headless run. A file that is already there is never written again unless --force: the real recordings that replace the placeholders keep their names.
Where the files go: a station's own folder (apps/client/audio/radio/<station>/), whose station.json is written by hand, or for the station that plays URLs, the client's public folder (apps/client/public/radio-samples/), which its station.json names.