Remote Silverjuke Control

Ready-to-use scripts, modules and plugins for Silverjuke.
SilverEagle
Posts: 713
Joined: 30. Sep 08, 14:00
Location: Netherlands
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby SilverEagle » 17. May 09, 21:43

Hi Guest,

Guest wrote:
> I think I get it... but am not sure i see the
> utility, or I am missing something! If (2)
> computers are playing the same playlist, but not
> perfectly synced, then what is the use?

Well, first of all I just point you to my opening post where I suggested a few possible uses. And these were not theoretical, but based both on my own needs and on multiple request on the forum.

> Let me map out a scenario that makes more sense to
>
> 1) Server in basement of house connected to spd/if
> or other digital output ---> Preamp ---->
> (single or multizone).
> 2) Touchscreen in Bedroom
> 3) Touchscreen in Kitchen
> 4) Touchscreen outside on deck
>
> The goal would be to run silverjuke on each
> touchscreen and allow them to control the server.
> I don't want to hook a digitial output, amp and
> speakers to each touch panel. I just want to
> remote control the main server from the remote
> panels. For folks who want speakers and an
> amplifier in each room, then there is no need to
> try and sync the playlists, just share the
> physical music folder between independent
> installs of Silverjuke.
>
> If I am missing something, please let me know :)

So if I understand correctly you want a multiple room system, where everyone listens to the sp/dif out form the (single) master. (Cause as you say: if everyone has their own amp and there is sound isolation between rooms then just sharing the music dir is sufficient, no need for this plugin). So I presume you have a setup where the music is distributed from your main amp to all rooms: maybe speaker cable, maybe small slave-amps, or maybe you live alone and just turn up the volume really loud :-). But the point is you do not listen to the slaves, they are just there for the controlling.

If I understand your setup correctly, then this is precisely the purpose for which this plugin was developed. It does not matter if the audio-output from the slaves is a tiny bit off: you do not hear them, you probably do not even have their audio out connected at all. And the songposition displayed is not a problem either: think like in the normal situation (without the plugin), if you then let Silverjuke crossfade tracks it also displays the new trackname at a more-or-less arbitrary moment, which is never perceived as a problem.

I can only re-use your own question here: if I am misunderstanding something of your setup, please let me know...? ;-)

SilverEagle

SilverEagle
Posts: 713
Joined: 30. Sep 08, 14:00
Location: Netherlands
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby SilverEagle » 18. May 09, 07:13

Hi Thomas,

SilverEagle wrote:
> prontopronto wrote:
> > I have a suggestion for the "remove played
> > title from play list"...
>
> I think what you are suggesting is a good idea,
> I'll try to look into it this week.

I just tested a bit with the "Remove played tracks from queue:" setting in Silverjuke.

What I found out is that when I turn the setting on in the master, and turn it off in the client, then everything seems to work as it should.

What happens is that both client & master go to the next track, then the master is the one removing the track just played from the queue, and finally the client duplicates that change in 5 seconds (when using the default networking timout settings).

I played around for a few minutes and could not get it to break, but please report back if you find any issue I overlooked.

SilverEagle
PS @Frenchi: it takes a while - even if I don't have to code anything - but I get there in the end ;-)

User avatar
Frenchi
Posts: 352
Joined: 6. Apr 08, 17:26
Location: Grenoble / France
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby Frenchi » 18. May 09, 07:30

SilverEagle schrieb:
>
> PS @Frenchi: it takes a while - even if I don't
> have to code anything - but I get there in the
> end ;-)

Hi 'Sir' SilverEagle,

no problem, I know very well that there are also other things in life than coding for Silverjuke.

Take your time.

Guest
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby Guest » 18. May 09, 23:59

SilverEagle wrote:
> Hi Guest,
>
> Guest wrote:
> > I think I get it... but am not sure i see the
> > utility, or I am missing something! If (2)
> > computers are playing the same playlist, but not
> > perfectly synced, then what is the use?
>
> Well, first of all I just point you to my opening
> post where I suggested a few possible uses. And
> these were not theoretical, but based both on my
> own needs and on multiple request on the forum.


I just re-read my own comments and fear they came off as condescending or unappriciative, that was certainly not my intent. Your efforts and contributions in this arena (and with your skins) are commendable! Your posts in this forum and contributions to the package are one of the more compelling reasons to consider it for my home use.




> So if I understand correctly you want a multiple
> room system, where everyone listens to the sp/dif
> out form the (single) master. (Cause as you say:
> if everyone has their own amp and there is sound
> isolation between rooms then just sharing the
> music dir is sufficient, no need for this
> plugin). So I presume you have a setup where the
> music is distributed from your main amp to all
> rooms: maybe speaker cable, maybe small
> slave-amps, or maybe you live alone and just turn
> up the volume really loud :-). But the point is
> you do not listen to the slaves, they are just
> there for the controlling.

Yup you got it 100%.

>
> If I understand your setup correctly, then this is
> precisely the purpose for which this plugin was
> developed. It does not matter if the audio-output
> from the slaves is a tiny bit off: you do not hear
> them, you probably do not even have their audio
> out connected at all. And the songposition
> displayed is not a problem either: think like in
> the normal situation (without the plugin), if you
> then let Silverjuke crossfade tracks it also
> displays the new trackname at a more-or-less
> arbitrary moment, which is never perceived as a
> problem.

Are all slaves updated with master changes, and the master updated with all slave changes? In other words from a usability standpoint do all stations (master and slave) behave the same?
> I can only re-use your own question here: if I am
> misunderstanding something of your setup, please
> let me know...? ;-)
>
> SilverEagle

SilverEagle
Posts: 713
Joined: 30. Sep 08, 14:00
Location: Netherlands
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby SilverEagle » 19. May 09, 07:25

Guest wrote:
> I just re-read my own comments and fear they came
> off as condescending or unappriciative, ...

Well, to me it only came off as confused ;-). And rest assured: if I am offended I do not post long friendly answers...

> Are all slaves updated with master changes, and
> the master updated with all slave changes? In
> other words from a usability standpoint do all
> stations (master and slave) behave the same?

Short answer: yes.

Somewhat longer answer: if you know what to look for and are running both master/client where you can see them at the same time, you can deduce which is the master. Apart from that it looks the same as if you are running a remote desktop. Except that you can run a different skin on master and clients of course!

The out-of-sync you are worrying about is usually under a second. I only mention it so people do not use the client as a remote audio station, for which is not really suitable (but usable in a pinch, depending on your needs).

But as the saying goes: 'A test says more than a thousand posts', so you'd better just install it (trial version suffices) and give it a spin.

I am recently developing with both master & client on a single machine (not even one in a virtual machine like I used to do), it only messes up the internal playcounts and sometimes gives a database-access error (just click OK and ignore), but it is perfect for trying out:

Use a commandline, start the first instance with
"start silverjuke.exe --instance==test1.ini"
and set the networking as 'master'.
Next start the second with
"start silverjuke.exe --instance==test2.ini"
and set networking as 'slave', with master servername as '127.0.0.1'.

Now shut down both and restart both. And don't listen to the audio, it's a bit of a mess with both playing, but you can try out how the synchronization works.

Enjoy,
SilverEagle

SilverEagle
Posts: 713
Joined: 30. Sep 08, 14:00
Location: Netherlands
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby SilverEagle » 19. May 09, 09:06


Guest
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby Guest » 22. May 09, 13:47

Okay... I think I am up to speed with the remote setup. Now if we could only find a way to prevent the remote stations from streaming the actual audio files if they are not going to be actually played. Certainly keeping a "local" copy and pointing the local SJ intance to it would cut down on network traffic, but that is an unweildy option. As it stands if you have a NAS or network share that the main SJ and (2) remote SJ instances access, that is (3) data streams hammering the network to play (1) song.

It looks like SJ development is a rather slow process. I would certainly hope that the team could find a way to quickly address this functionality and ASIO (or kernel streaming) support. More and more folks are ripping to losless formats and feeding quality audio systems with jukebox setups, as well as setting up "remote" stations.

I am not sure "how" it could be fixed, but I suspect that code could be implemented to push slider position instead of the remote instance actually streaming and playing the audio. Thoughts?

Once again, THANKS SilverEagle! Without your scripts and skins, I would be using a different product!

User avatar
hotspur
Posts: 61
Joined: 30. Dec 08, 14:27
Location: US
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby hotspur » 25. Jul 09, 22:04

I finally sat down to give this a whirl. I manged to get it working after about 10 minutes.

What a great addition to Silverjuke! As always, I have some comments

- I reiterate what the Guest above says about multiple playback and network traffic. I'm playing my file off of a NAS as well, and worry about stuttering playback. I'll use my setup some more and let you know if I have any problems. This would also prevent any doubling up from the last.fm plugin, though it is simply to disable logging from the master machine.

- It would be nice to have volume control of the slave unit from the master.

Thanks again!

SilverEagle
Posts: 713
Joined: 30. Sep 08, 14:00
Location: Netherlands
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby SilverEagle » 27. Jul 09, 07:04

Hi hotspur,

Glad you like it :-)

About the multiple streams: I think it might be obvious (which is why I did not react to the guests remark before you) but doing something about the multiple streams is out of this modules reach.

The only thing the plugin does is synchronize each pleayer, it's not changing anything in SJ's behaviour. The way I see it there are only three roads to a 'real' remote, by which I mean an 'empty' skin behaving like SK but not actually playing music:

1) Create a standalone application reading skins and mimicking SJ and otherwise allowing the same this plugin does. Possible but far too much work for what it would solve

2) SJ Team modifies SJ to include a "pretending to play" mode. This might not be that complicated, but I doubt very much if it would end up high on their agenda. And lets be honest: their are certainly changerequests out there useful to more people.

3) Use the HTTP interface I created with this plugin - maybe slightly modified - and include a tiny HTTP webserver. This would be enough to set up an AJAX style webbased remote. That way you could even use your smartphone to control SJ. Only disadvantage is that it could not use existing skins. All that is missing to implement such a solution is script/API access to the album art, which is something I hope SJ will allow sometime...

SilverEagle

User avatar
hotspur
Posts: 61
Joined: 30. Dec 08, 14:27
Location: US
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: Remote Silverjuke Control

Postby hotspur » 27. Jul 09, 15:43

Thanks for the laying out the issues involved here, SilverEagle. Option 3 sounds ideal, but I suppose the SJ team will have to decide if that's a direction they want to go.

Having used the remote control system for a couple days, I have noticed the following issue, which you might be able to assist me with. I am using a mapped drive to my NAS for both the Slave and Master computers. I've found that the Master stays 5 seconds (or more) ahead of the Slave system in playback. When the Master finishes a track and advances to the next song on the playlist, it does so instantly on the Slave machine as well, clipping the end off of the previous track.

Any thoughts on this particular issue? I'm thinking the poll interval and refresh timer settings in the Network Configuration could be configured to compensate for this; do you have any suggestions on some initial test settings to compensate for a 5 second delay?


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Return to “Extensions”