IP Library Granted Patent US 9,961,656
Granted Patent B2
US 9,961,656 · App. 15/794,739 · Granted May 1, 2018

Systems and methods for syncronizing multiple electronic devices

Inventors: Michael J. Daley (Santa Clara, CA); Travis Bolinger (Lafayette, CO); Heath O'Neal (Broomfield, CO)
Assignee: GOOGLE TECHNOLOGY HOLDINGS LLC
H04W56/0015H04H20/08H04H20/18H04H20/38H04H20/61H04H60/88H04W56/0065H04H20/57H04H20/63H04H60/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,961,656
App. No.
15/794,739
Granted
May 1, 2018
Kind
B2
Abstract

Embodiments are provided for syncing multiple electronic devices for collective audio playback. According to certain aspects, a master device connects ( 218 ) to a slave device via a wireless connection. The master device calculates ( 224 ) a network latency via a series of network latency pings with the slave device and sends ( 225 ) the network latency to the slave device. Further, the master devices sends ( 232 ) a portion of an audio file as well as a timing instruction including a system time to the slave device. The master device initiates ( 234 ) playback of the portion of the audio file and the slave devices initiates ( 236 ) playback of the portion of the audio file according to the timing instruction and a calculated system clock offset value.

Claims (65)

1. A method comprising:

receiving, by a first audio playback device from a second audio playback device, a first time corresponding to audio data to be played by the first audio playback device as part of an audio playback group with the second audio playback device;

receiving, by the first audio playback device from the second audio playback device, a timing signal;

determining, by the first audio playback device based on the timing signal, a first difference between a clock of the first audio playback device and a clock of the second audio playback device;

determining, by the first audio playback device, a second time based on (i) the first time and (ii) the first difference between the clock of the first audio playback device and the clock of the second audio playback device;

playing, by the first audio playback device, the audio data at the second time according to the clock of the first audio playback device;

after playing the audio data, determining a second difference between the clock of the first audio playback device and the clock of the second audio playback device, wherein the second difference is different from the first difference; and

storing, in memory, data representing the second difference.

2. The method of claim 1 , further comprising:

before receiving the first time corresponding to the audio data to be played by the first audio playback device, connecting to the second audio playback device by the first audio playback device; and

after connecting to the second audio playback device, retrieving from the memory, by the first audio playback device, data representing the first difference between the clock of the first audio playback device and the clock of the second audio playback device.

3. The method of claim 1 , wherein the second audio playback device has a master role within the audio playback group.

4. The method of claim 1 , further comprising:

receiving, by the first audio playback device from the second audio playback device, a first elapsed playback time of the audio data associated with the second audio playback device; and

determining that playback of the audio data is out of sync based on comparing the first elapsed playback time to a second elapsed playback time of the audio data associated with the first audio playback device.

5. The method of claim 4 , further comprising:

sending, by the first audio playback device to the second audio playback device, an indication that the playback is out of sync.

6. The method of claim 1 , wherein determining the second difference comprises:

receiving, by the first audio playback device from the second audio playback device, an additional timing signal; and

determining, based on the additional timing signal, the second difference between the clock of the first audio playback device and the clock of the second audio playback device.

7. The method of claim 6 , wherein receiving the additional timing signal comprises:

receiving, by the first audio playback device from the second audio playback device, at least one network latency ping indicating the clock of the second audio playback device.

8. A first audio playback device comprising:

a processor;

a memory storing computer-readable program code executable by the processor to cause the first audio playback device to:

receive, from a second audio playback device, a first time corresponding to audio data to be played by the first audio playback device as part of an audio playback group with the second audio playback device,

receive, from the second audio playback device, a timing signal,

determine, based on the timing signal, a first difference between a clock of the first audio playback device and a clock of the second audio playback device,

determine a second time based on (i) the first time and (ii) the first difference between the clock of the first audio playback device and the clock of the second audio playback device,

play the audio data at the second time according to the clock of the first audio playback device,

after playing the audio data, determine a second difference between the clock of the first audio playback device and the clock of the second audio playback device, wherein the second difference is different from the first difference, and

store, in memory, data representing the second difference.

9. The first audio playback device of claim 8 , wherein the computer-readable program code is executable by the processor to further cause the first audio playback device to:

before receiving the first time corresponding to the audio data to be played by the first audio playback device, connect to the second audio playback device, and

after connecting to the second audio playback device, retrieve, from the memory, data representing the first difference between the clock of the first audio playback device and the clock of the second audio playback device.

10. The first audio playback device of claim 8 , wherein the second audio playback device has a master role within the audio playback group.

11. The first audio playback device of claim 8 , wherein the computer-readable program code is executable by the processor to further cause the first audio playback device to:

receive, from the second audio playback device, a first elapsed playback time of the audio data associated with the second audio playback device, and

determine that playback of the audio data is out of sync based on comparing the first elapsed playback time to a second elapsed playback time of the audio data associated with the first audio playback device.

12. The first audio playback device of claim 11 , wherein the computer-readable program code is executable by the processor to further cause the first audio playback device to:

send, to the second audio playback device, an indication that the playback is out of sync.

13. The first audio playback device of claim 8 , wherein to determine the second difference, the first audio playback device is configured to:

receive, from the second audio playback device, an additional timing signal, and

determine, based on the additional timing signal, the second difference between the clock of the first audio playback device and the clock of the second audio playback device.

14. The first audio playback device of claim 13 , wherein the first audio playback device receives the additional timing signal as at least one network latency ping indicating the clock of the second audio playback device.

15. A method comprising:

receiving, by a first audio playback device from a second audio playback device, a first time corresponding to audio data to be played by the first audio playback device as part of an audio playback group with the second audio playback device;

determining, by the first audio playback device, a second time based on (i) the first time and (ii) a first difference between a clock of the first audio playback device and a clock of the second audio playback device;

playing, by the first audio playback device, the audio data at the second time according to the clock of the first audio playback device;

after playing the audio data, determining a second difference between the clock of the first audio playback device and the clock of the second audio playback device, wherein the second difference is different from the first difference; and

storing, in memory, data representing the second difference.

16. The method of claim 15 , further comprising:

receiving, by the first audio playback device from the second audio playback device, a timing signal; and

determining, by the first audio playback device based on the timing signal, the first difference between the clock of the first audio playback device and the clock of the second audio playback device.

17. The method of claim 15 , further comprising:

before receiving the first time corresponding to the audio data to be played by the first audio playback device, connecting to the second audio playback device by the first audio playback device; and

after connecting to the second audio playback device, retrieving from the memory, by the first audio playback device, data representing the first difference between the clock of the first audio playback device and the clock of the second audio playback device.

18. The method of claim 15 , further comprising:

receiving, by the first audio playback device from the second audio playback device, a first elapsed playback time of the audio data associated with the second audio playback device; and

determining that playback of the audio data is out of sync based on comparing the first elapsed playback time to a second elapsed playback time of the audio data associated with the first audio playback device.

19. The method of claim 18 , further comprising:

sending, by the first audio playback device to the second audio playback device, an indication that the playback is out of sync.

20. The method of claim 15 , wherein determining the second difference comprises:

receiving, by the first audio playback device from the second audio playback device, an additional timing signal; and

determining, based on the additional timing signal, the second difference between the clock of the first audio playback device and the clock of the second audio playback device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2017
From: DALEY, MICHAEL J.; BOLINGER, TRAVIS; O'NEAL, HEATH
To: MOTOROLA MOBILITY LLC
Reel/Frame 044026/0216 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2017
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 044026/0268 →
Continuity (5)
Continuation 15681193 · Aug 18, 2017
Continuation 15052503 · Feb 24, 2016
Continuation 13945493 · Jul 18, 2013
Provisional Application 61816972 · Apr 29, 2013
Related Publication 20180049145A1 · Feb 15, 2018