Tanner df8a33f456 docs: add README.md with project overview and usage instructions
Co-authored-by: aider (gemini/gemini-3.1-pro-preview) <aider@aider.chat>
2026-07-28 17:40:53 -06:00
2026-07-28 16:06:48 -06:00
2026-07-28 17:08:16 -06:00
2026-07-28 16:06:19 -06:00

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):

    pip install av numpy
    
  2. Run the player, specifying the IPC socket path and the audio file:

    python main.py --input-ipc-server=/tmp/mpv-socket /path/to/song.flac
    
S
Description
No description provided
Readme 54 KiB
Languages
Python 100%