IP Library Granted Patent US 9,538,300
Granted Patent B2
US 9,538,300 · App. 15/041,101 · Granted Jan 3, 2017

Audio synchronization among playback devices using offset information

Inventor: Timothy W. Sheen (Brighton, MA)
Assignee: Sonos, Inc.
H04R27/00H04R29/00H04R29/001H04R2227/005
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,538,300
App. No.
15/041,101
Granted
Jan 3, 2017
Kind
B2
Abstract

Embodiments are provided for audio synchronization of one or more playback devices using offset information. In an example embodiment, a first device receives, from a second device, data representing a first time, the first time corresponding to first audio data to be played by the first playback device as part of a synchrony group with the second device. The first device determines a second time based on (i) the first time and (ii) a first offset between a clock of the first device and a clock of the second device. The first device plays the first audio data at the second time according to the clock of the first device. After playing the first audio data, the first device determines a second offset between the clock of the first device and the clock of the second device and replaces data representing the first offset with data representing the second offset.

Claims (59)

1. A first playback device comprising:

one or more processors; and

memory having stored thereon instructions executable by the one or more processors to cause the first playback device to perform functions comprising:

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

determining a second time based on (i) the first time and (ii) a first offset between a clock of the first playback device and a clock of the second playback device;

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

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

replacing, in memory storage, data representing the first offset with data representing the second offset.

2. The first playback device of claim 1 , wherein the data representing the second offset comprises data representing a linear offset between the clock of the first playback device and the clock of the second playback device.

3. The first playback device of claim 1 , wherein the data representing the second offset comprises data representing a rate offset between the clock of the first playback device and the clock of the second playback device.

4. The first playback device of claim 1 , wherein the functions further comprise:

before receiving from the second playback device, the first time corresponding to the first audio data, joining the synchrony group; and

after joining the synchrony group, retrieving data representing the first offset from the memory storage.

5. The first playback device of claim 4 , wherein the functions further comprise:

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

determining a fourth time based on (i) the third time and (ii) the second offset between the clock of the first playback device and the clock of the second playback device; and

playing the second audio data at the fourth time according to the clock of the first playback device.

6. The first playback device of claim 1 , wherein the synchrony group is a first synchrony group, and wherein the functions further comprise:

after storing in the memory storage, the data representing the second offset, leaving the first synchrony group;

joining a second synchrony group, wherein the second synchrony group includes the second playback device;

after joining the second synchrony group, retrieving, from the memory storage, the data representing the second offset,

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

determining a sixth time based on (i) the fifth time and (ii) the second offset between the clock of the first playback device and the clock of the second playback device; and

playing the third audio data at the sixth time according to the clock of the first playback device.

7. The first playback device of claim 1 , wherein the second playback device is a group coordinator of the synchrony group.

8. The first playback device of claim 1 , wherein the functions further comprise:

before determining a second time based on (i) the first time and (ii) a first offset, determining that data representing the first offset is not available in the memory storage; and

based on the determination that data representing the first offset is not available, determining, by the first playback device, the first offset.

9. The first playback device of claim 1 , wherein the functions further comprise:

transmitting, to a computing device, the data representing the second offset.

10. The first playback device of claim 1 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is in the synchrony group with the second playback device.

11. The first playback device of claim 1 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is playing audio content as part of the synchrony group with the second playback device.

12. The first playback device of claim 1 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is not in the synchrony group with the second playback device.

13. A method comprising:

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

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

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

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

replacing, by the first playback device in memory storage, data representing the first offset with data representing the second offset.

14. The method of claim 13 , wherein the data representing the second offset comprises data representing a linear offset between the clock of the first playback device and the clock of the second playback device.

15. The method of claim 13 , wherein the data representing the second offset comprises data representing a rate offset between the clock of the first playback device and the clock of the second playback device.

16. The method of claim 13 , further comprising:

before receiving from the second playback device, the first time corresponding to the first audio data, joining the synchrony group; and

after joining the synchrony group, retrieving from the memory storage, data representing the first offset.

17. A tangible non-transitory computer-readable medium having stored thereon instructions executable by a first playback device to perform functions comprising:

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

determining a second time based on (i) the first time and (ii) a first offset between a clock of the first playback device and a clock of the second playback device;

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

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

replacing, in memory storage, data representing the first offset with data representing the second offset.

18. The tangible non-transitory computer-readable medium of claim 17 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is in the synchrony group with the second playback device.

19. The tangible non-transitory computer-readable medium of claim 17 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is playing audio content as part of the synchrony group with the second playback device.

20. The tangible non-transitory computer-readable medium of claim 17 , wherein determining the second offset between the clock of the first playback device and the clock of the second playback device comprises:

determining the second offset while the first playback device is not in a synchrony group with the second playback device.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Oct 18, 2021
From: JPMORGAN CHASE BANK, N.A.
To: SONOS, INC.
Reel/Frame 058213/0597 →
SECURITY AGREEMENT Recorded Oct 15, 2021
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058123/0206 →
SECURITY INTEREST Recorded Aug 30, 2018
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 046991/0433 →
RELEASE OF SECURITY INTEREST Recorded Jul 25, 2018
From: GORDON BROTHERS FINANCE COMPANY
To: SONOS, INC.
Reel/Frame 046625/0882 →
SECURITY INTEREST Recorded Apr 1, 2016
From: SONOS, INC.
To: GORDON BROTHERS FINANCE COMPANY
Reel/Frame 038329/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: SHEEN, TIMOTHY W
To: SONOS, INC.
Reel/Frame 037704/0190 →
Continuity (2)
Continuation 14164971 · Jan 27, 2014
Related Publication 20160165371A1 · Jun 9, 2016