System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
First Claim
1. A playback device comprising:
- one or more processors; and
tangible, non-transitory computer-readable memory, the memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the playback device to perform a method comprising;
receiving a plurality of frames from a source device over a network, wherein individual frames of the plurality of frames comprise (i) one or more portions of audio information and (ii) a playback time indicating when to play the one or more portions of audio information, wherein the playback time is based on a clock of the source device, which is independent of a clock of the playback device;
receiving over the network, a message transmitted from the source device, the message comprising clock information of the source device;
computing a time differential between the clock of the source device and the clock of the playback device based on the clock information of the message;
determining an output time for each of the one or more portions of audio information based on both the playback time for the one or more portions of audio information and the computed time differential; and
outputting each of the one or more portions of audio information at its determined output time in synchrony with the source device.
6 Assignments
0 Petitions
Accused Products
Abstract
A system is described for maintaining synchrony of operations among a plurality of devices having independent clocking arrangements. A task distribution device is to distribute tasks to a synchrony group comprising a plurality of devices to perform tasks distributed by the task distribution device in synchrony. The task distribution device distributes each task to synchrony group members over a network. Each task is associated with a time stamp that indicates a time, relative to a clock maintained by the task distribution device, at which synchrony group members are to execute the task. Each synchrony group member periodically obtains from the task distribution device an indication of current time indicated by its clock, determines a time differential between the task distribution device'"'"'s clock and its respective clock and determines therefrom a time at which, according to its respective clock, the time stamp indicates that it is to execute the task.
-
Citations
51 Claims
-
1. A playback device comprising:
-
one or more processors; and tangible, non-transitory computer-readable memory, the memory storing instructions, wherein the instructions, when executed by the one or more processors, cause the playback device to perform a method comprising; receiving a plurality of frames from a source device over a network, wherein individual frames of the plurality of frames comprise (i) one or more portions of audio information and (ii) a playback time indicating when to play the one or more portions of audio information, wherein the playback time is based on a clock of the source device, which is independent of a clock of the playback device; receiving over the network, a message transmitted from the source device, the message comprising clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the clock information of the message; determining an output time for each of the one or more portions of audio information based on both the playback time for the one or more portions of audio information and the computed time differential; and outputting each of the one or more portions of audio information at its determined output time in synchrony with the source device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. Tangible, non-transitory computer-readable media having instructions encoded thereon, wherein the instructions, when executed by one or more processors, cause a playback device to perform a method comprising:
-
receiving a plurality of frames from a source device over a network, wherein individual frames of the plurality of frames comprise (i) one or more portions of audio information and (ii) a playback time indicating when to play the one or more portions of audio information, wherein the playback time is based on a clock of the source device, which is independent of a clock of the playback device; receiving over the network, a message transmitted from the source device, the message comprising clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the clock information of the message; determining an output time for each of the one or more portions of audio information based on both the playback time for the one or more portions of audio information and the computed time differential; and outputting each of the one or more portions of audio information at its determined output time in synchrony with the source device. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A playback device comprising:
-
one or more processors; and tangible, non-transitory computer-readable memory, the memory comprising instructions, wherein the instructions, when executed by the one or more processors, cause the playback device to perform a method comprising; receiving an audio stream comprising a plurality of frames from a source device over a local network, wherein an individual frame of the plurality of frames comprises audio information and a time indicating when to play the audio information of the individual frame, wherein the time is based on a clock of the source device, which is independent of a clock of the playback device; receiving over the local network, a message transmitted from the source device, the message separate from the audio stream and including clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the message; determining for the individual frame, an output time of the audio information of the individual frame based on both the time indicating when to play the audio information of the individual frame and the computed time differential; and outputting the audio information of the individual frame at the determined output time in synchrony with the source device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. Tangible, non-transitory computer-readable media having instructions encoded thereon, wherein the instructions, when executed by one or more processors, cause a playback device to perform a method comprising:
-
receiving an audio stream comprising a plurality of frames from a source device over a local network, wherein an individual frame of the plurality of frames comprises audio information and a time indicating when to play the audio information of the individual frame, wherein the time is based on a clock of the source device, which is independent of a clock of the playback device; receiving over the local network, a message transmitted from the source device, the message separate from the audio stream and including clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the message; determining for the individual frame, an output time of the audio information of the individual frame based on both the time indicating when to play the audio information of the individual frame and the computed time differential; and outputting the audio information of the individual frame at the determined output time in synchrony with the source device. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A playback device comprising:
-
one or more processors; and tangible, non-transitory computer-readable memory with instructions stored thereon, wherein the instructions, when executed by the one or more processors, cause the playback device to perform a method comprising; receiving an audio stream comprising a plurality of frames from a source device over a local network, wherein each frame of the plurality of frames with comprises audio information and a time indicating when to play the audio information of the respective frame, wherein the time is based on a clock of the source device, which is independent of a clock of the playback device; periodically receiving over the local network, a message transmitted from the source device, the message separate from the audio stream and including clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the message; determining for each frame of the plurality of frames, an output time of the audio information of each respective frame based on both the time indicating when to play the audio information of each respective frame and the computed time differential; and outputting the audio information of each respective frame at the respective frame'"'"'s determined output time in synchrony with the source device. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. Tangible, non-transitory computer-readable media having instructions encoded thereon, wherein the instructions, when executed by one or more processors, cause a playback device to perform a method comprising:
-
receiving an audio stream comprising a plurality of frames from a source device over a local network, wherein each frame of the plurality of frames comprises audio information and a time indicating when to play the audio information of the respective frame, wherein the time is based on a clock of the source device, which is independent of a clock of the playback device; periodically receiving a message transmitted from the source device, the message separate from the audio stream and including clock information of the source device; computing a time differential between the clock of the source device and the clock of the playback device based on the message; determining an output time of the audio information of each respective frame based on both the time indicating when to play the audio information of each respective frame and the computed time differential; and outputting the audio information of each respective frame at the respective frame'"'"'s determined output time in synchrony with the source device. - View Dependent Claims (48, 49, 50, 51)
-
Specification