• Thanks for visiting the Kaleidescape Owners' Forum

    This forum is for the community of Kaleidescape owners, and others interested in learning about the system, equipment, services, and the company itself.

    It is run by a group of enthusiastic Kaleidescape owners and dealers purely as a service to this community.

    This board is not affiliated in any way with Kaleidescape, Inc.
    For official technical support, product information, or customer service, please visit www.kaleidescape.com

  • You are currently in "Guest" mode and not logged in with a registered account.

    The forum is free to use and most of the forum can be used by guests who are not registered....

    ... but we strongly encourage you to register for a full account. There is no cost to register for a full account.

    Benefits of registering for a full account:

    • Participate in the discussions! You must have a registered account to make posts on the forums. You will be able to start your own thread on a topic or question, or you can reply to other threads/discussions.
    • Use the "Conversation" feature (known as "private messaging" on other forums) to communicate directly with any of the other users here.
    • Access the Files area. The "resources" area of the forum contains many "Favorite Scene" and Script files that can dramatically increase the enjoyment of your Kaleidescape system. Go directly to great scenes in your favorite movies, created by other owners, and add automation to playback of your system with Scripts.
    • You won't see this annoying notice at the top of every screen!😊

    It's easy and free to register for the forum. Just click the "Register" button in the upper right corner of this page, and follow the instructions there.

Synchronizing playback among multiple players

brodricj

Well-known member
⭐️⭐️PATRON⭐️⭐️
MODERATOR NOTE: This was originally a part of a separate thread on server capacity. I moved it here for ease of reference for other members interested in this topic.

Is there any way to syncronize 2 players so they play the same content at exactly the same time? I have 2 zones in an open plan area and sometimes it would be good to have them playing the same movie in perfect sync on both screens in different parts of the room...
 
Last edited by a moderator:
Not really a way to do that, but the player outputs could be run through a splitter that sends the signal to both displays...
 
I bet you could pull that off if you can press play on two remotes (or remote control apps on an iphone ipad etc)...
 
I agree with Mike.

I've tried what Jerry suggest as well, it took several attempts but we never got it perfect. Got very close, but still a very small difference in displays which was hardly noticeable because of the usual head turning and focusing attention on the image and sound.


Jim
 
I think it would be a very cool feature and perhaps something which could be enabled via the onscreen menu- maybe youd have to go into the advanced area but it would still be there.
 
A nice option to have but I will be surprised if it becomes available.

I understand that K's position on synchronised whole house music is that this facility is normally provided by a separate audio distribution system. I don't expect a different approach to synchronised video distribution.
 
This absolutely can be accomplished with what will essentially be perfect synchronization if you're techy enough to use a Telnet app or terminal emulator on your mac or PC and willing to either write a simple macro or type out a couple of command lines to talk to your players.

The players (as well as all Kaleidescape components) are addressable via the Telnet protocol over your home network and there are documented commands to send to them for all common functions. (This is how the Remotescape app controls your player of course). You can get free Telnet apps for Mac or PC quite easily, and any Mac or PC comes with a terminal emulator app that can also be used to open up a Telnet session. This will let you issue commands over your home network that will address the Kaleidescape components and tell them what to do.

So you can go send commands to each player to cue up the appropriate movie, and then send the PLAY command to each player (essentially) simultaneously. The movies should be perfectly synchronized. TECHNICALLY they will have received their play commands one after the other, but the difference shouldn't be detectable, especially if you did it with a macro from your PC or just prepped the two play commands and copied them to the clipboard. Paste the double-play commands into your terminal emulator, and the two players will get their instruction within milliseconds of each other.

If you really want to dive into this, here's your documentation.

I've messed around with it for fun. It's pretty neat sitting with an iPad or Macbook and issuing commands to your player to navigate the UI, start a movie, query its status, etc. It's also kind of neat to watch the output of a player's status as it's playing a movie back. Helps you appreciate what the MovieGuide team does... you can see the player report that the main movie is over and the credits are rolling, for instance. (which is how integrators can bring the lights up in your theater as the credits roll, an event that is NOT always encoded on the DVD with a chapter mark.)

It's pretty neat stuff... but it's not for everyone.

If you have a need to do this often, you could do set up a collection called "SyncPlay" or something on your Kscape, and you could write a script* that tells each player to go that collection, select the top movie, and then send a simultaneous play command to your two players to play that movie. Done right, this could become a script* icon (or full executable app) that sits on your PC or Mac desktop, and when double-clicked, it would issue all the right commands to start the synchro-play. Then, all you need to do to change the movie is make sure the movie you want is always at the top of the SyncPlay collection.
* "Script" in this case is referring to a script or macro on your PC, not a Kaleidescape Script.

If you want to mess around with it on an iPad, I recommend the Mocha Telnet Lite free app. The screenshot and description of that app will scare away all but the real geek programmers here, but I promise you that with that Kaleidescape documentation next to you, it's really not hard to start talking to your Kaleidescape players by typing commands to them.

If I have time and am feeling geek-curious sometime soon, I may give it a shot for you.
 
Last edited:
Thank you for your comprehensive response to this query.

Up till now I have taken a "hands off, it just works" approach to my K system. Writing my own commands to send over the network is something I shall definitely be looking into. Thanks again for information.
 
:):) SUCCESS! :):)

I have a movie playing perfectly synchronized on two of my players and now have an application on my Mac that launches any movie I want on multiple players.

If any Mac users really wants to do this, here's how. It will take a little bit of prep on your web-interface to Kaleidescape, and a bit of editing of an AppleScript file, but it takes no programming knowledge at all.

The specific instructions below will only work on a Mac. If you're using a PC, rather than a Mac, you should be able to do something roughly equivalent using appropriate PC tools, but I can't help you much on that.

Here's what you need to do:

1) PREPARING YOUR SYSTEM
A) Setting a hard-coded IP address:
You need at least ONE of your Kaleidescape components configured with a hard-coded IP address. Depending on who did your install, this may already be the case, but you need to check. It doesn't matter which of your devices has the hard-coded IP address, but there must be at least one: a server, a player, a reader... makes no difference.

Go to your installer web interface, choose a player or server, press "Settings" and then go to the "Network" tab. If the radio button "Use the following IP configuration" is selected, with details filled into all the address/gateway fields below, then you're all set. Write down the IP Address of that component, and go to step B below.

If the device you picked is NOT set to a hard-coded IP address, check your other Kaleidescape components. If none are set this way (all of them are set to "Obtain IP configuration automatically using DHCP") then you won't be able to do this until you set at least one to being a hard-coded IP address. Check with your installer if you're not comfortable changing this. Changing it without knowing your system and network details MIGHT cause some of your remotes or Crestron-type interfaces to stop functioning.

B) Setting Device IDs for your players:
Kaleidescape allows you to set something called a "Control Protocol Device ID" (CPDID) for each of your components. You also do this on the installer web interface.

For each player you want in the "SyncPlay" group, go the "Settings" dialog for that player in the Installer Web Interface, choose the "Control" tab, and see if there's already a CPDID assigned. It will say "None" or have a number set in the box. If there's already a CPDID assigned for the player, write it down... do NOT change it, it will probably cause your Crestron or other controllers to stop functioning if you change it.

If it's set to "None" (as it probably will be in most Kaleidescape setups), pick a number and set each player to a different number.

Use whatever numbers you like, but be sure they're distinct numbers. Write those CPDID's down for each of your players.

In the examples you see below, I set my first player to CPDID 10, and my second to CPDID 20.

C) Creating a "SyncPlay" collection:
Next you create a Kaleidescape Collection for the movie(s) you want to synchronize. My simplistic script simply picks the first movie in this collection, so you'll probably only want one movie in this collection at any given time.

The advantage of doing it this way is that once your system is properly set up, you won't need to edit the AppleScript commands to simply change the movie you want to synchronize, you just remove the old movie form this collection and add the new movie, and re-run your script.

Go to your User Web Interface for your Kaleidescape, go to the Movies tab, press "Create a New Collection" at the top of the screen, and give it a name. I used "SyncPlay".

Add any movie you like to this collection.

2) CREATING YOUR APPLESCRIPT TO TRIGGER YOUR SYNC-PLAY FROM A MAC:


OK, Your system is properly configured now to handle the commands we're going to give it from a Telnet session. You could choose to open "Terminal" on your PC or Mac and manually issue commands to your players to do what you want, but that involves very carefully structured, somewhat obtuse commands typed into the Terminal window.

To make this easier, I'm going to use AppleScript (built in on all recent Mac operating systems) to automate the steps for us.

What we're going to do is tell each player (using the CPDID's established above in step 1B), to go to the SyncPlay Collection, and play the first movie.

If you've read the Kaleidescape Control Protocol Reference Manual, we're just going to use the "GO_MOVIE_COLLECTION" command and then issue a simple "PLAY" command to each player in rapid succession.

A) CREATING YOUR APPLESCRIPT FILE

You want to create an AppleScript file that has the appropriate instructions for your Kaleidescape system. You'll need the hard-coded IP address of at least ONE of your components that you got in step 1A above, and the two or more CPDID's you got (or assigned) in step 1B above.

Open your AppleScript Editor. (If you've never done this, go to your Spotlight Search menu in the upper-right corner of your menu bar and type "applescript editor" into the search box.)

Type the following lines into the Editor window, but
  • change the IP address I show in RED below to your hard-coded IP address of any of your Kaleidscape components that you found in step 1A above.
  • change the CPDIDs I show in BLUE below to your CPDIDs you found or assigned in step 1B above. If you want more than two players synchronized, add the appropriate lines for the other players.

Code:
tell application "Terminal"
	activate
	do script "telnet [COLOR="Red"][B]192.168.1.80[/B][/COLOR] 10000" in front window
	delay 5
	do script "[COLOR="Blue"][B]10[/B][/COLOR]/1/GO_MOVIE_COLLECTION:SyncPlay:" in front window
	do script "[COLOR="Blue"][B]20[/B][/COLOR]/1/GO_MOVIE_COLLECTION:SyncPlay:" in front window
	delay 2
	do script "[COLOR="Blue"][B]10[/B][/COLOR]/1/PLAY:" in front window
	do script "[COLOR="Blue"][B]20[/B][/COLOR]/1/PLAY:" in front window
	do script "quit" in front window
	say "SyncPlay Playback Started"
	quit
end tell
NOTE: the "10000" after the IP Address is absolutely critical. That's the port number that Kaleiedescape devices listen on for their commands. This must be in that Telnet command.

NOTE: If you don't want the creepy computer voice announcing from your Mac that "SyncPlay Playback has Started", just delete that "say" line from your script.

Now save that AppleScript file using "Save As..." and ensuring the format is "Script". Save it to anywhere you like... your Documents folder is fine. You'll need this script file if you ever want to edit the AppleScript above.
B) TESTING YOUR SCRIPT

Press "Run" from the AppleScript Editor. You should see a terminal window open and stuff happening. The players should start the movie, and your Mac will announce that SyncPlay playback has begun.

TROUBLESHOOTING: If it didn't work:
  • check your script carefully to see that it maches the above text, including that critical 10000 number that is in line 3.
  • double-check your IP address in line 3, and your CPDIDs
  • be sure you actually HAVE a collection called "SyncPlay" and a single movie added to that collection.
  • be sure your parental controls aren't blocking that movie from some of your players


3) CREATING A COMPILED EXECUTABLE APP

This step is optional, but adds some elegance and ease to the process.

You could always just run your working script right from the AppleScript Editor when you want to launch your SyncPlay movie, but easier is to take this last simple step and turn your tested and working SyncPlay applescript file into a full executable application. Then you can just leave it on any Mac in the house and double-click it and your SyncPlay will start... no wacky AppleScript Editor to open, just a double-clickable application.

  • Open your working AppleScript file in the AppleScript editor. (If you're doing this right after step 2B above, then the editor window is still open and ready for this step.)
  • Choose "Save As..." from the file menu, set the File Format to "Application" and give it a name like "SyncPlay Start". Save it to your Desktop or wherever you like.

Now you have an application sitting on your desktop that will play a given movie on all the Kaleidescape players you have selected.
:cool:

Once you start to understand Telnet'ing in to your Kaleidescape system and issuing commands, you could do this from an iPad app as well, adapt it to a PC, or add more flexibility and error-checking into the script.

This is a VERY basic script. It could be improved for more robust operation... for instance it could ensure that all the players are on and not in standby mode, it could make sure the players are responding and report back if they weren't, etc. Feel free to make it more robust and flexible to suit your needs!
 
Last edited:
Wow......Superb.

As the A-Team's Hannibal used to say..."I love it when a plan comes together"

I will look into this when I get back to the UK. Thanks for sharing.
 
That's great Josh!!

Jim
 
Back
Top