// the find
andrewrk/groovebasin
Music player server with a web-based user interface.
A self-hosted music streaming server with a web UI, originally built by Andrew Kelley (yes, the Zig creator) back when he was deep in audio tooling. It's for someone who wants to run a Spotify-for-your-own-library server at home, with guests controlling playback from any browser.
EBU R128 loudness scanning with automatic track/album mode switching is a genuinely useful feature most self-hosted players skip entirely. MPD protocol support means you inherit a whole ecosystem of existing clients for free instead of building your own. The client-prediction approach to hiding network lag in the websocket protocol is a real technical choice, not just a buzzword — worth reading src/client/playerclient.js if you're building anything with optimistic UI updates over a socket.
The install story is rough: it depends on native libgroove/libgrooveloudness/libgroovefingerprinter bindings via node-groove, and the README's own instructions are pinned to Ubuntu 17.04 and 18.04 — there's no Docker image or modern packaging, so getting this running on anything current means compiling C libraries by hand. No visible test suite in the tree. The vanilla-JS client rolls its own event_emitter.js and inherits.js instead of using anything off the shelf, which was normal in 2014 but is a maintenance tax now. Last push was over a year and a half ago with roadmap items still unchecked, so treat it as a frozen snapshot rather than an actively evolving project.