For a while I'm asking myself, how the synchronisation of separate players actually works.
As far as I know, IP protocol exchanges messages - and the time of travel of the various packages can vary. So the only way I can think of, is that the players buffer a reasonable amount of data, and are all scheduled to start playing a track at a specific point in time (in the not too far future): e.g. "Start playing the following data at 10:00:00h GMT". But this would only work, if the player clocks are 100% synced. And now I'm back at start: how can LMS make sure the player clocks ARE synced, given the comunication is package based? It may be based on the roundtrip time (as can be watched with ping): if roundtrip time for one player is 20ms longer than for another, then LML could set the current time on this player to a "10ms later value" as compared to the other; so that the time of arrival of the message and the content do match. This would result in (kind of) synced clocks of the players. Asking the players for their time, minus half of the roundtrip time (from issueing the query until receiving the answer) should give the same time for all players if all goes well ... But as time of travel can vary between messages and between forth and back, the success of this method is not guaranteed, plus - which makes it worse - can not be verified.
Am I completely wrong here - do they use a completely different approach? Is it even a Logitech secret or is it a well known standard approach?
Any ideas?
I hope this is not already discussed in another thread I missed.
G�nther
As far as I know, IP protocol exchanges messages - and the time of travel of the various packages can vary. So the only way I can think of, is that the players buffer a reasonable amount of data, and are all scheduled to start playing a track at a specific point in time (in the not too far future): e.g. "Start playing the following data at 10:00:00h GMT". But this would only work, if the player clocks are 100% synced. And now I'm back at start: how can LMS make sure the player clocks ARE synced, given the comunication is package based? It may be based on the roundtrip time (as can be watched with ping): if roundtrip time for one player is 20ms longer than for another, then LML could set the current time on this player to a "10ms later value" as compared to the other; so that the time of arrival of the message and the content do match. This would result in (kind of) synced clocks of the players. Asking the players for their time, minus half of the roundtrip time (from issueing the query until receiving the answer) should give the same time for all players if all goes well ... But as time of travel can vary between messages and between forth and back, the success of this method is not guaranteed, plus - which makes it worse - can not be verified.
Am I completely wrong here - do they use a completely different approach? Is it even a Logitech secret or is it a well known standard approach?
Any ideas?
I hope this is not already discussed in another thread I missed.
G�nther
Comment