# US 12,003,576 B2 · Cloud queue tombstone

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,576 B2
- Document ID: US12003576B2
- Status: Granted
- Kind: B2
- Application number: 18/066,906
- Filed: 2022-12-15
- Published: 2023-07-20
- Granted: 2024-06-04
- Earliest claimed: 2014-09-12
- Assignees: Sonos, Inc.
- Applicants: Sonos, Inc.
- Inventors: Arthur L. Coburn, IV
- Web page: https://patentgrep.com/patent/US12003576B2

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/4387: {by the use of playlists}
- H04N 21/2181: {comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers (distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- H04N 21/2408: {Monitoring of the upstream path of the transmission network, e.g. client requests (monitoring data switching networks utilization H04L43/0876; scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/242: Synchronisation processes, e.g. processing of PCR [Programme Clock References] {(arrangements for synchronising broadcast or distribution via plural systems in broadcast distribution systems H04H20/18)}
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/8113: {comprising music, e.g. song in MP3 format}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Example techniques relate to cloud queue tombstones. An example implementation may involve a computing system receiving instructions to remove a particular media item from a playback queue. Based on the instructions, the computing system removes the particular media item from the playback queue and adds, to the playback queue, a tombstone indicator indicating that the particular media item has been removed from the playback queue. The computing system receives, from the media playback system, a request for a window of one or more media items from the playback queue. Based on the request, the computing system sends, to the media playback system, data representing a particular window of media items from the playback queue, wherein the particular window includes the tombstone indicator. The computing system detects a given tombstone removal trigger from among multiple tombstone removal triggers and based on the detecting, removes the tombstone indicator from the playback queue.

## Claims

### Claim 1

A cloud-based computing system comprising:
a network interface;
at least one processor; and
at least one non-transitory computer-readable medium comprising program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
maintain, in first data storage, data representing a playback queue, wherein the playback queue comprises a first media item at a first position in the playback queue;
cause, via the network interface, a playback device to play back the playback queue via a local representation of the playback queue, wherein the local representation of the playback queue is maintained in second data storage on the playback device;
receive, via the network interface, data representing a command to remove the first media item from the playback queue;
add a tombstone to the playback queue that indicates the first position of the removed first media item in the playback queue;
receive, via the network interface, a first request for a window of media items that is centered on the first media item in the playback queue;
after receipt of the first request for a window of media items, determine a first window of media items that is centered on a second media item at a second position that is subsequent to the first position indicated by the tombstone; and
send, via the network interface in response to the first request, data that causes the playback device to add the first window of media items to the local representation of the playback queue.

### Claim 2 (depends on 1)

The cloud-based computing system of claim 1, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to receive the data representing the command to remove the first media item from the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
receive the data representing the command to remove the first media item from the playback queue while the playback device is playing back the first media item, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send, via the network interface, at least one message instructing the playback device to send the first request for a window of media items from the playback queue.

### Claim 3 (depends on 1)

The cloud-based computing system of claim 1, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
receive, via the network interface, a second request for a window of media items from the playback queue;
send, via the network interface, data representing a second window of media items from the playback queue, wherein the second window is centered at a third media item at a third position in the playback queue; and
after sending the data representing the second window of media items, remove the tombstone from the playback queue.

### Claim 4 (depends on 1)

The cloud-based computing system of claim 1, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
after receipt of the data representing the command to remove the first media item from the playback queue, send, via the network interface to the playback device, data representing a notification that the playback queue has been modified, wherein receipt of the data representing the notification that the playback queue has been modified causes the playback device to send the first request for the window of media items.

### Claim 5 (depends on 1)

The cloud-based computing system of claim 1, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to determine the first window of media items comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
determine at least one additional media item subsequent to the second media item in the playback queue to include in the first window of media items.

### Claim 6 (depends on 1)

The cloud-based computing system of claim 1, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to send the data that causes the playback device to add the first window of media items to the local representation of the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send instructions that cause the playback device to replace media items from a previously-added window of media items in the local representation of the playback queue with the first window of media items.

### Claim 7 (depends on 1)

The cloud-based computing system of claim 1, wherein the playback device is configured in a synchrony group with an additional playback device, and wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to cause the playback device to play back the playback queue via the local representation of the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send instructions that cause the playback device to play back the media items in the first window of media items in synchrony with playback of the media items in the first window of media items by the additional playback device, wherein the playback device sends, to the additional playback device, timing information to synchronize the playback.

### Claim 8

At least one tangible, non-transitory computer-readable medium comprising program instructions that are executable by at least one processor such that a cloud-based computing system is configured to:
maintain, in first data storage, data representing a playback queue, wherein the playback queue comprises a first media item at a first position in the playback queue;
cause, via a network interface, a playback device to play back the playback queue via a local representation of the playback queue, wherein the local representation of the playback queue is maintained in second data storage on the playback device;
receive, via the network interface, data representing a command to remove the first media item from the playback queue;
add a tombstone to the playback queue that indicates the first position of the removed first media item in the playback queue;
receive, via the network interface, a first request for a window of media items that is centered on the first media item in the playback queue;
after receipt of the first request for a window of media items, determine a first window of media items that is centered on a second media item at a second position that is subsequent to the first position indicated by the tombstone; and
send, via the network interface in response to the first request, data that causes the playback device to add the first window of media items to the local representation of the playback queue.

### Claim 9 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to receive the data representing the command to remove the first media item from the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
receive the data representing the command to remove the first media item from the playback queue while the playback device is playing back the first media item, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send, via the network interface, at least one message instructing the playback device to send the first request for a window of media items from the playback queue.

### Claim 10 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
receive, via the network interface, a second request for a window of media items from the playback queue;
send, via the network interface, data representing a second window of media items from the playback queue, wherein the second window is centered at a third media item at a third position in the playback queue; and
after sending the data representing the second window of media items, remove the tombstone from the playback queue.

### Claim 11 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the at least one non-transitory computer-readable medium further comprises program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
after receipt of the data representing the command to remove the first media item from the playback queue, send, via the network interface to the playback device, data representing a notification that the playback queue has been modified, wherein receipt of the data representing the notification that the playback queue has been modified causes the playback device to send the first request for the window of media items.

### Claim 12 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to determine the first window of media items comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
determine at least one additional media item subsequent to the second media item in the playback queue to include in the first window of media items.

### Claim 13 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to send the data that causes the playback device to add the first window of media items to the local representation of the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send instructions that cause the playback device to replace media items from a previously-added window of media items in the local representation of the playback queue with the first window of media items.

### Claim 14 (depends on 8)

The at least one tangible, non-transitory computer-readable medium of claim 8, wherein the playback device is configured in a synchrony group with an additional playback device, and wherein the program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to cause the playback device to play back the playback queue via the local representation of the playback queue comprise program instructions that are executable by the at least one processor such that the cloud-based computing system is configured to:
send instructions that cause the playback device to play back the media items in the first window of media items in synchrony with playback of the media items in the first window of media items by the additional playback device, wherein the playback device sends, to the additional playback device, timing information to synchronize the playback.

### Claim 15

A method to be performed by a cloud-based computing system, the method comprising:
maintaining, in first data storage, data representing a playback queue, wherein the playback queue comprises a first media item at a first position in the playback queue;
causing, via a network interface, a playback device to play back the playback queue via a local representation of the playback queue, wherein the local representation of the playback queue is maintained in second data storage on the playback device;
receiving, via the network interface, data representing a command to remove the first media item from the playback queue;
adding a tombstone to the playback queue that indicates the first position of the removed first media item in the playback queue;
receiving, via the network interface, a first request for a window of media items that is centered on the first media item in the playback queue;
after receiving the first request for a window of media items, determining a first window of media items that is centered on a second media item at a second position that is subsequent to the first position indicated by the tombstone; and
sending, via the network interface in response to the first request, data that causes the playback device to add the first window of media items to the local representation of the playback queue.

### Claim 16 (depends on 15)

The method of claim 15, wherein receiving the data representing the command to remove the first media item from the playback queue comprises:
receiving the data representing the command to remove the first media item from the playback queue while the playback device is playing back the first media item, wherein the method further comprises:
sending, via the network interface, at least one message instructing the playback device to send the first request for a window of media items from the playback queue.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
receiving, via the network interface, a second request for a window of media items from the playback queue;
sending, via the network interface, data representing a second window of media items from the playback queue, wherein the second window is centered at a third media item at a third position in the playback queue; and
after sending the data representing the second window of media items, removing the tombstone from the playback queue.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
after receiving the data representing the command to remove the first media item from the playback queue, sending, via the network interface to the playback device, data representing a notification that the playback queue has been modified, wherein receiving the data representing the notification that the playback queue has been modified causes the playback device to send the first request for the window of media items.

### Claim 19 (depends on 15)

The method of claim 15, wherein determining the first window of media items comprises:
determining at least one additional media item subsequent to the second media item in the playback queue to include in the first window of media items.

### Claim 20 (depends on 15)

The method of claim 15, wherein sending the data that causes the playback device to add the first window of media items to the local representation of the playback queue comprises:
sending instructions that cause the playback device to replace media items from a previously-added window of media items in the local representation of the playback queue with the first window of media items.
