Radiotomate release notes#
0.1#
This first beta release settles Radiotomate's architecture by implementing the most important features:
- Auto-DJ as non-overlapping time period that select via a (weighted) Beets filter(s)
- Carts as a collection of sounds picked in order or randomly
- "simple" mode for timed carts: pick a weekday and a HH:MM
- "advanced" mode: cron formulas for timed carts
- Relay external streams
- External stream input
- Automated switch to the first available source among external/relay/carts/autoDJ
- "Live" page displaying what's currently playing
- Log metadata and relay it to other HTTP endpoints
- Configurable outputs, to Icecast or ALSA
- Apply replay gain to music, carts and jingles
- Basic user account creation and access rights
- A minimalist History page
- A fairly complete automated test suite that also checks the interface remains accessible to screen readers
- A command-line interface for installation, updates and user management
All of that implemented in light, asynchronous web-apps, storing to SQlite and rendering server-side, using HTMX when we need some dynamic rendering.
It also comes with an automated pod creator, using two images: a playout container, based on Liquidsoap's, and a webapps container.
The installer hardcodes that interface is on :6811, scheduler on :6822, playout on
:6833 and playout input on :6800 - we leave ports choice to the host,
and the pod creation provides:
- transparent paths bindings in containers, so application's data has the same path in and outside the contaniner
- provide
beetsandradiotomatecommands working on the usual$PATHoutside the container - a parameter to configure pulseaudio bind or not
- ... without ever being root
And minor/less visible things:
- automated developer environment installation
- carts' maximum duration
- integrate beets 2.5, with drop2beets
- ensure external.stop when switching to live
- configurable logging to files
- Liquidsoap script crash when no output is configured, and suggests to check the config
- save who uploaded a sound/music
- ability to push cart on the autodj queue (for promo spots)
- so much documentation!