HEADLESS MQTT AUDIO PLAYER

A cross-platform headless audio player controlled via MQTT
(Written in ๐Ÿ)

./audio-player config    # Configure sound device (creates config.yaml)
./audio-player           # Run with config.yaml (or use -c custom.yaml)

# Control via MQTT
mosquitto_pub -t "/player/audio_url" -m "http://example.com/sound.wav"
mosquitto_pub -t "/player/cmd/player" -m "start"
๐Ÿ“ก
MQTT Control
Full remote control via MQTT โ€” ideal for embedded systems and installations where no GUI is possible. Integrates with Node-RED, Home Assistant, or any MQTT client.
๐Ÿ”Š
Multi-Channel Routing
Route audio to any combination of output channels (2, 4, 8, 16+). Live-switchable โ€” change routing mid-playback without interruption.
๐ŸŒ
Remote File Loading
Load audio directly from HTTP/HTTPS URLs. Hot-swap โ€” new file downloads in background while current audio continues playing.
๐Ÿ”
Repeat Mode
Play N times (1โ€“10) with configurable intervals (0โ€“30s). Sticky โ€” repeat settings persist across file changes. Ideal for alerts and announcements.
๐Ÿ“Š
Reactive Audio Level
Real-time RMS level published via MQTT for reactive visuals, LED control, or monitoring. Configurable frequency. Disable in config if not needed.
๐Ÿ–ฅ๏ธ
Multi-Instance
Run multiple independent players on the same machine. Each can use the same device (different channels) or separate devices.
See the full technical specs Control ยท Audio ยท File Loading ยท Playback ยท Deployment โ€” 17 features detailed โ–ถ
Control
Protocol MQTT-based API โ€” full remote control, seamless integration with embedded systems, Node-RED, Home Assistant
Status Publishing Player state, position, volume, loop/repeat status, audio level โ€” all published in real-time
Health Heartbeat Configurable heartbeat for monitoring player health in production
Audio Output
Channel Routing Live-switchable โ€” route to any channels (2, 4, 8, 16+), change mid-playback without interruption
Audio Level Real-time RMS for reactive visuals/LEDs. Configurable update rate. Can be disabled via config.
Volume 0โ€“200% range, real-time control via MQTT
File Loading
Remote URLs HTTP/HTTPS โ€” load audio directly from web, no pre-staging needed
Local Paths Absolute file paths also supported
Hot-Swap Background download โ€” current audio continues while new file loads
Auto-Start Configurable: auto-play on new file, or wait for explicit command
Playback
Loop Continuous playback until stopped
Repeat Play N times (1โ€“10) with intervals (0โ€“30s). Sticky across file changes.
Seek Jump to any position (MM:SS or seconds)
Pause / Resume Full transport control. New file with auto-start resumes immediately.
Deployment
Platforms macOS, Linux, Windows (Intel, AMD, Apple Silicon)
Multi-Instance Multiple players per machine, same or different audio devices
$25
Pay what you want (min $5)
One-time payment ยท Lifetime updates ยท Email support

Buy License

View Source
If you find this useful, consider supporting its development:
โ–ธ What's included?
License key, all current features, lifetime updates, and bug fix support via email.
โ–ธ Can I try before buying?
Yes. The software runs without a license but shows a reminder and startup delay. Full source is available on GitHub.
โ–ธ How many devices?
Each license can be activated on up to 2 machines. First activation requires a one-time internet connection; after that, it works fully offline.
โ–ธ Refunds?
Since you can evaluate before purchase, refunds are not offered. Please test thoroughly first.
โ–ธ How do I get my license key?
After purchase, you'll receive your key via email instantly (check spam folder if not received within a few minutes).