PATENT DOCUMENT

Publication Number: US-11314378-B2
Application Number: US-201615202398-A
Country: US
Kind Code: B2

Title: Persistent group of media items for a media device

Abstract:
Improved techniques to utilize and manage a group of media items (or media assets) on a computing device are disclosed. The group of media items can be utilized and managed at a host computer for the host computer as well as a media device (e.g., media player) that can couple to the host computer. One popular example of a group of media items is know as a playlist, which can pertain to a group of audio tracks. One aspect pertains to providing a persistent media device playlist at a host computer. Another aspect pertains to imposing capacity limits to a playlist, such as a media device playlist. Still another aspect pertains to a graphical user interface that enables a user to trade-off storage capacity of a media device between media asset storage and data storage. Yet still another aspect pertains to a graphical user interface that assists a user with selecting media items to fill a group of media items.

Claims:
What is claimed is: 
     
       1. A method comprising:
 presenting, via a computing device, a media application interface; 
 presenting, in the media application interface, a media presentation region for concurrently presenting two or more media items, a first media item and a second media item, wherein the first media item and the second media item are associated with a media source; 
 presenting, in the media presentation region, a first graphical element associated with the first media item indicating that the first media item is stored locally and not presenting the first graphical element in accordance with the second media item being stored remotely; 
 presenting, in the media application interface, one or more selectable graphical control items for managing local storage of media items selected from the media presentation region; 
 receiving user input selecting a graphical control item from the one or more selectable graphical control items; and 
 based on the user input, presenting the first graphical element associated with the second media item indicating that the second media item is stored locally. 
 
     
     
       2. The method of  claim 1 , further comprising:
 based on a first triggering event, limiting media items presented in the media presentation region to locally stored media items only; and 
 based on a second triggering event, enabling media items presented in the media presentation region to include media items that are not locally stored. 
 
     
     
       3. The method of  claim 1 , wherein the first graphical elements comprises an indicator displayed proximate to a respective media item presented in the media application interface to visually indicate whether the respective media item is stored on the computing device. 
     
     
       4. The method of  claim 1 , wherein the one or more media items presented on the media presentation region comprise at least one locally stored media item and at least one media item stored remotely. 
     
     
       5. The method of  claim 1 , further comprising:
 presenting, in the media application interface, an indication of an amount of available storage capacity for the computing device. 
 
     
     
       6. The method of  claim 1 , further comprising:
 presenting, in the media application interface, a selectable graphical control item for converting a bit rate of a media item to be stored locally. 
 
     
     
       7. A system comprising:
 one or more processors; and 
 at least one non-transitory computer-readable storage medium having stored therein instructions which, when executed by the one or more processors, cause the system to:
 present a media application interface; 
 present, in the media application interface, a media presentation region for concurrently presenting two or more media items, a first media item and a second media item, wherein the first media item and the second media item are associated with a media source; 
 present, in the media presentation region, a first graphical element associated with the first media item indicating that the first media item is stored locally and not presenting the first graphical element in accordance with the second media item being stored remotely; 
 present, in the media application interface, one or more selectable graphical control items for managing local storage of media items selected from the media presentation region; 
 receive user input selecting a graphical control item from the one or more selectable graphical control items; and 
 based on the user input, presenting the first graphical element associated with the second media item indicating that the second media item is stored locally. 
 
 
     
     
       8. The system of  claim 7 , wherein the at least one computer-readable storage medium stores additional instructions which, when executed by the one or more processors, cause the system to:
 based on a first triggering event, limit media items presented in the media presentation region to locally stored media items only; and 
 based on a second triggering event, enable media items presented in the media presentation region to include media items that are not locally stored. 
 
     
     
       9. The system of  claim 7 , wherein the first graphical elements comprises an indicator displayed proximate to a respective media item presented in the media application interface to visually indicate whether the respective media item is stored locally. 
     
     
       10. The system of  claim 7 , wherein the two or more media items presented on the media presentation region comprise at least one locally stored media item and at least one media item stored remotely. 
     
     
       11. The system of  claim 7 , wherein the at least one computer-readable storage medium stores additional instructions which, when executed by the one or more processors, cause the system to present, in the media application interface, an indication of an amount of available storage capacity for the computing device. 
     
     
       12. The system of  claim 7 , wherein the at least one computer-readable storage medium stores additional instructions which, when executed by the one or more processors, cause the system to present, in the media application interface, a selectable graphical control item for converting a bit rate of a media item to be stored locally. 
     
     
       13. A non-transitory computer-readable storage medium comprising:
 instructions stored therein which, when executed by one or more processors of a computing device, cause the one or more processors to:
 present a media application interface; 
 present, in the media application interface, a media presentation region for concurrently presenting two or more media items, a first media item and a second media item, wherein the first media item and the second media item are associated with a media source; 
 present, in the media presentation region, a first graphical element associated with the first media item indicating that the first media item is stored locally and not presenting the first graphical element in accordance with the second media item being stored remotely; 
 present, in the media application interface, one or more selectable graphical control items for managing local storage of media items selected from the media presentation region; 
 receive user input selecting a graphical control item from the one or more selectable graphical control items; and 
 based on the user input, presenting the first graphical element associated with the second media item indicating that the second media item is stored locally. 
 
 
     
     
       14. The non-transitory computer-readable storage medium of  claim 13 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to:
 based on a first triggering event, limit media items presented in the media presentation region to locally stored media items; and 
 based on a second triggering event, enable media items presented in the media presentation region to include media items that are not locally stored. 
 
     
     
       15. The non-transitory computer-readable storage medium of  claim 13 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to present, in the media application interface, a selectable graphical control item for converting a bit rate of a media item to be stored locally. 
     
     
       16. The non-transitory computer-readable storage medium of  claim 13 , wherein the first graphical elements comprises an indicator displayed proximate to a respective media item presented in the media application interface to visually indicate whether the respective media item is stored on the computing device.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a Continuation of U.S. application Ser. No. 11/097,034, filed Apr. 1, 2005, and entitled “PERSISTENT GROUP OF MEDIA ITEMS FOR A MEDIA DEVICE,” which in turn claims priority to U.S. Provisional Application No. 60/642,334, filed Jan. 7, 2005, and entitled “MEDIA MANAGEMENT FOR GROUPS OF MEDIA ITEMS,” which is hereby incorporated herein by reference. 
     This application is related to: (i) U.S. application Ser. No. 11/097,591, filed Apr. 1, 2005, and entitled “MEDIA MANAGEMENT FOR GROUPS OF MEDIA ITEMS,” which is hereby incorporated herein by reference; (ii) U.S. application Ser. No. 10/973,925, filed Oct. 25, 2004, and entitled “MULTIPLE MEDIA TYPE SYNCHRONIZATION BETWEEN HOST COMPUTER AND MEDIA DEVICE,” which is hereby incorporated herein by reference; (iii) U.S. patent application Ser. No. 10/833,879, filed Apr. 27, 2004, and entitled “METHOD AND SYSTEM FOR SHARING PLAYLISTS,” which is hereby incorporated by reference herein; (iv) U.S. patent application Ser. No. 10/833,399, filed Apr. 27, 2004, and entitled “METHOD AND SYSTEM FOR CONFIGURABLE AUTOMATIC MEDIA SELECTION,” which is hereby incorporated by reference herein; (v) U.S. patent application Ser. No. 10/277,418, filed Oct. 21, 2002, and entitled “INTELLIGENT INTERACTION BETWEEN MEDIA PLAYER AND HOST COMPUTER,” which is hereby incorporate herein by reference; (vi) U.S. patent application Ser. No. 10/198,639, filed July 2002, and entitled “METHOD AND SYSTEM FOR UPDATING PLAYLISTS,” which is hereby incorporated by reference herein; and (vii) U.S. patent application Ser. No. 10/188,069, filed Apr. 5, 2002, and entitled “INTELLIGENT SYNCHRONIZATION OF MEDIA PLAYER WITH HOST COMPUTER,” which is hereby incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The present invention relates to media devices and, more particularly, to management of media on media devices. 
     Description of the Related Art 
     A media player stores media assets, such as audio tracks or photos, that can be played or displayed on the media player. One example of a media player is the iPod® media player, which is available from Apple Computer, Inc. of Cupertino, Calif. Often, a media player acquires its media assets from a host computer that serves to enable a user to manage media assets. As an example, the host computer can execute a media management application to manage media assets. One example of a media management application is iTunes®, version 4.2, produced by Apple Computer, Inc. 
     Media assets can be moved between the host computer and the media player through use of a manual drag and drop operation, or through an automatic synchronization once a bus connection over a peripheral cable connects the media player to the host computer. Additional details on automatic synchronization are provided in U.S. Patent Publication No.: 2003/0167318 A1, which is hereby incorporated herein by reference. 
     In managing media assets, a user can create playlists for audio tracks. These playlists can be created at the host computer. Media assets within the playlists can then be copied to the media player. Often, the amount of media assets at the host computer exceeds the storage capacity of the media player. In such case, the user of the host computer can select a subset of the media assets at the host computer to be copied to the media player. For example, a user might select certain playlists to be copied to the media player when synchronized. 
     Conventionally, a media player is considered a media source for a media management application so long as the media player is connected to the host computer. That is, once the media management application detects the media player, a visual representation of the media player can be displayed. However, once the media player is disconnected, the visual representation of the media player is removed. Hence, media assets, namely, playlists of media assets, on the media player can be managed at the host computer only while the media player is connected to its host computer. In particular, if the media player is not connected to the host computer, then the media player is not a media source and, therefore, its media assets cannot be managed at the host computer. This can be a disadvantage for users that want to manage the media assets provided on the media player from the host computer. 
     Thus, there is a need for improved techniques to facilitate management and usage of media assets for media devices. 
     SUMMARY OF THE INVENTION 
     Broadly speaking, the invention pertains to improved techniques to utilize and manage a group of media items (or media assets) on a computing device. The group of media items can be utilized and managed at a host computer for the host computer as well as a media device (e.g., media player) that can couple to the host computer. One popular example of a group of media items is known as a playlist, which can pertain to a group of audio tracks. 
     One aspect of the invention pertains to providing a persistent media device playlist at a host computer. The persistent media device playlist represents a playlist dedicated to a media device that can couple to the host computer. Another aspect of the invention pertains to imposing capacity limits to a playlist, such as a media device playlist. Still another aspect of the invention pertains to a graphical user interface that enables a user to trade-off storage capacity of a media device between media asset storage and non-media asset storage. Yet still another aspect of the invention pertains to a graphical user interface that assists a user with selecting media items to fill a group of media items. 
     The invention can be implemented in numerous ways, including as a method, system, device, apparatus (including graphical user interface), or computer readable medium. Several embodiments of the invention are discussed below. 
     As a method of managing a media device playlist for use on a host computer and a media device, one embodiment of the invention includes at least the acts of: displaying a media device playlist indicator for the media device playlist on a display screen of the host computer; displaying a list of audio tracks that are within the media device playlist on the display screen when the media device playlist indicator is selected, the audio tracks being stored locally on the host computer; determining whether the media device is connected to the host computer; permitting a user of the host computer to add or remove audio tracks to or from the media device playlist, regardless of whether the media device is connected to the host computer; and updating audio tracks stored on the media device once the user has added or removed audio tracks to or from the media device playlist, provided that the media device is connected to the host computer. 
     As a method of managing a media device playlist for use on a host computer and a media device, another embodiment of the invention includes at least the acts of: displaying a media device playlist indicator for the media device playlist on a display screen of the host computer; displaying a representation of audio tracks that are within the media device playlist on the display screen, all of the audio tracks being stored locally on the host computer and at least a portion of the audio tracks being stored on the media device; and managing the audio tracks within the media device playlist by adding or removing audio tracks to or from the media device playlist. 
     As a computer readable medium including at least computer program code for managing a media device media grouping for use on a host computer and a media device, one embodiment of the invention includes at least: computer program code for displaying a media device media grouping indicator for the media device media grouping on a display screen of the host computer; computer program code for displaying a list of media items that are within the media device media grouping on the display screen when the media device media grouping indicator is selected, the media items being stored locally on the host computer; computer program code for determining whether the media device is connected to the host computer; computer program code for permitting a user of the host computer to add or remove media items to or from the media device media grouping, regardless of whether the media device is connected to the host computer; and computer program code for updating media items stored on the media device once the user has added or removed media items to or from the media device media grouping, provided that the media device is connected to the host computer. 
     As a computer readable medium including at least computer program code for managing a media item grouping for use on a host computer and a media device, another embodiment of the invention includes at least: computer program code for displaying a media item grouping indicator for the media item grouping on a display screen of the host computer; computer program code for displaying a representation of media items that are within the media item grouping on the display screen, all of the media items being stored locally on the host computer and at least a portion of the media items being stored on the media device; and computer program code for managing the media items within the media item grouping by adding or removing media items to or from the media item grouping, wherein the media item grouping is dedicated to the media device. 
     Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which: 
         FIG. 1  is a flow diagram of a host-based media source management process according to one embodiment of the invention. 
         FIG. 2  is a flow diagram of a playlist management process according to one embodiment of the invention. 
         FIG. 3  is a flow diagram of a status indication process according to one embodiment of the invention. 
         FIG. 4  is a flow diagram of an update process according to one embodiment of the invention. 
         FIG. 5  is a screen shot of a media management application window according to one embodiment of the invention. 
         FIG. 6  is a screen shot of a preference window for a media management application according to one embodiment of the invention. 
         FIG. 7  if a flow diagram of a group fill process according to one embodiment of the invention. 
         FIGS. 8A and 8B  are flow diagrams of a playlist fill process according to one embodiment of the invention. 
         FIG. 9  is a block diagram of a media management system according to one embodiment of the invention. 
         FIG. 10  is a block diagram of a media player according to one embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention pertains to improved techniques to utilize and manage a group of media items (or media assets) on a computing device. The group of media items can be utilized and managed at a host computer for the host computer as well as a media device (e.g., media player) that can couple to the host computer. One popular example of a group of media items is known as a playlist, which can pertain to a group of audio tracks. 
     One aspect of the invention pertains to providing a persistent media device playlist at a host computer. The persistent media device playlist represents a playlist dedicated to a media device that can couple to the host computer. Another aspect of the invention pertains to imposing capacity limits to a playlist, such as a media device playlist. Still another aspect of the invention pertains to a graphical user interface that enables a user to trade-off storage capacity of a media device between media asset storage and non-media asset storage. Yet still another aspect of the invention pertains to a graphical user interface that assists a user with selecting media items to fill a group of media items. 
     Embodiments of the invention are discussed below with reference to  FIGS. 1-10 . However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments. 
       FIG. 1  is a flow diagram of a host-based media source management process  100  according to one embodiment of the invention. Typically, the host-based media source management process  100  is performed by a host computer for the benefit of not only the host computer but also a media device. Often, the host-based media source management process  100  operates following a request by a user of the host computer. 
     The host-based media source management process  100  initially displays  102  a media source indicator for a media source that is associated with a media device. Then, a representation of media items that are within the media source are displayed  104 . The media items within the media source can then be managed  106  by adding or removing media items to or from the media source. Following the block  106 , the host-based media source management process  100  is complete and ends. 
     In one embodiment, the media source pertains to a media device playlist. A media device playlist is a playlist that is dedicated to a particular media device. That is, the media items present on the media device should closely correspond to the media items in the media device playlist. Typically, a host computer can manage the media device playlist for both the host computer and the media device. The media items can pertain to one or more different types of media content. In one embodiment, the media items are audio tracks. In another embodiment, the media items are images (e.g., photos). However, in other embodiments, the media items can be any combination of audio, graphical or video content. 
     A playlist identifies particular media items that are to be played in a sequence. In general, a playlist can be considered an ordered list of media items. Internally, according to one embodiment, the playlist can be represented in a media database as a data structure that points to files of the appropriate media items residing on the storage device within the media device. Hence, for a given playlist, the pointers to the files of the appropriate media items on the media device will differ from the pointers to the files for the same media items on the host computer, thus the need to update the pointers if a particular playlist is moved between the host computer and the media device. 
       FIG. 2  is a flow diagram of a playlist management process  200  according to one embodiment of the invention. The playlist management process  200  is, for example, performed by a host computer, such as a host computer performing a media management application. The playlist management process  200  serves to manage media not only on the host computer but also on a portable media device that can connect to the host computer. 
     The playlist management process  200  initially displays  202  a media device playlist indicator. A decision  204  then determines whether the playlist indicator has been selected. Here, a user of the host computer can cause the playlist indicator to be selected. When the decision  204  determines that the playlist indicator has not yet been selected, then other processing  206  can optionally be performed. Following the other processing  206 , if any, the playlist management process  200  returns to repeat the decision  204  and subsequent blocks. 
     On the other hand, when the decision  204  determines that the playlist indicator has been selected, then a list of audio tracks that are within the media device playlist are displayed  208 . After the list of audio tracks is displayed  208 , the user of the host computer can interact with the list of audio tracks to either add or delete audio tracks from the media device playlist. In this regard, a decision  210  determines whether user interaction has requested to add or delete audio tracks to or from the media device playlist. When the decision  210  determines that no such user interaction has been requested, other processing  212  can optionally be performed. Following the other processing  212 , if any, the playlist management process  200  returns to repeat the decision  210  and subsequent blocks. Once the decision  210  determines that user interaction has requested to add or delete audio tracks with respect to the media device playlist, then the media device playlist is updated  214 . Then, the updated list of audio tracks that are within the media device playlist are displayed  216 . 
     Next, a decision  218  then determines whether an associated media device is connected to the host computer. When the decision  218  determines that the media device is connected to the host computer, then audio tracks to be stored on the media device are updated  220 . In other words, the additions and/or deletions of audio tracks can be performed to affect update of the audio tracks stored at the media device. On the other hand, when the decision  218  determines that the associated media device is not connected to the host computer, update of audio tracks to be stored on the media device is deferred  222 . In other words, if the associated media device is “off-line” with respect to the host computer, the update to the audio tracks stored on the media device is deferred until a later point in time when the media device is “on-line” with respect to the host computer. For example, the update of the audio tracks stored on the media device can be deferred  222  until the media device is next connected to the host computer. Following the blocks  220  and  222 , a decision  224  determines whether the media device playlist is unselected. When the media device playlist is unselected, the playlist management process  200  for the media device playlist ends. On the other hand, when the decision  224  determines that the media device playlist remains selected, the playlist management process  200  can return to repeat the decision  210  and subsequent operations so that management of the media device playlist can continue. 
       FIG. 3  is a flow diagram of a status indication process  300  according to one embodiment of the invention. The status indication processed  300  represents additional processing that can be performed to provide status indication information for each of the audio tracks being listed in a media device playlist. The status indication process  300  is, for example, performed at block  208  of the playlist management process  200  illustrated in  FIG. 2 . 
     The status indication process  300  initially obtains  302  the audio tracks that are within the media device playlist. Then, the status indication process  300  determines  304  which of the audio tracks are present on the media device. The audio tracks can then be displayed  306  in a list on a display screen of the host computer. Additionally, an indicator for each of the audio tracks can be displayed  308  to indicate its presence on the media device. Following the block  308 , the status indication processed  300  ends. 
     Often, all the audio tracks in the list being displayed  306  are also present in the media device. However, in various circumstances, one or more audio tracks are not present on the media device. As an example, if the media were disconnected before it could receive be updated with additional audio tracks, then the indicator displayed  308  at the host computer would indicate that such additional audio tracks are not present on the media device. As another example, if one audio track were added to the media device playlist at the host computer, but such audio track was not permitted to be copied elsewhere, then the indicator displayed  308  at the host computer would again indicate that such audio track was not present on the media device. 
       FIG. 4  is a flow diagram of an update process  400  according to one embodiment of the invention. The update process  400  is performed by a host computer which serves to update the media device playlist stored on media device. The update process  400  represents one embodiment for the update  214  of the media device playlist discussed above with reference to  FIG. 2 . 
     The update process  400  begins with a decision  402  that determines whether one or more audio tracks are to be deleted from the media device playlist. When the decision  402  determines that one or more audio tracks are to be deleted from the media device playlist, then the media device playlist is updated  404  by deleting the one or more audio tracks. Following the block  404 , or directly following the decision  402  when the decision  402  to determines that one or more audio tracks are not to be deleted, a decision  406  determines whether one or more audio tracks are to be added to the media device playlist. When the decision  406  determines that one or more audio tracks are to be added to the media device playlist, then a capacity limit for the media device playlist is determined  408 . The capacity limit for the media device playlist can be established in a variety of different ways. In one embodiment, the capacity limit for the media device playlist is determined by the storage capacity of the media device. In another embodiment, the capacity limit for the media device playlist can be set by a user of the host computer, such as via a media management application operating on the host computer. 
     In any case, after the capacity limit for the media device playlist has been determined  408 , a decision  410  determines whether the capacity limit would be exceeded if the one or more audio tracks are added to the media device playlist. When the decision  410  determines that the capacity limit would not be exceeded if the one or more audio tracks were added to the media device playlist, then the media device playlist can be updated  412  by adding the one or more audio tracks. Alternatively, when the decision  410  determines that the capacity limit for the media device playlist would be exceeded if the one or more audio tracks were added to the media device playlist, then the user can be informed  414  that insufficient space prevented adding of the one or more audio tracks to the media device playlist. Following the blocks  412  and  414 , as well as following the decision  406  when no audio tracks are to be added, the update process  400  ends. 
     In another embodiment, the update process  400  can operate differently when the decision  410  determines that the capacity limit for the media device playlist would be exceeded if the one or more audio tracks were added to the media device playlist. For example, instead of merely informing  414  the user that insufficient space prevented adding of the one or more audio tracks to the media device playlist, the update process  400  could permit the additions at the host computer following the informing  414  which would provide a warning. However, in such an embodiment, the subsequent update  220  of the media device would not operate to copy excess media items to the media device. Status indicators, such as described above with reference to  FIG. 3 , could be used to designate the excess media items at the host computer&#39;s version of the media device playlist but not on the media device itself. 
       FIG. 5  is a screen shot of a media management application window  500  according to one embodiment of the invention. The media management application window  500  is, for example, produced by a media management application operating on a host computer. 
     The media management application window  500  includes a source region  502  and a track listing area  504 . The source region  502 , among other things, depicts a media device indicator  506 . The media device indicator  506  corresponds to a media device playlist. In this example, the media device indicator  506  is a graphic icon. Additionally, the media device indicator  506  can also include a text description. In this example, the media device indicator  506  also provides the text “iPod”. The track listing area  504  includes a list of audio tracks  508  together with associated status indicators  510  and  511 . The list of audio tracks  508  are those audio tracks associated with the media device playlist. As shown in  FIG. 5 , each of the audio tracks within the list of audio tracks  508  include a corresponding one of the status indicators  510 . In this example, the status indicators  510  are all shown being “checked,” thus indicating that the associated audio tracks are to be played when playing through the audio tracks within the list of audio tracks  508 . Alternatively, with the status indicator  510  “unchecked” the associated audio track is skipped (i.e., not played) played when playing through the audio tracks within the list of audio tracks  508 . Further, each of the audio tracks within the list of audio tracks  508  can also include a corresponding one of the status indicators  511 . In this example, the status indicator  511  is being display adjacent to only the audio tracks  9 ,  10  and  11  of the list of audio tracks  508 . The status indicator  511  in this example indicates that the corresponding audio track has not yet been copied to the associated media device. Typically, the media management application will copy all of the audio tracks within the list of audio tracks  508  to the media device once the media device connects to the host computer. However, in the event that certain ones of the audio tracks within the list of audio tracks  508  are not currently present on the media device, the status indicator  511  associated with the certain ones of the audio tracks would be displayed. 
     The track listing area  504  also presents certain information pertaining to each of the audio tracks. As shown in  FIG. 5 , the certain information can pertain to song name  514 , duration of time of the audio track  514 , artist name  516 , and album name  518 . Additionally, the track listing area  504  also includes “go to” links  520  and  522  for each of the audio tracks. Each of the “go to” links  520  direct the user to an album page for an album including the associated audio track (song). Each of the “go to” links  522  directs the user to an artist page associated with the artist identified by the artist name  516 . As shown in  FIG. 5 , the “go to” links can be implemented as small buttons with arrow symbols therein. 
     Furthermore, as discussed below, the media management application window  500  further includes a fill control region  540 . The fill control region  540  includes an Autofill button  542  that can be selected by a user. Additionally, the fill control region  540  provides graphical user interface control items that can be selected or manipulated by the user to affect the nature of an autofill operation once the Autofill button  542  is pressed. Namely, the fill control region  540  includes a source selector  544  so that a source of media from which the autofill operation is to be performed can be selected. In addition, the fill control region  540  includes selectors  546 - 550  that enable the user to select certain features. For example, the selector  546  allows a user to determine whether existing songs are to be replaced when autofilling the media device playlist. The selector  548  determines whether songs are to be randomly chosen when performing the autofill operation. The selector  550  determines whether higher-rated songs (e.g., user ratings) are to be chosen when performing the autofill operation. Still further, the fill control region  540  can display an indication  552  of an amount of available storage capacity for the media device. 
     In general, the autofill region  540  assists a user in providing criteria for media selection when autofilling. Although the fill control region  540  includes the selectors  548  and  550 , different or additional selectors or other types of controls can be utilized. These additional controls can also be used to specify criteria for selecting audio tracks (i.e., songs) when autofilling the media device playlist. Some examples of these additional selectors or controls are associated with criteria such as: artist, album, composer, bit rate, date added (e.g., recently added), genre, play count, name, year, etc. A user can also define the rules or conditions for determining audio tracks to be selected when autofilling. The rules or conditions can include rule components, such as: contains, does not contain, is, is not, starts with, ends with, in the range, etc. Besides criteria controls and rules, importance selectors (e.g., sliders) or other controls permit a user to further control how the audio tracks are selected when autofilling. For example, a criteria selection based on user ratings as well as an importance value from an importance selector (e.g., slider) can be set to influence which audio tracks are to be selected from a source of media. However, the particular order in which such audio tracks are acquired can still be is partially randomly determined or can be determined based on the criteria (date added) or rules. 
       FIG. 6  is a screen shot of a preference window  602  for a media management application according to one embodiment of the invention. In this embodiment, the media management application is able to set preferences that determine how a media device operates to store data. Namely, in this example, the media device is known as the iPod® media player, which is available from Apple Computer, Inc. Here, the preference window  602  includes a selector  604  that enables the user to determine whether the media device is permitted to be used as a portable disk drive for data storage. Here, the data storage when being used as a portable storage disk would be distinct from storage of media content, such as media content of a media device playlist. 
     The preference window  602  also includes a graphical user interface control  606  that assists the user in specifying how much of the available storage capacity of the media device should be used for data as well as how much of the storage capacity should be used for media items, such as audio tracks or songs. In one embodiment, the graphical user interface control  606  is a slider such as shown in  FIG. 6 . The slider shown in  FIG. 6  can be manipulated by the user to trade-off the number of media items (e.g., 27 songs) that can be stored to the media device with the amount of other data (e.g., 151 MB) that can be stored. As a slider reference  608  is manipulated by the user along a slider bar  610 , the number of songs and the amount of data change. For example, if the user were to move the slider reference  608  to the left as shown in  FIG. 6 , the number of songs depicted would increase to a value greater than 27, while the amount of other data would decrease below 151 MB. For ease of computation, in one embodiment, each song can be considered 1 MB or some other predetermined representative size. Stated differently, the slider shown in  FIG. 6  can be manipulated by the user to trade-off the amount of media item storage available on the media device with the amount of non-media item storage available on the media device. 
       FIG. 7  if a flow diagram of a group fill process  700  according to one embodiment of the invention. The group fill processed  700  is, for example, performed by a host computer that operates a media management application that is able to allow users to group media items. 
     The group fill process  700  initially displays  702  a group of media items. Next, a decision  704  determines whether a fill request has been received. When the decision  704  determines that a fill request has not been received, then other processing  706  can be optionally performed. In any case, the group fill process  700  returns to repeat the decision  704  to await a fill request. 
     Once the decision  704  determines that a fill request has been received, a capacity limit for the group is obtained  708 . The capacity limit for the group can be stored on the host computer in one embodiment of the invention. In another embodiment, the capacity limit can be determined at the host computer. In still another embodiment, the capacity limit for the group can be determined based on information provided by a media device coupled to the host computer. In any event, after the capacity limit for the group has been obtained  708 , the group fill process  700  operates to automatically fill  710  the group to the capacity limit with additional media items. At this point, the group of media items is deemed full of media items. It should be understood that “filling” the group of media items or consuming the capacity limit does not require that there be no remaining free capacity. For example, in one implementation, the automatic fill  710  can fill the group with as many complete media items as it can hold. In any case, following the automatic fill  710 , the group can be re-displayed  712 . Following the re-display  712  of the group, the group fill process  700  is complete. Although the group fill process  700  could end following the re-display  712  of the group, the group fill process  700  can also return to repeat the decision  704  and subsequent operations so that the group fill process can again performed (with or without any intermediate other processing). 
     One example of a group media items is a playlist. The media items within the playlist are, for example, audio tracks. 
       FIGS. 8A and 8B  are flow diagrams of a playlist fill process  800  according to one embodiment of the invention. The playlist fill process  800  initially displays  802  a playlist having initial audio tracks. Next, a decision  804  determines whether a fill request has been received. Here, the fill request is typically from a user of a host computer that operates the playlist fill process  800 . When the decision  804  determines that a fill request has not yet been received, other processing  806  can optionally be performed. Following the other processing  806 , if any, the playlist fill process  800  returns to repeat the decision  804  and subsequent blocks. 
     Once the decision  804  determines that a fill request has been received, a decision  808  determines whether the initial audio tracks of the playlist are to be replaced. When the decision  808  determines that the initial audio tracks are to be replaced, the initial audio tracks are deleted  810  from the playlist. Alternatively, when the decision  808  determines that the initial audio tracks are not to be replaced, then the block  810  is bypassed. 
     Following the block  810 , or its being bypassed, a source selection is obtained  812 . The source selection represents a source for additional media items that can be added to the playlist. In addition, selection criteria preferences can be obtained  814 . In one embodiment, the selection criteria preferences are preferences, typically set by the user, that specify criteria to be utilized in the selection of the additional media items to fill the playlist. Still further, a capacity limit for the playlist can be obtained  816 . As noted above, the capacity limit can be influenced by user settings and/or media device capacities. 
     Next, an amount of free capacity for the playlist is determined  818 . In one embodiment, the free capacity for the playlist represents in the difference between the current capacity for the playlist and the capacity limit for the playlist. Once the amount of free capacity has been determined  818 , additional audio tracks to fill the free capacity of the playlist are determined  820  based on the source selection and the selection criteria preferences. Then, the additional audio tracks that have been determined  820  are added  822  to the playlist. Finally, the playlist can be re-displayed  824 . Once re-displayed, the playlist is illustrated with a full complement of audio tracks. 
     Following the block  824 , the playlist fill process  800  is complete and ends. However, it should be realized that the playlist fill process  800  can be repeated, if desired, so as to obtain different selections of audio tracks within the playlist, provided the source selection has an adequate quantity of audio tracks to be chosen from and provided at least some of the initial audio tracks are being replaced. 
     In another embodiment, the replacement (i.e., deletion  810 ) of initial tracks can be limited to those of the initial audio tracks that have been played since last updated with a host computer. In still another embodiment, the user of the host computer can manually delete one or more of the initial audio tracks from the playlist. 
       FIG. 9  is a block diagram of a media management system  900  according to one embodiment of the invention. The media management system  900  includes a host computer  902  and a media player  904 . The host computer  902  is typically a personal computer. The host computer, among other conventional components, includes a management module  906  which is a software module. The management module  906  provides for centralized management of media items (and/or playlists) not only on the host computer  902  but also on the media player  904 . More particularly, the management module  906  manages those media items stored in a media store  908  associated with the host computer  902 . The management module  906  also interacts with a media database  910  to store media information associated with the media items stored in the media store  908 . 
     The media information pertains to characteristics or attributes of the media items. For example, in the case of audio or audiovisual media, the media information can include one or more of: title, album, track, artist, composer and genre. These types of media information are specific to particular media items. In addition, the media information can pertain to quality characteristics of the media items. Examples of quality characteristics of media items can include one or more of: bit rate, sample rate, equalizer setting, volume adjustment, start/stop and total time. 
     Still further, the host computer  902  includes a play module  912 . The play module  912  is a software module that can be utilized to play certain media items stored in the media store  908 . The play module  912  can also display (on a display screen) or otherwise utilize media information from the media database  910 . Typically, the media information of interest corresponds to the media items to be played by the play module  912 . 
     The host computer  902  also includes a communication module  914  that couples to a corresponding communication module  916  within the media player  904 . A connection or link  918  removeably couples the communication modules  914  and  916 . In one embodiment, the connection or link  918  is a cable that provides a data bus, such as a FIREWIRE™ bus or USB bus, which is well known in the art. In another embodiment, the connection or link  918  is a wireless channel or connection through a wireless network. Hence, depending on implementation, the communication modules  914  and  916  may communicate in a wired or wireless manner. 
     The media player  904  also includes a media store  920  that stores media items within the media player  904 . Optionally, the media store  920  can also store data, i.e., non-media item storage. The media items being stored to the media store  920  are typically received over the connection or link  918  from the host computer  902 . More particularly, the management module  906  sends all or certain of those media items residing on the media store  908  over the connection or link  918  to the media store  920  within the media player  904 . Additionally, the corresponding media information for the media items that is also delivered to the media player  904  from the host computer  902  can be stored in a media database  922 . In this regard, certain media information from the media database  910  within the host computer  902  can be sent to the media database  922  within the media player  904  over the connection or link  918 . Still further, playlists identifying certain of the media items can also be sent by the management module  906  over the connection or link  918  to the media store  920  or the media database  922  within the media player  904 . 
     Furthermore, the media player  904  includes a play module  924  that couples to the media store  920  and the media database  922 . The play module  924  is a software module that can be utilized to play certain media items stored in the media store  920 . The play module  924  can also display (on a display screen) or otherwise utilize media information from the media database  922 . Typically, the media information of interest corresponds to the media items to be played by the play module  924 . 
     Hence, in one embodiment, the media player  904  has limited or no capability to manage media items on the media player  904 . However, the management module  906  within the host computer  902  can indirectly manage the media items residing on the media player  904 . For example, to “add” a media item to the media player  904 , the management module  906  serves to identify the media item to be added to the media player  904  from the media store  908  and then causes the identified media item to be delivered to the media player  904 . As another example, to “delete” a media item from the media player  904 , the management module  906  serves to identify the media item to be deleted from the media store  908  and then causes the identified media item to be deleted from the media player  904 . As still another example, if changes (i.e., alterations) to characteristics of a media item were made at the host computer  902  using the management module  906 , then such characteristics can also be carried over to the corresponding media item on the media player  904 . In one implementation, the additions, deletions and/or changes occur in a batch-like process during synchronization of the media items on the media player  904  with the media items on the host computer  902 . 
     In another embodiment, the media player  904  has limited or no capability to manage playlists on the media player  904 . However, the management module  906  within the host computer  902  through management of the playlists residing on the host computer can indirectly manage the playlists residing on the media player  904 . In this regard, additions, deletions or changes to playlists can be performed on the host computer  902  and then by carried over to the media player  904  when delivered thereto. 
     As previously noted, synchronization is a form of media management. The ability to automatically initiate synchronization was also previously discussed above and in the related application noted above. Still further, however, the synchronization between devices can be restricted so as to prevent automatic synchronization when the host computer and media player do not recognize one another. 
     According to one embodiment, when a media player is first connected to a host computer (or even more generally when matching identifiers are not present), the user of the media player is queried as to whether the user desires to affiliate, assign or lock the media player to the host computer. When the user of the media player elects to affiliate, assign or lock the media player with the host computer, then a pseudo-random identifier is obtained and stored in either the media database or a file within both the host computer and the media player. In one implementation, the identifier is an identifier associated with (e.g., known or generated by) the host computer or its management module and such identifier is sent to and stored in the media player. In another implementation, the identifier is associated with (e.g., known or generated by) the media player and is sent to and stored in a file or media database of the host computer. 
       FIG. 10  is a block diagram of a media player  1000  according to one embodiment of the invention. The media player  1000  includes a processor  1002  that pertains to a microprocessor or controller for controlling the overall operation of the media player  1000 . The media player  1000  stores media data pertaining to media items in a file system  1004  and a cache  1006 . The file system  1004  is, typically, a storage disk or a plurality of disks. The file system  1004  typically provides high capacity storage capability for the media player  1000 . The file system  1004  can store not only media data but also non-media data (e.g., when operated in a disk mode). However, since the access time to the file system  1004  is relatively slow, the media player  1000  can also include a cache  1006 . The cache  1006  is, for example, Random-Access Memory (RAM) provided by semiconductor memory. The relative access time to the cache  1006  is substantially shorter than for the file system  1004 . However, the cache  1006  does not have the large storage capacity of the file system  1004 . Further, the file system  1004 , when active, consumes more power than does the cache  1006 . The power consumption is often a concern when the media player  1000  is a portable media player that is powered by a battery (not shown). The media player  1000  also includes a RAM  1020  and a Read-Only Memory (ROM)  1022 . The ROM  1022  can store programs, utilities or processes to be executed in a non-volatile manner. The RAM  1020  provides volatile data storage, such as for the cache  1006 . 
     The media player  1000  also includes a user input device  1008  that allows a user of the media player  1000  to interact with the media player  1000 . For example, the user input device  1008  can take a variety of forms, such as a button, keypad, dial, etc. Still further, the media player  1000  includes a display  1010  (screen display) that can be controlled by the processor  1002  to display information to the user. A data bus  1011  can facilitate data transfer between at least the file system  1004 , the cache  1006 , the processor  1002 , and the CODEC  1012 . 
     In one embodiment, the media player  1000  serves to store a plurality of media items (e.g., songs) in the file system  1004 . When a user desires to have the media player play a particular media item, a list of available media items is displayed on the display  1010 . Then, using the user input device  1008 , a user can select one of the available media items. The processor  1002 , upon receiving a selection of a particular media item, supplies the media data (e.g., audio file) for the particular media item to a coder/decoder (CODEC)  1012 . The CODEC  1012  then produces analog output signals for a speaker  1014 . The speaker  1014  can be a speaker internal to the media player  1000  or external to the media player  1000 . For example, headphones or earphones that connect to the media player  1000  would be considered an external speaker. 
     The media player  1000  also includes a network/bus interface  1016  that couples to a data link  1018 . The data link  1018  allows the media player  1000  to couple to a host computer. The data link  1018  can be provided over a wired connection or a wireless connection. In the case of a wireless connection, the network/bus interface  1016  can include a wireless transceiver. 
     In one implementation, the host computer can utilize an application resident on the host computer to permit utilization and provide management for playlists, including a media device playlist. One such application is iTunes®, version 4.2, produced by Apple Computer, Inc. of Cupertino, Calif. 
     Although the media items (or media assets) of emphasis in several of the above embodiments were audio items (e.g., audio files or songs), the media items are not limited to audio items. For example, the media items can alternatively pertain to videos (e.g., movies) or images (e.g., photos). 
     The various aspects, embodiments, implementations or features of the invention can be used separately or in any combination. 
     The invention is preferably implemented by software, but can also be implemented in hardware or a combination of hardware and software. The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, optical data storage devices, and carrier waves. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. 
     The advantages of the invention are numerous. Different aspects, embodiments or implementations may yield one or more of the following advantages. One advantage of the invention is that a media device playlist can be persistently represented and manipulated at a host computer regardless of whether the associated media device is connected to the host computer. Another advantage of the invention is that a playlist can be managed in accordance with a capacity limit. Still another advantage of the invention is that a capacity limit to be imposed on a playlist can be adjusted to provide reserved storage capacity for data storage (e.g., associated with a disk mode usage of the media device). Yet still another advantage of the invention is that a user can initiate a fill operation to cause a playlist to be automatically filled from a larger media source. 
     The many features and advantages of the present invention are apparent from the written description and, thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.

Metadata:
Filing Date: 20160705
Publication Date: 20220426
Grant Date: 20220426
Priority Date: 20050107
Inventors: JOBS, STEVEN P.
ROBBIN, JEFFREY L.
HELLER, DAVID
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F3/165", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N21/8113", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N21/4825", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N21/4435", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04847", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/4387", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/04817", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F16/44", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/11", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B2220/61", "inventive": false, "first": false, "tree": "[]"}, {"code": "G11B27/031", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/165", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/4387", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B2220/61", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B27/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0486", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/162", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/031", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/44", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04847", "inventive": false, "first": false, "tree": "[]"}, {"code": "G11B27/11", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/165", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B2220/61", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/04847", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F16/44", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0486", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/04817", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B27/11", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/031", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/162", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/4387", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 81213665