Distributed real-time communications system
First Claim
1. A method for synchronising data from a plurality of sources over a client-server network comprising the steps of:
- sending a first start command from the server to a first client to start a local clock at said first client;
sending a continuous stream of data from said first client to said server;
sending a further start command from the server to a plurality of further clients to start a local clock in each of said further clients, said further start command being delayed with respect to said first start command;
sending a sequence of data from each of said plurality of further clients to said server;
sending said continuous data stream from said server to each of said plurality of further clients;
re-synchronising said received continuous data stream at each of said plurality of further clients;
sending the data sequences from said server to each of said plurality of further clients and to said first client;
wherein said step of sending either includes or excludes sending a given data sequence back to a respective further client from which it was sent;
re-synchronising the received data sequences at each of said clients to the local clock; and
repeating the received and locally generated data sequences at each of said clients a plurality of times.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is provided which enables users to communicate in a perceived real time environment. In one embodiment a number of musical parts are contributed one each from a number of client terminals. Each terminal generates and sends to a server a short sequence or sequence of sequences, for example a few bars of music. The server echoes the sequences out to each of the other clients'"'"' terminals where they are synchronised to a local clock and repeated a plurality of times, with the generated sequence being repeated at the sending client a similar number of times. The local synchronisacion overcomes the problems of propagation delay between clients and server and the repetition of sequences allows a continuous stream of data to be output at each client.
A solo, or non-repetitive line may be added by commencing sending the solo line to the server before the remaining lines. The solo line is buffered at each of the clients and then synchronized to the local clock. The non-solo lines arrive at the solo client after the solo data stream has commenced. However, as they are repetitive they are synchronised by the local clock to the next sequence repeat.
-
Citations
30 Claims
-
1. A method for synchronising data from a plurality of sources over a client-server network comprising the steps of:
-
sending a first start command from the server to a first client to start a local clock at said first client; sending a continuous stream of data from said first client to said server; sending a further start command from the server to a plurality of further clients to start a local clock in each of said further clients, said further start command being delayed with respect to said first start command; sending a sequence of data from each of said plurality of further clients to said server; sending said continuous data stream from said server to each of said plurality of further clients; re-synchronising said received continuous data stream at each of said plurality of further clients; sending the data sequences from said server to each of said plurality of further clients and to said first client;
wherein said step of sending either includes or excludes sending a given data sequence back to a respective further client from which it was sent;re-synchronising the received data sequences at each of said clients to the local clock; and repeating the received and locally generated data sequences at each of said clients a plurality of times. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. Apparatus for synchronizing data from a plurality of sources over a client-server network comprising:
-
means for sending a first start command from the server to a first client to start a local clock at said first client; means for sending a continuous stream of data from said first client to said server; means for sending a further start command from the server to a plurality of further clients to start a local clock in each of said further clients, said further start command being delayed with respect to said first start command; means for sending a sequence of data from each of said plurality of further clients to said server; means for sending said continuous data stream from said server the each of said plurality of further clients; means for re-synchronising said received continuous data stream at each of said plurality of further clients; means for sending the data sequences from said server to each of said plurality of further clients and to said first client; means for re-synchronising the received data sequences at each of said clients to the local clock; and means for repeating the received data sequences at each of said clients a plurality of times. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification