Page 1 of 2

Share jukebox player across multiple users

PostPosted: Mon Jan 31, 2011 6:20 pm
by nlmarco
Hello *,

first of all thanks for this great piece of software! After I had some trouble with subsonic last week, I finally got it running fine.

I miss one important feature, though: A player cannot be shared across multiple users - at least I didn't find any setting that allows multiple users to control one single jukebox player.

Multiple users in one room should be able to add/remove songs from a central playlist that is played in this room. IMHO this feature is very simple to implement: A flag could indicate whether a player is "public". If it is, every user should see it in the players combo box and thus be able to edit this central play list.

In the long run, this could be extended to configure which users are allowed to access which player, but for the beginning a simple boolean flag "public" would be sufficient.

Best regards, Marco :)

PostPosted: Tue Feb 01, 2011 2:29 am
by overand
I have to concur on this one - though I know it's a bit tricky.

I have a feeling that many of us are desperately seeking this out since "ListeningRoom" has closed down.

For reference, the site was far more simple than Subsonic - public or semi-public (no list) rooms, with a chat option and an 'upload' button.

The server transcoded the file to MP3, and would play it. Any user could upload a file, and it would append the file to the end of the playlist.

I'm not sure if the site used a flash player or what - I'm wishing i'd grabbed a copy of the HTML source for reference purposes. But - it was amazing.

Oh - and this was previously requested, it seems.

PostPosted: Tue Feb 01, 2011 2:54 pm
by ccandreva
I've had the same problem.

You can work-around this by having multiple web browsers logged in as the same user. They will all control the same jukebox.

Essentially there should only be one jukebox player, at least per soundcard.

PostPosted: Tue Feb 01, 2011 7:13 pm
by overand
Hmm- that might work. Trying to test it with someone right now.

One of the great things about "listeningroom" is/was the fully social aspect - and the public aspect. Obviously, making a Subsonic instance fully-public is probably a Bad Idea.

The 'trick' to doing this 'the way I want' may be the 'real syncronizing' bits, plus the whole 'chat multi-user' thing.

If there's a way to get the web client to tell the flash player 'ok, GO' then that helps the sync issue. Another option is a flash player that pulls a constant-stream rather than single file based ones, perhaps - that's digging deeper into the guts though.

If there is some way to enable multiple separate *users* to share one playlist, that would be great. Even more so if we can marry a user account to a specific player.

ccandreva wrote:I've had the same problem.

You can work-around this by having multiple web browsers logged in as the same user. They will all control the same jukebox.

Essentially there should only be one jukebox player, at least per soundcard.

Re: Share jukebox player across multiple users

PostPosted: Wed Sep 07, 2011 8:04 pm
by nlmarco
Hello *,

I wrote a patch introducing the new column 'usergroup' to the table 'player' (see attachment). Right now, this can only be used to differentiate between public and private players, but later on, we might add a real usergroup-management (i.e. control which user is a member of which groups).

If the usergroup of a player is 'public', the player is visible to everyone. Otherwise it's considered private.

At the moment, there is no UI for toggling this public state, yet. But for me this was already sufficient to solve my problem: I need only one public player, which I configured directly in the database and it works fine, now.

I might add UI in the next few days (when I have time). I'd really appreciate, if my patch was integrated into the current trunk!

Best regards, Marco :)

P.S.: Subsonic is really nice and clean code! Kudos to Sindre Mehus!!! Though, I prefer JDO (with DataNucleus), Subsonic is really well-structured code capsuling JDBC cleanly.

Re: Share jukebox player across multiple users

PostPosted: Thu Sep 08, 2011 1:12 pm
by nlmarco
Hello Sindre,

I finished my extension (added UI to modify the usergroup of a player and wrote a bit of javadoc for the new methods). Please find my new patch for the project 'subsonic-main' attached to this post (it replaces yesterday's patch). Please apply it to the trunk in SVN. I would be very happy - and I guess others too - if the next official release contained this new feature.

Best regards, Marco :)

Re: Share jukebox player across multiple users

PostPosted: Tue Sep 20, 2011 7:48 am
by Egoiste
nlmarco wrote:Hello Sindre,

I finished my extension (added UI to modify the usergroup of a player and wrote a bit of javadoc for the new methods). Please find my new patch for the project 'subsonic-main' attached to this post (it replaces yesterday's patch). Please apply it to the trunk in SVN. I would be very happy - and I guess others too - if the next official release contained this new feature.

Best regards, Marco :)


Hello Sindre,

we have actually implemeted and tested out nlmarco's patch above in our offices. Not only do we find the overall shared user-experience very much improved (at least among our colleagues), but we also find it to be a rather practical approach to be able to view the songs queued on the 'public' playlist -- gives us the opportunity to happily manipulate and change the order of queue :P

I recommend the patch be applied to the SVN trunk, so everyone else can have the pleasure of having the public playlist.

Cheers!

Re: Share jukebox player across multiple users

PostPosted: Sat Oct 01, 2011 2:04 am
by nordge1
Egoiste or nlmarco
I am not familiar with how to implement this patch and would LOVE to try it out. Could you write a short tutorial on how you did it? I also would like to vote for this to be implemented in the next release of this software.
Thanks

Re: Share jukebox player across multiple users

PostPosted: Sun Oct 02, 2011 8:14 pm
by BrianDelShasta
Yes, I would still love to see this feature implemented. I'd like to see which user added which tracks as well.

Re: Share jukebox player across multiple users

PostPosted: Fri Nov 16, 2012 10:08 am
by andvaranaut
I came looking for this exact functionality and found this thread. Is there still any hope for this feature to be added? It would be an excellent addition to what is already a great experience.

By the way, if you have two users with jukebox access to the server and one starts playing a song, the other user appears in the 'now playing' list as though s/he had just stopped the last song heard...

Best regards!

Re: Share jukebox player across multiple users

PostPosted: Sat Apr 13, 2013 12:46 am
by shaddi
Just wanted to bump this up -- would love to see this in the next release!

Re: Share jukebox player across multiple users

PostPosted: Sat Apr 13, 2013 4:17 am
by Dalesmedia
+ 1

Re: Share jukebox player across multiple users

PostPosted: Tue Sep 24, 2013 12:03 am
by benofishal
+1 on this as well

Re: Share jukebox player across multiple users

PostPosted: Tue Sep 24, 2013 2:46 pm
by OlYeller21
I've wanted this for a while. All of my friends have access to my Subsonic server and I'd love for Subsonic to work as a Jukebox where everyone with the app can add songs to a playlist.

This is probably a bigger request than I realize.

Re: Share jukebox player across multiple users

PostPosted: Tue Oct 01, 2013 9:30 pm
by nlmarco
Hello everyone,

it's a long time ago since I patched this. It's really a pitty that Sindre didn't accept my patch :(

I just checked out trunk and tried to apply it. Unfortunately, quite a few things changed and there are too many collisions. My patch is thus not applicable to trunk, anymore :(

If anyone of you wants to apply the patch to the old version, you can still do this, of course. But you'd be forced to use the same old version as I did: SVN revision 2415.

Anyway, I'll explain roughly how things work:

Subsonic's sources are - as you can see on http://www.subsonic.org/ - hosted on SourceForge: http://sourceforge.net/projects/subsonic/

Or more precisely: http://sourceforge.net/p/subsonic/code/HEAD/tree/

You have to check out revision 2415 of svn://svn.code.sf.net/p/subsonic/code/trunk

Either you do this using Subclipse (first add the given URL as repository and then check-out - don't forget the revision!) or you checkout using the command line of Subversion:

Code: Select all
svn checkout svn://svn.code.sf.net/p/subsonic/code/trunk -r 2415


...with Subclipse choose "Check out as project in the workspace" and leave the default "trunk" value in the text box.

...if you used the command line, you'll have to import "trunk" as project into Eclipse.

Inside "trunk" you will find a folder named "subsonic-main". Select this folder, right-click and select "Team" > "Apply patch...". Then select the file (from my old posting above) and click "Next". In the following, you'll have to select "subsonic-main", which should already be pre-selected, because you clicked on it before. And of course, you should leave "Apply the patch to the selected file, folder or project:" selected (should be selected by default).

You can then click "Next" again to see my changes in detail. Hit "Finish" to apply them.

After my changes are applied, you'll have to compile everything. Therefore, you run maven on "trunk/pom.xml" with goals "clean install" (or at least "install"). Right-click the pom.xml directly in "trunk" and select "Run As" > "Maven build...". Enter the goals "clean install" and hit "Run".

Alternatively, run Maven from the command line:

Code: Select all
cd ${checkoutdirectory}/trunk
mvn clean install


That's it: There's now a new subsonic.war inside the "trunk/subsonic-main/target/" folder.