U.S. patent application number 14/269305 was filed with the patent office on 2014-08-28 for active playlist having dynamic media item groups.
This patent application is currently assigned to Napo Enterprises, LLC. The applicant listed for this patent is Napo Enterprises, LLC. Invention is credited to Christopher M. Amidon, Gary W. Black.
Application Number | 20140245147 14/269305 |
Document ID | / |
Family ID | 41089918 |
Filed Date | 2014-08-28 |
United States Patent
Application |
20140245147 |
Kind Code |
A1 |
Amidon; Christopher M. ; et
al. |
August 28, 2014 |
Active Playlist Having Dynamic Media Item Groups
Abstract
Systems and methods are provided for creation and management of
an active playlist having dynamic media item groups. In general, a
number of media items to be used for the active playlist are first
identified and classified into one or more media item groups based
on a primary criterion and, optionally, one or more secondary
criteria to provide an underlying pool of media items for the
active playlist. The active playlist is then populated with media
items from the underlying pool of media items. More specifically,
the active playlist is divided into media item groups corresponding
to those in the underlying pool of media items. Each media item
group in the active playlist is populated with a predefined number
of the media items in the corresponding media item group in the
underlying pool of media items. Thereafter, the media items in the
media item groups of the active playlist are dynamically updated
based on user interactions.
Inventors: |
Amidon; Christopher M.;
(Apex, NC) ; Black; Gary W.; (Cary, NC) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Napo Enterprises, LLC |
Wilmington |
|
DE |
|
|
Assignee: |
Napo Enterprises, LLC
Wilmington
DE
|
Family ID: |
41089918 |
Appl. No.: |
14/269305 |
Filed: |
May 5, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12053782 |
Mar 24, 2008 |
8725740 |
|
|
14269305 |
|
|
|
|
Current U.S.
Class: |
715/716 |
Current CPC
Class: |
G11B 27/105 20130101;
G06F 3/0482 20130101; G11B 27/329 20130101 |
Class at
Publication: |
715/716 |
International
Class: |
G06F 3/0482 20060101
G06F003/0482 |
Claims
1. A method of operating a media player device comprising the steps
of: identifying a plurality of media item groups based on a primary
criterion, the media item groups collectively consisting of a
subset of a media item pool; for each of the plurality of media
item groups, selecting a subset of the media items from the
corresponding media item group as representative media items;
forming a playlist consisting of the plurality of media item
groups; displaying the playlist, wherein only the representative
media items are displayed; in response to a current media item from
a current media item group being rendered without interruption,
updating the subset of representative media items for the current
media item group; in response to the current media item from the
current media item group not being rendered due to an interruption,
not updating the subset of representative media items for the
current media item group, selecting a next media item group as the
new current media item group, and selecting a media item from the
new current media item group as the new current media item.
2. The method of claim 1 wherein the primary criterion comprises a
criterion selected from a group consisting of: a score assigned to
each of the plurality of media item groups based on preferences, a
rating assigned to each of the plurality of media item groups, a
time at which each of the plurality of media item groups was last
played, a date on which each of the plurality of media item groups
was lasted played, and a date and time on which each of the
plurality of media item groups was last played.
3. The method of claim 1 further comprising classifying a plurality
of media items into the plurality of media item groups based on the
primary criterion and one or more secondary criteria to form the
plurality of media item groups for the playlist.
4. The method of claim 1 wherein the plurality of media item groups
is provided such that at least one media item from the plurality of
media item groups is classified in each of the plurality of media
item groups, and forming the playlist comprises forming the
playlist such that the playlist is divided into a plurality of
media item groups.
5. The method of claim 4 wherein forming the playlist further
comprises, for each media item group of the plurality of media item
groups in the playlist, populating the media item group with up to
a predetermined number of media items in a corresponding media item
group of the plurality of media item groups.
6. The method of claim 4 further comprising enabling the skipping
of playback from a first media item group of the plurality of media
item groups in the playlist to a second media item group of the
plurality of media item groups subsequent to the first media item
group in the playlist.
7. The method of claim 6 wherein enabling the skipping of playback
from the first media item group to the second media item group in
the playlist comprises enabling the skipping of playback from the
first media item group to the second media item group in the
playlist by skipping through up to a predetermined number of media
items in the playlist for the first media item group rather than
all media items from the plurality of media items classified in the
first media item group.
8. The method of claim 1 further comprising: monitoring
interactions with the playlist; and dynamically updating the
playlist based on the interactions.
9. The method of claim 8 wherein dynamically updating the playlist
comprises pulling additional media items from a media item group of
the plurality of media item groups into the playlist as media items
in the playlist from the media item group are consumed.
10. The method of claim 9 wherein pulling the additional media
items into the media item group of the playlist comprises pulling
an additional media item from the media item group into the
playlist in response to consumption of one of a group consisting
of: a media item in the playlist from the media item group and a
predetermined amount of a media item in the playlist from the media
item group.
11. The method of claim 9 wherein dynamically updating the playlist
further comprises removing consumed media items from the
playlist.
12. The method of claim 9 further comprising: making a
determination, based on the interactions, as to whether all media
items in a media item group of the plurality of media item are
expected to be consumed; and identifying and obtaining one or more
new media items for the media item group if the determination is
made that the all media items in the media item group are expected
to be consumed.
13. The method of claim 12 wherein identifying and obtaining the
one or more new media items comprises obtaining the one or more new
media items from at least one of a group consisting of: a local
source and a remote source.
14. The method of claim 1 further comprising providing playback of
the playlist under control of an associated user.
15. A system comprising: an interface providing playback of a
playlist; and a control system, associated with the interface, and
configured to: identify a plurality of media item groups based on a
primary criterion, the media item groups collectively consisting of
a subset of a media item pool; for each of the plurality of media
item groups, select a subset of the media items from the
corresponding media item group as representative media items; form
a playlist consisting of the plurality of media item groups;
display the playlist, wherein only the representative media items
are displayed; in response to a current media item from a current
media item group being rendered without interruption, update the
subset of representative media items for the current media item
group; in response to the current media item from the current media
item group not being rendered due to an interruption, not update
the subset of representative media items for the current media item
group, select a next media item group as the new current media item
group, and select a media item from the new current media item
group as the new current media item.
16. The system of claim 15 wherein the primary criterion comprises
a criterion selected from a group consisting of: a score assigned
to each of the plurality of media item groups based on user
preferences, a rating assigned to each of the plurality of media
item groups, a time at which each of the plurality of media item
groups was last played, a date on which each of the plurality of
media item groups was lasted played, and a date and time on which
each of the plurality of media item groups was last played.
17. The system of claim 15 wherein the control system is further
configured to classify a plurality of media items into the
plurality of media item groups based on the primary criterion and
one or more secondary criteria to form the plurality of media item
groups for the playlist.
18. The system of claim 15 wherein the plurality of media item
groups is provided such that at least one media item from the
plurality of media item groups is classified in each of the
plurality of media item groups, and in forming the playlist, the
control system is configured to form the playlist such that the
playlist is divided into a plurality of media item groups.
19. The system of claim 18 wherein in forming the playlist, the
control system is configured to: for each media item group of the
plurality of media item groups in the playlist, populate the media
item group with up to a predetermined number of media items in a
corresponding media item group of the plurality of media item
groups.
20. The system of claim 18 wherein the control system is further
configured to enable the skipping of playback from a first media
item group of the plurality of media item groups in the playlist to
a second media item group of the plurality of media item groups
subsequent to the first media item group in the playlist.
21. The system of claim 20 wherein in enabling the skipping of
playback from the first media item group to the second media item
group in the playlist, the control system is configured to enable
the skipping of playback from the first media item group to the
second media item group in the playlist by skipping through up to a
predetermined number of media items in the playlist for the first
media item group rather than all media items from the plurality of
media items classified in the first media item group.
22. The system of claim 15 where in the control system is further
configured to: monitor interactions with the playlist; and
dynamically update the playlist based on the interactions.
23. The system of claim 22 wherein in dynamically updating the
playlist, the control system is configured to pull additional media
items from a media item group of the plurality of media item groups
into the playlist as media items in the playlist from the media
item group are consumed.
24. The system of claim 23 wherein in pulling the additional media
items into the media item group of the playlist, the control system
is configured to pull an additional media item from the media item
group into the playlist in response to consumption of one of a
group consisting of: a media item in the playlist from the media
item group and a predetermined amount of a media item in the
playlist from the media item group.
25. The system of claim 23 wherein in dynamically updating the
playlist, the control system is further configured to remove
consumed media items from the playlist.
26. The system of claim 23 wherein the control system is further
configured to: make a determination, based on the interactions, as
to whether all media items in a media item group of the plurality
of media item groups are expected to be consumed; and identify and
obtain one or more new media items for the media item group if the
determination is made that the all media items in the media item
group are expected to be consumed.
27. The system of claim 26 wherein in identifying and obtaining the
one or more new media items, the control system is configured to
obtain the one or more new media items from at least one of a group
consisting of: a local source and a remote source.
28. A method of operating a media player device comprising the
steps of: identifying a plurality of media item groups based on a
primary criterion, the media item groups collectively consisting of
a subset of media items of a media item collection; for each of the
plurality of media item groups, designating a subset of the media
items from the respective media item group as representative media
items and a distinct subset of media items from the respective
media item group as underlying media items; forming a playlist
consisting of the representative media items from the plurality of
media item groups; and enabling playback of the playlist such that:
uninterrupted playback of the playlist proceeds sequentially to the
next representative media item of a first media item group, wherein
the representative media items of the first media item group are
updated from the underlying media items of the first media item
group, and interrupted playback of the playlist proceeds to a
representative media item of a second media item group, wherein the
representative media items of the second media item group are
updated from the underlying media items of the second media item
group, and the updating of the representative media items of the
first media item group is suspended.
29. A system comprising: an interface providing playback of a
playlist; and a control system, associated with the interface, and
configured to: identify a plurality of media item groups based on a
primary criterion, the media item groups collectively consisting of
a subset of media items of a media item collection; for each of the
plurality of media item groups, designate a subset of the media
items from the respective media item group as representative media
items and a distinct subset of media items from the respective
media item group as underlying media items; form a playlist
consisting of the representative media items from the plurality of
media item groups; and enable playback of the playlist such that:
uninterrupted playback of the playlist proceeds sequentially to the
next representative media item of a first media item group, wherein
the representative media items of the first media item group are
updated from the underlying media items of the first media item
group, and interrupted playback of the playlist proceeds to a
representative media item of a second media item group, wherein the
representative media items of the second media item group are
updated from the underlying media items of the second media item
group, and the updating of the representative media items of the
first media item group is suspended.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 12/053,782 (issued as U.S. Pat. No.
8,725,740), titled "Active Playlist Having Dynamic Media Item
Groups", filed on Mar. 24, 2008, the entire disclosure of which is
hereby incorporated by reference in its entirety.
FIELD OF THE DISCLOSURE
[0002] The present invention relates to playlists and more
particularly relates to creation and management of an active
playlist having dynamic media item groups.
BACKGROUND
[0003] A playlist generally consists primarily of a list of media
item identifiers, or references to the media items, defining a
playback sequence for those media items. As an example, FIG. 1
illustrates an exemplary music playlist 10. For each song in the
music playlist 10, the music playlist 10 includes a name or title
of the song, a playback time or duration of the song, a name of an
artist of the song, a name of an album on which the song was
released, a genre of the song, and a rating of the song by one or
more users. In this example, the songs in the music playlist 10 are
sorted based on artist, album, or genre such that a number of songs
by the artist "The Ramones" are listed at the beginning of the
music playlist 10, and a number of songs by the artist "The Call"
are listed at the end of the music playlist 10. One issue with the
music playlist 10 is that if the user is not in the mood to listen
to "The Ramones" but would rather listen to songs by "The Call,"
the user must manually skip through a large number of songs in the
music playlist 10. This is especially burdensome on a portable
media player, such as an Apple.RTM. iPod. As such, there is a need
for a method and associated systems for providing an improved
playlist.
SUMMARY OF THE INVENTION
[0004] The present invention relates to creation and management of
an active playlist having dynamic media item groups. In general, a
number of media items to be used for the active playlist are first
identified and classified into one or more media item groups based
on a primary criterion and, optionally, one or more secondary
criteria to provide an underlying pool of media items for the
active playlist. The active playlist is then populated with media
items from the underlying pool of media items. More specifically,
the active playlist is divided into media item groups corresponding
to those in the underlying pool of media items. Each media item
group in the active playlist is populated with up to a predefined
number of the media items in the corresponding media item group in
the underlying pool of media items. Thereafter, the media items in
the media item groups of the active playlist are dynamically
updated based on user interactions.
[0005] In one embodiment, the underlying pool of media items is an
underlying playlist of media items that is dynamically controlled
to effectively provide the active playlist. More specifically, the
media items in the underlying playlist of media items are arranged
according to the media item groups. In order to provide the active
playlist, for each of the media item groups, the underlying
playlist is controlled such that a predefined number of the media
items in the media item group are provided as the corresponding
media item group of the active playlist while the remaining media
items from the media item group are hidden. Thereafter, the media
items provided as part of the active playlist for each of the media
item groups are dynamically updated based on user interactions.
[0006] In operation, a user begins playback of the active playlist.
As the user consumes the media items from one of the media item
groups in the active playlist, other media items in the
corresponding media item group in the underlying pool of media
items are rotated into the media item group in the active playlist.
If the user consumes all of the media items from the underlying
pool of media items in a media item group, new media items may be
identified and obtained for the media item group from a local or
remote source. Alternatively, playback may proceed to the next
media item group in the active playlist or playback of the media
items in the media item group may be repeated. In one embodiment,
if the user desires to skip to the next media item group in the
playlist, the user must only skip through the media items in the
active playlist for the media item group rather than all of the
media items for the media item group in the underlying pool of
media items. As such, the user may quickly and easily skip from one
group of media items to another.
[0007] Those skilled in the art will appreciate the scope of the
present invention and realize additional aspects thereof after
reading the following detailed description of the preferred
embodiments in association with the accompanying drawing
figures.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
[0008] The accompanying drawing figures incorporated in and forming
a part of this specification illustrate several aspects of the
invention, and together with the description serve to explain the
principles of the invention.
[0009] FIG. 1 illustrates a conventional playlist according to the
prior art;
[0010] FIG. 2 is a flow chart illustrating a process for creating
an active playlist having one or more dynamic media item groups
according to one embodiment of the present invention;
[0011] FIGS. 3 through 6 graphically illustrate the process of FIG.
2 according to one embodiment of the present invention;
[0012] FIG. 7 is a flow chart illustrating a process for adding new
media items to the underlying pool of media items for the active
playlist and, in response, updating the active playlist according
to one embodiment of the present invention;
[0013] FIG. 8 is a flow chart illustrating a process for
dynamically updating the active playlist based on user interactions
according to one embodiment of the present invention;
[0014] FIGS. 9 through 11 illustrate dynamic updating of an
exemplary active playlist based on user interactions according to
one embodiment of the present invention;
[0015] FIG. 12 illustrates an exemplary system incorporating a
playlist creation management function for creating and maintaining
one or more active playlists having one or more dynamic media item
groups according to one embodiment of the present invention;
and
[0016] FIG. 13 is a block diagram of an exemplary embodiment of the
system of FIG. 12.
DETAILED DESCRIPTION
[0017] The embodiments set forth below represent the necessary
information to enable those skilled in the art to practice the
invention and illustrate the best mode of practicing the invention.
Upon reading the following description in light of the accompanying
drawing figures, those skilled in the art will understand the
concepts of the invention and will recognize applications of these
concepts not particularly addressed herein. It should be understood
that these concepts and applications fall within the scope of the
disclosure and the accompanying claims.
[0018] The present invention relates to creation and management of
an active playlist having dynamic media item groups. While much of
the discussion below focuses on an active music playlist, the
present invention is not limited thereto. The present invention is
equally applicable to music playlists, video playlists, or the
like. FIG. 2 illustrates a flow chart for a process for creating an
active playlist having dynamic media item groups according to one
embodiment of the present invention. First, media items to be used
for an active playlist are identified (step 100). The media items
to be used for the active playlist may be, for example, a media
collection of a user, a subset of a media collection of a user,
media items available to a user from, for example, a streaming
media server, media items available to the user for download from a
media server, media items identified by one or more conventional
playlists, media items obtained from or identified by other users
such as media items recommended to the user from one or more other
users, or the like.
[0019] The media items to be used for the active playlist may be
identified by the user or may be identified programmatically. For
example, the user may select a subset of media items from his or
her media collection to be used for the active playlist. As another
example, the media items may be programmatically identified by
searching a user device of the user for all media items or media
items satisfying one or more criteria. Alternatively, the media
items to be used for the active playlist may be identified in some
other fashion. For instance, in one embodiment, the media items for
the active playlist may include media items recommended to the user
and, optionally, media items from the user's own media collection.
As an example, the media items for the active playlist may include
media items from the user's own media collection and media items
identified by recommendations received by the user in the manner
described in U.S. patent application Ser. No. 11/484,130, entitled
P2P NETWORK FOR PROVIDING REAL TIME MEDIA RECOMMENDATIONS, which
was filed on Jul. 11, 2006 and is hereby incorporated herein by
reference in its entirety.
[0020] Once the media items for the active playlist are identified,
the media items may optionally be sorted based on a primary
criterion to provide a sorted list of media items (step 102). Next,
metadata for a first media item from the sorted list of media
items, or alternatively the group of media items identified for the
active playlist, is obtained (step 104). The metadata generally
includes information describing the media item. For example, if the
media item is a song, the metadata may include a title of the song,
a name of an artist of the song, an album on which the song was
released, a genre of the song, a date of release of the song, a
rating of the song, a score assigned to the song based on user
preferences of the user, a date or time stamp indicating a date
and/or time at which the song was last played, or the like.
[0021] Next, based on the metadata, a determination is made as to
whether the media item matches an existing media item group (step
106). More specifically, one or more rules for creating media item
groups are provided. The one or more rules may be embedded rules,
user-defined rules, systematically determined rules, or the like.
The rules for creating media item groups are defined based on the
primary criterion and, optionally, one or more secondary criterion
such as, for example, genre, artist, album, year of release, decade
of release, or the like. The primary criterion may be, for example,
a score assigned to each of the media items for the active playlist
based on user preferences of the user, a rating assigned to each of
the media items for the active playlist by the user, a rating
assigned to each of the media items for the active playlist by
another user or a group of users, a time and/or date at which the
media item was last played by the user, or the like. Note, however,
that the primary criterion is not limited thereto.
[0022] In one embodiment, the primary criterion is a score assigned
to each of the media items for the active playlist based on user
preferences of the user. Further, as an example, the rules for
creating the media item groups may be that the media items in a
media item group have scores within a score differential, or range,
of five (5) points and that the media items in a media item group
must be from the same genre. Thus, for example, if the desired
score differential is five (5) points, the media item groups may be
created for media items having a score differential of five (5)
points and being from the same genre. Using this example, the
determination is made as to whether the media item matches an
existing media item group by determining whether the score assigned
to the media item is within five (5) points of a highest scored
media item in an existing media item group and is from the same
genre as other media items in that existing media item group.
[0023] If the media item does not match an existing media item
group or if no media item groups have been created (as would be the
case if the media item is the first media item processed), then a
new media item group is created and the media item is added to the
new media item group (step 108). If the media item does match an
existing media item group, then the media item is added to the
existing media item group (step 110).
[0024] At this point, whether the media item was added to a new
media item group or an existing media item group, a determination
is made as to whether the media item is the last item in the sorted
list, or alternatively the last media item in the media items
identified for the active playlist (step 112). If not, metadata for
a next media item is obtained (step 114). The process then returns
to step 106 and is repeated. Once the last media item is processed,
the resulting media item groups form what is referred to herein as
an underlying pool of media items for the active playlist. The
underlying pool of media items may be stored in any desired type
and number of data structures. However, in one embodiment, the
underlying pool of media items is stored as an underlying playlist
including the media item groups or, alternatively, a number of
underlying playlists where each underlying playlist corresponding
to one of the media item groups.
[0025] The active playlist is then generated using the underlying
pool of media items (step 116). More specifically, the active
playlist is divided into media item groups corresponding to the
media item groups in the underlying pool of media items. Each media
item group in the active playlist is populated with up to a
predetermined number of media items from the corresponding media
item group in the underlying pool of media items. As an example,
each media item group in the active playlist may be populated with
two (2) media items from the corresponding media item group in the
underlying pool of media items. Note that if a particular media
item group in the underlying pool of media items includes only one
media item, then the corresponding media item group in the active
playlist will be populated using that one media item. As a final
step, adjacent media item groups in the active playlist having the
same, or substantially similar, values for one or more secondary
criteria may optionally be identified and combined (step 118).
[0026] Note that while the discussion above discusses the
underlying pool of media items separately from the active playlist,
the underlying pool of media items and the active playlist may be
implemented as a single dynamic playlist or similar data structure.
For example, the underlying pool of media items may be implemented
as an underlying playlist arranged or divided into the media item
groups. The underlying playlist may then be dynamically controlled
to effectively provide the active playlist. More specifically, for
each media item group, the underlying playlist may be controlled
such that up to the predefined number of media items are presented
to the user for playback while the remaining media items in the
media item groups are hidden. The underlying playlist is thereafter
controlled based on user interactions to dynamically update the
media item groups for the active playlist in the manner described
below.
[0027] FIGS. 3 through 6 graphically illustrate the process of FIG.
2 according to one embodiment of the present invention. FIG. 3
illustrates an exemplary list 12 of media items, which in this
example are songs, to be used to dynamically populate an active
playlist according to one embodiment of the present invention. In
this example, the list 12 is sorted based on the primary criteria,
which in this example is score.
[0028] FIG. 4 illustrates an underlying pool of media items 14
generated by classifying the media items in the list 12 (FIG. 3)
into media item groups according to one embodiment of the present
invention. In this example, the media item groups were created
based on a score differential of five (5) points and using genre as
a secondary criterion. As such, a first media item group (Group 1)
includes nine (9) songs from the Rock genre having scores in the
range of 55-60, which is a score differential of five (5) points
relative to the score of the highest scored media item in the first
media item group (Group 1). A second media item group (Group 2)
includes seven (7) songs from the Gospel & Religious genre
having scores in the range of 55-60, which is a score differential
of five (5) points relative to the score of the highest scored
media item in the second media item group (Group 2). A third media
item group (Group 3) includes three (3) songs from the Rock genre
having scores in the range of 45-50, which is a score differential
of five (5) points relative to the score of the highest scored
media item in the third media item group (Group 3). Group scores
for each of the media item groups may be provided by, for example,
averaging the scores of the media items in the media item groups.
As an example, the group scores may be used to sort the media item
groups in the active playlist.
[0029] FIG. 5 illustrates an exemplary active playlist 16 populated
using the underlying pool of media items 14 of FIG. 4 according to
one embodiment of the present invention. As illustrated, the active
playlist 16 is arranged or divided into media item groups
corresponding to those in the underlying pool of media items 14.
For each media item group, the active playlist 16 is populated with
a predetermined number of media items from the underlying pool of
media items 14. In this example, each media item group of the
active playlist 16 is populated with two (2) media items from the
corresponding media item group of the underlying pool of media
items 14. As such, for the first media item group (Group 1), the
active playlist 16 is populated with the two highest scored media
items in the first media item group (Group 1) from the underlying
pool of media items 14. The second and third media item groups
(Group 2 and Group 3) of the active playlist 16 are populated in a
similar fashion. Also, in this example, for each of the media item
groups (Group 1 through Group 3), the active playlist 16 includes
information indicating the number of media items for that media
item group remaining in the underlying pool of media items 14 and
information related thereto such as, for example, total playback
time, average score, artist name, and album name.
[0030] FIG. 6 illustrates an active playlist 16' where the media
item groups in the underlying pool of media items 14 are defined by
a score differential, or range, of ten (10) rather than five (5).
As a result, the first media item group (Group 1) includes media
items from the Rock genre having scores in the range of 50-60, and
the second media item group (Group 2) includes media items from the
Gospel & Religious genre having scores in the range of 50-60.
For the first media item group (Group 1), the active playlist 16'
is populated with the two highest scored media items in the first
media item group (Group 1) from the underlying pool of media items
14. Likewise, for the second media item group (Group 2), the active
playlist 16' is populated with the two highest scored media items
in the second media item group (Group 2) from the underlying pool
of media items 14. Note that, in one embodiment, the rules defining
the media item groups are user configurable and may be changed at
any time. When such a change is made, the underlying pool of media
items 14 and the active playlist 16' are updated accordingly.
[0031] FIG. 7 is a flow chart illustrating an exemplary process for
adding new media items to be used in populating the active playlist
according to one embodiment of the present invention. First, one or
more new media items to be used for the active playlist are
identified (step 200). The new media items may be media items
identified by the user, new media items programmatically
identified, or the like. For example, if the media items to be used
for the active playlist include all media items in a user's media
collection, the new media items may be programmatically identified
when the user adds the new media items to his or her media
collection. As another example, if the media items to be used for
the active playlist are a subset of the user's media collection,
the new media items may be identified by the user.
[0032] Once the new media items for the active playlist are
identified, metadata for a first media item from the one or more
new media items is obtained (step 202). Next, based on the
metadata, a determination is made as to whether the media item
matches an existing media item group (step 204). If the media item
does not match an existing media item group, then a new media item
group is created in the underlying pool of media items for the
active playlist, and the media item is added to the new media item
group (step 206). If the media item does match an existing media
item group, then the media item is added to the existing media item
group in the underlying pool of media items for the active playlist
(step 208).
[0033] At this point, whether the media item was added to a new
media item group or an existing media item group, a determination
is made as to whether the media item is the last new media item
(step 210). If not, metadata for a next media item is obtained
(step 212). The process then returns to step 204 and is repeated.
Once the last new media item is processed, the active playlist is
updated based on the underlying pool of media items (step 214).
More specifically, if any new media item groups have been created,
the active playlist is updated to include the new media item
groups, and the new media item groups are populated from the
underlying pool of media items in the manner described above. In
addition, any new media items added to the existing media item
groups are reflected in the active playlist. As a final step,
adjacent media item groups in the active playlist having the same,
or substantially similar, values for one or more secondary criteria
may optionally be identified and combined (step 216).
[0034] Thus far, the discussion has focused on the creation of an
active playlist and the updating of the active playlist in response
to the addition of new media items for use in the active playlist.
FIG. 8 is a flow chart illustrating a process for dynamically
updating the active playlist based on user interactions according
to one embodiment of the present invention. First, user
interactions are monitored (step 300). The user interactions may
be, for example, consuming a media item in the active playlist,
consuming a threshold amount of a media item in the active
playlist, skipping over a media item in the active playlist, or the
like. Next, the active playlist is updated based on the user
interactions (step 302).
[0035] The manner in which the active playlist is updated depends
on the particular user interaction. A first type of user
interaction is consuming a media item, or a threshold amount of a
media item, in the active playlist. As used herein, consuming a
media item refers to listening to the media item if the media item
is a song or similar audio content, viewing the media item if the
media item is a video or similar visual or audio-visual content, or
the like. When a user has consumed a media item, or a threshold
amount of a media item, in the active playlist, the active playlist
is updated by adding or pulling an additional media item from the
corresponding media item group from the underlying pool of media
items into the active playlist. Once a media item is consumed, that
media item may or may not be removed from the active playlist. Once
the user has consumed all of the media items in a media item group
in the underlying pool of media items, playback may proceed to the
next media item group in the active playlist. Alternatively, the
media items for the media item group may be repeated. Note that if
pulling an additional media item for the media item group from the
underlying pool of media items into the active playlist is
triggered by consumption of a defined amount of a media item, that
amount may be system-defined or user-defined. For example, a
trigger may be provided such that pulling an additional media item
into the active playlist occurs after the user has consumed 30
seconds of a media item in a particular media item group.
[0036] In addition, if the user interactions indicate that the user
is expected to consume all of the media items in the underlying
pool of media items for a media item group, new media items for the
media item group may be identified and obtained from a local source
and/or a remote source. The rules for determining when to trigger
identifying and obtaining new media items for the media item groups
may be system-defined or user-defined. For example, an amount of
time may be defined such that if the user consumes media items in a
media item group for the defined amount of time, then identifying
and obtaining new media items for that media item group is
triggered. As another example, an amount of time may be defined
such that if the total playback time for the remaining media items
of a media item group in the underlying pool of media items is
equal to or less than the defined amount of time, then identifying
and obtaining new media items for the media item group may be
triggered.
[0037] The manner in which new media items for a media item group
are identified and obtained may vary depending on the source(s)
from which the new media items are to be obtained. For example, if
the media items used for the active playlist are only a subset of
the user's media collection, the user's media collection may be
searched for additional media items matching the media item group.
In addition or alternatively, new media items may be obtained from
a remote source. As an example, a query for media items matching
the desired media item group may be provided to a remote media
distribution service such as, for example, the Apple.RTM. iTunes
media store, RealNetwork's Rhapsody.RTM. media distribution
service, the YouTube video sharing website, or the like. In
response, the media distribution service may then identify media
items satisfying the query and enable download and, if necessary,
purchase of one or more media items matching the desired media item
group. Note that other types of remote sources of media content may
additionally or alternatively be queried. For example, a
Peer-to-Peer (P2P) network enabling sharing of media content may be
queried. Also note that the sources used to find new media items
may be system-defined or user-defined.
[0038] A second type of user interaction is skipping over one or
more media items in the active playlist. If the user skips over the
media items in a media item group of the active playlist, playback
proceeds to the next media item group. The user is not required to
skip through all of the media items in the underlying pool of media
times before proceeding to the next media item group in the active
playlist. Thus, for example, if two (2) media items are included in
the active playlist for a media item group, the user must only skip
through those two media items before proceeding to the next media
item group in the active playlist. Note, however, that if the user
consumes a media item in the active playlist for a threshold amount
of time triggering pulling of a new media item into the
corresponding media item group of the active playlist, the user may
also be required to also skip over this new media item in order to
skip to the next media item group in the active playlist.
[0039] A third type of user interaction is a user interaction
relative to one of the media item groups, or all of the media item
groups, in the active playlist. For example, the user may choose to
re-sort the media items in a media item group based on a criterion
such as title, artist name, album name, user rating, score, or the
like. As such, the media items in the underlying pool of media
items for the media item group are sorted as requested by the user.
The media item group in the active playlist is then updated based
on the sorted media items in the corresponding media item group of
the underlying pool of media items. In a similar fashion, the user
may request that the media items within all of the media item
groups in the active playlist be sorted in a particular manner
(e.g., title, artist name, album name, user rating, score, or the
like), in which case the media items for all of the media item
groups in the underlying pool of media items are sorted. The active
playlist is then updated accordingly.
[0040] FIGS. 9 through 11 illustrate the exemplary active playlist
16 of FIG. 5 as the active playlist 16 is updated in response to
user interactions according to one embodiment of the present
invention. FIG. 9 illustrates the active playlist 16 in an initial
state at some point in time after creation of the active playlist
16. If the user then listens to the first song, "Since You're
Gone," in the first media item group (Group 1), or a predefined
amount thereof, another media item for the first media item group
(Group 1) is pulled from the underlying pool of media items 14
(FIG. 4) into the first media item group (Group 1) of the active
playlist 16, as illustrated in FIG. 10. In this example, the media
item pulled into the first media item group (Group 1) of the active
playlist 16 is the song "Heartbeat City." Note that, in this
example, the song "Since You're Gone" remains in the active
playlist 16 after being consumed, or listened to, by the user.
However, after consumption by the user, the song "Since You're
Gone" may alternatively be removed from the active playlist 16.
This may be beneficial where it is desirable for the user to be
enabled to quickly skip to a previous media item group in the
active playlist 16 in a manner similar to that in which the user is
enabled to quickly skip to a next media item group in the active
playlist 16.
[0041] FIG. 11 illustrates the scenario where the user has consumed
or is about to consume all of the media items in the first media
item group (Group 1) from the underlying pool of media items 14
(FIG. 4). More specifically, in this example, the active playlist
16 provides an indication to the user that no more media items are
available for the first media item group (Group 1) beyond those
that are already in the active playlist 16. In this case, after
playback of the last media item in the first media item group
(Group 1), which in this example is the song "Tonight She Comes,"
playback may proceed to the second media item group (Group 2).
Alternatively, new media items may be identified and obtained from
a local or remote source, as described above. As another
alternative, playback of the media items for the first media item
group (Group 1) may be repeated. Note that whether playback
proceeds to the next media item group, new media items are
identified and obtained, or playback of the media items in current
media item group are repeated may be a user preference configured
by the user.
[0042] FIG. 12 illustrates an exemplary system for providing an
active playlist having dynamically updated media item groups
according to one embodiment of the present invention. In general,
the system is a user device 18 such as, for example, a personal
computer, a portable media player such as an Apple.RTM. iPod, or
any other user device having media playback capabilities. The user
device 18 includes a media player 20 and a local collection of
media items 22. The media player 20 may be implemented in software,
hardware, or a combination of software and hardware. In operation,
the media player 20 operates to provide playback of the local
collection of media items 22. Note that the media player 20 may
additionally or alternatively provide playback of streaming media
content from a streaming media server. In this embodiment, a
playlist creation and management function 24 is implemented within
the media player 20 and operates to create and manage one or more
active playlists having dynamic media item groups according to the
present invention. More specifically, as discussed above, the media
items in the local collection of media items 22, or some subset
thereof, are identified as media items for an active playlist. The
media items are classified into one or more media item groups to
provide an underlying pool of media items for the active playlist.
The active playlist is arranged or divided into media item groups
corresponding to those in the underlying pool of media items. The
media item groups of the active playlist are then populated from
the media items in the corresponding media item groups in the
underlying pool of media items. Thereafter, the media item groups
in the active playlist are dynamically updated, as described
above.
[0043] FIG. 13 is a block diagram of the user device 18 of FIG. 12
according to one embodiment of the present invention. In general,
the user device 18 includes a control system 26 having associated
memory 28. In this embodiment, the media player 20 including the
playlist creation and management function 24 is implemented in
software and stored in the memory 28. The user device 18 may also
include one or more digital storage devices 30 such as one or more
hard disk drives, one or more removable memory devices, or the
like. In one embodiment, the local collection of media items 22 is
stored in the one or more digital storage devices 30.
Alternatively, all or a portion of the local collection of media
items 22 may be stored in the memory 28. The user device 18 also
preferably includes one or more communication interfaces 32. The
one or more communication interfaces 32 may include, for example, a
Bluetooth local wireless interface, a Universal Serial Bus (USB)
interface, a FireWire interface, or the like, which may be
beneficial for connecting the user device 18 to an associated local
system. For example, if the user device 18 is a portable media
player, such a communication interface may be used to connect the
user device 18 to a personal computer or the like in order to, for
instance, obtain new media content. The one or more communication
interfaces 32 may also include, for example, an IEEE 802.11x
wireless interface, a wireless telecommunications interface, or the
like, which may be used to connect to remote devices or systems via
a network. This type of communication interface may be beneficial
where it is desirable for the user device 18 to obtain new media
items from a remote system such as, for example, a remote system
hosting a media distribution service. Lastly, the user device 18
includes a user interface 34, which includes components such as one
or more user input devices, a display, one or more speakers, or the
like.
[0044] Note that while FIGS. 12 and 13 discuss the present
invention as being implemented on a user device, the present
invention is not limited thereto. The playlist creation and
management function 24 for creating and managing one or more active
playlists having one or more dynamic media item groups may be
implemented on any type of system where playlists are desirable.
For example, the playlist creation and management function 24 may
alternatively be implemented on a central server providing
streaming playback of media items in a playlist to a user at a
remote user device. Numerous other types of systems in which the
playlist creation and management function 24 may be implemented
will be apparent to one of ordinary skill in the art upon reading
this disclosure and are to be considered within the scope of the
present invention.
[0045] Those skilled in the art will recognize improvements and
modifications to the preferred embodiments of the present
invention. All such improvements and modifications are considered
within the scope of the concepts disclosed herein and the claims
that follow.
* * * * *