spl0k / supysonic

Supysonic is a Python implementation of the Subsonic server API.
https://supysonic.readthedocs.io
GNU Affero General Public License v3.0
263 stars 58 forks source link

Jukebox mode? #88

Closed sprnza closed 2 years ago

sprnza commented 6 years ago

Hi there! Just curious. Why jukebox mode is not goin to be implemented? Is there some technical limitations or it's just strategic decision?

spl0k commented 6 years ago

Hi. First of all because I'd like to stick to the server concept. Its sole purpose should be serving data to clients requesting it, not acting like some audio player. Furthermore I don't want to add dependencies on audio processing libraries or other specific software.

sprnza commented 6 years ago

@spl0k, thanks for the reply.

anarcat commented 6 years ago

plenty of audio servers actually do implement audio playback. mpd for example, is one of those. subsonic is another one. :)

i would encourage you to reconsider; I'm considering switching away from MPD and two things are missing in the Subsonic ecosystem for me:

  1. a proper desktop client - nothing you can do about here of course
  2. a lightweight server - supysonic looks like a nice alternative, but is lacking jukebox support

How would one implement a jukebox with supysonic? Is there a dumb, headless Subsonic player that would obey Jukebox commands? This would be weird because the API requests would need to be channeled through a different endpoint...

Playing audio is not that complicated... In the past, I've had good luck with pygame to play simple sounds, but music players like Quodlibet talk with gstreamer through the gi interface. MusicPlayer is another that has its own library that could be interesting...

spl0k commented 4 years ago

It's been some time, but the 0.5.0 version finally brings the jukebox mode.

Rather than adding some audio playback library I went on using an user-defined external player (such as mplayer). Because of this there might be a small error in playback progress and you won't be able (yet?) to set the output volume. Users will need a new role to be able to use the jukebox. This jukebox mode requires the daemon to be running. Some details can be found on the documentation.

It might need some more work but it seems to be working well enough.

:christmas_tree: Merry Christmas :gift:

clach04 commented 2 years ago

Worth closing this ticket down now that this feature is available?

spl0k commented 2 years ago

Hello. I tend to leave issues open when I consider more work could be put into it, but I don't remember what I had in mind with this one. So I'll close it ;)