The mini music player, an alternative to MPD.
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.
Proof of concept, buggy and totally incomplete at the moment.
This software provides the required glue code for combining:
As such, this software has the following dependencies:
- The hy programming language
- The gst-python module
- The libmpdserver parser library
- The beets music manager
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.
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
If mpc is installed test can be invoked using:
$ ./tests/run_tests.sh
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/.