IP Library Granted Patent US 9,967,848
Granted Patent B2
US 9,967,848 · App. 15/794,868 · Granted May 8, 2018

Systems and methods for synchronizing 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,967,848
App. No.
15/794,868
Granted
May 8, 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 (77)

1. A method comprising:

joining, by a first audio playback device, an audio playback group, wherein the audio playback group includes (i) a master device that provides timing information for playback of audio content by the audio playback group, and (ii) a second audio playback device, wherein each of the first audio playback device and the second audio playback device is in a slave role in the audio playback group;

determining, by the first audio playback device, a difference between a clock of the first audio playback device and a clock of the master device;

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

determining, by the first audio playback device, a second time based on (i) the first time and (ii) the difference between the clock of the first audio playback device and the clock of the master 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;

changing, by the first audio playback device, from the slave role to a master role in the audio playback group; and

after changing from the slave role to the master role, sending, by the first audio playback device to the second audio playback device, additional audio data for playback by the second audio playback device.

2. The method of claim 1 , wherein changing from the slave role to the master role in the audio playback group comprises:

sending, by the first audio playback device to the master device, a request to switch roles; and

receiving, by the first audio playback device from the master device, a role switch notification.

3. The method of claim 1 , wherein changing from the slave role to the master role in the audio playback group comprises:

selecting, by the first audio playback device, the additional audio data for playback; and

in response to selecting the additional audio data, sending, by the first audio playback device to the master device, a request to switch roles.

4. The method of claim 3 , wherein selecting the additional audio data for playback comprises:

detecting, via a user interface of the first audio playback device, a selection of the additional audio data for playback.

5. The method of claim 1 , wherein changing from the slave role to the master role in the audio playback group comprises:

detecting a selection via a user interface of the first audio playback device; and

in response to detecting the selection, sending, by the first audio playback device to the master device, a request to switch roles.

6. The method of claim 1 , wherein changing, by the first audio playback device, from the slave role to the master role in the audio playback group results in the master device having the slave role, and wherein the method further comprises, after changing from the slave role to the master role:

sending, by the first audio playback device to the master device, the additional audio data for playback by the master device.

7. The method of claim 1 , wherein sending, by the first audio playback device to the second audio playback device, the additional audio data for playback by the second audio playback device comprises:

sending, by the first audio playback device to the second audio playback device, (i) the additional audio data, and (ii) timing information including the clock of the first audio playback device.

8. An audio playback device comprising:

a communication component;

a memory;

an audio output component for outputting audio; and

a controller module interfaced with the communication component, the memory, and the audio output component, and configured to:

join, via the communication component, an audio playback group, wherein the audio playback group includes (i) a master device that provides timing information for playback of audio content by the audio playback group, and (ii) a second audio playback device, wherein each of the audio playback device and the second audio playback device is in a slave role in the audio playback group,

determine a difference between a clock of the audio playback device and a clock of the master device,

receive, from the master device via the communication component, a first time corresponding to audio data to be played by the audio playback device as part of the audio playback group,

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

cause the audio output component to play the audio data at the second time according to the clock of the audio playback device,

change from the slave role to a master role in the audio playback group, and

after changing from the slave role to the master role, send, to the second audio playback device via the communication component, additional audio data for playback by the second audio playback device.

9. The audio playback device of claim 8 , wherein to change from the slave role to the master role in the audio playback group, the controller module is configured to:

send, to the master device via the communication component, a request to switch roles, and

receive, from the master device via the communication component, a role switch notification.

10. The audio playback device of claim 8 , wherein to change from the slave role to the master role in the audio playback group, the controller module is configured to:

select the additional audio data for playback, and

in response to selecting the additional audio data, send, to the master device via the communication component, a request to switch roles.

11. The audio playback device of claim 10 , further comprising:

a user interface;

and wherein to select the additional audio data for playback, the controller module is configured to:

detect, via the user interface, a selection of the additional audio data for playback.

12. The audio playback device of claim 8 , further comprising:

a user interface;

and wherein to change from the slave role to the master role in the audio playback group, the controller module is configured to:

detect a selection via the user interface, and

in response to detecting the selection, send, to the master device via the communication component, a request to switch roles.

13. The audio playback device of claim 8 , wherein changing from the slave role to the master role in the audio playback group results in the master device having the slave role, and wherein the controller module is further configured to, after changing from the slave role to the master role:

send, to the master device via the communication component, the additional audio data for playback by the master device.

14. The audio playback device of claim 8 , wherein the controller module sends, to the second audio playback device via the communication component, (i) the additional audio data for playback by the second audio playback device, and (ii) timing information including the clock of the audio playback device.

15. A system for changing audio playback roles within a group audio session, comprising:

a first audio playback device having a master role in the group audio session;

a second audio playback device having a slave role in the group audio session; and

a third audio playback device configured to:

join the group audio session in the slave role,

determine a difference between a clock of the third audio playback device and a clock of the first audio playback device,

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

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

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

change from the slave role to the master role in the group audio session.

16. The system of claim 15 , wherein the third audio playback device is further configured to:

after changing from the slave role to the master role, send, to the second audio playback device, additional audio data for playback by the second audio playback device.

17. The system of claim 15 , wherein the second audio playback device is configured to, after the third audio playback device changes from the slave role to the master role:

determine a difference between a clock of the second audio playback device and the clock of the third audio playback device.

18. The system of claim 17 , wherein the second audio playback device is further configured to, after the third audio playback device changes from the slave role to the master role:

receive, from the third audio playback device, a third time corresponding to additional audio data to be played by the second audio playback device,

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

play the additional audio data at the fourth time according to the clock of the second audio playback device.

19. The system of claim 15 , wherein to change from the slave role to the master role in the group audio session, the third audio playback device is configured to:

send, to the first audio playback device, a request to switch roles, and

receive, from the master device, a role switch notification.

20. The system of claim 15 , wherein the third audio playback device comprises a user interface, and wherein to change from the slave role to the master role in the group audio session, the third audio playback device is configured to:

detect a selection via the user interface, and

in response to detecting the selection, send, to the first audio playback device, a request to switch roles.

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 20180049146A1 · Feb 15, 2018