Coding

Active / 2026 / Designer and developer

SUB/WAVE Radio Documentaries

An AI-assisted, self-hosted pipeline that turns albums into radio-style documentary episodes.

Stack

TypeScript
Pi
ElevenLabs
OpenRouter
MCP Server

Focus

AI agents
Audio automation
Homelab

Highlights

  • Research and script-writing use language models; validation, budgeting, rendering, and publishing are deterministic code with tests.
  • Produces an episode playlist that interleaves synthetic-host narration with the album’s original tracks in a self-hosted music library.

Context

SUB/WAVE Radio Documentaries is an experiment in making album “making of” shows that feel like a real radio documentary. Each episode focuses on one record: a synthetic station host guides the listener through its story, with the album tracks woven into the running order.

The project runs on a small server in my home as part of the wider SUB/WAVE radio ecosystem. It is built for listening, but the public site also makes the process visible: every episode carries an AI disclosure and the full script so the claims can be inspected.

What I Built

I built the production harness that takes an album, artist, and host, then turns that brief into a publishable radio episode. It maintains the episode catalogue, gathers and assesses web research, produces a formatted script, synthesises spoken segments, tags the audio, and builds a playlist in the self-hosted Navidrome library.

The output is deliberately modular. Narration is rendered segment by segment, so a bad take can be replaced without recreating a whole episode; the same running sheet drives the audio and playlist order.

Technical Notes

The design principle is deterministic by default, language model by exception. Models are used where language judgement is useful: reading sources into research notes and writing a host’s script. The rest is TypeScript with a constrained script format, automated validation, cost caps, audio metadata, and publishing tools.

That boundary matters. A well-formed script is checked before it can be recorded; an advisory fact-check pass flags questionable claims without pretending to be a source of truth; lyric quotations come from a separate verbatim source rather than model recall. The system is designed to make the uncertain parts explicit and give the repeatable parts to ordinary, testable code.