IP Library Granted Patent US 12,277,364
Granted Patent B2
US 12,277,364 · App. 17/585,078 · Granted Apr 15, 2025

Synchronization via out-of-band clock timing signaling

Inventor: Aurelio Ramos (Boston, MA)
Assignee: Sonos, Inc.
G06F3/165G06F3/162G11B20/10527H04L67/1095H04N21/4307
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 12,277,364
App. No.
17/585,078
Granted
Apr 15, 2025
Kind
B2
Abstract

Disclosed embodiments include facilitating clock synchronization and/or synchronous playback among multiple playback devices in a group. An individual playback device estimates and/or calculates a clock time at a clock time source (or a time offset/error between the playback device and the clock time source) based on (i) first clock timing received from the clock time source via a primary timing link and (i) second clock timing received from the clock time source via a secondary timing link. In some embodiments, estimating and/or calculating a clock time and/or clock time offset/error comprises estimating and/or calculating the clock time and/or clock time offset/error with a state estimator, such as a Kalman filter, an extended Kalman filter, or other state estimator configured to estimate a clock time and/or clock time error based on clock timing received via two or more communications links.

Claims (55)

1. A playback device comprising:

one or more processors;

a first interface configured to facilitate communication via at least one wireless access point;

a second interface configured to facilitate communication over at least one peer-to-peer communications link; and

at least one non-transitory computer-readable medium comprising program instructions that are executable by the one or more processors such that the playback device is configured to:

via a wireless access point, receive (i) a first series of indications relating to a clock time of a clock at a computing device, (ii) audio information, and (iii) playback timing for the audio information, wherein the playback timing comprises a future time relative to the clock time of the clock at the computing device at which the playback device is to play audio corresponding to at least a portion of the audio information;

via a peer-to-peer communications link, receive a second series of indications of the clock time of the clock at the computing device;

determine a timing offset between a clock at the playback device and a clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device; and

play audio in synchrony with at least one other playback device based on the audio information, the determined timing offset, and the playback timing.

2. The playback device of claim 1 , wherein to determine the timing offset, the playback device is configured to:

iteratively estimate the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device; and

determine the timing offset based on the iteratively estimated clock time of the clock at the computing device and the clock at the playback device.

3. The playback device of claim 2 , wherein to iteratively estimate the clock time of the clock at the computing device, the playback device is configured to:

iteratively estimate, using a state estimator, the clock time of the clock at the computing device based on (i) a previously estimated clock time of the clock at the computing device, (ii) a variance associated with the previously estimated clock time of the clock at the computing device, (iii) a current indication of the clock time of the clock at the computing device based on a combination of the first series of indications and the second series of indications, and (iv) a variance associated with the current indication of the clock time of the clock at the computing device.

4. The playback device of claim 2 , wherein to iteratively estimate the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device comprises, for time T i , the playback device is configured to:

when a first indication for time T i has been received via the wireless access point and a second indication for time T i has been received via the peer-to-peer communications link, combine the first indication and the second indication based on a first variance associated with the first indication and a second variance associated with the second indication to generate a combined indication for T i and a variance associated with the combined indication for T i ; and

estimate the clock time of the clock at the computing device for time T i based on (i) the combined indication for T i and the variance associated with the combined indication for T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 .

5. The playback device of claim 2 , wherein to iteratively estimate the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device comprises, for time T i , the playback device is configured to:

when a first indication for time T i has been received via the wireless access point but a second indication for time T i has not been received via the peer-to-peer communications link, estimate the clock time of the clock at the computing device for time T i based on (i) the first indication for time T i and a variance associated with first indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 .

6. The playback device of claim 2 , wherein to iteratively estimate the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device comprises, for time T i , the playback device is configured to:

when a first indication for time T i has not been received via the wireless access point but a second indication for time T i has been received via the peer-to-peer communications link, estimate the clock time of the clock at the computing device for time T i based on (i) the second indication for time T i and a variance associated with second indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 .

7. The playback device of claim 1 , wherein to receive the first series of indications relating to the clock time of the clock at the computing device, the playback device is configured to receive the first series of indications via data packets over a wireless Local Area Network (LAN), and wherein to receive the second series of indications of the clock time of the clock at the computing device, the playback device is configured to receive the second series of indications via data packets over a wireless transmission link separate from the LAN.

8. The playback device of claim 1 , wherein the peer-to-peer communications link is implemented via a microphone, wherein to receive the first series of indications relating to the clock time of the clock at the computing device, the playback device is configured to receive the first series of indications via data packets over a wireless Local Area Network (LAN), and wherein to receive the second series of indications of the clock time of the clock at the computing device, the playback device is configured to receive the second series of indications via data packets encoded in an audio signal.

9. The playback device of claim 1 , wherein the peer-to-peer communications link is implemented via an infrared receiver, wherein to receive the first series of indications relating to the clock time of the clock at the computing device, the playback device is configured to receive the first series of indications via data packets over a wireless Local Area Network (LAN), and wherein to receive the second series of indications of the clock time of the clock at the computing device, the playback device is configured to receive the second series of indications via data packets encoded in an infrared signal.

10. The playback device of claim 1 , wherein the playback device comprises a first playback device and wherein the computing device comprises a second playback device, and wherein to play audio in synchrony with at least one other playback device based on the audio information, the timing offset, and the playback timing, the first playback device is configured to play audio in synchrony with at least the second playback device based on the audio information, the timing offset, and the playback timing.

11. Tangible, non-transitory, computer readable memory comprising instructions encoded therein, wherein the instructions, when executed by one or more processors, cause a playback device to perform functions comprising:

via a wireless access point at the playback device, receiving (i) a first series of indications relating to a clock time of a clock at a computing device, (ii) audio information, and (iii) playback timing for the audio information, wherein the playback timing comprises a future time relative to the clock time of the clock at the computing device at which the playback device is to play audio corresponding to at least a portion of the audio information;

via a peer-to-peer communications link at the playback device, receiving a second series of indications of the clock time of the clock at the computing device;

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

playing audio in synchrony with at least one other playback device based on the audio information, the determined timing offset, and the playback timing.

12. The tangible, non-transitory computer-readable media of claim 11 , wherein determining the timing offset comprises:

iteratively estimating the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device; and

determining the timing offset based on the iteratively estimated clock time of the clock at the computing device and the clock at the playback device.

13. The tangible, non-transitory computer-readable media of claim 12 , wherein iteratively estimating the clock time of the clock at the computing device comprises:

iteratively estimating, using a state estimator, the clock time of the clock at the computing device based on (i) a previously estimated clock time of the clock at the computing device, (ii) a variance associated with the previously estimated clock time of the clock at the computing device, (iii) a current indication of the clock time of the clock at the computing device based on a combination of the first series of indications and the second series of indications, and (iv) a variance associated with the current indication of the clock time of the clock at the computing device.

14. The tangible, non-transitory computer-readable media of claim 12 , wherein iteratively estimating the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device comprises, for time T i :

when a first indication for time T i has been received via the wireless access point and a second indication for time T i has been received via the peer-to-peer communications link, combining the first indication and the second indication based on a first variance associated with the first indication and a second variance associated with the second indication to generate a combined indication for T i and a variance associated with the combined indication for T i , and estimating the clock time of the clock at the computing device for time T i based on (i) the combined indication for T i and the variance associated with the combined indication for T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 ;

when a first indication for time T i has been received via the wireless access point but a second indication for time T i has not been received via the peer-to-peer communications link, estimating the clock time of the clock at the computing device for time T i based on (i) the first indication for time T i and the variance associated with first indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 ; and

when a first indication for time T i has not been received via the wireless access point but a second indication for time T i has been received via the peer-to-peer communications link, estimating the clock time of the clock at the computing device for time T i based on (i) the second indication for time T i and the variance associated with second indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 .

15. The tangible, non-transitory computer-readable media of claim 11 , wherein the wireless access point comprises a first wireless Local Area Network (LAN) access point configured to communicate over a first wireless LAN, and wherein the peer-to-peer communications link is configured to one of: (i) communicate via a second wireless LAN separate from the first wireless LAN, (ii) receive data packets encoded in an audio signal, (iii) receive data packets encoded in an infrared signal.

16. A method performed by a playback device, the method comprising:

via a wireless access point, receiving (i) a first series of indications relating to a clock time of a clock at a computing device, (ii) audio information, and (iii) playback timing for the audio information, wherein the playback timing comprises a future time relative to the clock time of the clock at the computing device at which the playback device is to play audio corresponding to at least a portion of the audio information;

via a peer-to-peer communications link, receiving a second series of indications of the clock time of the clock at the computing device;

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

playing audio in synchrony with at least one other playback device based on the audio information, the determined timing offset, and the playback timing.

17. The method of claim 16 , further comprising:

iteratively estimating the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device; and

determining the timing offset based on the iteratively estimated clock time of the clock at the computing device and the clock at the playback device.

18. The method of claim 17 , further comprising:

iteratively estimating, using a state estimator, the clock time of the clock at the computing device based on (i) a previously estimated clock time of the clock at the computing device, (ii) a variance associated with the previously estimated clock time of the clock at the computing device, (iii) a current indication of the clock time of the clock at the computing device based on a combination of the first series of indications and the second series of indications, and (iv) a variance associated with the current indication of the clock time of the clock at the computing device.

19. The method of claim 17 , wherein iteratively estimating the clock time of the clock at the computing device based on (i) the first series of indications of the clock time of the clock at the computing device and (ii) the second series of indications of the clock time of the clock at the computing device comprises, for time T i :

when a first indication for time T i has been received via the wireless access point and a second indication for time T i has been received via the peer-to-peer communications link, combining the first indication and the second indication based on a first variance associated with the first indication and a second variance associated with the second indication to generate a combined indication for T i and a variance associated with the combined indication for T i , and estimating the clock time of the clock at the computing device for time T i based on (i) the combined indication for T i and the variance associated with the combined indication for T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 ;

when a first indication for time T i has been received via the wireless access point but a second indication for time T i has not been received via the peer-to-peer communications link, estimating the clock time of the clock at the computing device for time T i based on (i) the first indication for time T i and the variance associated with first indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 ; and

when a first indication for time T i has not been received via the wireless access point but a second indication for time T i has been received via the peer-to-peer communications link, estimating the clock time of the clock at the computing device for time T i based on (i) the second indication for time T i and the variance associated with second indication for time T i and (ii) a previous estimate of the clock time of the clock at the computing device for time T i-1 and a variance associated with the previous estimate of the clock time of the clock at the computing device for time T i-1 .

20. The method of claim 16 , wherein receiving the first series of indications relating to the clock time of the clock at the computing device comprises receiving the first series of indications via data packets over a wireless Local Area Network (LAN), and wherein receiving the second series of indications of the clock time of the clock at the computing device comprises one of (i) receiving the second series of indications via data packets encoded in one or more radio frequency signals separate from the wireless LAN, (ii) receiving the second series of indications via data packets encoded in one or more audio signals, (iii) receiving the second series of indications via data packets encoded in one of more infrared signals.

Assignments (2)
SECURITY INTEREST Recorded Jan 30, 2026
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 074533/0615 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2022
From: RAMOS, AURELIO
To: SONOS, INC.
Reel/Frame 060292/0557 →
Continuity (2)
Provisional Application 63143909 · Jan 31, 2021
Related Publication 20220244907A1 · Aug 4, 2022
References Cited (70)
US 5440644A · Farinelli et al. · 1995 [cited by applicant]
US 5761320A · Farinelli et al. · 1998 [cited by applicant]
US 5923902A · Inagaki · 1999 [cited by applicant]
US 6032202A · Lea et al. · 2000 [cited by applicant]
US 6256554B1 · Dilorenzo · 2001 [cited by applicant]
US 6404811B1 · Cvetko et al. · 2002 [cited by applicant]
US 6469633B1 · Wachter · 2002 [cited by applicant]
US 6522886B1 · Youngs et al. · 2003 [cited by applicant]
US 6611537B1 · Edens et al. · 2003 [cited by applicant]
US 6631410B1 · Kowalski et al. · 2003 [cited by applicant]
US 6757517B2 · Chang · 2004 [cited by applicant]
US 6778869B2 · Champion · 2004 [cited by applicant]
US 7130608B2 · Hollstrom et al. · 2006 [cited by applicant]
US 7130616B2 · Janik · 2006 [cited by applicant]
US 7143939B2 · Henzerling · 2006 [cited by applicant]
US 7236773B2 · Thomas · 2007 [cited by applicant]
US 7295548B2 · Blank et al. · 2007 [cited by applicant]
US 7391791B2 · Balassanian et al. · 2008 [cited by applicant]
US 7483538B2 · McCarty et al. · 2009 [cited by applicant]
US 7571014B1 · Lambourne et al. · 2009 [cited by applicant]
US 7630501B2 · Blank et al. · 2009 [cited by applicant]
US 7643894B2 · Braithwaite et al. · 2010 [cited by applicant]
US 7657910B1 · McAulay et al. · 2010 [cited by applicant]
US 7853341B2 · McCarty et al. · 2010 [cited by applicant]
US 7987294B2 · Bryce et al. · 2011 [cited by applicant]
US 8014423B2 · Thaler et al. · 2011 [cited by applicant]
US 8045952B2 · Qureshey et al. · 2011 [cited by applicant]
US 8103009B2 · McCarty et al. · 2012 [cited by applicant]
US 8234395B2 · Millington · 2012 [cited by examiner]
US 8483853B1 · Lambourne · 2013 [cited by applicant]
US 8942252B2 · Balassanian et al. · 2015 [cited by applicant]
US 9100687B2 · Amidei · 2015 [cited by examiner]
US 9313591B2 · Sheen · 2016 [cited by applicant]
US 10157035B2 · Millington · 2018 [cited by applicant]
US 20010042107A1 · Palm · 2001 [cited by applicant]
US 20020022453A1 · Balog et al. · 2002 [cited by applicant]
US 20020026442A1 · Lipscomb et al. · 2002 [cited by applicant]
US 20020124097A1 · Isely et al. · 2002 [cited by applicant]
US 20030157951A1 · Hasty, Jr. · 2003 [cited by applicant]
US 20040024478A1 · Hans et al. · 2004 [cited by applicant]
US 20070142944A1 · Goldberg et al. · 2007 [cited by applicant]
US 20170289500A1 · Biderman · 2017 [cited by examiner]
US 20200050423A1 · Coburn, IV et al. · 2020 [cited by applicant]
US 20200117416A1 · Vega Zayas · 2020 [cited by examiner]
US 20210029453A1 · Banerjee et al. · 2021 [cited by applicant]
EP 1389853A1 · 2004 [cited by applicant]
EP 2709298 · 2018 [cited by applicant]
WO 200153994 · 2001 [cited by applicant]
WO 2003093950A2 · 2003 [cited by applicant]
Audio Tron Quick Start Guide, Version 1.0, Mar. 2001, 24 pages. [cited by applicant]
Audio Tron Reference Manual, Version 3.0, May 2002, 70 pages. [cited by applicant]
Audio Tron Setup Guide, Version 3.0, May 2002, 38 pages. [cited by applicant]
Bluetooth. “Specification of the Bluetooth System: The ad hoc SCATTERNET for affordable and highly functional wireless connectivity,” Core, Version 1.0 A, Jul. 26, 1999, 1068 pages. [cited by applicant]
Bluetooth. “Specification of the Bluetooth System: Wireless connections made easy,” Core, Version 1.0 B, Dec. 1, 1999, 1076 pages. [cited by applicant]
Dell, Inc. “Dell Digital Audio Receiver: Reference Guide,” Jun. 2000, 70 pages. [cited by applicant]
Dell, Inc. “Start Here,” Jun. 2000, 2 pages. [cited by applicant]
“Denon 2003-2004 Product Catalog,” Denon, 2003-2004, 44 pages. [cited by applicant]
Jo et al., “Synchronized One-to-many Media Streaming with Adaptive Playout Control,” Proceedings of SPIE, 2002, pp. 71-82, vol. 4861. [cited by applicant]
Jones, Stephen, “Dell Digital Audio Receiver: Digital upgrade for your analog stereo,” Analog Stereo, Jun. 24, 2000 http://www.reviewsonline.com/articles/961906864.htm retrieved Jun. 18, 2014, 2 pages. [cited by applicant]
Louderback, Jim, “Affordable Audio Receiver Furnishes Homes With MP3,” TechTV Vault. Jun. 28, 2000 retrieved Jul. 10, 2014, 2 pages. [cited by applicant]
Palm, Inc., “Handbook for the Palm VII Handheld,” May 2000, 311 pages. [cited by applicant]
Presentations at WinHEC 2000, May 2000, 138 pages. [cited by applicant]
United States Patent and Trademark Office, U.S. Appl. No. 60/490,768, filed Jul. 28, 2003, entitled “Method for synchronizing audio playback between multiple networked devices,” 13 pages. [cited by applicant]
United States Patent and Trademark Office, U.S. Appl. No. 60/825,407, filed Sep. 12, 2006, entitled “Controlling and manipulating groupings in a multi-zone music or media system,” 82 pages. [cited by applicant]
UPnP; “Universal Plug and Play Device Architecture,” Jun. 8, 2000; version 1.0; Microsoft Corporation; pp. 1-54. [cited by applicant]
Yamaha DME 64 Owner's Manual; copyright 2004, 80 pages. [cited by applicant]
Yamaha DME Designer 3.5 setup manual guide; copyright 2004, 16 pages. [cited by applicant]
Yamaha DME Designer 3.5 User Manual; Copyright 2004, 507 pages. [cited by applicant]
International Preliminary Report on Patentability, PCT/US2022/014320, Jul. 31, 2023. [cited by applicant]
Examination Report, EP2270524.7, Dec. 19, 2023. [cited by applicant]