This application should be read in the most general possible form. This includes, without limitation, the following:
After reading this application, those skilled in the art would see the generality of this description.
The general meaning of each of these following terms is intended to be illustrative and in no way limiting.
The scope and spirit of the invention is not limited to any of these definitions, or to specific examples mentioned therein, but is intended to include the most general concepts embodied by these and other terms.
A system 100 includes elements shown in the figure, including at least the following:
In a preferred embodiment, a major physical portion of the system 100 would be located in, or coupled to, a home theater or other home entertainment system. This would include at least the computing device 110, the input/output elements 120, and at least part of the communication link 130.
The computing device 110 includes elements shown in the figure, including at least the following:
The computing element 111 includes a processor, memory, and mass storage, configured as in a known desktop, laptop, or server device. In a preferred embodiment, the mass storage might include both attached mass storage, such as a hard disk drive, and removable mass storage, such as a CD or DVD reader or writer. However, in the context of the invention, there is no particular requirement that the computing element 111 include those elements, so long as the computing element 111 is capable of performing the maintaining its state as described herein, and performing the method steps described herein. For a first example, there is no particular requirement that the computing element 111 include any particular form of mass storage, although the inventors expect that a preferred embodiment will include both forms of mass storage described above. For a second example, there is no particular requirement that the computing element 111 is structured as a deterministic device—nondeterministic devices, such as including parallel processing devices, would work as well.
In the context of the invention, there is no particular requirement that the computing element 111 be configured as in a known desktop, laptop, or server device. For several alternative examples, the computing element 111 might be configured as in a cellular telephone, a hand-held audio or video player, a hand-held computing device, a heads-up display device for spectacles or contact lenses, a one-way or two-way “Dick Tracy” communication wristwatch, a PDA, a sub-notebook, an ear-bud audio device, an iPod or equivalent device, and the like. After reading this application, those skilled in the art would recognize that the nature of the invention is broad enough to include, within its scope and spirit, virtually any form of input or output hardware or software, having a user interface as described herein.
The first set of instructions 112 are interpretable by the computing device 110, and relate to presenting a set of screen elements in a user interface. Techniques for doing so are described below with respect to
The second set of instructions 113 are interpretable by the computing device 110, and relate to presenting the visualization of a structured playlist. Techniques for doing so are described below with respect to
The third set of instructions 114 are interpretable by the computing device 110, and relate to making, reviewing, and manipulating a structured playlist. Techniques for doing so are described below with respect to
The input/output elements 120 include elements shown in the figure, including at least the following:
In a preferred embodiment, the sound sequence input 121 might include a reader for any particular physical medium on which sound sequences can be stored, such as CD, DVD, or a set of memory or mass storage (e.g., in the latter case, hard disk drives). In alternative embodiments, the sound sequence input 121 may in addition or instead include a receiver for any particular communication of sound sequences, such as a radio, television, or computer network input. In the context of the invention, there is no particular requirement for any individual choice of physical devices for the sound sequence input 121, so long as the computing device 110 is capable of maintaining the information, and performing the methods, as described herein, with respect to those sound sequences. As noted above, in a preferred embodiment, the sound sequence input 121 might be included in a home theater or home entertainment system.
In a preferred embodiment, a home theater or home entertainment system includes the sound sequence output 122. In the context of the invention, there is no particular requirement for the physical construction of the sound sequence output 122, so long as the computing device 110 is capable of presenting sound sequences to the user.
In a preferred embodiment, the user directives and information input 123 might include a user input of any type coupled to the computing device 110, and is capable of receiving messages from the user on behalf of the computing device 110. For example, the user directives and information input 123 might include a touch panel screen, a keyboard, a pointing device, or a remote control such as used for viewing television or movies.
In a preferred embodiment, the user directives and information output 124 might include a user output of any type coupled to the computing device 110, and is capable of sending messages to the user on behalf of the computing device 110, e.g., as part of a user interface. For example, the user directives and information output 124 might include any hardware devices for presenting visual screen elements, such as a flat panel screen or a touch panel screen. In a preferred embodiment, the output device 124 is capable of presenting the screen elements in the user interface for using playlists (see
In the context of the invention, there is no particular requirement that either the information input 123 or the information output 124 comprise only a single device. In alternative embodiments, either one or both might include multiple such devices. For one example, the information input 123 might include more than one device, operating in conjunction to provide a combined set of input information. For another example, the information input 123 might again include more than one device, operating instead with distinct degrees of priority, with the effect that one such device might override commands or other input from another. Similarly, the information output 124 might include multiple user interfaces. For one example, the information output 124 might include more than one device, operating in conjunction to provide a combined set of output information; for another example, the information output 124 might include more than one device, operating instead with distinct degrees of priority, with the effect that one user interface might override presentation or other information sent to another.
In the context of the invention, there is no particular requirement that either the information input 123 or the information output 124 include a flat panel screen or a touch panel screen.
For some examples, the information input 123 might receive information from the listener by a wide variety of other techniques, including one or more of:
Similarly, for some examples, the information output 124 might provide information to the listener by a wide variety of other techniques, including one or more of:
In a preferred embodiment, a single hardware device might include both the user directives and information input 123 and output 124. For example, a touch panel screen can both receive input from the user and send visual messages to the user.
In the context of the invention, there is no particular requirement that either the information input 123 or the information output 124 are hardware devices or have specific hardware interfaces. For example, the information output 124 might include a server for an HTTP protocol (or one like it, such as SHTTP), and might be accessed using any web browser, FTP client, WSDL application, and the like.
In a preferred embodiment, the external messages input 125 might include an input of any type coupled to the computing device 110, and is capable of receiving external messages on behalf of the user. For example, the user command input 125 might include a connection to the Internet.
In a preferred embodiment, the external messages output 126 might include an output of any type coupled to the computing device 110, and is capable of sending external messages on behalf of the user. For example, the user command output 126 might include a connection to the Internet.
The communication link 130 is coupled to the computing device 110, at a first end, and to an external communication network, such as the Internet, at a second end. In a preferred embodiment, the communication link 130 transfers messages between the computing device 110 and any external devices with which the computing device 110 communicates, including the (optional) metadata database 140.
In a preferred embodiment, the system 100 includes an (optional) metadata database 140. The metadata database 140 includes elements as shown in the figure, including at least the following:
In a preferred embodiment, the system 100 would obtain information, including metadata about songs and playlist elements, from the stored metadata 143, using the database interface 141. The database interface 141 might be as simple as a memory register (with the database 140 accordingly being as simple as a reserved location in a memory), or might be a more complex element, such as a client/server query-and-response technique (with the database 140 accordingly possibly being a more complex element, such as an SQL database).
In a preferred embodiment, the system 100 would cache at least some information from the database 140 for rapid reference, particularly if the stored metadata 143 is located at a relative distance or using the technique in which there is a relative cost to re-obtain that information. In some embodiments, the system 100 might maintain a cache 142 of stored metadata for those playlists and playlist elements currently being presented, or about to be presented, to a listener.
In a preferred embodiment, the metadata database 140 might include a relatively remote set of stored metadata 143, such as maintained using mass storage on a logically or physically remote server. However, in the context of the invention, there is no particular requirement that stored metadata 143 is remote. In some alternative embodiments, the system 100 may include a relatively complete set of metadata for all songs in the listener's library, downloaded or otherwise maintained in storage for those songs when those songs are incorporated into that library. In some other alternative embodiments, the system 100 may dynamically generate metadata in response to information available from the song itself.
As described in further detail below, metadata associated with each song might include the artist, associated other titles, cover art, genre, physical box of originating media, physical side of originating media, publisher, song length, title, track location or track number, year of release, and the like, as well as any other information convenient or useful for identifying songs besides actually listening to them.
A user interface 200 includes elements shown in the figure, including at least the following:
An active portion 210 of the screen includes a region selected for use by the user interface 200. In a preferred embodiment, the active portion 210 includes as much of the screen as can be allocated to the user interface 200. In a preferred embodiment in which the system 100 is embodied in a home theater or home entertainment system, the active portion 210 includes substantially all the screen.
An (optional) set of descriptive system information 220 (e.g., a logo) includes information of descriptive interest to the user, but not necessarily of specific functional use as part of the user interface 200. In a preferred embodiment, the set of descriptive system information 220 includes a logo for Kaleidescape™, a manufacturer of the system with an office in Mountain View and assignee of this application.
A set of generic menus 230 includes a set of controls that might be manipulated by the user to effect functions of generic value in playing sound sequences. In a preferred embodiment, these might include one or more of the following:
A set of song play information 240 (e.g., dynamic sound frequency, duration, volume, bitrate of data encoding, any other information relating to performance aspects of the song, and the like) includes information relating to how much time a song will take to play, how long the song has been playing and what percentage of it has been played, and how long the song has left to play and what percentage of it has yet to be played. In a preferred embodiment, this information is updated frequently, with the visual effect that a progress bar changes color over time from the beginning to the end of the song.
A set of structured playlist information 250 includes a list of those songs and those collections of songs that have (1) been played so far, (2) are currently playing, and (3) are queued for future play. In a preferred embodiment, this information is updated at the beginning of each played song so that the designation of queued songs and playlist elements as past, current, or future is accurate.
Metadata
In a preferred embodiment, metadata associated with each song might include the artist, associated other titles, cover art, genre, physical box of originating media, physical side of originating media, publisher, song length, title, track location or track number, year of release, and the like, and one or more of the following:
In a preferred embodiment, each element in a structured playlist is included within one of the current 252, future 253 or past 254 structured playlist information sets. Each structured playlist element includes information sufficient for the user to refer to it. If that element is a collection of songs, then the information may include descriptive information about the collection, e.g., album artist, title and cover art, or a description of a filter rule selecting that collection. In a preferred embodiment, the current song information 251 includes information sufficient for the user to refer to it, e.g., song artist, title and corresponding cover art.
The structured playlist information 250 is also described in further detail below.
Structured Playlist Controls
A set of structured playlist controls 260 includes a set of controls that might be manipulated by the user to effect functions relating to changing the visualization of the structured playlist information 250, playing songs in structured playlists, and changing the structure of a structured playlist. In a preferred embodiment, this might include one or more of the following:
In a preferred embodiment, a representation of the structured playlist is responsive to an ordering of those elements of the structured playlist selected for performance. For example, it might occur, either because the listener has selected songs to be played in a particular order, or because the listener has selected songs to be played randomly, that a representation of the next song is not available within the active screen. In such cases, the system 100 scrolls, slides, or otherwise alters its presentation of the structured playlist so that the next song becomes available within the active screen. This might cause other songs to be become unavailable. In embodiments where the system 100 scrolls or slides between the most recent song and the next song, those songs which are intermediate are represented, however briefly, while the scrolling or sliding is performed.
After reading this application, those skilled in the art would recognize that this scrolling or sliding technique is applicable independently of the nature of the presentation of the song, whether that representation is text, a simple icon, a pictoral element, a cover art element, and the like. Similarly, this scrolling or sliding technique is also applicable if the song to be performed is in fact a visual performance, such as a slide, a slide show, a motion picture, an animation, and the like.
The structured playlist controls 260 are also described in further detail below.
In a preferred embodiment, the structured playlist information 250 and the structured playlist controls 260 are presented in a designated portion of the screen.
As described above, the structured playlist information 250 includes information regarding a set of songs or collections of songs. The designated portion represents each structured playlist element, whether an individual song or a collection of songs, as an individual frame within that designated region.
This has the effect that the designated portion represents the structured playlist information 250 as a sequence of frames, each frame indicated as being separate from the others. In a preferred embodiment, each frame is separated from its neighboring frames by a separator, and the frames are disposed in an order with top-to-bottom representing past-to-future selections. However, in the context of the invention, there is no particular requirement for this particular ordering; the scope and spirit of the invention allows for a large set of possibilities, of which this is only one example.
2D and Other Nonlinear Formats
In some embodiments, frames (either within a playlist or otherwise) might be disposed in a 2D format, such as for example a 2×2 array or a 2×3 array of playlist elements, or even a non-rectilinear arrangement such as a 2-3-2 hexagonal arrangement. As described below, the frame representing the current structured playlist element may have a graphic design that clearly distinguishes it among the sequence of frames.
It might occur that not all song icons of the current structured playlist element would fit into the 2D formatted array. In such cases, the system 100 might select, in addition or in lieu of distinguishing the current structured playlist element, to rearrange the song icons to place the current song icon in a particular position within the 2D formatted array (such as, the upper left corner). The system 100 might also select, in addition or in lieu of distinguishing the current structured playlist element, to re-select a new set of song icons to represent the current structured playlist.
In a preferred embodiment using such techniques, the system 100 uses a 2×2 or 2×3 array, highlights the current structured playlist element, and pseudo-randomly selects one or two of the selected song icons, other than the song icon for the “next” song, to be changed. In such embodiments, the system 100 causes the song icons to be changed to cross-fade, one fading out while the other fades in, using a 6 second linear luminosity cross-fade. In alternative embodiments, the system 100 includes scrolling invocation elements, such as a sliding bar, up/down arrows, and the like, with the effect that the listener might direct the system 100 to present more such song icons not already shown.
In a preferred embodiment using lines of text or similar linear up/down or right/left presentation, the system 100 also includes scrolling invocation elements, with the that the listener might direct the system 100 to present more such song icons not already shown. Those more such song icons might be icons for songs already played, songs scheduled to be played, and the like.
Distinguishing Selected and Playing Songs
In a preferred embodiment, the frame representing the current structured playlist element may have a graphic design (e.g., a distinctive border or a color background) that clearly distinguishes it among the sequence of frames. Moreover, the graphic design, such as the distinctive border or color background, might be distinct in response to the type of the current structured playlist element.
This has the effect that the user can easily see each separate structured playlist element modeled as a unitary item, while simultaneously allowing the user to easily see the concrete structure of each such separate structured playlist element. In general, the representation of a playlist element might be responsive to its appearance as a physical object, or at least to an iconic object widely representative of that physical object. As described below, single songs might look like single records, albums might look like albums with cover art and track listings and track numbering, mix albums might look like lists. A wide and varied set of distinct representations are possible:
After reading this application, those skilled in the art would realize that these cases are merely exemplary, and that a wide variety of possibilities remain within the scope and spirit of the invention.
Similarly, this has the effect that the user can easily select each separate structured playlist element as a unitary item, while simultaneously allowing the user to easily select only a portion of a particular structured playlist element as a separate item. For example, in cases in which a particular structured playlist element includes a collection of songs, the user can easily select (1) the entire collection of songs, (2) a particular one or more of that collection, without selecting the entire collection, (3) the entire collection of songs, except for a particular one or more of that collection, e.g., “all songs except these two”.
In a preferred embodiment, in the case that the user selects only a portion of a particular structured playlist element as a separate item, those songs that are selected are presented in a different manner from those songs that are not selected. For one example, in the case in which a particular structured playlist element includes a collection of songs, and the user selects only some of those songs, (1) the song actually being played would be presented in a first manner, e.g., in a highlighted blue background, (2) those selected songs which are not being played would be presented in a second manner, e.g., in an un-highlighted blue background, and (3) those songs which were not selected for play would be presented in a third manner, e.g. in an un-highlighted grayed-out background.
As each current song ends playing, the system starts the next song and alters the status of any relevant structured playlist elements as past, current and future. The method for determining the next song depends on the ordering of the structured playlist and is described in more detail with respect to
The structured playlist controls 260 allow the user to change the visualization and structure of the structured playlist, even during play. This has the effect that the user is able to alter the structured playlist information 250, at least as follows:
The user is able to alter the status of one or more elements in the structured playlist, such as designating them to be played or designating them not to be played, in the future. In the case that the elements in the structured playlist have been marked for random or pseudo-random play, or for repeated play, that altered status would apply to all songs so marked, either after the current song is completed or immediately (that is, interrupting the current song).
In a preferred embodiment, when the user adds one or more elements to the structured playlist, the user is given at least one of these options:
Elements Essentially without End
In some embodiments, it might occur that a playlist element is essentially without a definite end, such as in the case that the playlist element is to “repeat this song” indefinitely, or in the case that the playlist element is to “play a random selection from this (very large) collection”. As a typical example, if the listener chooses a playlist element that specifies playing a random item of classical music, this playlist element would be essentially without a definite end, given the very large number of possible classical music selections, and even if the system 100 were to stop that playlist element after having played each classical music element once.
In such embodiments, the listener or the system 100 might provide a number of ways in which the playlist element that is essentially without end would end. Just a few of the many different possibilities are:
After reading this application, those skilled in the art will recognize that the possibilities for other and further techniques for application to playlist elements that have essentially no definite end are wide and varied. The examples described above are only exemplary and do not limit the scope and spirit of the invention.
After reading this application, those skilled in the art will recognize that application of the user interface 200 to structured playlists 300 is broad and general; The embodiments described above are only exemplary and do not limit the scope and spirit of the invention.
A structured playlist 300 (conceptually) includes an ordered list of at least one or more of the following types of list elements:
A structured playlist 300 might include an individual song 310. A structured playlist 300 might include one or more elements 320, each of which includes an ordered collection of songs 310. This has the effect that a structured playlist 300 might include one or more of the following:
After reading this application, those skilled in the art would see that the concept of a structured playlist 300 is quite general, and includes a broad range of possible collections of elements, each either an individual song 310 or a collection 320 thereof.
A method 410 includes techniques for presenting a visualization of structured playlists. This first method 410 includes flow points and steps shown in the figure, including at least the following:
A flow point 410A defines a beginning of the method 410.
At a step 411, the method 410 provides a visualization of a structured playlist, including a set of structured playlist information 250 and a set of structured playlist controls 260 as described above.
A visualization of one or more structured playlists, or particular playlist elements therein, might be responsive to the (optional) metadata database 140. For example, the metadata database 140, in conjunction with demographic information about the listener, might have several visual images to associate with a particular song, of which one or more are selected in response to a theme preferred by the listener.
At a step 412, the method 410 receives a set of user directives and information, as described above with respect to the user directives and information input 123 and the user directives and information output 124. In a preferred embodiment, the user directives and information include one or more of the following:
At a step 413, the method 410 presents a revised visualization of a structured playlist 300, in response to a result of the previous step. In a preferred embodiment, the revised visualization includes one or more of the following:
As noted above, a visualization of one or more structured playlists, or particular playlist elements therein, might be responsive to the (optional) metadata database 140. The revised visualization might similarly be responsive to the (optional) metadata database 140.
A flow point 410B defines an end of the first method 410.
A second method 420 includes techniques for presenting songs in playlists. This second method 420 includes flow points and steps shown in the figure, including at least the following:
A flow point 420A defines a beginning of the method 420.
At a step 421, the method 420 presents a current song in a structured playlist 300. As described above, a set of song play information 240 is updated frequently during presentation of the current song.
At a step 422, the method 420 finds a new current song and a new current structured playlist element. In a preferred embodiment, this step includes the following sub-steps:
As described above, some structured playlist elements will have their status logically altered from future to current and from current to past within the structured playlist information 250.
A flow point 420B defines an end of the second method 420.
A third method 430 includes techniques for changing the structure of structured playlists. This third method 430 includes flow points and steps shown in the figure, including at least the following:
A flow point 430A defines a beginning of the method 430.
At a step 431, the method 430 presents a set of structured playlist controls 260, as described above.
At a step 432, the method 430 presents a current structured playlist 300, as described above.
At a step 433, the method receives a set of user directives and information regarding changing the structured playlist. In a preferred embodiment, the user directives and information include one or more of the following:
In a preferred embodiment, changes performed requested at this step 433 might be limited by the logical restriction of not changing the structure of elements in the structured playlist that have already been played.
At a step 434, the method 430 presents a revised structured playlist 300, as described above.
A flow point 430B defines an end of the third method 430.
This invention should be read in the most general possible form. This includes, without limitation, the following possibilities included within the scope of, or enabled by, the invention.
After reading this application, those skilled in the art would see the generality of this application.
This application includes the following technical appendices. These documents form a part of this disclosure, and are hereby incorporated by reference as if fully set forth herein.