docs: add README.md with project overview and usage instructions

Co-authored-by: aider (gemini/gemini-3.1-pro-preview) <aider@aider.chat>
This commit is contained in:
Tanner
2026-07-28 17:32:46 -06:00
parent 1fffff87dd
commit df8a33f456
+24
View File
@@ -0,0 +1,24 @@
# Headless Audio Player
A lightweight, headless Python audio player designed as a fast drop-in replacement for `mpv`.
## What it does
- Decodes and resamples common audio formats to `48000Hz`, `stereo`, `s16` PCM.
- Applies on-the-fly EBU R128 volume normalization using FFmpeg's `loudnorm` filter.
- Outputs raw PCM audio directly to a FIFO pipe (`/tmp/snapfifo`).
- Provides a JSON IPC server over a Unix socket for real-time playback control (pause, volume, seek, quit).
## What it's for
This player is specifically built to act as a backend player for music servers like **Navidrome** (in Jukebox mode) feeding into multi-room audio systems like **Snapcast**. It avoids the overhead of full `mpv` while maintaining compatibility with its IPC protocol.
## How to use it
1. Install the required dependencies (Python 3.11+ recommended):
```bash
pip install av numpy
```
2. Run the player, specifying the IPC socket path and the audio file:
```bash
python main.py --input-ipc-server=/tmp/mpv-socket /path/to/song.flac
```