IP Library Granted Patent US 10,387,489
Granted Patent B1
US 10,387,489 · App. 15/400,559 · Granted Aug 20, 2019

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, Inc.
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 10,387,489
App. No.
15/400,559
Granted
Aug 20, 2019
Kind
B1
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 (82)

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 in the initial playlist, wherein the machine-learned tempo is estimated by computer analysis,

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

discarding the media item from the initial playlist responsive to the media feature tempo and the machine-learned tempo not matching to generate the filtered 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 comprises:

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

determining tempos of the media items in the initial playlist; and

discarding media items having tempos outside the target tempo range from the initial playlist to generate the filtered playlist.

3. The method of claim 1 , wherein comparing the media feature tempo and the machine-learned tempo comprises:

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

determining whether the scaled machine-learned tempo matches the media feature tempo.

4. The method of claim 3 , wherein scaling the machine-learned tempo comprises:

scaling the machine-learned tempo by a factor of 2, 3, 4, ½, ⅓, or ¼.

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 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 in the initial playlist, wherein the machine-learned tempo is estimated by computer analysis,

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

discarding the media item from the initial playlist responsive to the media feature tempo and the machine-learned tempo not matching to generate the filtered playlist; and

providing the media items in the filtered playlist to the client device.

10. The computer-readable storage medium of claim 9 , wherein generating the filtered playlist comprises:

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

determining tempos of the media items in the initial playlist; and

discarding media items having tempos outside the target tempo range from the initial playlist to generate the filtered playlist.

11. The computer-readable storage medium of claim 9 , wherein comparing the media feature tempo and the machine-learned tempo comprises:

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

determining whether the scaled machine-learned tempo matches the media feature tempo.

12. The computer-readable storage medium of claim 11 , wherein scaling the machine-learned tempo comprises:

scaling the machine-learned tempo by a factor of 2, 3, 4, ½, ⅓, or ¼.

13. The computer-readable storage medium of claim 9 , wherein calculating the target tempo range comprises:

calculating 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 computer program instructions executable to perform steps 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 in the initial playlist, wherein the machine-learned tempo is estimated by computer analysis,

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

discarding the media item from the initial playlist responsive to the media feature tempo and the machine-learned tempo not matching to generate the filtered playlist; and

providing the media items in the filtered playlist to the client device.

16. The content server of claim 15 , wherein generating the filtered playlist comprises:

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

determining tempos of the media items in the initial playlist; and

discarding media items having tempos outside the target tempo range from the initial playlist to generate the filtered playlist.

17. The content server of claim 15 , wherein comparing the media feature tempo and the machine-learned tempo comprises:

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

determining whether the scaled machine-learned tempo matches the media feature tempo.

18. The content server of claim 17 , wherein scaling the machine-learned tempo comprises:

scaling the machine-learned tempo by a factor of 2, 3, 4, ½, ⅓, or ¼.

19. The content server of claim 15 , wherein calculating the target tempo range comprises:

calculating 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.

21. The method of claim 1 , wherein comparing the media feature tempo and the machine-learned tempo further comprises:

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

determining that the media feature tempo for the media item does not match the machine-learned tempo of the media item responsive to determining that the machine-learned tempo or a scaled value of the machine-learned tempo is outside the media feature tempo range.

22. The method of claim 21 , wherein generating the filtered playlist further comprises:

for a second media item in the initial playlist with a second media feature tempo that matches a second machine-learned tempo of the second media item, discarding the second media item from the initial playlist responsive to determining that the second machine-learned tempo or a scaled value of the second machine-learned tempo of the second media item is outside the target tempo range.

23. The computer-readable storage medium of claim 9 , wherein comparing the media feature tempo and the machine-learned tempo further comprises:

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

determining that the media feature tempo for the media item does not match the machine-learned tempo of the media item responsive to determining that the machine-learned tempo or a scaled value of the machine-learned tempo is outside the media feature tempo range.

24. The computer-readable storage medium of claim 23 , wherein generating the filtered playlist further comprises:

for a second media item in the initial playlist with a second media feature tempo that matches a second machine-learned tempo of the second media item, discarding the second media item from the initial playlist responsive to determining that the second machine-learned tempo or a scaled value of the second machine-learned tempo of the second media item is outside the target tempo range.

25. The content server of claim 15 , wherein comparing the media feature tempo and the machine-learned tempo further comprises:

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

determining that the media feature tempo for the media item does not match the machine-learned tempo of the media item responsive to determining that the machine-learned tempo or a scaled value of the machine-learned tempo is outside the media feature tempo range.

26. The content server of claim 25 , wherein generating the filtered playlist further comprises:

for a second media item in the initial playlist with a second media feature tempo that matches a second machine-learned tempo of the second media item, discarding the second media item from the initial playlist responsive to determining that the second machine-learned tempo or a scaled value of the second machine-learned tempo of the second media item is outside the target tempo range.

Assignments (5)
SECURITY INTEREST Recorded Nov 26, 2025
From: PANDORA MEDIA, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073043/0142 →
CHANGE OF NAME Recorded Mar 29, 2019
From: PANDORA MEDIA, INC.
To: PANDORA MEDIA, LLC
Reel/Frame 048748/0255 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: PANDORA MEDIA CALIFORNIA, LLC; ADSWIZ INC.
Reel/Frame 048209/0925 →
SECURITY INTEREST Recorded Dec 29, 2017
From: PANDORA MEDIA, INC.; PANDORA MEDIA CALIFORNIA, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 044985/0009 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2017
From: REILEY, DAVID H., JR.; EHMANN, ANDREAS F.; PHILLIPS, WALKER; CHACHKIN, MYRA; CHAVEZ, MARIA CANTU
To: PANDORA MEDIA, INC.
Reel/Frame 042156/0629 →
Continuity (1)
Provisional Application 62276717 · Jan 8, 2016