AUDIO PREVIEW OF MUSIC

Abstract
Systems, methods, and machine-readable media are disclosed for providing an audio preview of songs and other audio elements. In some embodiments, the electronic device can provide a user-controllable pointer scrollable through various categories, such as different genres or artists. Responsive to each movement of the pointer, the electronic device can select a song from the pointed-to category and can play a portion of the selected song. In other embodiments, music groups can be defined, where each music group includes songs that go well together. The electronic device can play, in succession, a portion of one song from each of the music groups. Responsive to a user selection of a playing portion, the electronic device can create a playlist based on the music group of the selected playing portion.
Description
FIELD OF THE INVENTION

This is directed to an application for providing a preview of audio elements, such as songs.


BACKGROUND OF THE DISCLOSURE

Today's electronic devices, such as desktop computers and portable music players, are capable of storing a large amount of media. For example, users commonly maintain large collections of music on their electronic devices.


Because music collections may be expansive, locating songs that suit a user's current mood may be difficult. To find music of interest, users often initiate a shuffle mode to randomly play songs, skipping songs that are not of interest. Alternatively, users may create playlists containing songs that the user expects to enjoy when played together and when in certain frames of mind. However, only if a user happens to have a playlist suitable for the user's current mood would such a feature be useful.


SUMMARY OF THE DISCLOSURE

Systems, methods, and machine-readable media (e.g., computer-readable media) are disclosed for providing an audio preview of music on an electronic device, such as a portable media player (e.g., Apple's iphone or ipod). For simplicity, an audio preview of various songs provided in accordance with the principles of the invention may sometimes be referred to as a “scan preview.” The scan preview may, among other things, allow users to browse a large number of songs quickly, enable users to easily and effectively locate a particular song from a large collection of songs, and may enable users to identify songs and create playlists on-the-fly that suit the user's current mood.


In some embodiments of the invention, a scan preview can involve successively playing portions of songs (or “snippets”) from different categories or music groups. This way, a user can experience different types of songs to determine which type suits the user's current mood, for example. The different categories may be different genres, artists, albums, release dates, download dates, or song speeds (e.g., by beats per minute (BPM)). The electronic device providing the scan preview may play a snippet of one song in a category before moving to the next category, or may play snippets from multiple songs (e.g., 2, 5, 10, or 25 songs) in the same category before moving to the next category. In some embodiments, the electronic device may play snippets of songs until a user selection of a song is received, at which time the electronic device can take any of a variety of suitable actions (e.g., create a playlist based on the selected song).


In some embodiments, a user can control the progression of the song snippets in the scan preview. For example, the user can control the length of each snippet that is played or the category of music that is previewed. In some embodiments, to provide user control, the electronic device can provide a user-controllable pointer. The user-controllable pointer may be scrollable through the different categories. For example, the categories may be distributed along a sliding bar, and the user may move the pointer with respect to the sliding bar to select a particular category. The electronic device can determine the position of the pointer, identify one of the categories based on the current position, and select and play a portion of a song in the identified category. To change the song being previewed, the user can select a different category using the pointer. Upon detecting movement of the pointer, the electronic device can select and play a portion of a different song in the newly selected category.


In some embodiments, the user-controllable pointer may be able to scroll through multiple positions associated with the same category. For example, the electronic device can provide a sliding bar having multiple positions associated with the same category, or may provide a different graphical representation of the category. When the user-controllable pointer is at a first position with respect to the sliding bar, the electronic device may play a portion of a first song in the category. The user may move the pointer to preview a different song. Upon detecting the pointer's movement with respect to the sliding bar, the electronic device may select a second song in the same category. By allowing a user to preview multiple songs in the same category, the user is given ample opportunity to determine whether songs of that category are currently of interest.


Optionally, the electronic device may select the second song at random. As used herein, selecting a second element “at random” or “randomly” refers to choosing an element that is not necessarily adjacent to the first element. The term is not intended to suggest pure randomness or even pseudo-randomness. For example, here, the electronic device can select any song in the same category, and not just the next song in the user's music library. A shuffle mode may be one example of a technique for randomly selecting songs.


In some embodiments, a scan preview may progress between song snippets automatically without user input. For example, an electronic device can define several music groups, where each music group includes a plurality of songs. In some embodiments, each music group may include songs that a server, for example, determines are most suitable to be played with one another. Groups of this nature may be referred to sometimes as “seed-generated” clusters, because a server (or other electronic device) may use one song as a seed to identify other songs that belong in the same music group. Once the music groups are defined, the electronic device can play, in succession, a portion of one song from each of the music groups. During the scan preview, the user can select a song that is playing, and the electronic device can, for example, create a playlist that includes songs related to the music group of the selected song. For example, the playlist can include some or all of the songs in that music group.





BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with accompanying drawings, in which like reference characters refer to like parts throughout, and in which:



FIG. 1 is a schematic view of a client-server data system configured in accordance with an embodiment of the invention;



FIG. 2 is a schematic view of an electronic device configured in accordance with an embodiment of the invention;



FIGS. 3-5 are illustrative display screens showing a scan preview of music provided in accordance with various embodiments of the invention;



FIG. 6 shows an illustrative electronic device providing a user interface for initiating a scan preview of music configured in accordance with an embodiment of the invention;



FIG. 7 is a flowchart of an illustrative process for initiating different types of scan previews in accordance with an embodiment of the invention;



FIG. 8 is a flowchart of an illustrative process for providing a scan preview of music using a user-controllable pointer in accordance with an embodiment of the invention;



FIG. 9 is a flowchart of an illustrative process for providing a scan preview of music by automatically iterating through portions of songs in different music groups in accordance with an embodiment of the invention; and



FIGS. 10 and 11 show an example of a scan preview generated using the process of FIG. 9 in accordance with an embodiment of the invention.





DETAILED DESCRIPTION

Systems, methods, and machine-readable media are provided for providing an audio preview (or “scan preview”) of music.



FIG. 1 is a schematic view of illustrative client-server data system 100 configured in accordance with the principles of the invention. Data system 100 can include server 102 and client device 104. In some embodiments, data system 100 can include multiple servers 102, multiple client devices 104, or both multiple servers 102 and multiple client devices 104. To prevent overcomplicating the drawing, only one server 102 and one client device 104 are illustrated.


Server 102 may include any suitable types of servers that can store and provide data to client device 104 (e.g., file server, database server, web server, or media server). Server 102 can store media and other data (e.g., metadata associated with the media), and server 102 can receive data download requests from client device 104. For example, server 102 can receive requests to obtain music, such as one or more songs. Responsive thereto, server 102 can locate and provide the requested songs as well as metadata associated with the songs (e.g., seed-generated information, genre, artist, album, album cover art, release date, BPM information).


In some embodiments, server 102 can obtain and process data from one or more client devices 104. For example, server 102 can collect information on playlists created by users of various client devices 104. Using the collected information, server 102 can determine which songs are commonly grouped or played with one another. Upon request by a particular client device 104, server 102 can use this information to create playlists from the songs stored on the particular client device 104 and can provide the created playlists to client device 104. This feature may sometimes be referred to as the “seed-based clustering” feature, and the music groups created by this feature may sometimes be referred to as seed-generated clusters, regardless of whether a seed is actually used to create the clusters. That is, it should be understood that server 102 can create playlists or music groups using any suitable technique, including but not limited to seeding each playlist or music group with an initial song.


Server 102 can communicate with client device 104 over communications link 103. Communications link 103 can include any suitable wired or wireless communications link, or combinations thereof, by which data may be exchanged between server 102 and client 104. For example, communications link 103 can include a satellite link, a fiber-optic link, a cable link, an Internet link, or any other suitable wired or wireless link. Communications link 103 may enable data transmission using any suitable communications protocol supported by the medium of communications link 103. Such communications protocols may include, for example, Wi-Fi (e.g., a 802.11 protocol), Ethernet, Bluetooth (registered trademark), radio frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, TCP/IP (e.g., and the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, any other communications protocol, or any combination thereof.


Client device 104 can include any electronic device capable of playing audio (e.g., music, podcasts, interviews) to a user and may be operative to communicate with server 102. For example, client device 104 can include a portable media player (e.g., an ipod), a cellular telephone (e.g., an iphone), pocket-sized personal computers, a personal digital assistance (PDA), a desktop computer, a laptop computer, and any other device capable of communicating via wires or wirelessly (with or without the aid of a wireless enabling accessory device).


Referring now to FIG. 2, a schematic view of illustrative electronic device 200 is shown. Electronic device 200 can be a device that is the same or similar to client device 104 (FIG. 1), or can be a device not operative to communicate with a server. Electronic device 200 can include control circuitry 202, memory 204, storage 206, communications circuitry 208, bus 210, input interface 212, audio output 214, and display 216. Electronic device 200 can include other components not shown in FIG. 2, such as a power supply for providing power to the components of electronic device. Also, while only one of each component is illustrated, electronic device 200 can include more than one of some or all of the components.


Control circuitry 202 can control the operation and various functions of device 200. For example, control circuitry 202 can identify songs to play to a user, and can direct audio output 214 to play the identified songs. As described in detail below, control circuitry 202 can control the components of electronic device 200 to provide a scan preview of music in accordance with the principles of the invention. Control circuitry 202 can include any components, circuitry, or logic operative to drive the functionality of electronic device 200. For example, control circuitry 202 can include one or more processors acting under the control of an application.


In some embodiments, the application can be stored in memory 204. Memory 204 can include cache memory, Flash memory, read only memory (ROM), random access memory (RAM), or any other suitable type of memory. In some embodiments, memory 204 can be dedicated specifically to storing firmware for control circuitry 202. For example, memory 204 can store firmware for device applications (e.g., operating system, scan preview functionality, user interface functions, and other processor functions).


Storage 206 can be any suitable type of storage medium offering permanent or semi-permanent memory. For example, storage 206 can include one or more storage mediums, including for example, a hard drive, Flash, or other EPROM or EEPROM. Storage 206 can be used by electronic device 200 to store music, such as a collection of songs, and other media. Storage 206 can store information or metadata associated with the media, such as user-generated or automatically-created playlists, seed-generated clusters and other music groupings, genre, artist, album, album cover art, date, BPM, or any other suitable information for each stored song. In some embodiments, the media and associated information can be obtained from a server, such as server 102 of FIG. 1. Storage 206 can also store any other suitable information, such as preference information (e.g., music playback preferences, scan preview preferences), lifestyle information, exercise information (e.g., obtained from exercise monitoring system), transaction information (e.g., credit card information), subscription information (e.g., for podcasts or television shows), and telephone information (e.g., an address book).


Bus 210 may provide a data transfer path for transferring data to, from, or between control circuitry 202, memory 204, storage 206, communications circuitry 208, and some or all of the other components of electronic device 200.


Communications circuitry 208 can enable electronic device 200 to communicate with other devices, such as to a server (e.g., server 102 of FIG. 1). For example, communications circuitry 208 can include Wi-Fi enabling circuitry that permits wireless communication according to one of the 802.11 standards or a private network. Other wired or wireless protocol standards, such as Bluetooth, can be used in addition or instead.


Input interface 212, audio output 214, and display 216 can provide a user interface for a user to interact with electronic device 200. Input interface 212 may enable a user to provide inputs and feedback to electronic device 200. Input interface 212 can take any of a variety of forms, such as one or more of a button, keypad, dial, click wheel, touch screen, or accelerometer. Audio output 214 provides an interface by which electronic device 200 can provide music and other audio elements to a user. Audio output 214 can include any type of speaker, such as computer speakers or headphones. Display 216 can present visual media (e.g., graphics such as album cover, text, and video) to the user. Display 216 can include, for example, a liquid crystal display (LCD), a touchscreen display, or any other type of display.


Electronic device 200 can provide a scan preview of various audio elements to a user. For simplicity, the embodiments of the invention will be described in terms of providing a scan preview of songs. However, this is not intended to be limiting, and it should be understood that the scan preview may be used with other types of audio elements, such as audio interviews or podcasts.


A scan preview provided in accordance with the principles of the invention can involve playing portions, or snippets, of songs in succession to provide the user with a preview of each song. The songs selected for the scan preview may be from a variety of categories, such as songs in different genres, from different artists, from different albums, from different seed-generated clusters, released in different time periods, or downloaded by the user at different times or seasons. This way, the user can preview different types of music to determine which type is currently of interest.


In some embodiments, electronic device 200 can allow the user to control the progression of the scan preview. For example, electronic device 200 may enable a user to control the length of time that each song snippet is played or to control which category of music to preview. FIGS. 3-5 show illustrative display screens that can be provided by various embodiments of electronic device 200. Accordingly, FIGS. 3-5 will be described with reference to electronic device 200 and its components.


Turning first to FIG. 3, illustrative display screen 300 is shown that can be provided by electronic device 200 during a user-controlled scan preview. More particularly, electronic device 200 may provide display screen 300 while playing one of the songs in the scan preview. In some embodiments, electronic device 200 can display album cover 310 for the album associated with the song currently being previewed. For example, if the current song in the scan preview is from hip-hop artist KanYe West's Graduation album, the cover art for Graduation can be displayed as album cover 310.


Electronic device 200 can provide a sliding bar 320 with pointer 322, which together provide additional information on the song being previewed. In particular, sliding bar 320 may be able to slide right or left with respect to pointer 322 such that pointer 322 can point to any of a number of positions along bar 320. Each of the positions on sliding bar 320 may be associated with a different category. In this embodiment, categories 324 may be different genres (e.g., pop, hip-hop, rap, electronic, reggae, country, blues, punk, grunge, and alternative). Positions 328, for example, can be associated with the hip-hop genre. In some embodiments, electronic device 328 might only display a subset of categories 324 at a given time due to, for example, size constraints on display screen 300.


At any given time, pointer 322 can point to a particular position along sliding bar 320. The position may be associated with the genre of the song currently being previewed. For example, while electronic device 200 plays a hip-hop song from KanYe West, pointer 322 may point to one of positions 328 associated with the hip-hop genre. Because the songs are organized along bar 320 based on genre, the scan preview illustrated in FIG. 3 may sometimes be referred to as a genre-based scan preview.


In some embodiments, pointer 322 may be at a fixed position on display screen 300 (e.g., centered), and sliding bar 320 may be controlled by a user using input interface 212 (FIG. 2). Responsive to a rightward user input, electronic device 200 may slide bar 320 towards the right so that pointer 322 points to another one of positions 328 closer to the rap genre. Responsive to a leftward user input, electronic device 200 may slide bar 320 towards the left so that pointer 322 points to another one of positions 328 closer to the pop genre. As bar 320 is moved, electronic device 200 may display additional categories 324 or genres that the user can scroll though. In some embodiments, if a user scrolls through all of the genres listed along bar 320, electronic device 200 can provide the same genres again as if bar 320 were circular.


The disclosed embodiments of the invention will sometimes be described in terms of moving or controlling pointer 322 instead of bar 320. This is merely to simplify the description of the disclosed embodiments. In some embodiments, electronic device 200 may fix the positions and genres on bar 320 and may allow a user to change the location of pointer 322 along bar 320.


In response to a user's request to move pointer 322 with respect to bar 320, electronic device 200 can select the next song to play in the scan preview. This next song may be in the same or in a different genre than the current song depending on the position of pointer 322. For example, as the user moves pointer 322 rightwards towards the rap genre, electronic device 320 may initially select hip-hop songs for the scan preview until pointer 322 passes into the area of bar 320 associated with rap songs, at which time electronic device 200 may select songs for the scan preview that are in the rap genre.


Each time a new song is selected by electronic device 200 for the scan preview, electronic device 200 can replace album cover 310 with the cover art associated with the new song's album. In addition, electronic device 200 can play a portion of this new song until, for example, a user input is received to reposition pointer 322. Thus, by moving pointer 322 slowly or quickly, or by starting or stopping its movement, a user can control the amount of time that each song is played in the scan preview. This can provide a similar effect as turning the knob of a radio dial. Also, by moving pointer 322 towards or away from particular genres, the user can control the category of songs being played in the scan preview.


Electronic device 200 may have a large number of songs in one or more of the genres. It may therefore be impractical to provide a preview of every song in a particular genre before pointer 322 is able to point to another genre. In some embodiments, electronic device 200 may assign a predetermined number or a maximum number of positions along bar 320 for each genre. For example, electronic device 200 can provide 10 positions for each genre—then, at most 10 songs can be previewed in one genre (e.g., hip-hop) before songs from another genre (e.g., rap) are selected. Electronic device 200 may use any suitable number other ten (e.g., 1, 5, 20, or 25).


In some embodiments, electronic device 200 may display a number of ticks 326 along bar 320, which may or may not be equivalent to the number of positions that pointer 322 can point to. The number of ticks 326 for each genre can indicate the number of songs available in that genre. In some embodiments, the genres can be spaced evenly along bar 320 and the density of ticks 326 can indicate the number of songs available in each genre. For example, in FIG. 3, electronic device 200 indicates using ticks 326 that more hip-hop songs are available on device 200 than pop or rap songs. This way, even if electronic device 200 provides the same number of snippets for each genre, a user is still able to visually distinguish between availability of songs from each genre. In other embodiments of the invention, ticks 326 may be evenly spaced instead of categories 326.


Because only a few of the songs in a particular genre may be selected for the scan preview in each rotation, electronic device 200 may need a mechanism for choosing which songs to preview. Electronic device 200 can select songs using any suitable approach. In some embodiments, electronic device 200 can select the songs randomly. This way, songs that are previewed back-to-back are less likely to be from the same artist or from the same album, and the user can sample a variety of songs in the same genre. In some embodiments, the songs in a genre can be selected according to a random shuffle mode, where the same song is not selected until all other songs in the same genre have been selected. In these embodiments, electronic device 200 may provide previews of different songs not only while pointer 322 scans through a particular genre a first time, but also in subsequent scans through that genre (e.g., when the user circles through all of the other genres and eventually returns to this genre).


Electronic device 200 can play any suitable portion of a selected song as an audio preview. For example, electronic device 200 can start the preview at the beginning of the song. In other embodiments, electronic device 200 may start the preview at its most famous part, at the chorus of the song, or at a part most representative of the overall song or of the feeling/mood of the song. The information indicating where to begin the preview may be a time stamp, and may be part of the metadata associated with the song. In some embodiments, electronic device 200 may receive the time stamp from a server, such as server 102 (FIG. 1).


Electronic device 200 can be operative to receive a user selection of a song in the scan preview. For example, electronic device 200 may interpret a user input from input interface 212 during the preview of a particular song as a selection of that particular song. Electronic device 200 can take a variety of different actions responsive to a user selection of a song. For example, electronic device 200 can use the selected song to generate a playlist of similar or related songs. To create the playlist, in some embodiments, electronic device 200 can select songs from the same genre as the selected song (since bar 320 is organized by genre), or electronic device 200 can use the selected song as a seed to create a seed-generated cluster of songs that are related or go well together.


In other embodiments, responsive to the user selection of a song, electronic device 200 can provide a menu of options related to the selected song (e.g., a menu with songs in the same genre, from the same artist, or from the same album as the selected song). In still other embodiments, electronic device 200 can filter songs stored on electronic device 200 by the genre of the selected song, and can enable the user to further filter the remaining songs by another attribute. For example, responsive to the user selection of a song from the genre-based scan preview of FIG. 3, electronic device 200 can provide an artist-based scan preview to enable a user to filter songs in the selected genre by artist.



FIG. 4 shows electronic device 200 providing illustrative display screen 400 as part of an artist-based scan preview. The artist-based scan preview may have any of the features or functionalities described above in connection with the genre-based scan preview, except that categories 424 are organized based on artist instead of genre. More particularly, electronic device 200 may display individual letters in alphabetical order along sliding bar 420. The individual letters may be used to order artists by name. For example, in FIG. 4, pointer 422 may point to a position associated with the letter J, and electronic device 200 may provide a preview of a song from John Legend (or from another artist whose first or last name begins with the letter J). A user can then control the position of pointer 422 with respect to sliding bar 420 to obtain previews of songs from different artists.


As described above, in some embodiments, electronic device 200 may provide an artist-based scan preview responsive to a user selection from a genre-based scan preview. For example, electronic device 200 may provide display screen 400 (with album cover art for a John Legend album) in response to a user selection of an R&B song by John Legend while pointer 322 (FIG. 3) is pointing to the R&B genre. In these embodiments, the artist-based scan preview may allow the user to preview songs in the R&B genre and to select a previewed song from an R&B artist. The electronic device may take any suitable action responsive to the user selection of the song, such as creating a playlist of R&B songs from that artist. By allowing the user to filter songs using multiple criteria (e.g., genre and artist), the user can locate one or more songs of particular interest, or can fully define the type of songs suitable for the user's current mood. This form of multi-level or multi-attribute scan preview may sometimes be referred to as a hierarchical scan preview.



FIGS. 3 and 4 show electronic device 200 providing a genre-based and artist-based scan preview, respectively. In other embodiments of the invention, an electronic device 200 may provide a scan preview that organizes the songs into categories based on another music attribute, such as based on a seed-generated cluster, album, release date, date downloaded, song speed (e.g., BPM), etc. Also, in some embodiments, the electronic device may provide a hierarchical scan preview using attributes other than or in addition to by genre and then by artist.


Referring now to FIG. 5, illustrative display screen 500 of a genre-based scan preview is provided in accordance with another embodiment of the invention. In some embodiments, electronic device 200 (FIG. 2) may provide display screen 500 during a genre-based scan preview instead of display screen 300 (FIG. 3). In other embodiments, electronic device 200 may provide display screen 500 while electronic device 200 is held in a landscape orientation and may provide display screen 300 while electronic device 200 is held in a portrait orientation.


Display screen 500 may have any of the features and functionalities of display screen 300 described above in connection with FIG. 3. For example, display screen 500 can include sliding bar 520, which can move with respect to stationary pointer 522 responsive to a user input, for providing the user with control over the progression of the genre-based scan preview. Also, display screen 500 can include album cover 510 corresponding to the song currently being previewed. Album cover 510 can be displayed in the foreground and in a central position. Electronic device 200 can display additional album covers 512 (including album cover 514) in the background, such as in a manner that allows foreground album covers 512 to appear far away compared to background album covers 512.


Background album covers 512 may be associated with potentially upcoming songs in the scan preview. For example, responsive to a user input to move pointer 522 left one position, electronic device 200 may change the song being played in the scan preview from a hip-hop song associated with album cover 510 to a different hip-hop song associated with album cover 514 (immediately to the left of album cover 510). Visually, album covers 510 and 512 may each shift left one position such that album cover 514 replaces album cover 510 as the cover art displayed in the prominent foreground position, and a new album cover is shifted into the leftmost position. Electronic device 200 may respond similarly to a user input to move pointer 522 to the right.


Electronic device 200 may provide a visual preview of potential upcoming songs in the scan preview using any suitable technique, including but not limited to the foreground/background technique shown in FIG. 5. For example, in some embodiments, electronic device 200 may display album covers 512 in an arrangement referred to sometimes as cover flow. In other words, album covers 510 and 512 may be displayed to emulate the flipping mechanism of a jukebox.



FIGS. 3-5 show illustrative display screens that may be provided during a user-controllable scan preview in accordance with various embodiments of the invention. The pointer in each of these described embodiments may be controlled using input interface 212, which as described above, may take on any of a variety of different forms. For example, if input interface 212 includes a click wheel, electronic device 200 may interpret clockwise and counterclockwise inputs as requests to move the pointer, and a click as a user selection of previewed song. In other embodiments, input interface 212 may include a touchscreen, and electronic device 200 may interpret dragging motions as requests to move the pointer, and a tapping motion as a request to select a previewed song. In some embodiments, input interface 212 can include an accelerometer, and electronic device 200 can detect a clockwise or counterclockwise acceleration of electronic device 200 (e.g., achieved by tipping electronic device 200) as requests to move the pointer. Any combination of the above, or any other type of inputs, may used instead to control the scan preview.


It should be understood that display screens 300, 400, and 500 (FIGS. 3-5) are merely illustrative and that electronic device 200 (FIG. 2) may provide any other graphical representation. For example, in some embodiments, electronic device 200 may not display the album cover associated with the song being previewed. In other embodiments, the sliding bar may instead be omitted, and the user-controllable pointer can be overlaid over the album cover. In still other embodiments, a graphical representation other than a sliding bar and pointer can be used to provide and select the different available categories (e.g., a slider, a dial, pop down menu, checkboxes, or radio buttons).


It should also be understood that an electronic device configured in accordance with the invention does not need to provide any visual display or user control of the progression of a scan preview. For example, in some embodiments, an electronic device can play each song in a scan preview for a predetermined amount of time (e.g., 5 seconds, 10 seconds), where each successive song or group of songs are chosen from a different category (e.g., different seed-generated cluster, genre, artist, album, date released, date downloaded, BPM). An automatically-progressing scan preview may have any of the non-visual features described above in connection with FIGS. 3-5. Scan previews that progress automatically will be described in greater detail below in connection with FIGS. 9-11.


A scan preview provided in accordance with the principles of the invention can be initiated using any suitable approach. In some embodiments, a scan preview can be invoked without use of a display. For example, a scan preview can be initiated by pressing a particular button or set of buttons on the user device, or by taking a specific set of actions (e.g., by pressing a button and shaking the electronic device). While any type of scan preview may be initiated in this way, automatically-progressing scan previews may advantageously be initiated using this technique, because use of the display may be avoided throughout the scan preview.


In other embodiments, a scan preview may be initiated from a music menu displayed by an electronic device. FIG. 6 shows illustrative music main menu 800 that can be provided by an electronic device, such as electronic device 200 (FIG. 2). Music main menu 600 can include a list of options, such as option 610 to initiate a scan preview. Responsive to a user selection of scan preview option 610, electronic device 600 may provide any suitable type of scan preview (e.g., a hierarchical scan preview). In some embodiments, electronic device 600 can provide the user with an ability to initiate a scan preview from one or more music submenus. The submenus may be accessible from options 620. Initiating scan previews will be described in greater detail below in connection with FIG. 7.



FIGS. 7-9 are illustrative processes that can be executed by an electronic device (e.g., electronic device 200 of FIG. 2) configured in accordance with the invention. It should be understood that the processes are merely illustrative. Any steps in these flowcharts may be modified, removed, or combined, and any steps may be added, without departing from the scope of the invention.


Turning first to FIG. 7, a flowchart of illustrative process 700 is provided for initiating a scan preview in accordance with an embodiment of the invention. Process 700, in particular, illustrates one way in which different types of scan previews can be initiated by an electronic device. Process 700 starts at step 702 and moves to step 704. At step 704, the electronic device can provide a music main menu, such as a menu similar to menu 600 of FIG. 6. The music main menu can include an option to initiate a scan preview. At step 706, the electronic device determines whether a scan preview has been requested by the user. If a scan preview has been requested, process 700 can move to step 708 or step 710 depending on the particular configuration of the electronic device or on the current settings of the electronic device. At step 708, the electronic device can initiate a seed-generated cluster-based scan preview to identify which music group (e.g., seed-generated cluster) is suitable for the user's current mood. One way in which to implement a seed-generated cluster-based scan preview will be described below in connection with the flow chart of FIG. 9. Alternatively, at step 712, the electronic device can initiate a hierarchical scan preview. One way in which the electronic device can implement a hierarchical scan preview will be described below in connection with the flowchart of FIG. 8. From step 708 or step 712, process 700 can move to step 710 and end.


Returning to step 706, if the electronic device instead determines that a scan preview has not been requested from the music main menu, process 700 continues to step 714. At step 714, the electronic device determines whether the user has selected to filter music by attribute (e.g., using options 620 of FIG. 6), such as by genre, artist, time period (e.g., year released or year downloaded), or song speed (e.g., BPM). If not, process 700 moves to step 710 and ends. Otherwise, process 700 continues to step 716, where the electronic device provides a music submenu for the selected attribute. For example, if the user opts to filter by genre, the electronic device can provide a genre submenu listing different genres.


Then, at step 718, the electronic device can determine whether a scan preview has been requested from the attribute submenu. If no scan preview is requested, process 700 can move to step 710 and end. Otherwise, at step 720, the electronic device can initiate an attribute-based scan preview (e.g., a genre-based from a genre submenu or an artist-based scan preview from an artist submenu). In some embodiments, the electronic device may provide an attribute-based scan preview using some of the steps of the flowchart in FIG. 8, described below. After completing step 720, process 700 may move to step 710 and end.



FIG. 8 is a flowchart of illustrative process 800 for providing a scan preview using a user-controllable pointer. Some of the steps in process 800 may be executed to provide an attribute-based scan preview and may therefore be a more detailed view of step 720 of process 700 (FIG. 7). Some of the steps in process 800 may be executed to provide a hierarchical scan preview and may therefore be a more detailed view of step 712 of process 700.


Process 800 begins at step 802. At step 804, the electronic device can provide a pointer that is scrollable through various categories (e.g., different genres, artists, release date, download date, or song speed (e.g., BPM)). For example, the electronic device can display the categories along a sliding bar, and the pointer may be controllable by the user with respect to the sliding bar. Then, at step 806, the electronic device can determine a current position of the pointer, and at step 808, the electronic device can identify a category based on the current position. For example, the electronic device can determine which category the pointer is currently pointed to along the sliding bar.


Process 800 can then continue to step 810, where the electronic device selects a song in the identified category. In some embodiments, the song may be selected at random (e.g., using a shuffle feature). Then, at step 812, the electronic device may play a portion of the song. The portion may be selected to be representative of the entire song, or may, for example, be a distinguishable or most famous part of the selected song.


Continuing to step 814, the electronic device can determine whether the user-controllable pointer has been moved by the user. If so, process 800 can return to step 806 so that the electronic device can determine the new current position of the pointer. The electronic device may then, at step 808, identify that the category for the new current position is the same or different from the previously selected category. The category may be the same, for example, if the sliding bar includes multiple positions for the same category, and the user has moved the pointer between two such positions. In this scenario, the song selected at step 810 will be in the same category as the last song played. In some embodiments, the new song may be selected at random so that the new song is not necessarily the next song in the user's music library.


Returning to step 814, if the electronic device determines that the pointer has not be moved by the user, process 800 can continue to step 816. At step 816, the electronic device can determine whether the song playing at step 812 has been selected by the user. If the portion of the selected song completes without being selected by the user, process 800 can return to step 810, and another song in the same category can be chosen. Alternatively, the electronic device may continue to play the song or repeat the same song until the song is selected or until the pointer is moved. Returning to step 816, if the electronic device determines instead that the song playing at step 812 has been chosen by the user, the electronic device can take an action based on the selected song.


Steps 818, 820, and 822 show three different options that the electronic device may take in response to a song selection. The choice of options may be based on the configuration of the electronic device or on the current settings of the electronic device. As one option, at step 818, the electronic device may create a playlist based on the selected song. For example, the electronic device can filter the songs in the user's collection of songs to only those in the same category as the selected song. This option may be used, for example, if the electronic device is executing an attribute-based scan. As another example, the electronic device can use the selected song as a seed for a server to, for example, determine other songs that are suitable to be played with the selected song.


Instead, the electronic device can execute step 820 after the song being previewed is chosen by the user. At step 820, the electronic device can provide a menu of options based on the selected song. For example, the electronic device can provide a list of albums or songs from the same artist as the selected song, which a user can review to identify songs of interest.


As an alternative to step 818 and step 820, the electronic device can execute step 822 and provide the user with the ability to further filter songs based on a different attribute. For example, if the current categories are organized based on different genres, the electronic device can filter the songs down to only those of the selected song's genre. The electronic device can then repeat the steps of process 800 using a different attribute, such as artists in that genre, to further filter the songs based on a particular artist. In some embodiments, the electronic device may execute step 822 when the electronic device is implementing a hierarchical scan preview. After the electronic device executes step 818, step 820, or step 822, process 800 can move to step 824 and end.


Referring now to FIG. 9, a flowchart of illustrative process 900 is shown for providing a scan preview that provides each preview without user input. Process 900 may be one way in which an electronic device can implement the seed-generated cluster-based scan preview of step 708 (FIG. 7), described above.


Process 900 starts at step 902. At step 904, the electronic device can define or identify various music groups. The music groups may be, for example, seed-generated clusters that are defined at a server (e.g., server 102 of FIG. 1) based on processing playlists at a plurality of client devices. The electronic device can then receive information from the server on which songs stored in the electronic device belong in which music group. Each of the music groups may therefore include a subset of the songs stored on the electronic device. In other embodiments of the invention, or depending on how the scan preview is initiated, the electronic device can organize the songs stored on electronic device into different categories, such as by genre, artist, album, etc.


Then, at step 906, the electronic device can select a song from a first one of the music groups. The song can be selected at random so that, for example, any of the songs in that music group can be selected for previewing. At step 908, the electronic device can play a portion of the selected song. The portion can be any suitable part of the selected song, such as starting at the beginning of the song, or the portion can be representative of the entire song, the most popular part of the song, or a part of the song that is more distinguishable or identifiable about the song. The portion may be of a predetermined length (e.g., 3 seconds, 5 seconds, 10 seconds).


Process 900 can continue to step 910, where the electronic device determines whether a user input has been received while the portion of the song is playing. If a user input is received, the electronic device, at step 912, can create a playlist based on the selected song. For example, in one embodiment, the electronic device can create a playlist that includes some or all of the songs in the music group that the selected song belongs in. If the music groups are based on seed-generated clusters, this may produce a similar effect as seeding the seed-based clustering feature with the selected song, and may be advantageous since it creates a playlist of songs that go well together without requiring the user to take any arduous tasks. Process 900 can then continue to step 914 and end.


Returning to step 910, if the electronic device determines instead that a user input is not received while the portion of the selected song is playing, process 900 moves to step 916. At step 916, the electronic device can determine whether a song from each of the music groups defined at step 904 has been selected and played. If not, the electronic device can move to step 918, which enables the electronic device to provide a preview of the next music group (e.g., a music group yet to be previewed). In particular, after step 918, process 900 may return to step 906, where the electronic device selects a song from the next music group and plays a portion of this song at step 908. In some embodiments, the electronic device may cross-fade between the preview of the song from the first music group and the preview of the song from the next music group to ensure that the transition does not appear too abrupt or unexpected to the user.


By returning to step 906 each time a user input is not received, the electronic device can provide, in succession, a preview of one song from each music group. This way, the user is able to experience a snippet from different music groups until the user identifies a song (and therefore a music group) that is of interest to the user. In some embodiments, the preview of each song may be of the same, predetermined length (e.g., 5 seconds, 10 seconds), and the electronic device may cross-fade each of the song transitions. In this manner, the electronic device can provide a scan preview that automatically and seamlessly progresses between song snippets. This may produce an audio effect similar to using the scan feature of a radio.


Returning to step 916, if the electronic device determines that one song has been selected from each of the music groups, then the user has not yet selected a song even after hearing a preview from every music group (e.g., every seed-generated cluster). In this case, process 900 moves to step 920, allowing the electronic device to again provide a preview from the first music group. In particular, after step 920, process 900 can move back to step 906, where the electronic device can select another song from the first music group. This allows the electronic device to iterate through and provide audio previews from each music group a second time.


Each song selected at step 906 during the second and subsequent iterations may be selected at random. In some embodiments, this involves the electronic device choosing a song that has not yet been played in the scan preview, if possible. This gives the user a second chance or more to experience each music group, potentially allowing the user to find a music group of interest. In some embodiments, the electronic device can continue to iterate through each music group in this manner until a user input is received or until the user terminates the scan preview.


An electronic device operating based on process 900 provides, in each iteration through the music groups, a preview of only one song in each music group. In other embodiments of the invention, the electronic device may provide a preview of multiple songs (e.g., 5, 10, 20 bsongs) in each music group during each iteration. That is, the electronic device may play multiple songs from the same music group back-to-back before providing previews for songs in another music group.



FIG. 10 illustrates the songs that an electronic device executing the steps of process 900 (FIG. 9) might select for a scan preview. In this example, the electronic device can identify three music groups (referred to in FIG. 10 as Clusters A, B, and C), where each box in FIG. 10 represents a song in one of the three music groups. Thus, Cluster A includes five songs (including Song A), Cluster B includes four songs (including Song B), and Cluster C includes six songs (including Song C).


The electronic device can select one song from each music group to play during a first iteration through the music groups. Each song selection can be made from its respective music group at random. In one operating scenario, this random selection may cause the electronic device to select the second song from Cluster A (Song A), the fourth song from Cluster B (Song B), and the third song from Cluster C (Song C). As illustrated in the timing diagram of FIG. 11, the electronic device can play, in succession, Songs A, B, and C for N seconds each (e.g., 3, 5, 10, or 20 seconds), and can use cross-fading to provide smooth transitions between the selected songs.


If no user input is received while snippets of Songs A, B, or C are played, the electronic device can provide a snippet of another song from each of Clusters A, B, and C. The electronic device can select a second song from Cluster A (identified in FIG. 11 as Song A′), which can be any of the five songs in Cluster A other than Song A. The electronic device can select a second song from the four songs in Cluster B (identified in FIG. 11 as Song B′) and a second song from the six songs in Cluster C (referred to as Song C′). As illustrated in the timing diagram of FIG. 11, after the first iteration is complete, the electronic device may successively play N seconds each of Songs A′, B′, and C′.


The electronic device can iteratively play snippets of songs from Clusters A, B, and C in this manner until a user input is received or until the user terminates the scan preview. During the third and subsequent iterations, the electronic device can continue to select different songs from each music group until this is no longer possible. For example, on the fifth iteration through Clusters A, B, and C, the electronic device may reselect Song B from Cluster B, because Cluster B has only four songs to choose from.


The described embodiments of the invention are presented for the purpose of illustration and not of limitation, and the invention is only limited by the claims which follow.

Claims
  • 1. A method of providing a preview of audio elements to a user, the method comprising: providing a user-controllable pointer that is scrollable through a plurality of categories;determining the pointer has moved to a current position; anddirectly in response to determining the pointer has moved: identifying a first one of the categories based on the current position;selecting a first audio element in the identified category; andplaying at least a portion of the first audio element.
  • 2. The method of claim 1, wherein the plurality of categories is organized by one of: genre, artist, album, song speed, date released, and date acquired.
  • 3. The method of claim 1, the method further comprising: displaying album cover art associated with the first audio element.
  • 4. The method of claim 1, the method further comprising: detecting another movement of the user-controllable pointer;determining a new position of the pointer;identifying a second one of the categories based on the new position; andplaying at least a portion of a second audio element from the second one of the categories.
  • 5. The method of claim 1, the method further comprising: detecting another movement of the user-controllable pointer;determining a new position of the pointer;identifying that the new position is associated with the first one of the categories;selecting a second audio element from the first one of the categories; andplaying at least a portion of the second audio element.
  • 6. The method of claim 5, wherein selecting the second audio element comprises: choosing the second audio element at random.
  • 7. The method of claim 1, the method further comprising: receiving a user input while the at least a portion of the first audio element is playing; andfiltering a plurality of audio elements based on the first one of the categories.
  • 8. The method of claim 7, wherein the plurality of categories are associated with a first attribute, the method further comprising: providing a user with the ability to further filter the plurality of audio elements based on another plurality of categories, wherein the another plurality of categories are associated with a second attribute.
  • 9. A method of providing a preview of audio elements in a musical category, the method comprising: providing a graphical representation of the musical category which can be user-scrolled through;playing at least a portion of a first audio element from the musical category;detecting scrolling of the graphical representation;selecting, at random, a second audio element from the musical category responsive to detecting the scrolling; andplaying at least a portion of the second audio element.
  • 10. The method of claim 9, wherein the graphical representation comprises album cover art.
  • 11. The method of claim 10, wherein the graphical representation comprises the album cover art associated with the first audio element while the first audio element is playing, and wherein the graphical representation comprises the album cover art associated with the second audio element while the second audio element is playing.
  • 12. The method of claim 9, wherein the graphical representation comprises a sliding bar.
  • 13. A method of creating a playlist of audio elements, the method comprising: defining a plurality of music groups, wherein each of the music groups comprises a plurality of audio elements;playing, in a first succession, a portion of one of the audio elements from each of the music groups;receiving a user selection of one of the playing portions; andcreating a playlist comprising audio elements related to the music group associated with selected playing portion.
  • 14. The method of claim 13, wherein defining the plurality of music groups comprises: compiling information on audio elements commonly played together at a server based on monitoring musical preferences of a plurality of users.
  • 15. The method of claim 13, wherein successively playing comprises: for each of the music groups, selecting the one of the audio elements at random.
  • 16. The method of claim 13, wherein successively playing comprises: for each of the audio elements in the first succession, selecting the portion to play to be representative of the audio element.
  • 17. The method of claim 13, the method further comprising: playing, in a second succession after the first succession, a portion of another one of the plurality of audio elements from each music group.
  • 18. The method of claim 13, wherein successively playing comprises: for each audio element in the first succession, playing a snippet of the audio element, wherein each snippet is of a same predetermined length.
  • 19. The method of claim 13, wherein successively playing comprises: cross-fading between successive playing portions.
  • 20. An electronic device for providing an audio preview of music to a user, the electronic device comprising a display, an audio output, a user input interface, and control circuitry configured to: provide, on the display, a pointer that is controllable via the user input interface, wherein the pointer is scrollable over a plurality of categories;determine a movement of the pointer to a current position; anddirectly in response to determining the movement: identify a first one of the categories based on the current position;select a first audio element in the identified category; anddirect the audio output to play at least a portion of the first audio element.
  • 21. The electronic device of claim 20, wherein the plurality of categories is represented on the display within a sliding bar, and wherein the pointer is traversable along the sliding bar.
  • 22. The electronic device of claim 20, wherein the user input interface providing user control to the pointer comprises at least one of: a click wheel, a touchscreen, and an accelerometer.
  • 23. An electronic device for providing an audio preview of music in a musical category, the electronic device comprising a display, an audio output, and a user input interface, and control circuitry configured to: provide, on the display, graphical representation of the musical category which can be user-scrolled through;direct the audio output to play at least a portion of a first audio element from the musical category;detect scrolling of the graphical representation from the user input interface;select, at random, a second audio element from the musical category responsive to detecting the scrolling; anddirect the audio output to play at least a portion of the second element.
  • 24. An electronic device for creating a playlist of audio elements, the electronic device comprising an audio output, user input interface, and control circuitry configured to: identify a plurality of music groups, wherein each of the music groups comprises a plurality of audio elements;direct the audio output to play, in succession, a portion of one of the audio elements from each of the music groups;receive, from the user input interface, a user selection of one of the playing portions; andcreate a playlist comprising audio elements related to the music group associated with selected playing portion.
  • 25. The electronic device of claim 24, the electronic device further comprising communications circuitry for communicating with a server, wherein the control circuitry is further configured to: receive, from the server, metadata defining which of the audio elements belong in which of the music groups.
  • 26. Machine-readable media for creating a playlist of audio elements, the machine-readable media comprising machine-readable instructions recorded thereon for: defining a plurality of music groups, wherein each of the music groups comprises a plurality of audio elements;playing, in a first succession, a portion of one of the audio elements from each of the music groups;receiving a user selection of one of the playing portions; andcreating a playlist comprising audio elements related to the music group associated with selected playing portion.
  • 27. The method of claim 9, wherein detecting scrolling comprises: detecting movement of a user-controllable pointer that is scrollable over the graphical representation.
  • 28. The electronic device of claim 23, wherein the control circuitry is further configured to: detect movement of a user-controlled pointer from the user input interface; andselect, at random, the second audio element from the musical category responsive to detecting the movement.