AUTOMATIC HIERARCHICAL CATEGORIZATION OF MUSIC BY METADATA
20170083528 ยท 2017-03-23
Inventors
- Ron Goodman (Santa Cruz, CA, US)
- Howard N. Egan (Capitola, CA, US)
- David Bristow (Bainbridge Island, WA, US)
Cpc classification
Y10S707/99943
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y10S707/99934
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y10S707/99933
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
A method, performed by software executing on the processor of a portable music playback device, that automatically files tracks according to hierarchical structure of categories to organize tracks in a logical order. A user interface is utilized to change the hierarchy, view track names, and select tracks for playback or other operations. The user interface uses an overlapping hierarchy of categories. A song title can be accessed in multiple different ways by starting with different categories. A preferred embodiment of the invention uses the top-level categories Albums, Artists, Genres (or styles), and Play Lists. Within the Albums category are names of different albums of songs stored in the device. Within each album are the album tracks, or songs, associated with that album. Navigation is performed by presenting a sequence of display screens for each level of the hierarchy.
Claims
1. (canceled)
2. A handheld electronic device for playing media tracks, comprising: an onboard processor; a display; an audio output; a computer readable medium storing a definition of, a plurality of categories for categorizing said plurality of media tracks, wherein at least a subset of the categories are overlapping, and an ordering of metadata types associated with each category, wherein one or more of the metadata types of the ordering correspond to one or more subcategories of one or more of the categories; the computer readable medium further containing instructions executable by the onboard processor to create an overlapping hierarchical structure having a plurality of branches in a memory of the handheld electronic device by performing operations including, iterating through multiple tracks of a plurality of media tracks stored on the handheld electronic device, wherein the multiple media tracks have corresponding metadata elements stored on the handheld electronic device, wherein the corresponding metadata elements are organized according to a plurality of predefined metadata types, including, for each such track of the multiple media tracks, iterating through each branch of the plurality of branches of the hierarchical structure, wherein the branches correspond to the plurality of categories, for each such track of the multiple media tracks, and for each such branch, using the ordering associated with the category corresponding with such branch and metadata elements corresponding to such media track to traverse such branch and place such media track in the appropriate position in the hierarchical structure; the computer readable medium further containing instructions executable by the onboard processor to present a user interface with first, second, and third sequentially presented display screens on the display of the handheld electronic device for navigating said hierarchical structure, by performing operations including, displaying at least a portion of said plurality of categories in a listing presented in the first display screen, receiving a selection of a category displayed in the first display screen, displaying a plurality of subcategories belonging to the selected category in a listing presented in the second display screen, receiving a selection of a subcategory displayed in the second display screen, displaying a plurality of items belonging to the selected subcategory in a listing presented in the third display screen, and accessing at least one media track based on a selection made in one of the display screens.
3. The handheld electronic device of claim 2, wherein the operations to present a user interface further comprise receiving a selection of at least one item displayed in the third display screen.
4. The handheld electronic device of claim 2, wherein the accessing of at least one media track comprises playing the at least one media track.
5. The handheld electronic device of claim 2, wherein the accessing of at lea one media track comprises adding the at least one media track to a playlist.
6. The handheld electronic device of claim 5, wherein the playlist is an active queue list of songs being played.
7. The handheld electronic device of claim 2, wherein the media tracks comprise audio tracks.
8. The handheld electronic device of claim 2, wherein the accessing of at least one media track is performed in response to receiving a selection of a subcategory displayed in the second display screen, and wherein the accessing comprises playing a plurality of media tracks associated with the selected subcategory.
9. The handheld electronic device of claim 2, wherein the accessing of at least one media track is performed in response to receiving a selection of a subcategory displayed in the second display screen, and wherein the accessing comprises adding a plurality of media tracks associated with the selected subcategory to a playlist.
10. The handheld electronic device of claim 9, wherein the playlist is an active queue list of songs being played.
11. The handheld electronic device of claim 3, wherein the accessing at least one media track is performed in response to receiving the selection of at least one item displayed in the third display screen, and wherein the accessing comprises playing at least one media track associated with the selected at least one item.
12. The handheld electronic device of claim 3, wherein the selected at least one item in the third display screen is associated with a plurality of media tracks, and wherein the accessing at least one media track comprises adding the plurality of media tracks associated with the selected at least one item to a playlist.
13. The handheld electronic device of claim 12, wherein the playlist is an active queue list of songs being played.
14. The handheld electronic device of claim 2, wherein the accessing of at least one media track occurs after displaying the third display screen and in response to receiving an input to revert back to one of the second and first display screens, the second display screen presented sequentially after the third display screen.
15. A handheld electronic device for playing media tracks, comprising: an onboard processor; a display; an audio output; a computer readable medium storing a definition of, a plurality of categories for categorizing said plurality of media tracks, wherein at least a subset of the categories are overlapping, a plurality of media track types, one or more associations specifying which media track types are permitted to be included in each of the categories, and an ordering of metadata types associated with each category, wherein one or more of the metadata types of the ordering correspond to one or more subcategories of one or more of the categories; the computer readable medium further containing instructions executable by the onboard processor to create an overlapping hierarchical structure having a plurality of branches in a memory of the handheld electronic device by performing operations including, iterating through multiple tracks of a plurality of media tracks stored on the handheld electronic device, wherein the multiple media tracks have corresponding metadata elements stored on the handheld electronic device, wherein the corresponding metadata elements are organized according to a plurality of predefined metadata types, including, for each such track of the multiple media tracks, iterating through each branch of the plurality of branches of the hierarchical structure, wherein the branches correspond to the plurality of categories, for each such track of the multiple media tracks, and for each such branch, using the stored definition and metadata elements corresponding to such media track to determine whether such media track belongs in such branch, and for each branch that each such media track belongs in, using the ordering associated with the category corresponding with such branch to traverse such branch and place such media track in the appropriate position in the hierarchical structure; the computer readable medium further containing instructions executable by the onboard processor to present a user interface with first, second, and third sequentially presented display screens on the display of the handheld electronic device for navigating said hierarchical structure, by performing operations including, displaying at least a portion of said plurality of categories in a listing presented in the first display screen, receiving a selection of a category displayed in the first display screen, displaying a plurality of subcategories belonging to the selected category in a listing presented in the second display screen, receiving a selection of a subcategory displayed in the second display screen, displaying a plurality of items belonging to the selected subcategory in a listing presented in the third display screen, and accessing at least one media track based on a selection made in one of the display screens.
16. The handheld electronic device of claim 15, wherein the operations to present a user interface further comprise receiving a selection of at least one item displayed in the third display screen.
17. The handheld electronic device of claim 15, wherein the plurality of media track types identify one or more of: a song media track, a voice media track, a book media track, a video media track, and a playlist of media tracks.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0034] A preferred embodiment of the invention will now be described in the context of a portable personal player that plays audio files stored in memory. The files may be in MP3, way. or other digital formats.
[0035] In the presently described embodiment, users are able to see the tracks on their player in some organized fashion other than as a single list of tracks. As will be described in more detail below, in one embodiment tracks are sorted utilizing a tree structure having branches labeled according to types of metadata associated with the tracks
[0036] For example, a track recorded as Golden Slumbers by the Beatles that appears on their album Hey Jude might appear as a track under the album Abbey Road as well as a track under the list of tracks by the Beatles. It might appear as a track under the genre Pop Rock as well as Songs from the 60's. Furthermore, the organization can have more complex hierarchies. For example, the category of Pop Rock might contain subcategories British Musicians, American Musicians and Other Musicians. In all cases, the track is automatically filed into all appropriate locations without requiring user interaction.
[0037] In the currently defined embodiment, a tree structure is defined by a file having the following structure.
[0038] The first line of a TreeDef.inf file contains a version number:
[0039] V1.0
[0040] Each subsequent line (at least in v1.0) contains lines of the following format:
[0041] CATEGORY_NAME|TRACK_TYPE_MASK|CATEGORY_STRUCTURE
[0042] CATEGORY_NAMEs are the top-level names of the branch under which tracks are sorted. They include things like Album, Artist, Voice Tracks, All Tracks, etc.
[0043] TRACK_TYPE_MASKs tell which types of tracks are to be filed under this particular branch. The actual value is a hexadecimal numerical value (in 0x format, e.g. 0x01) generated by ORing the following flags together as appropriate:
TABLE-US-00001 enum tTrackType { kTTNothing=0x00, kTTSong=0x01, kTTVoice=0x02, kTTBook=0x04, kTTMacro=0x08, kTTPlaylist=0x10 };
[0044] So, for example, the Album branch has a TRACK_TYPE_MASK of kTTSong, because only songs are filed under that branch, but the All Tracks branch has a TRACK_TYPE_MASK of (kTTSong|kTTVoice|kTTBook).
[0045] Other elements might be added to tTrackType (e.g. kTTVideo) as appropriate.
[0046] CATEGORY_STRUCTUREs tell how to file the songs based on their metadata information. The CATEGORY_STRUCTURE is a string of characters that tell, from left to right, the order of hierarchy. The characters come from the following enum constants:
TABLE-US-00002 enum tFileTag { kFTNone=@, kFTTrackType=T, kFTTitle=N, kFTAudioFile=F, kFTArtist=M, kFTAlbum=L, kFTGenre=G, kFTSource=S, kFTYear=Y, kFTArtistCountry=C };
[0047] Thus, a CATEGORY_STRUCTURE of LN tells to create a subcategory that is a list of Albums, each of which contains a list of Tracks.
[0048] In total, a line like:
[0049] Album|0x01|LN
[0050] Says to create a branch called Album which contains tracks of type kTTSong organized first by album name, and then by track name.
[0051] The following is an example of a tree definition file similar (though not identical) to the hierarchy presented in the Nomad Jukebox product (the B before each FileTag was used to identify that these are basic tags so that we wouldn't run out of letters in the alphabet as we included more complex metadatathus each group of two letters represents a level in the hierarchy):
[0052] V1.0
[0053] Album|0x01|BLBN
[0054] Artist|0x01|BMBN
[0055] Genre|0x01|BGBN
[0056] Voice Tracks|0x02|BSBGBN
[0057] Playlists|0x10|BN
[0058] Macros|0x08|BN
[0059] All Tracks|0x07|BN
[0060]
[0061] The tree definition file that would specify the hierarchy shown in
[0062] The first line identifies the version of the tree definition file.
[0063] The second line defines the Albums branch. The first part of the line, Albums defines the name of the branch. The second part, 0x01, defines that all musical tracks should be categorized on this branch. The third part, BLBN, defines that the branch lists first the names of all albums (BL) and then tracks on those albums (BN).
[0064] The third line defines the Artists branch. The first part of the line Artists defines the name of the branch. The second part, 0x01, defines that all musical tracks should be categorized on this branch. The third part, BCBMBN, defines that the branch lists first the names of all countries where artists in this collection come from (BC) and under those items, the artists' names (BM), and then tracks by those artists (BN).
[0065]
[0066] In consumer products the tree define file is not edited directly but through a user interface, one example of which is depicted in
[0067] An embodiment of the invention is utilized in the Nomad Jukebox, manufactured by the assignee of the present invention, and described more fully in the copending application, filed on the same date as the present application, entitled System for Selecting and Playing Songs in a Playback Device with a Limited User Interface, (Attny. Docket No. 17002-020800).
[0068] In a preferred embodiment, metadata is associated with each track and includes such information as title, genre, artist name, type, etc. In the preferred embodiment, software stored in a portable player and executed by the onboard processor automatically files each track in the correct category utilizing the associated metadata and the tree define file. The program code can be stored in any computer readable medium including magnetic storage, CD ROM, optical media, or digital data encoded on an electromagnetic signal.
[0069] Thus, the user is automatically provided with a powerful and flexible tool for organizing and categorizing the tracks stored on the portable player.
[0070] If the tracks are formatted in MP3 format the metadata can be stored in ID3 tags included in the MP3 file. In one embodiment of the invention, the tracks are stored in alternate file format including file data and file attributes. The file data is the music track itself and the file attributes part of the file includes fields of arbitrary size which are used to store metadata characterizing the track stored as the file data. Again this metadata includes information about the track such as title, genre, artist name, type, etc.
[0071] There are several advantages to using the alternate file format. Metadata of types not easily included in an ID3 tag can be utilized. Further, the original track format is not changed, so that error correction data such as checksums are valid. Finally, any file format can be used (e.g. WAV, WMA, etc.) because the metadata is stored separately, and thus audio formats that have limited support for metadata can still be stored on the portable player in native format without transcoding. The formatted files are formed by software stored in the portable music player and executed by an on-board processor.
[0072] The metadata for each track is utilized to file each track, using the categories defined in the hierarchical structure as described above, without any input from the user.
[0073]
[0074] A particular embodiment of a file format will now be described. All tracks are created with some set of attributes as shown below:
Definition of TrackInfo Data Field
[0075]
TABLE-US-00003 Field Offset Size Description Attribute Count 0 2 The number of attribute follow for the track Attr 1 type 2 2 Binary = 0, ASCII = 1 Attr 1 name len 4 2 Length of attribute name string Attr1 data len 6 4 Length of attribute data Attr1 Name 10 N Attribute name string Attr 1 Data 10 + N M Attribute data . . . . . . Attr N type Attr 1 name len Attr1 data len Attr1 Name Attr 1 Data
Required Attributes
[0076]
TABLE-US-00004 Attribute Name Value(s) Remarks TITLE ASCII string Required By Jukebox CODEC MP3, WMA, WAV Required By Jukebox TRACK ID DWORD Set By Jukebox ALBUM ASCII string Optional ARTIST ASCII string Optional GENRE ASCII string Optional LENGTH In seconds Optional TRACK SIZE In bytes Optional TRACK NUM 1-n (track within album) Optional [0077] These attributes can be subsequently changeable via a host application, running on a personal computer connected to the portable music player.
[0078]
[0079] Also, the hierarchical catalog of tracks can be used to form playlists in a structured manner. For example, if a user wants to hear Jazz and Blues the entire sub-categories can be selected to form one playlist.
[0080] An alternative hierarchical catalog generation technique will now be described. In this alternative embodiment, at system startup and as tracks are added or changed, the hierarchy is generated as an in-memory tree structure. Each track is added to the tree using the categories ALBUM, ARTIST and GENRE.
[0081] The following example shows the algorithm for adding a track. For clarity, only the attributes used by the tree are shown.
TABLE-US-00005 TITLE Free Falling ALBUM Full Moon Fever ARTIST Tom Petty GENRE Rock TRACK NUM 1
[0082] The following function is executed to build the in-memory memory tree.
TABLE-US-00006 Build Tree ( ) For each track, Add Track To Category(Album, Track) Add Track To Category(Artist, Track) Add Track To Category(Genre, Track) End of Build Tree
[0083]
[0084]
[0085] As noted above, a preferred embodiment of the present invention is incorporated into a product manufactured and distributed by Creative Technology, Ltd. The product is called the NOMAD Jukebox. The following description describes further details of the display screens and interface controls.
[0086]
[0087] In
[0088] Three soft buttons are located at 108; including buttons 110, 112 and 114. The specific command, or function, that any of the soft buttons perform when depressed is indicated by the label in soft button function description region 106. Thus, the function of soft button 112 (as shown in
[0089] The other eight buttons on device 100 perform essentially the same functions at all times. In other words, they are not subject to function changes according to soft button function description area 106. These buttons include Library button 116, EAX and System button 118, Skip Backward button 120, Play button 122, Stop button 124, Skip Forward button 126, Scroll Up button 128 and Scroll Down button 130. However, as discussed below, these buttons (or any type of controls used with the device) can include alternate functionality that is invoked in different ways.
[0090] The device uses visual cues, or indicators, in the display. When an item is highlighted it indicates that the item is the current item, or currently-selected item, which is susceptible to be operated on by a subsequent user actionsuch as playback, or expansion of the item. In
[0091] Icons are used to provide additional visual cues for an item. In
[0092]
[0093] In
[0094] Note that in library category screen 150 ALBUMS is currently highlighted. By depressing soft button 112 of
[0095] Lists screen 154 is displayed as a result of a user opening the Albums category of library category screen 150. Lists screen 154 shows items within the Albums category such as commercial albums of multiple songs from a record label, pre-made lists or collections created by a user, or other predefined lists or collections of songs or recordings.
[0096] In
[0097] Returning to
[0098] Details screen 158 shows information about the selected song including the name of the song, album (or list) name containing the song; the track number, if applicable, and track duration. Note that other information can be included. The user can preview the song, close the Details screen to return to the Tracks screen or queue the song on the play list queue.
[0099] The device provides the ability to preview audio files even while a current song, or playlist, is being played. When a user chooses to preview an audio file, the audio file is played for about 10 seconds while any currently-played file or playlist is suspended. After previewing is complete, the suspended file or playlist resumes playback. In other embodiment, the preview duration can vary, or be stopped by user selection.
[0100]
[0101] In
[0102] Similar to albums, the category of artists 162 includes names of artists, or performers, of songs. Each artist name is associated with one or more songs in the database. Playlists 164 includes names of playlists. These are collections of songs that can be defined by the user, the device manufacturer, or others. Each playlist can be associated with one or more songs. Genres 166 includes various styles of music which are associated with one or more songs in the database. Note that items can exist without being associated with a song. Also, items can be associated with other items as where an artist name is associated with the albums containing the songs that the artist has created.
[0103] Although not shown in
[0104]
[0105] In
[0106] Screen 186 shows the result of selecting the Go! command. A list of albums is displayed with the matched album centered and selected. The user can close, open or queue the album as discussed above.
[0107]
[0108] In
[0109] Screen 202 illustrates details of an item on the active queue list. Items are placed onto the active queue list by selecting the Queue command when an album, song, track, or other item is selected, as discussed above. For example, screen 204 shows the active queuelist where the track Jukebox Demo is selected. By invoking the Details command screen 202 is brought up to show details of the Jukebox Demo track.
[0110] As shown in screen 202, the Detail screen shows what track number the selected track is, which album the track is from; the creator, or copyright owner, of the track, and the title of the track. Additionally, the details for an item on the queue list also show playback settings. These are shown by two-letter abbreviations at the bottom of the screen. The settings are as show in Table I, below.
TABLE-US-00007 TABLE I EA Environmental Preset EQ Parametric EQ HS Headphone Spatialization TS Time Scaling 4S Four Channel Speaker Sound (only if speakers are connected)
[0111] These settings have their common meanings, as is known in the art. Note that the setting 4S is not shown in screen 202 as it is not currently active.
[0112]
[0113] In
[0114] Once device 300 is coupled to host system 302, a user of host system 302 can launch a bridge interface to allow for the transfer of files between device 300 and host system 302. In a preferred embodiment, once the bridge interface is launched, the controls of device 300 are inoperable. The user interface of host system 302 is used to operate the bridge interface to transfer files.
[0115] The invention has now been described with reference to the preferred embodiments. Alternatives and substitutions will now be apparent to persons of skill in the art.