🎤 What
A community member goes live on the station: the on-duty persona introduces them ("we've got a guest in the booth"), the engine switches to their live audio, and when they're done the persona reclaims the air with a back-announce. Radio's soul is liveness — this is the feature that makes the station a stage, not just a speaker.
🔧 Mechanics
- Engine side: Liquidsoap
input.harbor — built for exactly this. Live source with the playout queue as fallback; switch with crossfade; auto-reclaim after N seconds of silence or an explicit release.
- v1 keeps it honest (KISS): the harbor speaks the icecast source protocol, so v1 can be "point BUTT/Mixxx/OBS at this URL with this token" — which is precisely the workflow the target user (the nerdy tech guy DJ-ing for the friend group) already knows. Browser capture (getUserMedia → Opus → gateway) is a v2 rider, not a prerequisite.
- Handoff choreography: mic request → persona intro queued at next break → harbor goes live → on release/silence, persona back-announce ("that was Dave, live in the booth"). The intro/outro copy rides the existing patter pipeline.
🔐 Auth
Admin-granted, time-boxed mic tokens. Never open; off by default, and doubly so under SpectatorMode (an open live-input on a public station is a gh-#75-grade hole). Token = who + until-when, revocable from the admin UI.
📏 Sizing
Engine change is small (harbor + switch + silence detector); the token/UI work is the bulk. P3 — sits naturally after the voice epic.
Freaky Friday 2026-08-14 — pitched by ATLAS; Dean: niche but real ("for friends getting together, or the one nerdy tech guy in the friend group… I get that").
🎤 What
A community member goes live on the station: the on-duty persona introduces them ("we've got a guest in the booth"), the engine switches to their live audio, and when they're done the persona reclaims the air with a back-announce. Radio's soul is liveness — this is the feature that makes the station a stage, not just a speaker.
🔧 Mechanics
input.harbor— built for exactly this. Live source with the playout queue as fallback; switch with crossfade; auto-reclaim after N seconds of silence or an explicit release.🔐 Auth
Admin-granted, time-boxed mic tokens. Never open; off by default, and doubly so under SpectatorMode (an open live-input on a public station is a gh-#75-grade hole). Token = who + until-when, revocable from the admin UI.
📏 Sizing
Engine change is small (harbor + switch + silence detector); the token/UI work is the bulk. P3 — sits naturally after the voice epic.
Freaky Friday 2026-08-14 — pitched by ATLAS; Dean: niche but real ("for friends getting together, or the one nerdy tech guy in the friend group… I get that").