dweymouth / supersonic

A lightweight and full-featured cross-platform desktop client for self-hosted music servers
GNU General Public License v3.0
668 stars 26 forks source link

Implementing MPD as a MPV replacement. #360

Open GavinL2001 opened 2 months ago

GavinL2001 commented 2 months ago

I wanted to return to this comment from #289 as I stumbled across a potential replacement for MPV called MPD.

From my research, it covers most of the check boxes desired from a MPV replacement. Since MPV is primarily a very feature rich media player, not all the features are being utilized in Supersonic, and MPD is about 1/3 of the size of MPV when comparing the sizes of each project's source code.

Here is the wish list that MPD covers:

The only downside I could see (other than a potential refactoring or rewriting of the project with a new backend) is that it looks like MPD uses a server-client setup, which could either add more complication to the implementation, or not work altogether.

I'm not experienced in developing frontends to know whether or not MPD could work in Supersonic, but I figured I'd at least mention it as an idea. If it's something that's already been looked at, or is just a waste of time, I apologize for suggesting this and filling up your already full inbox.

Thanks for all the great work that's already been done on this project, and I look forward to seeing how it grows!

Here is the documentation of MPD for further information if interested: https://mpd.readthedocs.io/en/latest/index.html

dweymouth commented 2 months ago

Thanks for the suggestion! MPD is an interesting project - it's basically like Navidrome but with only Jukebox mode support. In other words, the MPD server catalogs your library and makes it browsable but the clients control playback on the server itself rather than stream the file. So I'm not sure MPD itself is the right backend but what could be an interesting direction would be to pull the playback engine itself out of the MPD project as a library to potentially use in Supersonic.

GavinL2001 commented 2 months ago

Thanks for the insight! The documentation wasn't super clear to me, partially because of my lack of knowledge with some of this stuff, partially because I was very tired when I went down that rabbit hole, so I appreciate your input on the idea!

adamshand commented 2 months ago

I'm not sure how it works, but there are some MPD clients which allow playing songs on the local device. Rigellian is one I've used in the past: https://www.rigelian.net/