no-nonsense music client and server based on mpd, coffee-script, node.js, and
Switch branches/tags
Pull request Compare This branch is 1035 commits behind andrewrk:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Groove Basin

No-nonsense music client and server for your home or office.

Run it on a server connected to your main speakers. Guests can connect with their laptops, tablets, and phones, and play and share music.

Depends on mpd for the backend. Some might call this project an mpd client.


  • Lightning-fast, responsive UI. You can hardly tell that the music server is on another computer.

  • Dynamic playlist mode which automatically queues random songs, favoring songs that have not been played recently.

  • Drag and drop upload. Drag and drop playlist editing. Rich keyboard shortcuts.

  • Streaming support. You can listen to your music library - or share it with your friends - even when you are not physically near your home speakers.

  • scrobbling.

Get Started

Make sure you have Node and npm installed, then:

$ npm install groovebasin
$ npm start groovebasin

At this point, Groove Basin will issue warnings telling you what to do next.


Search + drag/drop support Multi-select and context menu Keyboard shortcuts Scrobbling


Groove Basin depends on mpd.

Some new features are only available when you compile from source:

$ git clone git://


  • audio_output - Uncomment the "httpd" one and configure the port to enable streaming. Recommended "vorbis" encoder for better browser support.

  • sticker_file - Groove Basin will not run without one set.

  • gapless_mp3_playback - "yes" recommended. <3 gapless playback.

  • volume_normalization - "yes" recommended. Replaygain scanners are not implemented for all the formats that can be played back. Volume normalization works on all formats.

  • max_command_list_size - "16384" recommended. You do not want mpd crashing when you try to remove a ton of songs from the playlist at once.

  • auto_update - "yes" recommended. Required for uploaded songs to show up in your library.

Configuring Groove Basin


See the "config" section of package.json for configuration options and defaults.


$ npm config set groovebasin:mpd_conf ~/.mpd/mpd.conf
$ npm config set groovebasin:port 80


$ sudo npm link
$ make watch
$ npm -g start groovebasin