asteroid/design.org

105 lines
3.1 KiB
Org Mode
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

* 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 [[https://www.twitch.tv/systemcrafters][#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 |