Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing MPD as a MPV replacement. #360

Open
5 of 8 tasks
GavinL2001 opened this issue Apr 4, 2024 · 3 comments
Open
5 of 8 tasks

Implementing MPD as a MPV replacement. #360

GavinL2001 opened this issue Apr 4, 2024 · 3 comments

Comments

@GavinL2001
Copy link

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:

  • Gapless playback
  • Can stream directly from server URL, including handling range requests for seeking
  • Plays pretty much any audio format
  • Audio device selection
  • Audio exclusive mode (can't confirm on this feature)
  • Built-in equalizer (I believe the ffmpeg plugin can add this functionality, but it's not built-in) (reference)
  • ReplayGain support, reading the gain info from the file tags
  • Reports "instantaneous" bitrate for VBR codecs (can't confirm on this feature)

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
Copy link
Owner

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
Copy link
Author

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
Copy link

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/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants