IP Library Granted Patent US 10,572,533
Granted Patent B2
US 10,572,533 · App. 15/898,855 · Granted Feb 25, 2020

Resolving inconsistent queues

Inventor: Arthur L. Coburn, IV (Lexington, MA)
Assignee: Sonos, Inc.
G06F16/60G06F12/00G06F15/16H04L65/60H04N21/43615H04N21/4583H04N21/4825H04N21/8113
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 10,572,533
App. No.
15/898,855
Granted
Feb 25, 2020
Kind
B2
Abstract

Embodiments described herein may involve inconsistent queues. An example implementation may involve a computing device receiving a message indicating a playback queue corresponding to a playback zone of a media playback system. The playback queue may include first media items queued in a first order for playback by the playback zone. The computing device determines that a playlist at the computing device is to be queued for playback in the playback queue corresponding to the playback zone, the playlist including second media items in a second order. The computing device determines that the first media items in the first order is different from the second media items in the second order, and based on the determination, causes the first media items in the playback queue to be replaced with the second media items in the playlist.

Claims (62)

1. A tangible, non-transitory computer-readable medium having stored therein instructions executable by one or more processors to cause a mobile device to perform a method comprising:

receiving, on a touch-screen graphical display within a control interface of a first controller application, input data indicating selection of one or more particular audio tracks for playback by one or more particular playback devices;

transmitting, via a network interface to a computing system, an instruction to create a playback queue that includes the one or more particular audio tracks;

receiving, via the network interface in response to the instruction to create the playback queue, a first queue update message data indicating a first version number of the playback queue;

storing, in a queue version state variable indicating the most recent version of the playback queue, the first version number of the playback queue;

while the first controller application is controlling the playback queue, receiving, via the network interface from the computing system, a second queue update message data indicating a second version number of the playback queue;

detecting a queue consistency error based on the second version number of the playback queue not matching the first version number of the playback queue stored in the queue version state variable; and

in response to detecting the queue consistency error, transmitting, via the network interface to the computing system, an instruction to replace all tracks in the playback queue with the one or more particular audio tracks.

2. The tangible, non-transitory computer-readable medium of claim 1 , wherein receiving the input data indicating selection of one or more audio tracks for playback by one or more particular playback devices comprises receiving input data indicating selection of a playlist that includes the one or more audio tracks.

3. The tangible, non-transitory computer-readable medium of claim 1 , wherein the method further comprises subscribing to queue update messages from the computing system while the first controller application is controlling the playback queue.

4. The tangible, non-transitory computer-readable medium of claim 1 , wherein the one or more particular playback devices are playing a particular audio track of the one or more particular audio tracks, and wherein transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks comprises transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks while the one or more particular playback devices continue playing the particular audio track of the one or more particular audio tracks.

5. The tangible, non-transitory computer-readable medium of claim 1 , wherein controlling the playback queue comprises:

displaying, on the touch-screen graphical display within the control interface of the first controller application, (i) a graphical representation of the playback queue and (ii) one or more playback controls to control playback of the playback queue by the one or more particular playback devices.

6. The tangible, non-transitory computer-readable medium of claim 5 , wherein the method further comprises:

receiving, via the control interface on the touch-screen graphical display, input data indicating a command to modify the playback queue;

transmitting, via the network interface to the computing system, (i) an instruction to modify the playback queue (ii) the first version number of the playback queue stored in the queue version state variable;

receiving, via the network interface in response to the instruction to create the playback queue, a second queue update message data indicating a third version number of the playback queue; and

storing, in the queue version state variable indicating the most recent version of the playback queue, the third version number of the playback queue.

7. The tangible, non-transitory computer-readable medium of claim 5 , wherein the method further comprises:

receiving, via the control interface on the touch-screen graphical display, input data indicating a command to modify the playback queue; and

transmitting, via the network interface to the computing system, (i) an instruction to modify the playback queue (ii) the first version number of the playback queue stored in the queue version state variable, and wherein the mobile device receives the second queue update message data indicating a second version number of the playback queue in response to the instruction to modify the playback queue.

8. A method comprising:

a mobile device receiving, on a touch-screen graphical display within a control interface of a first controller application, input data indicating selection of one or more particular audio tracks for playback by one or more particular playback devices;

the mobile device transmitting, via a network interface to a computing system, an instruction to create a playback queue that includes the one or more particular audio tracks;

the mobile device receiving, via the network interface in response to the instruction to create the playback queue, a first queue update message data indicating a first version number of the playback queue;

the mobile device storing, in a queue version state variable indicating the most recent version of the playback queue, the first version number of the playback queue;

while the first controller application is controlling the playback queue, the mobile device receiving, via the network interface from the computing system, a second queue update message data indicating a second version number of the playback queue;

the mobile device detecting a queue consistency error based on the second version number of the playback queue not matching the first version number of the playback queue stored in the queue version state variable; and

in response to detecting the queue consistency error, the mobile device transmitting, via the network interface to the computing system, an instruction to replace all tracks in the playback queue with the one or more particular audio tracks.

9. The method of claim 8 , wherein receiving the input data indicating selection of one or more audio tracks for playback by one or more particular playback devices comprises receiving input data indicating selection of a playlist that includes the one or more audio tracks.

10. The method of claim 8 , wherein the method further comprises subscribing to queue update messages from the computing system while the first controller application is controlling the playback queue.

11. The method of claim 8 , wherein the one or more particular playback devices are playing a particular audio track of the one or more particular audio tracks, and wherein transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks comprises transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks while the one or more particular playback devices continue playing the particular audio track of the one or more particular audio tracks.

12. The method of claim 8 , wherein controlling the playback queue comprises:

displaying, on the touch-screen graphical display within the control interface of the first controller application, (i) a graphical representation of the playback queue and (ii) one or more playback controls to control playback of the playback queue by the one or more particular playback devices.

13. The method of claim 12 , wherein the method further comprises:

receiving, via the control interface on the touch-screen graphical display, input data indicating a command to modify the playback queue;

transmitting, via the network interface to the computing system, (i) an instruction to modify the playback queue (ii) the first version number of the playback queue stored in the queue version state variable;

receiving, via the network interface in response to the instruction to create the playback queue, a second queue update message data indicating a third version number of the playback queue; and

storing, in the queue version state variable indicating the most recent version of the playback queue, the third version number of the playback queue.

14. The method of claim 12 , wherein the method further comprises:

receiving, via the control interface on the touch-screen graphical display, input data indicating a command to modify the playback queue; and

transmitting, via the network interface to the computing system, (i) an instruction to modify the playback queue (ii) the first version number of the playback queue stored in the queue version state variable, and wherein the mobile device receives the second queue update message data indicating a second version number of the playback queue in response to the instruction to modify the playback queue.

15. A mobile device comprising:

a network interface;

a touch-screen graphical display;

one or more processors; and

data storage having stored therein instructions executable by the one or more processors to cause the mobile device to perform a method comprising:

receiving, on the touch-screen graphical display within a control interface of a first controller application, input data indicating selection of one or more particular audio tracks for playback by one or more particular playback devices;

transmitting, via the network interface to a computing system, an instruction to create a playback queue that includes the one or more particular audio tracks;

receiving, via the network interface in response to the instruction to create the playback queue, a first queue update message data indicating a first version number of the playback queue;

storing, in a queue version state variable indicating the most recent version of the playback queue, the first version number of the playback queue;

while the first controller application is controlling the playback queue, receiving, via the network interface from the computing system, a second queue update message data indicating a second version number of the playback queue;

detecting a queue consistency error based on the second version number of the playback queue not matching the first version number of the playback queue stored in the queue version state variable; and

in response to detecting the queue consistency error, transmitting, via the network interface to the computing system, an instruction to replace all tracks in the playback queue with the one or more particular audio tracks.

16. The mobile device of claim 15 , wherein receiving the input data indicating selection of one or more audio tracks for playback by one or more particular playback devices comprises receiving input data indicating selection of a playlist that includes the one or more audio tracks.

17. The mobile device of claim 15 , wherein the method further comprises subscribing to queue update messages from the computing system while the first controller application is controlling the playback queue.

18. The mobile device of claim 15 , wherein the one or more particular playback devices are playing a particular audio track of the one or more particular audio tracks, and wherein transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks comprises transmitting the instruction to replace all tracks in the playback queue with the one or more particular audio tracks while the one or more particular playback devices continue playing the particular audio track of the one or more particular audio tracks.

19. The mobile device of claim 15 , wherein controlling the playback queue comprises:

displaying, on the touch-screen graphical display within the control interface of the first controller application, (i) a graphical representation of the playback queue and (ii) one or more playback controls to control playback of the playback queue by the one or more particular playback devices.

20. The mobile device of claim 19 , wherein the method further comprises:

receiving, via the control interface on the touch-screen graphical display, input data indicating a command to modify the playback queue; and

transmitting, via the network interface to the computing system, (i) an instruction to modify the playback queue (ii) the first version number of the playback queue stored in the queue version state variable, and wherein the mobile device receives the second queue update message data indicating a second version number of the playback queue in response to the instruction to modify the playback queue.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2018
From: COBURN, ARTHUR L., IV
To: SONOS, INC.
Reel/Frame 044964/0543 →
Continuity (3)
Continuation 15227148 · Aug 3, 2016
Continuation 14330694 · Jul 14, 2014
Related Publication 20180349390A1 · Dec 6, 2018