Skip to content
/ mmp Public

The mini music player, an alternative to MPD

License

Notifications You must be signed in to change notification settings

nmeum/mmp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mmp

The mini music player, an alternative to MPD.

Motivation

All music player daemons suck. This one just sucks less.

I've been using MPD as my primary music player for the last decade or so. I like the idea of controlling my music player using a network protocol but MPD itself tries to do too many things at once. Since I am not interested in building my own music player clients, I always intended to write an alternative implementation of the network protocol used by MPD. My original attempt at doing so was mpvd which provided an implementation of the MPD protocol for controlling the multimedia player mpv. Unfortunately, the protocol mapping turned out to be more complicated than initially conceived and therefore the project was later abandoned.

This project is a new attempt at replacing my MPD setup with a simpler software which handles playback and music database management separately. Instead of mpv, it currently uses gstreamer. Additionally, it relies on the music library manager beets for database management.

Status

Proof of concept, buggy and totally incomplete at the moment.

Dependencies

This software provides the required glue code for combining:

As such, this software has the following dependencies:

Setup

The library libmpdserver is still in early stages of development. As such, I haven't tagged releases or provided install scripts yet. For this reason, just build the library manually for now using:

$ git clone --recursive https://github.com/nmeum/libmpdserver
$ make -C libmpdserver libmpdserver.so

Afterwards, install and configure beets if you haven't already. For further information consult the beets documentation.

Usage

To use this software with an existing beets library, start it by pointing it to your beets database. For example:

$ hy mmp.hy -a 127.0.0.1 -p 6600 ~/.config/beets/library.db

Tests

If mpc is installed test can be invoked using:

$ ./tests/run_tests.sh

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.