Agentic Radiostation
v1.0 · Pure Rust · AI-Powered

Agentic Radiostation

An autonomous, AI-agent-powered internet radio station implemented in 100% pure Rust.

DJ agents, real-time audio processing, and HTTP streaming — all in a single statically-linked binary.

Abstract

We present Agentic Radiostation, a fully autonomous radio broadcast system implemented in 100% pure Rust. The system combines multiple AI agents — a DJ, a Producer, and a Music Director — with real-time audio processing and HTTP streaming to create a self-sustaining, personality-driven radio station. Built without external runtimes, the project demonstrates how modern systems programming languages can host sophisticated agentic workflows, real-time audio pipelines, and interactive user interfaces in a single statically-linked binary.

Architecture

Layered Event Loop

At the bottom, an Axum HTTP server streams continuous WAV audio over chunked transfer encoding. Above this, a background generator loop pre-buffers upcoming tracks: retrieves the next song, generates DJ voiceover via TTS, decodes audio with Symphonia, and pushes prepared tracks into a bounded queue.

The audio stream reads from this queue, seamlessly chaining interstitial voiceovers with song playback.

┌─────────────────────────────┐
│     HTTP Stream (Axum)      │
│   Icecast/Shoutcast compat  │
└──────────┬──────────────────┘
           │ reads from
┌──────────▼──────────────────┐
│   Bounded Track Queue (3)   │
│  DJ voiceover + song PCM    │
└──────────┬──────────────────┘
           │ pre-buffers
┌──────────▼──────────────────┐
│   Background Generator      │
│  TTS → Symphonia → Mix      │
└──────────┬──────────────────┘
           │ orchestrates
┌──────────▼──────────────────┐
│      AI Agents (3)          │
│  DJ · Producer · Music Dir  │
└─────────────────────────────┘

DJ Agent

Six personalities with unique styles, catchphrases, and track-scoring by energy, BPM, and rotation.

Producer Agent

Builds day-part-optimized schedules across six time segments with genre-appropriate DJs and moods.

Music Director

Manages listener requests, rotation counts, mood-based recommendations, and discovery of underplayed tracks.

Audio Pipeline

1. Decode
2. TTS
3. Synthesize
4. Encode
5. Stream

Audio flows through Symphonia decoding (any format to f32 PCM), macOS say TTS with AIFF-to-PCM conversion, synthetic tone generation as fallback, and PCM-to-16-bit-LE encoding with WAV headers for streaming. The server uses 0x7FFFFFFF as the data chunk size — a well-known trick for live audio over HTTP.

Key Features

🤖

AI Agent Trio

DJ, Producer, and Music Director agents collaborate autonomously — generating schedules, selecting tracks, and delivering personality-driven commentary.

🦀

Pure Rust Binary

4,102 lines of Rust across 22 source files. No external runtimes. One statically-linked binary runs the entire station.

📡

Real-Time Streaming

Icecast/Shoutcast-compatible HTTP stream with continuous WAV audio, ICY headers, and chunked transfer encoding.

🎧

6 DJ Personalities

From DJ Turbo's high-energy sets to Luna Nightshade's sophisticated segues — each with unique styles, catchphrases, and track-scoring algorithms.

🧠

LLM-Powered Banter

Optional Ollama integration generates context-aware DJ intros, outros, and station IDs with graceful fallback to template scripts.

📊

Interactive Dashboard

TUI dashboard with waveform visualization, real-time metrics, and full HTTP API for remote control of the station.

Impact & Findings

Democratization of Radio

Traditional radio requires studio infrastructure, licensed talent, and continuous operational cost. This system collapses that into a single binary that runs on any machine. A community center, school, or individual can operate a 24/7 radio station with zero marginal labor cost.

Rust as an Agent Platform

Rust's ownership model and zero-cost abstractions make it a natural host for agentic systems. Agents become first-class types with trait bounds and pattern-matched state machines — all in the same binary, without a garbage collector, with thread safety guaranteed at compile time.

Agent Collaboration Patterns

The three-agent architecture establishes a reusable pattern: a creative agent (DJ) that produces content, a planning agent (Producer) that schedules and curates, and a service agent (Music Director) that handles external input and discovery. Separation of concerns, enforced at the type level.

Future of Synthetic Media

The same architecture could produce personalized news casts, educational radio for classrooms, ambient soundscapes for workspaces, or branded radio for retail environments — each with a unique voice and schedule, each fully autonomous.

Read the Full Paper

Dive into the complete architecture, implementation details, and implications for the future of agent-driven media generation.

View Paper →