Patent ID: 8301790

Claim:
A method for providing synchronous delivery and playback of three or more electronic audio or video files, having differing arrival latencies, from participants from multiple locations, during an on-line session, the synchronous delivery and playback means comprising: a. a session server having a master timestamp, said master timestamp used as a time reference by all participants; b. a client application, said client application connecting a participant to the session server and to other participants and having a client timestamp and utilizing a formalized Internet time standard, said Internet time standard being the Network Time Protocol (NTP) which is used as the predictive successive approximation of the time of day for the client and the server, said client and server timestamp is synchronized with the master timestamp; c. a timing mechanism, said timing mechanism synchronizing the client timestamp in the client application of the other participants and increasing the frequency of polling of the NTP so that the master timestamp and all client timestamps are synchronized to a precision of at least 10 milliseconds; d. a file calibrating mechanism, said file calibrating mechanism having a buffer, a mixer, and a delayed timestamp, said buffer having a means for analyzing the difference in arrival latencies in real time of files by all participants, and a means for synchronizing the files, by which the arrival latency of any participant's file may be increased so that all files by all participants arrive at the same time, and said mixer compiling the synchronized files into multiple files which are then returned to the participants, and said delayed timestamp being the timing means of the files after the files have been synchronized; e. respective receivers at each client and the session server receiving packets of information from each client, the receiver decoding the timestamp from each client and comparing it with the timestamp of the master timestamp, keeping a record for each client of the difference in time of the time stream from the master timestamp, the stream with the highest difference designated as the delay reference stream and the timestamp from the delay reference stream is used as a reference time delayed timestamp; and f. once the delayed reference stream has been determined, its data is immediately decoded and rendered to the client having the delayed reference stream, other incoming streams are then decoded and then paused until their timestamp agrees with the delayed timestamp and only then are they rendered to the client having that respective stream so that all incoming streams are in sync with the delayed timestamp and are therefore in unison with one another.