1. Technical Field
The systems and/or methods relate generally to the field of computer resource management, and in particular, to a processing system that manages access to media and/or multimedia content.
2. Related Art
Many computer and electronic devices have interfaces that allow a user to navigate through a collection of available audio, audio/visual and other related media or multimedia selections for playback. These may include, for example: songs, videos and multimedia presentations.
As the size of the collection grows, managing access to the available selections may become difficult. If, for example, the user has access to a significant number of songs, it may be difficult for the user to review a list of available song titles to identify a desired selection for playback. Organizing titles by genre or album may provide an improvement in the user experience. This approach, however, may be difficult to implement as the size of the collection grows.
A system and/or method, generally referred to as system, is disclosed that includes a media player that plays media files, memory storing a plurality of media files, and a media manager. The media manager generates a new playlist of media files based on one or more characteristics associated with a currently playing media file and provides the new playlist to the media player for playback.
Other systems, methods, features and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
Processing system 100 may support the playing and presentation of media and multimedia content through the user interface 130. To this end, the user interface 130 may include one or more display screens, one or more touch screens (at 131), mechanical and virtual buttons (at 133), and/or other interface components. The I/O interface 125 may include a media playback device, for example a variety of audio playback components 127, such as audio amplifiers and speakers, hard-wired or wireless headsets, earphones, and similar audio and/or visual devices. The I/O interface 125 may also include one or more media reception components 129 that may be used to receive media files and/or multimedia files from external sources such as a wired and/or wireless LAN, a WAN, the Internet, a subscription service, a further processing system, an external storage device, and the like.
Read only memory (ROM) 110 may retain operating system code 135 that controls the interaction between application programs executed by the processor 105, including high-level programs, and hardware components, including memory devices 110 and 120, the persistent storage unit 115, and the interfaces 125 and 130. The operating system code 135 may include a media management application 140 that may include executable media management code for, among other things, organizing and controlling access to the various system components used for media/multimedia operation. Alternatively, the media management application 140 may be stored in a separate medium remote from operating system code 135. In some systems, the media management application 140 may be stored in read only memory 110, persistent storage unit 115, or in some other storage medium. When the processing system 100 is linked with other computers and/or storage devices through I/O interface 125, the media management application 140 may be stored remotely and downloaded to processing system 100 as needed.
The persistent storage unit 115 may comprise a hard disc drive, floppy disk drive, optical drive such as a CD (compact disk) player/writer, data or video DVD (digital versatile disk) player/writer, a thumb drive, USB memory stick, memory card or similar device, and any necessary ports and/or connectors. It may be a non-rotating media device, such as non-volatile memory implemented in an integrated circuit format (for example FLASH memory, etc.). The persistent storage unit 115 need not be limited to a single memory structure. Rather, the persistent storage unit 115 may include a number of separate storage devices of the same type (e.g., all FLASH memory) and/or separate storage devices of different types (e.g., one or more FLASH memory units and one or more hard disk drives).
The media management application 140 may be executed by processor 105 to generate a database 150 for storing information relating to image files, audio files, video files and other multimedia content accessible to the processing system 100. In system 100, the media management application 140 generates the database 150 in the persistent storage 115, although other storage locations may be used for the database 150. The database 150 may also identify mediastores that may be part of and/or available to system 100. Such media storage may include data CDs, data DVDs, video DVDs, USB sticks, MP3 players, iPod™ or similar components and, for example, may form at least part of the playback components 127. In the case of an image file, the information stored in database 150 may include a title, textual description, copyright information, camera make and model, date and time, and location. In the case of a song file, the information stored in database 150 may include song name, album name, track number, album cover graphics, lyrics, artist, label, release year and musical genre. In the case of a video file, the information stored in database 150 may include administrative and structural information, including, for example: title, director, producer, digital rights management data, data format, and encoding. The available information for a particular media type may vary in accordance with varying standards in existence at any given time, and the media management application 140 may be executed to obtain the data in accordance with those standards.
The media content associated with the database entries as well as the information relating to the media content may be stored locally in the persistent storage 115. It may also be remote, for example, on a remote system or web server, accessible through the I/O interface 125, on a local area network (LAN), wide area network (WAN), over the Internet or accessible in some other manner.
In
In
Transitions may be made in response to selection of various criterion. For example, transitions may be made when the user identifies certain characteristics of the current song. The media management application 140 may use the selected characteristics to find a set of related playlists to choose from. This allows a smooth transition from one group of songs (a list, track session, playlist, etc.) to a new group/list of songs. In each instance, however, the media management application 140 may limit selection of a new playlist meeting the selected characteristic to a playlist that contains the currently playing song. As such, the currently playing song is located somewhere in both lists. The position of the currently playing song in both lists may be different, but the audio is not interrupted when transitioning from one list to the next.
In
1. Presenting a listing of all characteristics (Artist, Album, Genre, Folder, Composer, Era, Origin of band, Other bands with the same artist, beats per minute, rhythm, etc.);
2. Presenting only those characteristics that have been stored for that song, either not displaying the missing characteristics in the menu, or graying them out; or
3. Integrating steps 605 and 615 together into a single step where the user is presented with buttons such as “transition to artist”, “transition to album”, “transition to genre”, etc. These options could similarly be grayed out or omitted from the menu where they are not available or are not applicable.
If the system recognizes that there is only one such playlist available at 625, the transition is made at 630 (either with or without a user confirmation). Otherwise existing playlists matching the selection criteria may be located and presented to the user at 635. The user may select an existing playlist at 640 as a new playlist, and the system executes a transition to the new playlist at 630.
The media management application 140 may include “play similar music” functionality. While playing a song, one or more new playlists of similar songs may be generated, allowing the user to choose one and transition to it. One could instantly start playing a new song on a new list (interrupting the currently playing song), but using the transitioning playlist system, one could continue playing the current song while transitioning. That is, the current song continues to play but the songs around it (the previous ones and the next ones) would change, assuming that the currently playing song is included somewhere in the new playlist.
Alternatively, or in addition based on user preferences, the collecting of characteristics of the current song at 710, locating similar songs at 720, and generating one or more new playlists at 725 may be performed automatically, with the results presented to the user. In such an implementation, the user's request to transition at 705 and selecting of characteristics at 715 are merged together, the selection of one of the automatically generated playlists performing both tasks. The song metadata presented to the user may include, for example: Artist, Album, Genre, Folder, Composer, Era, Origin of band, beats per minute, rhythm and similar criteria. When coupled with an embedded or online database (commercial and/or non-commercial), sophisticated processing playlist generation based on what instruments are being used by the Artist (for example play more Eric Clapton where he is playing an acoustic guitar).
The media management application 140 may include “repeat folder” functionality. When the user selects or turns this mode on, the system may create a new playlist of all the files in the current folder (for example, the folder in which the currently playing song resides, which may be, for example, a USB stick or a data CD) and then transitions into this new playlist for playback. The media management application 140 may also execute a wraparound playback feature so that playback of songs may continue from a beginning of a playlist when play hits an end of the playlist. A position of a song in the playlist may not matter since all of the songs in the playlist may eventually be played by way of the wraparound playback.
The associated set of characteristics may include a location of files in a disk hierarchy, such as media files that are located in a same folder as the folder of the currently playing media file.
In a play the album function of the media management application 140, the media management application 140 may create a new playlist from all songs in the album corresponding to the currently playing song and then transitions into the new playlist. In
In
If the user enjoys the currently playing Song 4 by Artist C 905, the user may decide to hear more songs from the same album (ZZZ). The user may enter a corresponding command through, for example, user interface 130, to direct the system to generate a new playlist 1000 of all songs from Album ZZZ, in
The old position might have been index 56 out of 305 (that is, song number 56 in a playlist of 305 songs), but there are only 5 tracks in the new playlist. Since the system was playing track 4 of the album, it may now be in position 4 out of 5, assuming that random/mix mode is off; if random was on, the system may be in a random position in the new playlist. Also, since the system is at position 4/5, the user has already missed songs 1 through 3, but by turning on wrap/repeat all mode, playback of the songs of the playlist are repeated. Consequently, the user may hear the remainder of song 4, followed by track 5, track 1, track 2, track 3, track 4, etc. of
The operational architecture 1100 of the system 100 may be implemented in many ways. In one example, the song playlist manager 1110 or other media manager may include media management code executable by a processor, for example processor 105 in
When a transition to a new playlist occurs, the song player 1105 may be directed to play a different song as the next song 1125. Thus, it continues playing the current song 1120 until it is finished. The system makes sure that the current song 1120 is in the new playlist. Just before doing this, the song player 1105 may be instructed to discontinue playback of any new song 1125 once the current song 1120 ends. Otherwise a race condition may result. Even if the current song 1120 ends, the new next song 1125 may start very quickly, so the interruption should not be audibly noticeable. If the currently playing song 1120 is not in the new playlist, an error may be returned to the user through the user interface. This error may indicate that the playlist specified was invalid for the requested transition.
Although a song such as Song A may still be playing at 1210, the system may restrict response to a request for a transition to a shorter period of time 1215 in order to smoothly effect the transition. If that window is missed, transitioning may be performed after song B has been played 1220.
If a request for a new playlist is received during latency 1205, there are a number of possible strategies for proceeding. If the next song in the queue to be played is also part of the new playlist, the playback may continue from the next song. To the user the transition to the next song may be perceived as being generally inconsequential since it was part of the new playlist.
If the request is not received in time to make a smooth transition, it is more likely that the next song played is not on the new playlist. This may be considered a missed transition. The intention of the user was to transition on the previous song to a song on the new playlist, but that can no longer be done without interrupting playback (because now a new, unwanted song is playing). The system can either start the playback from the beginning of the new playlist or fail the request. There are several ways in which a missed transition may be detected, including the following:
1. The song player 1105 may send an event to the song playlist manager 1110 each time it changes tracks. If such an event is received by the song playlist manager 1110 while it is processing a transition, then the song playlist manager 1110 may respond to the event in a manner indicating that the song player 1105 has already moved on to another song that may or may not be on the new list; or
2. The song playlist manager 1110 may check to see what the current song is on the song player 1105 before effecting a transition. If the song playlist manager 1110 detects that the currently playing song is not in the new playlist, then it may determine that the transition was missed.
If a transition is missed, a specific error code may be issued. If the system detects an error code indicating that a transition was missed, it may have several options for responding, including for example:
1. Creating a new playlist on the current song and making a smooth transition to that playlist. The user may therefore know they pressed the button too late and missed the song they were actually targeting;
2. Stopping the small portion of the new song that has started playing, setting the new playlist and playing the wanted song from where it would have started had the initial request to set the new playlist been received sooner;
3. Failing the user request and continuing playback of the current playlist; and/or
4. Reporting an error to the user.
Assuming that the currently playing song is still playing and is also in the new playlist, the system may set the new song that should be played next (next new song). If the song player 1105 finished playing the currently playing song during the transition, the system may request that play resume on the next new song. In this manner, the user perceives that the system worked correctly, because the user launched the new playlist substantially at the end of song playback. Then the system may update the offsets (position into the playlist) and provide the new state to the controlling HMI. This may complete the transition to the new playlist.
Further alternative/supplemental implementations of the system may also be provided. For example:
1. The system described is independent of how the media selections themselves are identified or managed. Each media selection, however, may have a unique identifier, or a filesystem name. Instructions and requests may be communicated using SQL or in some proprietary manner;
2. The order in which songs are collected may be specified by the user, be determined by default settings, or be determined by the architecture of the underlying system. For example, songs may be sorted by the order in which they appear in the filesystem, by their physical location on a hard drive, or by track number on an album;
3. A transitioning system, for example of the song playlist manager 1110, may be offered as an option to the user, so that different transitions may be performed depending on the user's preferences. The user may select their preferences via the user interface or media application 1115. Such preferences may include:
a. transition after finishing current song;
b. transition after finishing current song, if it appears on the new playlist;
c. transition immediately, if the current song does not appear on the new playlist; and/or
d. transition immediately, in all cases;
4. A playlist may be displayed to the user before transitioning into it. However, if the user waits too long, the list could become stale. For example, if the user is playing song 34 and pulls up a list of similar songs, but does nothing when the list is presented and song 35 starts playing, then the list is not valid, because song 35 is no longer related to it.
The methods and descriptions of
A computer-readable medium, machine-readable medium, propagated-signal medium, and/or signal-bearing medium may comprise any medium that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium would include: an electrical or tangible connection having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM” (electronic), a Read-Only Memory “ROM,” an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber. A machine-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled by a controller, and/or interpreted or otherwise processed. The processed medium may then be stored in a local or remote computer and/or machine memory.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
This application claims the benefit of U.S. Provisional Application No. 61/138,384, filed Dec. 17, 2008, the entirety of which is incorporated by reference herewith.
Number | Date | Country | |
---|---|---|---|
61138384 | Dec 2008 | US |