Cadence
All-in-one web radio suite with browser UI, music search, request, artwork, and real-time stream information.
Install / Use
/learn @kenellorando/CadenceREADME
📻 About
Cadence (or CadenceRadio) is an all-in-one internet radio suite.
The project ships Icecast and Liquidsoap working out-of-the-box, made complete by a Cadence API providing song request, library search, album artwork, and real-time stream information in a browser UI.
See a live demo on cadenceradio.com!
<img src="https://user-images.githubusercontent.com/17265041/219263637-6971ce33-209a-4eb5-b67e-547f271dc3c8.png" width="600" >🏃 Get Started
An interactive installation script is provided. Users familiar with Docker can be up and running in ~5 minutes.
Server Preparation
- Docker Engine and Docker Compose V2 are installed.
- You have some music files (e.g.
.mp3,.flac) with title and artist metadata.
Installation
Clone the Cadence repository to your server, then run the following:
$ chmod +x ./install.sh
$ ./install.sh
You will be prompted to provide an absolute path to a directory containing music, a stream hostname, a rate limit timeout, a service password, and optional reverse proxy configuration. If you need help figuring out what values to use, refer to the Installation Guide.
Your radio stack will automatically launch and Cadence's web UI will become accessible at localhost:8080.
After initial installation, simply run docker compose pull to check for container updates, then docker compose up to start your station again. Run ./install.sh again at any time to reconfigure. If you make changes to code locally, run docker compose up --build to build and run.
🔬 Technical Details
Architecture
<details> <summary><i>Basic Architecture</i></summary> <img src="https://user-images.githubusercontent.com/17265041/228726513-e71775c4-dce4-4ef3-b4c2-1bbd37999769.png" width="800" > </details>If you're interested in implementation details, this blog post does a dive into how a basic Icecast/Liquidsoap web radio works and the value Cadence provides.
API Reference for Custom Clients
Cadence's GitHub Wiki also hosts an API Reference with complete request/response details, useful for anyone developing custom scripts or clients for their station.
Discord Server Integration
Cadence installations can be directly integrated with Discord Servers using CadenceBot. CadenceBot allows you to control your station through Discord chat and listen to the radio in voice channels! You can quickly demo a CadenceBot by adding it to your Discord server.
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
