IP Library Granted Patent US 9,313,591
Granted Patent B2
US 9,313,591 · App. 14/164,971 · Granted Apr 12, 2016

Audio synchronization among playback devices using offset information

Inventor: Timothy W. Sheen (Brighton, MA)
Assignee: Sonos, Inc.
H04R27/00H04R2227/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,313,591
App. No.
14/164,971
Granted
Apr 12, 2016
Kind
B2
Abstract

Embodiments are provided for audio synchronization of one or more playback devices using offset information. A playback device may join a synchrony group upon a command, where the synchrony group may have a group coordinator that provides timing information for the group. In one case, the playback device may retrieve offset information from memory storage, where the information represents the offset between a clock of the playback device and the clock of the group coordinator. In another case, the playback device may determine that the offset information is not available in storage and as a result, the offset information may be computed. In one instance, the offset information may be computed using other offsets obtained from storage, such as offsets between other devices in the synchrony group. In another instance, the offset information may be computed using SNTP polling.

Claims (48)

1. A method comprising:

joining, by a first playback device, a synchrony group, wherein the synchrony group includes a group coordinator that provides timing information for playback of audio content by the synchrony group;

after joining the synchrony group, retrieving from a memory storage, by the first playback device, data representing an offset between a clock of the first playback device and a clock of the group coordinator;

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

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

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

2. The method of claim 1 , wherein the offset between the clock of the first playback

device and the clock of the group coordinator comprises a frequency error offset.

3. The method of claim 1 , wherein the memory storage is on the first playback device.

4. The method of claim 1 , wherein the memory storage is on another device that is not the first playback device.

5. The method of claim 1 , wherein retrieving from the memory storage the data representing the offset comprises:

using a look-up table to determine a memory location of the data representing the offset between the clock of the first playback device and the clock of the group coordinator.

6. The method of claim 5 , wherein the look-up table comprises:

a memory location of data representing an offset between the clock of the first playback device and a clock of a second playback device.

7. A method comprising:

joining, by a first playback device, a synchrony group, wherein the synchrony group includes a group coordinator that provides timing information for playback of audio content by the synchrony group;

after joining the synchrony group, determining, by the first playback device, that data representing an offset between a clock of the first playback device and a clock of the group coordinator is not available in a memory storage;

based on the determination that data representing the offset is not available, computing, by the first playback device, the offset between the clock of the first playback device and the clock of the group coordinator;

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

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

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

8. The method of claim 7 , wherein the memory storage is on the first playback device.

9. The method of claim 7 , wherein the memory storage is on another device that is not the first playback device.

10. The method of claim 7 , wherein computing the offset comprises computing the offset using Simple Network Time Protocol (SNTP) polling.

11. The method of claim 7 , wherein the offset between the clock of the first playback device and the clock of the group coordinator comprises a frequency error offset.

12. The method of claim 7 , further comprising:

storing in the memory storage, data representing the offset between the clock of the first playback device and the clock of the group coordinator.

13. The method of claim 7 , wherein computing the offset comprises:

computing the offset using (i) data representing an offset between the clock of a second playback device and the clock of the group coordinator and (ii) data representing an offset between the clock of the first playback device and the clock of the second playback device.

14. The method of claim 13 , further comprising:

retrieving, from the memory storage, the data representing the offset between the clock of

the second playback device and the clock of the group coordinator, and the data representing the offset between the clock of the first playback device and the clock of the second playback device.

15. The method of claim 14 , wherein retrieving from the memory storage comprises:

using a look-up table to determine a memory location of the data representing an offset between the clock of the second playback device and the clock of the group coordinator.

16. The method of claim 14 , wherein retrieving from the memory storage comprises:

using a look-up table to determine a memory location of the data representing an offset between the clock of the first playback device and the clock of the second playback device.

17. A non-transitory computer readable medium having stored therein instructions executable by a processor to cause the processor to perform functions comprising:

joining, by a first playback device, a synchrony group, wherein the synchrony group includes a group coordinator that provides timing information for playback of audio content by the synchrony group;

after joining the synchrony group, determining, by the first playback device, that data representing an offset between a clock of the first playback device and a clock of the group coordinator is not available in memory storage;

based on the determination that data representing the offset is not available, computing, by the first playback device, the offset between the clock of the first playback device and the clock of the group coordinator;

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

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

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

18. The computer readable medium of claim 17 , wherein the functions further comprise:

storing in the memory storage, data representing the offset between the clock of the first playback device and the clock of the group coordinator.

19. The computer readable medium of claim 17 , wherein computing the offset comprises computing the offset using Simple Network Time Protocol (SNTP) polling.

20. The computer readable medium of claim 17 , wherein computing the offset comprises:

computing the offset using (i) data representing an offset between the clock of a second playback device and the clock of the group coordinator and (ii) data representing an offset between the clock of the first playback device and the clock of 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 27, 2014
From: SHEEN, TIMOTHY W.
To: SONOS, INC.
Reel/Frame 032309/0635 →
Continuity (1)
Related Publication 20150215715A1 · Jul 30, 2015