asteroid/design.org

3.1 KiB
Raw Permalink Blame History

Asteroid Music <2025-08-12 Tue>

This project will define an internet radio station with the express purpose of streaming Asteroid Music to the hackers of the world. This project is imagined as a shared endeavour undertaken among the denizens of the #systemcrafters community on twitch and the libera chat IRC network.

Feature Breakdown for Internet Radio Service

A breakdown of must-have and optional features for a Common Lisp-based streaming platform.

Core Music & Content Management

  • Playlist CRUD, Track Library Management
  • Auto-DJ mode with randomization and repeat avoidance
  • Metadata broadcasting
  • Cue points & crossfades

Live DJ Integration

  • Live DJ handoff with authentication
  • Mic & voice-over support
  • Remote cueing, hot swap
  • Jingles & soundboard

Scheduling & Automation

  • Show scheduling
  • Pre-recorded shows
  • Event triggers
  • Failover streams

Listener Features

  • Web player with live metadata
  • Song requests
  • Dedications & shoutouts
  • Live chat
  • Track voting

DJ & Admin Dashboard

  • User roles & permissions
  • Track queue control
  • Upload system
  • Analytics
  • Audit logs

Streaming Infrastructure

  • Multiple bitrate streams
  • Podcast export
  • Replay system
  • Recording

Cool Extras

  • Social push for 'now playing'
  • Visualizer output
  • Listener polls
  • API for automation

System Architecture Overview

Architecture layers and data flow from DJs to listeners, with Common Lisp core handling business logic and integration with streaming backend (Liquidsoap + Icecast).

Components

  • Ingest & Switchboard
  • Transcoder/Packager
  • Delivery layer
  • Web Player
  • Common Lisp Core
  • Database/Storage
  • Analytics/Observability

MVP Definition

In this context, MVP (Minimum Viable Product) means the smallest set of features that allows the station to operate live to listeners, reliably, with essential functionality.

MVP for this project includes:

  • Auto-DJ playback
  • Scheduled playlists
  • Icecast streaming
  • Live DJ handoff
  • Basic admin dashboard
  • Postgres-backed library
  • Now-playing metadata
  • Basic web player

MVP vs Later Feature Checklist

This checklist helps ensure Phase 2 features do not slip into the MVP development window.

MVP Features (Weeks 17)

Feature Description
Project bootstrap Lisp API skeleton, DB schema v0, Icecast + Liquidsoap dev stack
Library ingest Metadata extraction
Auto-DJ in Liquidsoap Crossfade, loudness norm, now-playing metadata
Scheduler engine Recurring shows/playlists
Live DJ handoff Auth & smooth transitions
Listener requests Endpoint, queue control, audit log
Show recording Archive (local/7 days?)

Later / Phase 2 Features (Weeks 810)

Feature Description
Roles & permissions Admin/DJ/Curator, login/password reset
Nightly backups -
Analytics dashboard Listener count, time-on-station
Prometheus/Grafana Metrics, incident alerts
QA Runbook, load testing, public landing page skin
Stability test 48h uninterrupted operation