Add an agentic live station with synchronized music and DJ streams - #28
Add an agentic live station with synchronized music and DJ streams#28Popidge wants to merge 1 commit into
Conversation
|
Just as a bit of background - I have a broadcast background - have worked as a producer for BBC Local Radio here in the UK, as well as producer, presenter and tech guy at various community and student radio projects over the years. Only a few days ago, I started building a genuinely live agentic radio station, with zero pre-made music - everything live, music generated by your prompts, professional-level presentation and live reactivity. (demo at https://youtu.be/iBidOZ-P3rI?si=dBuRxSILgJoDaqk1) I'm a keen omarchy user for the past year, plugin maker and semi-pro X-yapper at anyone who mentions omarchy, so when I saw this, i thought "omarchy radio could really do with an agentic dj, huh, if only i had one of those lying around that i've just poured lots of hours and tokens into...". Just as I made that decision, i got gpt-6-astra access. It handled porting over my agentic DJ to the current omarchy radio surface. It also made that video demo, which I would have cut differently, but you do you i guess, AGI! So yeah. happy to talk this through, help integrate, build out, maintain, whatever. Plenty of edges to iron out (teaching the tts model to pronounce omarchy, for one!), this is an "intersecting passions" project for me, not just a drive-by PR dump with inflated expectations! |
|
Also, in terms of AI models used in this, the demo uses GPT-Luna for LLM and elevenlabs for tts, just because that's what my prior project used. These are easy enough to interchange, as long as they're suitably quick and high-enough quality. Specifically for TTS, Speechify SImba 3.2 is significantly cheaper, low latency and scores better on artificialanalysis, so would be worth a look. |
This adds a shared live producer and presenter around Omarchy Radio's existing community music. The current player, on-demand tracks, attribution, explicit labels and contribution workflow remain in place. DJ presentation applies only to live radio.
The browser receives two synchronized MP3 stems. Turning the DJ off removes speech and presentation ducking without seeking the music. Choosing a playlist track leaves the station; returning to live rejoins its current programme.
Broadcast behaviour
Fits the current serving arrangement
Keep GitHub Pages for the site and nginx on the existing stream host. The included companion service supplies
/api/station, paired MP3 audio, statistics, and a continuous mixed/omarchy/streamwith ICY metadata for conventional clients. Audio stays at 128 kbps MP3 / 44.1 kHz.Compose, reverse-proxy locations, provider configuration and local rehearsal commands are included. This needs one persistent volume and one station writer, with no database, broker or frontend build system. The static site retains its existing stream until
station-config.jsis explicitly configured.Demo and validation
Watch the recorded demo. Run notes and transcript.
The show runs in real time with recorded public source excerpts arriving at predetermined times. Models and TTS run live; the idents, jingle and bed are prerecorded. The edit removes music between presentation windows. Source fixtures are disclosed, and no successful prerecorded presenter links replace failed outputs.
40 automated tests cover timing, cue overruns, source grounding, provider failures, paired publication, restart recovery, synchronization, mute behaviour, catalogue updates, CORS, and actual MP3/ICY output. Local browser checks cover MP3 decoding, split frontend/backend origins, live-only controls and return to live. A small concurrent delivery check confirms listeners receive the same programme and audio objects.
Not yet validated: the maintainers' private nginx/CLIAMP deployment, sustained production load, and a physical mobile/Safari browser matrix. Docker configuration is included, but this development account cannot access the Docker daemon, so no container runtime validation is claimed. Semantic grounding remains probabilistic; the model choice and editorial policy need ongoing evaluation. Existing tracks have no reviewed talkover cues, so the recorded demonstration uses guarded junctions.
I don't expect this to be merged as-is. I'm happy to work on it with you and iterate, or for you to take the parts you find useful and implement the idea in your own way. The aim is to show what a capable live producer and presenter could add to the existing radio, while keeping its identity and music intact.