IP Library Granted Patent US 11,163,825
Granted Patent B2
US 11,163,825 · App. 16/523,894 · Granted Nov 2, 2021

Selecting songs with a desired tempo

Inventors: David H. Reiley, Jr. (Berkeley, CA); Andreas Ehmann (San Francisco, CA); Walker Phillips (San Francisco, CA); Myra Chachkin (Oakland, CA); Maria Cantu Chavez (Dublin, CA)
Assignee: Pandora Media, LLC
G06F16/683G06F3/16G06F16/635G06F16/639H04L65/60
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 11,163,825
App. No.
16/523,894
Granted
Nov 2, 2021
Kind
B2
Abstract

A media playlist is generated in which media items have a tempo matching a target tempo. The content server receives a seed value and a tempo signal from a client device. The tempo signal indicates a target tempo specified by the user. The content server calculates a target tempo range associated with the target tempo and generates a filtered playlist of media items based on the seed value and the target tempo range. The media items in the in the filtered playlist have tempos within the target tempo range. The content server provides the media items in the filtered playlist to the client device.

Claims (76)

1. A method for generating a media playlist of media items matching a target tempo, comprising:

receiving a seed value and a tempo signal from a client device, the tempo signal indicating a target tempo;

calculating a target tempo range associated with the target tempo;

generating a filtered playlist of media items based on the seed value and the target tempo range, wherein the media items in the filtered playlist have a tempo within the target tempo range, wherein generating the filtered playlist comprises:

identifying a media feature tempo for a media item in an initial playlist, wherein the media feature tempo is estimated by a human music analyst,

identifying a machine-learned tempo for the media item, wherein the machine-learned tempo is estimated by computer analysis,

determining whether the media feature tempo and the machine-learned tempo match,

responsive to determining that the media feature tempo and the machine-learned tempo match, determining whether the machine-learned tempo is outside the target tempo range,

discarding the media item from the initial playlist, resulting in a modified initial playlist, responsive to determining that the machine-learned tempo is outside the target tempo range to generate the filtered playlist, and

generating the filtered playlist based on the modified initial playlist; and providing the media items in the filtered playlist to the client device.

2. The method of claim 1 , wherein generating the filtered playlist further comprises:

generating the initial playlist of media items from a library of media items based on the received seed value.

3. The method of claim 2 , wherein generating the filtered playlist further comprises:

identifying a second media feature tempo for a second media item in the initial playlist, wherein the second media feature tempo is estimated by a human music analyst;

identifying a second machine-learned tempo for the second media item in the initial playlist, wherein the second machine-learned is estimated by computer analysis;

comparing the second media feature tempo and the second machine-learned tempo for the second media item to determine whether the second media feature tempo and the second machine-learned tempo match; and

responsive to determining that the second media feature tempo and the second machine-learned tempo do not match, discarding the second media item from the initial playlist.

4. The method of claim 1 , wherein determining whether the media feature tempo and the machine-learned tempo match further comprises:

determining a media feature tempo range as a margin below and above the media feature tempo;

scaling the machine-learned tempo to produce a scaled machine-learned tempo; and

determining that the media feature tempo and the machine-learned tempo match responsive to determining that the machine-learned tempo or the scaled machine-learned tempo is within the media feature tempo range.

5. The method of claim 1 , wherein calculating the target tempo range comprises:

calculating the target tempo range as a margin below and above the target tempo.

6. The method of claim 1 , wherein the received tempo signal is generated by the client device, and reflects movement of the client device or a user's periodic tapping on the client device.

7. The method of claim 1 , wherein the received tempo signal is generated by identifying characteristic time points in a series of sensor measurements made by the client device, wherein intensity of sensor measurements for the characteristic time points are above a predetermined threshold.

8. The method of claim 7 , wherein the sensor measurements are capacitive sensor measurements.

9. A non-transitory computer-readable storage medium storing executable computer program instructions for generating a media playlist of media items matching a target tempo, the computer program instructions, when executed, causing a processor to perform operations, the computer program instructions comprising instructions to:

receive a seed value and a tempo signal from a client device, the tempo signal indicating a target tempo;

calculate a target tempo range associated with the target tempo;

generate a filtered playlist of media items based on the seed value and the target tempo range, wherein the media items in the filtered playlist have a tempo within the target tempo range, wherein the instructions to generate the filtered playlist comprise instructions to:

identify a media feature tempo for a media item in an initial playlist, wherein the media feature tempo is estimated by a human music analyst,

identify a machine-learned tempo for the media item, wherein the machine-learned tempo is estimated by computer analysis,

determine whether the media feature tempo and the machine-learned tempo match,

responsive to determining that the media feature tempo and the machine-learned tempo match, determine whether the machine-learned tempo is outside the target tempo range,

discard the media item from the initial playlist, resulting in a modified initial playlist, responsive to determining that the machine-learned tempo is outside the target tempo range to generate the filtered playlist, and

generate the filtered playlist based on the modified initial playlist; and providing the media items in the filtered playlist to the client device.

10. The computer-readable storage medium of claim 9 , wherein the instructions to generate the filtered playlist further comprise instructions to:

generate the initial playlist of media items from a library of media items based on the received seed value.

11. The computer-readable storage medium of claim 10 , wherein the instructions to generate the filtered playlist further comprise instructions to:

identify a second media feature tempo for a second media item in the initial playlist, wherein the second media feature tempo is estimated by a human music analyst;

identify a second machine-learned tempo for the second media item in the initial playlist, wherein the second machine-learned is estimated by computer analysis;

compare the second media feature tempo and the second machine-learned tempo for the second media item to determine whether the second media feature tempo and the second machine-learned tempo match; and

responsive to determining that the second media feature tempo and the second machine-learned tempo do not match, discard the second media item from the initial playlist.

12. The computer-readable storage medium of claim 9 , wherein the instructions to determine whether the media feature tempo and the machine-learned tempo match further comprise instructions to:

determine a media feature tempo range as a margin below and above the media feature tempo;

scale the machine-learned tempo to produce a scaled machine-learned tempo; and

determine that the media feature tempo and the machine-learned tempo match responsive to determining that the machine-learned tempo or the scaled machine-learned tempo is within the media feature tempo range.

13. The computer-readable storage medium of claim 9 , wherein the instructions to calculate the target tempo range comprise instructions to:

calculate the target tempo range as a margin below and above the target tempo.

14. The computer-readable storage medium of claim 9 , wherein the received tempo signal is generated by the client device, and reflects movement of the client device or a user's periodic tapping on the client device.

15. A content server for generating a media playlist of media items matching a target tempo, comprising:

a processor for executing computer program instructions; and

a non-transitory computer-readable storage medium storing executable computer program instructions, the computer program instructions, when executed, causing a processor to perform operations, the computer program instructions comprising instructions to:

receive a seed value and a tempo signal from a client device, the tempo signal indicating a target tempo;

calculate a target tempo range associated with the target tempo;

generate a filtered playlist of media items based on the seed value and the target tempo range, wherein the media items in the filtered playlist have a tempo within the target tempo range, wherein the instructions to generate the filtered playlist comprise instructions to:

identify a media feature tempo for a media item in an initial playlist, wherein the media feature tempo is estimated by a human music analyst,

identify a machine-learned tempo for the media item, wherein the machine-learned tempo is estimated by computer analysis,

determine whether the media feature tempo and the machine-learned tempo match,

responsive to determining that the media feature tempo and the machine-learned tempo match, determine whether the machine-learned tempo is outside the target tempo range,

discard the media item from the initial playlist, resulting in a modified initial playlist, responsive to determining that the machine-learned tempo is outside the target tempo range to generate the filtered playlist, and

generate the filtered playlist based on the modified initial playlist; and providing the media items in the filtered playlist to the client device.

16. The content server of claim 15 , wherein the instructions to generate the filtered playlist further comprise instructions to:

generate the initial playlist of media items from a library of media items based on the received seed value.

17. The content server of claim 15 , wherein the instructions to generate the filtered playlist further comprise instructions to:

identify a second media feature tempo for a second media item in the initial playlist, wherein the second media feature tempo is estimated by a human music analyst;

identify a second machine-learned tempo for the second media item in the initial playlist, wherein the second machine-learned is estimated by computer analysis;

compare the second media feature tempo and the second machine-learned tempo for the second media item to determine whether the second media feature tempo and the second machine-learned tempo match; and

responsive to determining that the second media feature tempo and the second machine-learned tempo do not match, discard the second media item from the initial playlist.

18. The content server of claim 15 , wherein the instructions to determine whether the media feature tempo and the machine-learned tempo match further comprise instructions to:

determine a media feature tempo range as a margin below and above the media feature tempo;

scale the machine-learned tempo to produce a scaled machine-learned tempo; and

determine that the media feature tempo and the machine-learned tempo match responsive to determining that the machine-learned tempo or the scaled machine-learned tempo is within the media feature tempo range.

19. The content server of claim 15 , wherein the instructions to calculate the target tempo range comprise instructions to:

calculate the target tempo range as a margin below and above the target tempo.

20. The content server of claim 15 , wherein the received tempo signal is generated by the client device, and reflects movement of the client device or a user's periodic tapping on the client device.

Assignments (3)
SECURITY INTEREST Recorded Nov 26, 2025
From: PANDORA MEDIA, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073043/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2019
From: REILEY, DAVID H., JR.; EHMANN, ANDREAS F.; PHILLIPS, WALKER; CHACHKIN, MYRA; CANTU CHAVEZ, MARIA
To: PANDORA MEDIA, INC.
Reel/Frame 050071/0855 →
CHANGE OF NAME Recorded Aug 16, 2019
From: PANDORA MEDIA, INC.
To: PANDORA MEDIA, LLC
Reel/Frame 050082/0128 →
Continuity (3)
Continuation 15400559 · Jan 6, 2017
Provisional Application 62276717 · Jan 8, 2016
Related Publication 20190347292A1 · Nov 14, 2019