IP Library › Granted Patent US 12,650,806
Granted Patent B2
US 12,650,806 · App. 18/478,063 · Granted Jun 9, 2026

Multichannel content distribution

Inventors: Steven Beckhardt (Santa Barbara, CA); Ted Lin (Ayer, MA); Luis R. Vega Zayas (Arlington, MA)
Assignee: Sonos, Inc.
G06F3/165
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,650,806
App. No.
18/478,063
Granted
Jun 9, 2026
Kind
B2
Abstract

Disclosed example configurations include a playback device configured to, among other features, (i) receive reference clock timing; (ii) receive two or more data streams, where each data stream includes audio content and playback timing; (iii) for each data stream, generate sample-rate adjusted audio content for the data stream by adjusting a sample rate of at least a portion of the audio content of the data stream to compensate for a difference between a rendering clock at the playback device and the reference clock; (iv) generate a mix of the sample-rate adjusted audio content of the two or more data streams at the playback device; and (v) play the mix of the sample-rate adjusted audio content of each data stream based on a clock time of the rendering clock at the playback device and the playback timing information for each data stream.

Claims (52)

1 . A playback device comprising:

one or more processors; and

tangible, non-transitory computer-readable media comprising program instructions executable by the one or more processors such that the playback device is configured to:

while the playback device is operating as a rendering playback device in a playback system, receive reference clock timing information from a reference clock separate from the playback device;

receive two or more data streams, wherein each data stream comprises (i) audio content, and (ii) playback timing information for the audio content;

for each data stream of the two or more data streams, generate sample-rate adjusted audio content for the data stream by adjusting a sample rate of at least a portion of the audio content of the data stream to compensate for a difference between a rendering clock at the playback device and the received reference clock timing information;

generate a mix of the sample-rate adjusted audio content of the two or more data streams at the playback device; and

play the mix of the sample-rate adjusted audio content of each data stream based on a clock time of the rendering clock at the playback device and the playback timing information for each data stream.

2 . The playback device of claim 1 , wherein the reference clock comprises at least one of (i) a clock at a playback system coordinator of the playback system, (ii) a playback system clock, (iii) physical clock circuitry, or (iv) a software-based virtual clock.

3 . The playback device of claim 1 , wherein the program instructions executable by the one or more processors such that the playback device is configured to receive two or more data streams comprise program instructions executable by the one or more processors such that the playback device is configured to:

for each data stream, join a multicast group corresponding to the data stream.

4 . The playback device of claim 3 , wherein the program instructions executable by the one or more processors such that the playback device is configured to, for each data stream, join a multicast group corresponding to the data stream comprise program instructions executable by the one or more processors such that the playback device is configured to:

for each multicast group, select the multicast group from a set of available multicast groups provided by the playback system.

5 . The playback device of claim 3 , wherein the program instructions executable by the one or more processors such that the playback device is configured to, for each data stream, join a multicast group corresponding to the data stream comprise program instructions executable by the one or more processors such that the playback device is configured to:

join the multicast group corresponding to the data stream after receiving one or more group selection instructions, wherein an individual group selection instruction is received via at least one of (i) a network interface of the playback device from a network device that is separate from the playback device, (ii) the network interface of the playback device from another playback device, or (iii) a user interface on the playback device, wherein the user interface on the playback device comprises one or more of a button, a switch, or a touchscreen.

6 . The playback device of claim 1 , wherein the program instructions comprise further program instructions executable by the one or more processors such that the playback device is further configured to:

after receiving an indication of a current clock time (t 1 ) of the reference clock, (i) record a receipt time (t 2 ) of the rendering clock of when the playback device received the indication of the current clock time of the reference clock, and (ii) transmit a delay request message from the playback device to the reference clock, wherein the delay request message comprises an identifier corresponding to the delay request message; and

after receiving a delay response from the reference clock in response to the delay request message, wherein the delay response comprises an indication of a time (t 3 ) when the reference clock transmitted the delay response, (i) record a receipt time (t 4 ) of the rendering clock of when the playback device received the delay response from the reference clock, and (ii) calculate a timing offset between the rendering clock and the reference clock according to ((t 2 −t 1 )+(t 4 −t 3 ))/2.

7 . The playback device of claim 1 , wherein the program instructions executable by the one or more processors such that the playback device is configured to receive clock timing information from a reference clock separate from the playback device comprise program instructions executable by the one or more processors such that the playback device is configured to receive clock timing information from the reference clock separate from the playback device via one of (i) a multicast transmission from the reference clock via a wireless Local Area Network (LAN), (ii) a unicast transmission from the reference clock via the wireless LAN, (iii) a multicast transmission from the reference clock via a wired LAN, or (iv) a unicast transmission from the reference clock via the wired LAN; and

wherein the program instructions executable by the one or more processors such that the playback device is configured to receive two or more data streams comprise program instructions executable by the one or more processors such that the playback device is configured to receive each data stream of the two or more data streams via a respective one of (i) a multicast transmission via the wireless LAN, (ii) a unicast transmission via the wireless LAN, (iii) a multicast transmission via a wired LAN, or (iv) a unicast transmission via the wired LAN.

8 . The playback device of claim 1 , wherein the two or more data streams comprise at least two data streams selected from a set of data streams comprising (i) one or more data streams comprising music, (ii) one or more data streams comprising sound effects, and (iii) one or more data streams comprising paging content.

9 . The playback device of claim 1 , wherein the program instructions executable by the one or more processors such that the playback device is configured to generate a mix of the sample-rate adjusted audio content of the two or more data streams at the playback device comprise program instructions executable by the one or more processors such that the playback device is configured to:

mix the sample-rate adjusted audio content of the two or more data streams at the playback device based on mixing instructions received from a playback system coordinator separate from the playback device.

10 . The playback device of claim 1 , wherein the program instructions comprise further program instructions executable by the one or more processors such that the playback device is configured to:

begin operating as a rendering playback device in the playback system, wherein operating as a rendering playback device in the playback system comprises operating as a first rendering playback device type of a plurality of rendering playback device types, wherein each rendering playback device type corresponds to a different playback role in the playback system, and wherein the plurality of rendering playback device types comprises one or more of (i) a render only playback device, (ii) a synchrony group coordinator, (iii) a synchrony group member, (iv) a home theater head end, (v) a home theater satellite, (vi) a stereo pair primary player, (vii) a stereo pair secondary player, (viii) a bonded group primary player, (ix) a bonded group secondary player, (x) a playback system coordinator, (xi) a playback system primary player, or (xii) a playback system secondary player.

11 . The playback device of claim 10 , wherein a particular rendering playback device type corresponds to a software application package comprising program instructions executable by the one or more processors such that the playback device is configured to operate as the particular rendering playback device type, and wherein the program instructions comprise further program instructions executable by the one or more processors such that the playback device is configured to:

while executing a first software application package corresponding to the first rendering playback device type in the playback system, receive a command to switch from operating as the first rendering playback device type to operating as a second rendering playback device type; and

after receiving the command to switch from operating as the first rendering playback device type to operating as the second rendering playback device type, (i) obtain a second software application package corresponding to the second rendering playback device type, (ii) execute the second software application package, and (iii) cease execution of the first software application package.

12 . The playback device of claim 1 , wherein an individual data stream of the two or more data streams comprises a series of frames comprising the audio content and the playback timing information for the audio content.

13 . Tangible, non-transitory computer-readable media comprising program instructions executable by one or more processors such that a playback device is configured to perform functions comprising:

while the playback device is operating as a rendering playback device in a playback system, receiving reference clock timing information from a reference clock separate from the playback device;

receiving two or more data streams, wherein each data stream comprises (i) audio content, and (ii) playback timing information for the audio content;

for each data stream of the two or more data streams, generating sample-rate adjusted audio content for the data stream by adjusting a sample rate of at least a portion of the audio content of the data stream to compensate for a difference between a rendering clock at the playback device and the received reference clock timing information;

generating a mix of the sample-rate adjusted audio content of the two or more data streams at the playback device; and

playing the mix of the sample-rate adjusted audio content of each data stream based on a clock time of the rendering clock at the playback device and the playback timing information for each data stream.

14 . The tangible, non-transitory computer-readable media of claim 13 , wherein the reference clock comprises at least one of (i) a clock at a playback system coordinator of the playback system, (ii) a playback system clock, (iii) physical clock circuitry, or (iv) a software-based virtual clock.

15 . The tangible, non-transitory computer-readable media of claim 13 , wherein receiving two or more data streams comprises for each data stream, joining a multicast group corresponding to the data stream.

16 . The tangible, non-transitory computer-readable media of claim 15 , wherein for each data stream, joining a multicast group corresponding to the data stream comprises for each multicast group, selecting the multicast group from a set of available multicast groups provided by the playback system.

17 . The tangible, non-transitory computer-readable media of claim 15 , wherein for each data stream, joining a multicast group corresponding to the data stream comprises joining the multicast group corresponding to the data stream after receiving one or more group selection instructions, wherein an individual group selection instruction is received via at least one of (i) a network interface of the playback device from a network device that is separate from the playback device, (ii) the network interface of the playback device from another playback device, or (iii) a user interface on the playback device, wherein the user interface on the playback device comprises one or more of a button, a switch, or a touchscreen.

18 . The tangible, non-transitory computer-readable media of claim 13 , wherein the functions further comprise:

after receiving an indication of a current clock time (t 1 ) of the reference clock, (i) recording a receipt time (t 2 ) of the rendering clock of when the playback device received the indication of the current clock time of the reference clock, and (ii) transmitting a delay request message from the playback device to the reference clock, wherein the delay request message comprises an identifier corresponding to the delay request message; and

after receiving a delay response from the reference clock in response to the delay request message, wherein the delay response comprises an indication of a time (t 3 ) when the reference clock transmitted the delay response, (i) recording a receipt time (t 4 ) of the rendering clock of when the playback device received the delay response from the reference clock, and (ii) calculating a timing offset between the rendering clock and the reference clock according to ((t 2 −t 1 )+(t 4 −t 3 ))/2.

19 . The tangible, non-transitory computer-readable media of claim 13 , wherein receiving clock timing information from a reference clock separate from the playback device comprises receiving clock timing information via one of (i) a multicast transmission from the reference clock via a wireless Local Area Network (LAN), (ii) a unicast transmission from the reference clock via the wireless LAN, (iii) a multicast transmission from the reference clock via a wired LAN, or (iv) a unicast transmission from the reference clock via the wired LAN; and

wherein receiving two or more data streams comprises receiving each data stream of the two or more data streams via a respective one of (i) a multicast transmission via the wireless LAN, (ii) a unicast transmission via the wireless LAN, (iii) a multicast transmission via a wired LAN, or (iv) a unicast transmission via the wired LAN.

20 . The tangible, non-transitory computer-readable media of claim 13 , wherein the two or more data streams comprise at least two data streams selected from a set of data streams comprising (i) one or more data streams comprising music, (ii) one or more data streams comprising sound effects, and (iii) one or more data streams comprising paging content.

21 . The tangible, non-transitory computer-readable media of claim 13 , wherein generating a mix of the sample-rate adjusted audio content of the two or more data streams at the playback device comprises mixing the sample-rate adjusted audio content of the two or more data streams at the playback device based on mixing instructions received from a playback system coordinator separate from the playback device.

22 . The tangible, non-transitory computer-readable media of claim 13 , wherein the functions further comprise:

beginning to operate as a rendering playback device in the playback system, wherein operating as a rendering playback device in the playback system comprises operating as a first rendering playback device type of a plurality of rendering playback device types, wherein each rendering playback device type corresponds to a different playback role in the playback system, and wherein the plurality of rendering playback device types comprises one or more of (i) a render only playback device, (ii) a synchrony group coordinator, (iii) a synchrony group member, (iv) a home theater head end, (v) a home theater satellite, (vi) a stereo pair primary player, (vii) a stereo pair secondary player, (viii) a bonded group primary player, (ix) a bonded group secondary player, (x) a playback system coordinator, (xi) a playback system primary player, or (xii) a playback system secondary player.

23 . The tangible, non-transitory computer-readable media of claim 22 , wherein a particular rendering playback device type corresponds to a software application package comprising program instructions executable by the one or more processors such that the playback device is configured to operate as the particular rendering playback device type, and wherein the functions further comprise:

while executing a first software application package corresponding to the first rendering playback device type in the playback system, receiving a command to switch from operating as the first rendering playback device type to operating as a second rendering playback device type; and

after receiving the command to switch from operating as the first rendering playback device type to operating as the second rendering playback device type, (i) obtaining a second software application package corresponding to the second rendering playback device type, (ii) executing the second software application package, and (iii) ceasing execution of the first software application package.

24 . The tangible, non-transitory computer-readable media of claim 13 , wherein an individual data stream of the two or more data streams comprises a series of frames comprising the audio content and the playback timing information for the audio content.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2026
From: BECKHARDT, STEVEN; LIN, TED; VEGA ZAYAS, LUIS R.
To: SONOS, INC.
Reel/Frame 074538/0625 →
SECURITY INTEREST Recorded Jan 30, 2026
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 074533/0615 →
Continuity (8)
Provisional Application 63513735 · Jul 14, 2023
Provisional Application 63502347 · May 15, 2023
Provisional Application 63377967 · Sep 30, 2022
Provisional Application 63377899 · Sep 30, 2022
Provisional Application 63377948 · Sep 30, 2022
Provisional Application 63377978 · Sep 30, 2022
Provisional Application 63377979 · Sep 30, 2022
Related Publication 20240111485A1 · Apr 4, 2024
References Cited (63)
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 applicant]
US 8483853B1 · Lambourne · 2013 [cited by applicant]
US 8942252B2 · Balassanian et al. · 2015 [cited by applicant]
US 11178447B1 · Panter · 2021 [cited by examiner]
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 20050234571A1 · Holmes · 2005 [cited by examiner]
US 20070142944A1 · Goldberg et al. · 2007 [cited by applicant]
EP 1389853A1 · 2004 [cited by applicant]
WO 200153994 · 2001 [cited by applicant]
WO 2003093950A2 · 2003 [cited by applicant]
AudioTron Quick Start Guide, Version 1.0, Mar. 2001, 24 pages. [cited by applicant]
AudioTron Reference Manual, Version 3.0, May 2002, 70 pages. [cited by applicant]
AudioTron 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]
Sonos, Inc. v. D M Holdings (No. 14-1330-RGA), DI 219, Claim Construction Opinion (Jan. 12, 2017) (24 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]