/ design.org
design.org
1 * Asteroid Music <2025-08-12 Tue> 2 3 This project will define an internet radio station with the express 4 purpose of streaming Asteroid Music to the hackers of the world. This 5 project is imagined as a shared endeavour undertaken among the 6 denizens of the [[https://www.twitch.tv/systemcrafters][#systemcrafters community]] on twitch and the libera 7 chat IRC network. 8 9 * Feature Breakdown for Internet Radio Service 10 A breakdown of must-have and optional features for a Common Lisp-based streaming platform. 11 12 ** Core Music & Content Management 13 - Playlist CRUD, Track Library Management 14 - Auto-DJ mode with randomization and repeat avoidance 15 - Metadata broadcasting 16 - Cue points & crossfades 17 18 ** Live DJ Integration 19 - Live DJ handoff with authentication 20 - Mic & voice-over support 21 - Remote cueing, hot swap 22 - Jingles & soundboard 23 24 ** Scheduling & Automation 25 - Show scheduling 26 - Pre-recorded shows 27 - Event triggers 28 - Failover streams 29 30 ** Listener Features 31 - Web player with live metadata 32 - Song requests 33 - Dedications & shoutouts 34 - Live chat 35 - Track voting 36 37 ** DJ & Admin Dashboard 38 - User roles & permissions 39 - Track queue control 40 - Upload system 41 - Analytics 42 - Audit logs 43 44 ** Streaming Infrastructure 45 - Multiple bitrate streams 46 - Podcast export 47 - Replay system 48 - Recording 49 50 ** Cool Extras 51 - Social push for 'now playing' 52 - Visualizer output 53 - Listener polls 54 - API for automation 55 56 * System Architecture Overview 57 Architecture layers and data flow from DJs to listeners, with Common Lisp core handling business logic and integration with streaming backend (Liquidsoap + Icecast). 58 59 ** Components 60 - Ingest & Switchboard 61 - Transcoder/Packager 62 - Delivery layer 63 - Web Player 64 - Common Lisp Core 65 - Database/Storage 66 - Analytics/Observability 67 68 * MVP Definition 69 70 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. 71 72 MVP for this project includes: 73 - Auto-DJ playback 74 - Scheduled playlists 75 - Icecast streaming 76 - Live DJ handoff 77 - Basic admin dashboard 78 - Postgres-backed library 79 - Now-playing metadata 80 - Basic web player 81 82 * MVP vs Later Feature Checklist 83 This checklist helps ensure Phase 2 features do not slip into the MVP development window. 84 85 ** MVP Features (Weeks 1–7) 86 | Feature | Description | 87 |---------|-------------| 88 | Project bootstrap | Lisp API skeleton, DB schema v0, Icecast + Liquidsoap dev stack | 89 | Library ingest | Metadata extraction | 90 | Auto-DJ in Liquidsoap | Crossfade, loudness norm, now-playing metadata | 91 | Scheduler engine | Recurring shows/playlists | 92 | Live DJ handoff | Auth & smooth transitions | 93 | Listener requests | Endpoint, queue control, audit log | 94 | Show recording | Archive (local/7 days?) | 95 96 ** Later / Phase 2 Features (Weeks 8–10) 97 | Feature | Description | 98 |---------|-------------| 99 | Roles & permissions | Admin/DJ/Curator, login/password reset | 100 | Nightly backups | - | 101 | Analytics dashboard | Listener count, time-on-station | 102 | Prometheus/Grafana | Metrics, incident alerts | 103 | QA | Runbook, load testing, public landing page skin | 104 | Stability test | 48h uninterrupted operation |