`a2) Patent Application Publication 0) Pub. No.: US 2006/0206478 Al
`(43) Pub. Date: Sep. 14, 2006
`
`Glaser et al.
`
`US 20060206478A1
`
`(54) PLAYLIST GENERATING METHODS
`
`(75)
`
`Inventors: William T. Glaser, San Francisco, CA
`(US); Timothy B. Westergren, San
`Francisco, CA (US); Etienne F.
`Handman, Dublin, CA (US); Thomas
`J. Conrad, Oakland, CA (US)
`
`Correspondence Address:
`BANNER & WITCOFF, LTD.
`TEN SOUTH WACKER DRIVE
`SUITE 3000
`CHICAGO,IL 60606 (US)
`
`(73) Assignee: Pandora Media, Inc., Oakland, CA
`
`(21) Appl. No.:
`
`11/295,339
`
`(22)
`
`Filed:
`
`Dec. 6, 2005
`
`Related U.S. Application Data
`
`(63) Continuation-in-part of application No. 10/150,876,
`filed on May 16, 2002, now Pat. No. 7,003,515.
`
`(60) Provisional application No. 60/291,821, filed on May
`16, 2001.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 1730
`(2006.01)
`GO6F
`7/00
`(52) US. C0.
`cresssccssssssssssnssssestosestnsesesssentesestenese 707/5
`
`(57)
`
`ABSTRACT
`
`Methods of generating a playlist for a user are disclosed. For
`example, an input seed from the user associated with one or
`more items in a databaseis received. The input seed may be
`a song nameorartist name. Characteristics that correspond
`to the input seed are identified. One or more focustraits
`based on the characteristics are also identified. Based on the
`
`identification of the one or more focustraits, a weighting
`factor is assigned to at least some ofthe characteristics. The
`weighted value of the characteristics that correspondto the
`input seed and characteristics of items in the database are
`compared. Based on the comparison, items for the playlist
`are selected.
`
`
`
`Traits using
`Focus Trait
`Triggering Rules
`
` Identify Focus
`
`
`
`
`
`Select Focus Traits to re-
`weight the Song Matching
`Methodandrefinesearchesto
`include or exclude one or
`
`more FocusTraits
`
`
`
`Core Engine
`
` Music GenomeProject Database
`
` Find matching
`
`songsin database
`using SBT Song
`Match Method
`
`
`
` Choose any matching
`
`song to become new
`source song
`
`
`
`EXx1033
`Roku V. Media Chain
`U.S. Patent No. 9,715,581
`
`EX1033
`Roku V. Media Chain
`U.S. Patent No. 9,715,581
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 1 of 7
`
`US 2006/0206478 Al
`
`Figure
`
`]
`
`:
`Gore: Engine
`
`——>
`
`
`
` Music Genome
`
`
`
`
`songs in database
`using SBT Song
`Match Method
`
`Identify Focus
`
`Traits using
`
`
`Focus Trait
`Triggering Rules
`
`
` Find matching
`Project Database
`
`
` Select Focus Traits to re-
`
`weight the Song Matching
`Methodandrefine searches to
`include or exclude one or
`
`more FocusTraits
`
`
` Choose any matching
`
`
`song to become new
`source song
`
`
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 2 of 7
`
`US 2006/0206478 Al
`
`Figure 2
`
`
`
`MGP Database
`
`
`
`
`
`
`or below)
`
`Gene Threshold
`reached? (Above
`
`Gene Labeled
`as Definer?
`
`
`
`Group of
`Genesfits
`specified
`criteria?
`
`Gene is exact
`match?
`
`
`
`
`
`
`
` Selected Focus Traits re-weight the song matching method and refinesearches to include or exclude one or more FocusTraits
`
`
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 3 of 7
`
`US 2006/0206478 Al
`
`Source Song Group
`
`Sa
`
`Far Candidate Song
`
`Near Candidate Song
`
`Song Group
`
`Oo
`oO
`A re)
`
`oO
`
`oO
`
`
`
`sixyuonelasgubiy
`
`>L
`
`ow Daviation
`Axis
`
`Figure 3
`
`Center Vector
`
`Figure 4
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 4 of 7
`
`US 2006/0206478 Al
`
`Bi-modal Song Group
`
`
` Vector Pair 1
`
`Vector Pair 2
`
`Figure 5
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 5 of 7
`
`US 2006/0206478 Al
`
`Figure 6
`
`Server 608
`
`Matching Engine 614
`
`Search and
`Matching
`Functions 616
`
`Database 612
`
`
`602
`
`/?
`
`Network 610
`
`604
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 6 of 7
`
`US 2006/0206478 Al
`
`Figure 7
`
`Receive Input Seed
`
`Identify Characteristics
`Corresponding to the Input Seed
`
`Identify Focus Traits Based on the
`Characteristics
`
`Assign Weighting Factor to Some |
`of the Characteristics
`
`Compare Weighted Characteristics
`of the Input Seed to Items in the
`Database
`
`Select Itemsfor the Playlist Based
`on the Comparison
`
`702
`
`704
`
`706
`
`708
`
`710
`
`NON
`
`712
`
`
`
`Patent Application Publication Sep. 14,2006 Sheet 7 of 7
`
`US 2006/0206478 Al
`
`Figure 8
`
`802
`
`Input Seed Analysis
`
`Access Databaseto Identify
`the Input Seed
`
`
`
`
`
`s the Inpu
`Seedin the
`
`
`
`Database?
`
`
`YES
`
`
`
`Seek Clarification/
`Revision
`
`Input Seedis an
`Artist Name
`
`804
`
`YES
`
`806
`
`
`
`
`
`
`
`
`
`
`Access Databaseto
`Retrieve
`Characteristics
`Corresponding to the
`Input Seed
`
`
`
`Access Databaseto
`
`
`
`Generate Averageof
`Characteristics of
`
`Songs Corresponding
`to the Artist Name
`
`
`
`Assign Confidence
`Factor to the Average
`
`
`
`of Characteristics
`
`808
`
`
`
`US 2006/0206478 Al
`
`Sep. 14, 2006
`
`PLAYLIST GENERATING METHODS
`
`[0001] This application is a continuation-in-part of U.S.
`patent application Ser. No. 10/150,876, filed May 16, 2002,
`and also claims priority to provisional U.S. Patent Applica-
`tion Ser. No. 60/291,821, filed May 16, 2001. The entire
`disclosures of U.S. patent application Ser. Nos. 10/150,876
`and 60/291,821 are hereby incorporated by reference.
`
`[0002] A portion of the disclosure of this patent document
`contains materialthat is subject to copyright protection. The
`copyright owner has no objection to the facsimile reproduc-
`tion by anyone of the patent documentor the patent disclo-
`sure, as it appears in the Patent and Trademark Office patent
`file or records, but otherwise reserves all copyright rights
`whatsoever.
`
`FIELD OF THE EMBODIMENTSOF THE
`INVENTION
`
`[0003] Embodimentsof the invention are directed to meth-
`ods for generating playlists for one or more users.
`
`BACKGROUND OF THE EMBODIMENTS OF
`THE INVENTION
`
`for example, sequence perfor-
`[0004] A playlist may,
`mances of songs for a listener. One way to generate such a
`playlist is to randomly select songs from a larger library of
`songs and then sequentially play those songs forthelistener.
`However, such playlists do not take into account whether the
`songs are from a particular genre or otherwise soundalike.
`Thus, such playlists may not be pleasing to the ear.
`
`[0005] Another way to generate a playlistis to select songs
`manually. For example, a commercial FM radio station may
`want a playlist featuring only new “lite rock” songs. Thus,
`the radio station may review songsby“lite rock”artists and
`manually select some songs for inclusion in the playlist.
`
`[0006] While many music playlists are manually gener-
`ated by humans, some attempts have been made to automate
`the generation of music playlists. However, the success of
`these playlists has been stymied by difficulties with using
`digital algorithms to analyze “fuzzy” characteristics such as
`whether a song is a “lite rock”’ song and whetherthat “lite
`rock” song soundslike other “lite rock” songs already in the
`playlist.
`
`[0007] These attempts to automate the generation of music
`playlists utilize two primary methods. Thefirst method is
`based on non-musicological meta-data tags, such as genre
`(e.g. “Lite Rock,’“New Country,’“Modem Rock”), year of
`release, as well as manually created lists of artists and songs.
`The second methodis based on data obtained by mathemati-
`cal analysis of a digitized data stream. Such analyses can
`effectively identify some musicological characteristics such
`as tempo, energy and timbre mix. However, these methods
`are blind to the musicological characteristics that a human
`music programmeror disc jockey would ordinarily take into
`account. Therefore they produce inferior playlists when
`compared to those created by humans.
`
`BRIEF SUMMARY OF EMBODIMENTS OF
`THE INVENTION
`
`The collected data in the database represents measurements
`of discrete musicological characteristics (e.g., “genes” in the
`Music GenomeProject) that defy mechanical measurement.
`Furthermore, a matching algorithm has been created that can
`be used to locate one or more songs that soundalike (e.g.,
`are closely related to a source song or group of songs based
`on their characteristics and weighted comparisons of these
`characteristics).
`
`In addition, specific combinations of characteris-
`[0009]
`tics (or even a single notable characteristic) have been
`identified that represent significantly discernable attributes
`of a song. These combinations are knownas “‘focustraits.”
`For example, prominence of electric guitar distortion, a
`four-beat meter, emphasis on a backbeat, and a “I, IV, V”
`cord progression may be a focus trait because such a
`combination of characteristics is significantly discernable to
`a listener. Through analysis by human musicologists, a large
`numberof focustraits have been identified-each based on a
`
`specific combination of characteristics.
`
`[0010] Embodiments of the invention are directed to meth-
`ods for generating a playlist for one or more users that
`involve characteristics and focus traits. For example, in the
`context of music, one embodimentof the invention includes
`the steps of receiving an input seed from the user associated
`with one or more items in a database; identifying charac-
`teristics that correspondto the input seed; identifying one or
`more focus traits based on the characteristics; assigning a
`weighting factor to at least some of the characteristics based
`on the identification of the one or more focus traits; com-
`paring the weighted value of the characteristics that corre-
`spond to the input seed and characteristics of items in the
`database; and selecting items for the playlist based on the
`comparison.
`
`[0011] Embodiments of the invention may include numer-
`ous other features and advantages.
`
`[0012] For example, again in the context of music, the step
`of assigning may further include assigning an additional
`weighting factor based on preferencesof the user. As another
`example, the step of comparing may include comparing the
`difference between characteristics that correspond to the
`input seed and characteristics of items in the database.
`Moreover, one or more embodiments of the invention may
`include the step of providing content to the user in accor-
`dance with the playlist.
`
`[0013] Other details features and advantages of embodi-
`ments of the invention will become apparent with reference
`to the following detailed description and the figures.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0014] FIG. 1 showsa flow diagram overview of a con-
`sumer item matching method and system.
`
`[0015] FIG. 2 shows a flow diagram of focustrait trig-
`gering rules employed in a consumer item matching method
`and system.
`
`[0016] FIG. 3 depicts a relationship between different
`song candidates.
`
`[0008] Databases such as the Music Genome Project®
`
`capture the results of human analysis of individual songs. [0018] FIG.5graphically depicts a bimodal song group.
`
`[0017] FIG.4 is a graph showing a deviation vector.
`
`
`
`US 2006/0206478 Al
`
`Sep. 14, 2006
`
`[0019] FIG. 6 depicts an exemplary operating environ-
`ment for one or more embodiments of the invention.
`
`[0020] FIG. 7 shows a flow diagram for one or more
`embodiments of the invention.
`
`[0021] FIG. 8 shows a flow diagram for one or more
`embodiments of the “Identify Characteristics” step 704 in
`FIG.7.
`
`[0033] Because the monotonic square-root function is
`used in calculating all of these distances, computing the
`function is not necessary. Instead, the invention uses dis-
`tance-squared calculations in song comparisons. Accepting
`this and applying subscript notation, the distance calculation
`is written in simplified form as:
`distance(S, 7)=X(s-z)°2
`
`DETAILED DESCRIPTION OF EMBODIMENTS
`OF THE INVENTION
`
`[0022] One or more embodimentsofthe invention utilizes
`the Music GenomeProject, a database of songs, in connec-
`tion with the playlist generating methods. Each song is
`described by a set of characteristics, or “genes”, or more that
`are collected into logical groups called “chromosomes.” The
`set of chromosomes make up the genome. One of these
`major groups in the genomeis the “Music Analysis” Chro-
`mosome. This particular subset of the entire genome is
`sometimes referred to as “the genome.”
`
`[0023]
`
`Song Matching Techniques
`
`[0024]
`
`Song to Song Matching
`
`[0025] The Music Genome Project® system is a large
`database of records, each describing a single piece of music,
`and an associated set of search and matching functions that
`operate on that database. The matching engine effectively
`calculates the distance between a source song and the other
`songs in the database and then sorts the results to yield an
`adjustable number of closest matches.
`
`[0026] Each gene can be thought of as an orthogonal axis
`of a multi-dimensional space and each songas a pointinthat
`space. Songs that are geometrically close to one another are
`“good” musical matches. To maximize the effectiveness of
`the music matching engine, we maximize the effectiveness
`of this song distance calculation.
`
`[0027]
`
`Song Vector
`
`[0028] A given song “S” is represented by a vector con-
`taining approximately 150 genes. Each gene corresponds to
`a characteristic of the music, for example, gender of lead
`vocalist, level of distortion on the electric guitar, type of
`backgroundvocals,etc. In a preferred embodiment, rock and
`pop songs have 150 genes, rap songs have 350, and jazz
`songs have approximately 400. Other genres of music, such
`as world and classical, have 300-500 genes. The system
`depends on a sufficient number of genes to render useful
`results. Each gene “s”of this vector has a value of an integer
`or half-integer between 0 and 5. However, the range of
`values for characteristics may vary andis notstrictly limited
`to just integers or half-integers between 0 and 5.
`
`[0029]
`
`Song S=(s,, 82, 53, -.- S,)
`
`[0030] Basic Matching Engine
`
`[0031] The simple distance between any two songs “S”
`and “T”,
`in n-dimensional space, can be calculated as
`follows:
`
`distance=square-root of(the sum overall n elements of
`the genome of(the square of (the difference between
`the corresponding elements of the two songs)))
`
`[0032] This can be written symbolically as:
`distance(S, 7)=sqrt [(for i=1 to »)X(s,-t,)°2]
`
`[0034] Weighted and Focus Matching
`
`[0035] Weighted Matching
`
`[0036] Because notall of the genes are equally important
`in establishing a good match, the distance is better calculated
`as a sum that is weighted according to each gene’s individual
`significance. Taking this into account, the revised distance
`can be calculated as follows:
`
`distanceELwe(s-#)2H"(arr4)22")
`Dare «
`where the weighting vector “W,”
`
`[0037]
`
`Song W=(w,, w2, W3,---; W,)
`
`is initially established through empirical work done, for
`example, by a music team that analyzes songs. The
`weighting vector can be manipulated in various ways
`that affect the overall behavior of the matching engine.
`This will be discussed in more detail
`later in this
`document.
`
`[0038] Scaling Functions
`
`[0039] The data represented by many of the individual
`genesis notlinear. In other words, the distance between the
`values of 1 and 2 is not necessarily the same as the distance
`between the values of 4 and 5. The introduction of scaling
`functions f(x) may adjust for this non-linearity. Adding these
`scaling functions changes the matching function to read:
`distance=2[w*(f(s)-f2))" 2]
`
`[0040] There are a virtually limitless number of scaling
`functions that can be applied to the gene values to achieve
`the desired result.
`
`[0041] Alternatively, one can generalize the difference-
`squared function to any function that operates of the abso-
`lute difference of two gene values. The general distance
`function is:
`
`distance=2[w*g(|s—d))]
`[0042]
`In the specific case, g(x) is simply x”, but it could
`become X* for example if it was preferable to prioritize
`songs with many small differences over ones with a few
`large ones.
`
`[0043] Focus Matching
`
`[0044] Focus matching allows the end user of a system
`equipped with a matching engine to control the matching
`behavior of the system. Focus traits may be used to re-
`weight the song matching system and refine searches for
`matching songs to include or exclude the selected focus
`traits.
`
`[0045] Focus Trait Presentation
`
`[0046] Focus Traits are the distinguishing aspects of a
`song. When an end userenters a source song into the system,
`its genomeis examined to determine which focustraits have
`been determined by music analysts to be present in the
`
`
`
`US 2006/0206478 Al
`
`Sep. 14, 2006
`
`music. Triggering rules are applied to each of the possible
`focus traits to discover which apply to the song in question.
`These rules maytrigger a focus trait when a given generises
`above a certain threshold, when a given gene is marked as
`a definer, or when a group of genes fits a specified set of
`criteria. The identified focustraits (or a subset) are presented
`on-screen to the user. This tells the user what elements of the
`selected song are significant.
`
`[0047] Focus Trait Matching
`
`[0048] An end user can choose to focus a match around
`any of the presented traits. Whena trait, or numberoftraits,
`is selected,
`the matching engine modifies its weighting
`vector to more tightly match the selection. This is done by
`increasing the weights of the genes that are specific to the
`Focus Trait selected and by changing the values of specific
`genesthat are relevant to the Trait. The resulting songs will
`closely resemble the source song in the trait(s) selected.
`
`[0049] Personalization
`
`[0050] The weighting vector can also be manipulated for
`each end userof the system. By raising the weights of genes
`that are importantto the individual and reducing the weights
`of those that are not, the matching process can be made to
`improve with each use.
`
`[0051] Aggregation
`
`[0052]
`
`Song to Song Matching
`
`[0053] The matching engineis capable of matching songs.
`That is, given a source song,it can find the set of songs that
`closely match it by calculating the distances to all known
`songs and then returning the nearest few. The distance
`between any two songs is calculated as the weighted
`Pythagorean sum of the squares of the differences between
`the corresponding genes of the songs.
`
`[0054] Basic Multi-Song Matching
`
`It may also be desirable to build functionality that
`[0055]
`will return the best matches to a group of source songs.
`Finding matches to a group of source songs is useful in a
`number of areas as this group can represent a number of
`different desirable searches.
`
`[0056] The source group could represent the collected
`worksofa singleartist, the songs on a given CD, the songs
`that a given end userlikes, or analyzed songsthat are known
`to be similar to an unanalyzed song of interest. Depending
`on the makeup of the group of songs, the match result has
`a different meaning to the end user but the underlying
`calculation should be the same.
`
`[0057] This functionality provides a list of songs that are
`similar to the repertoire of an artist or CD. Finally, it will
`allow us to generate recommendations for an end user,
`purely on taste, without the need for a starting song.
`
`FIG.3 illustrates two songs. In this Figure, the
`[0058]
`song on the right is a better match to the set of source songs
`in the center.
`
`are the arithmetic average of the songs in the original set.
`Associated with this center vector is a “deviation” vector
`
`that represents the distribution of the songs within theset.
`An individual gene that has a very narrow distribution of
`values around the average will have a strong affinity for the
`center value. A gene with a wide distribution, on the other
`hand, will have a weak affinity for the center value. The
`deviation vector will be used to modify the weighing vector
`used in song-to-song distance calculations. A small devia-
`tion around the center means a higher net weighting value.
`
`[0061] The center-deviation vector pair can be used in
`place of the full set of songs for the purpose of calculating
`distances to other objects.
`
`[0062] Raw Multi-Song Matching Calculation
`
`Ifthe assumption is made that a songs gene’s are
`[0063]
`normally distributed and that they are of equal importance,
`the problem is straightforward. First a center vector is
`calculated and a standard deviation vector is calculated for
`the set of source songs. Then the standard song matching
`method is applied, but using the center vector in place of the
`source song and the inverse of the square of the standard
`deviation vector elements as the weights:
`
`[0064] Target song vectors T=(t,, t., ... t,)
`
`[0065] Center vector of the source group C=(ly,, Us,
`-
`tha)
`
`.
`
`-
`
`Standard deviation vector of the source group
`[0066]
`D=(0;, Oo; soe O,)
`
`distance,==[(1/o,)°2*(u,-2,)°2]
`
`Asis the case with simple song-to-song matching,
`[0067]
`the songs that are the smallest distances away are the best
`matches.
`
`[0068] Using Multi-Song Matching With the Weighting
`Vector
`
`[0069] The weighting vector that has been used in song-
`to-song matching must be incorporated into this system
`alongside the 1/o°2 terms. Assuming that they are multi-
`plied together so that the new weight vector elements are
`simply:
`
`[0070] New weight=w,/o, 2
`
`[0071] Aproblem thatarises with this formula is that when
`G°is zero the new weight becomesinfinitely large. Because
`there is some noise in the rated gene values, o7? can be
`thoughtof as nevertruly being equal to zero. For this reason
`a minimum valueis added to it in order to take this variation
`into account. The revised distance function becomes:
`
`distance,=2[ (w;*0.25/(o,°2+0.25))*(,-4) °2]
`
`[0072] Other weighting vectors may be appropriate for
`multi-song matching of this sort. Different multi-song
`weighting vector may be established, or the (0.5)* constant
`may be modified to fit with empirically observed matching
`results.
`
`[0059] Vector Pairs
`
`[0073] Taste Portraits
`
`[0060] Referring to FIG. 4, one way to implement the
`required calculationis to group the songsinto a singlevirtual
`song that can represent the set of songs in calculations. The
`virtual “center” is defined to be a song vector who’s genes
`
`[0074] Groups with a coherent, consistent set of tracks
`will have both a known center vector and a tightly defined
`deviation vector. This simple vector pair scheme will break-
`down, however, when there are several centers of musical
`
`
`
`US 2006/0206478 Al
`
`Sep. 14, 2006
`
`style within the collection. In this case we need to describe
`the set of songs as a set of two or more vector pairs.
`
`the song group can be
`[0075] As shown in FIG. 5,
`described with two vector pairs. By matching songs to one
`ORthe other of the vector pairs, we will be able to locate
`songs that fit well with the set. If we were to try to force all
`of the songsto be described by a single pair, we would return
`songs in the center ofthe large ellipse that would not be well
`matched to either cluster of songs.
`
`Ideally there will be a small number of such
`[0076]
`clusters, each with a large number of closely packed ele-
`ments. We can then choose to match to a single cluster at a
`time.
`
`In applications where we are permitted several
`[0077]
`matching results, we can choose to return a few from each
`cluster according to cluster size.
`
`[0078] Playlist Generating Methods
`
`[0079] Exemplary Operating Environment
`
`[0080] FIG. 6 shows a diagram of exemplary system 600
`that may be used to implement embodiments of the inven-
`tion. A plurality of terminals, such as terminals 602, 604 and
`606, couple to server 608 via network 610. Terminals 602,
`604 and 606 and server 608, may include a processor,
`memory and other conventional electronic components and
`may be programmed with processor-executable instructions
`to facilitate communication via network 610 and perform
`aspects of the invention.
`
`Oneskilled in the art will appreciate that network
`[0081]
`610 is not limited to a particular type of network. For
`example, network 610 may feature one or more wide area
`networks (WANs), such as the Internet. Network 610 may
`also feature one or more local area networks (LANs)having
`one or more of the well-known LANtopologies and may use
`a variety of different protocols, such as Ethernet. Moreover,
`network 610 may feature a Public Switched Telephone
`Network (PSTN) featuring land-line and cellular telephone
`terminals, or else a network featuring a combination of any
`or all of the above. Terminals 602, 604 and 606 may be
`coupled to network 608 via, for example, twisted pair wires,
`coaxial cable, fiber optics, electromagnetic waves or other
`media.
`
`In one embodiment of the invention, server 608
`[0082]
`contains a database of items 612. Alternatively, Server 608
`may be coupled to database of items 612. For example,
`server 608 may be coupled to a database for the Music
`Genome Project® system described previously. Server 608
`may also contain or be coupled to matching engine 614.
`Matching engine 614 utilizes an associated set of search and
`matching functions 616 to operate on the database of items
`612. In an embodimentofthe invention used with the Music
`
`Genome Project® system, for example, matching engine
`614 utilizes search and matching functions implemented in
`software or hardware to effectively calculate the distance
`between a source song and other songs in the database (as
`described above), and then sorts the results to yield an
`adjustable number of closest matches.
`
`[0083] Terminals 602, 604 and 606 feature user interfaces
`that enable users to interact with server 608. The user
`interfaces may allow users to utilize a variety of functions,
`such as displaying information from server 608, requesting
`
`additional information from server 608, customizing local
`and/or remote aspects of the system and controlling local
`and/or remote aspects of the system.
`
`[0084] Playlist Generating Method
`
`[0085] FIG. 7 showsa flow diagram for one embodiment
`of a playlist generating method 700 that can be executed on,
`for example, server 608 in FIG.6. Alternatively, the playlist
`generating method 700 can be executed exclusively at a
`stand-alone computer or other terminal.
`
`In “Receive Input Seed” step 702 of FIG. 7, an
`[0086]
`input seed is received from a user.
`
`[0087] The input seed may be a song namesuch as “Paint
`Tt Black” or even a group of songs such as “Paint It Black”
`and “Ruby Tuesday.” Alternatively, the input seed may be an
`artist name such as “Rolling Stones.” Other types of input
`seeds could include, for example, genre information such as
`“Classic Rock” or era information such as “1960s.” The
`
`input seed may be remotely received from a user via, for
`example, network 610 in FIG. 6. Alternatively, the input
`seed may belocally received by, for example, being input by
`a user at a stand-alone computer or other terminal running
`playlist generating method 700. Terminal 602, 604 or 606
`(FIG.6) may locally maintain all user input and preferences
`(e.g., in a “user information” database), such as which input
`seeds have been inputted, or preferences as to how the
`terminal should visualize any generated playlists. Alterna-
`tively, server 608 may remotely maintain all user input and
`preferences in, for example, a “user information” database
`having an item corresponding to every user.
`
`In “Identify Characteristics” step 704 of FIG. 7,
`[0088]
`characteristics that correspond to the input seed are identi-
`fied. As stated previously, characteristics may include, for
`example, gender of lead vocalist, level of distortion on the
`electric guitar, type of background vocals, etc. Characteris-
`tics may also include, for example, other types of musico-
`logical attributes such as syncopation, which is a shift of
`accent in a musical piece that occurs when a normally weak
`beat is stressed. In one or more embodiments of the inven-
`tion, such characteristics are retrieved from one or more
`items corresponding to the input seed in a Music Genome
`Project database.
`
`[0089] FIG. 8 shows a more detailed flow diagram for one
`embodimentofthe “Identify Characteristics” step 704 (FIG.
`7) of playlist generating method 700. As indicated previ-
`ously, “Identify Characteristics” step 704 as well as all of the
`other steps in FIG. 7, can be executed on, for example,
`server 608 in FIG.6.
`
`Inorder to identify characteristics corresponding to
`[0090]
`the input seed, the input seed itself mustfirst be analyzed as
`shown in “Input Seed Analysis” step 802. Accordingly,
`database 612 in FIG. 6, which may be a Music Genome
`Project database, is accessed to first identify whether the
`input seed is an item in database 612. To the extent the input
`seed is not an itemin the database, the user may be asked for
`more information in an attempt to determine, for example,
`whether the input seed was inputted wrong (e.g., “Beetles”
`instead of “Beatles”) or whether the input seed goes by
`another namein database(e.g., “I feel fine” instead of “She’s
`in love with me”). Alternatively, close matches to the input
`seed may beretrieved from the database and displayed to the
`user for selection.
`
`
`
`US 2006/0206478 Al
`
`Sep. 14, 2006
`
`If the input seed is in the database, the input seed
`[0091]
`is then categorized. In the embodiment shownin FIG.8, the
`input seed is categorized as either a “Song Name”or“Artist
`Name.” Such categorization is realized by, for example,
`retrieving “Song Name”or “Artist Name” information asso-
`ciated with the input seed from the database. Alternatively,
`such categorization is realized by asking the user whether
`the input seed is a “Song Name”or “Artist Name.”
`
`If the input seed is a song name, then “Retrieve
`[0092]
`Characteristics” step 804 is executed. In “Retrieve Charac-
`teristics” step 804, a song vector “S”that correspondsto the
`song is retrieved from the database for later comparison to
`another song vector. As stated previously, in one embodi-
`ment the song vector contains approximately 150 charac-
`teristics, and may have 400 or more characteristics:
`
`[0093]
`
`Song S=(s,, $5, $3, ---5 S,)
`
`[0094] Each characteristic “s” of this vector has a value
`selected from a range of valuesestablished for that particular
`characteristic. For example, the value of the “syncopation”
`characteristic may be any integer or half-integer between 0
`and 5. As an empirical example, the value of the syncopation
`characteristic for most “Pink Floyd” songs is 2 or 2.5. The
`range of values for characteristics may vary and is not
`limited to just integers or half-integers between 0 and 5.
`
`If the input seed is an artist name, then (in the
`[0095]
`embodiment of FIG. 8) “Generate Average” step 806 is
`executed. In one embodiment of “Generate Average” step
`806, song vectors S, to S,, which each correspond to one of
`n songs in the database bytheartist that is the subject of the
`input seed, are retrieved. Alternatively, and as stated previ-
`ously, song vectors S, to S, could correspond to one of n
`songs in the database on a particular album by theartist.
`
`[0096] After song vectors S, to S, have been retrieved, an
`average of all values for each characteristic of every song
`vector S, to S,, is calculated and populated into a “center” or
`virtual song vector:
`
`[0097] Center vector C=(u,, lo, .
`HWy=(S, 1521+. - Syn
`
`.
`
`- Hy)
`
`deviation to calculate the deviation vector, the value of
`the syncopation characteristic for most “Pink Floyd”
`songs is 2 or 2.5, which results in a smaller standard
`deviation value (e.g., 0.035) thanif a standard deviation
`value were calculated for a characteristic having more
`divergent values (e.g., if the value of the syncopation
`characteristic for all songs by Pink Floyd was more
`widely dispersed between 0 and 5).
`
`[0101] To the extent a standard deviation value for a
`certain characteristic is larger, the averaged value of that
`characteristic in the virtual song vector is considered to be
`a less reliable indicator of similarity when the virtual song
`vector is compared to another song vector. Accordingly, as
`indicated previously, the values of the deviation vector serve
`as “confidence factors” that emphasize values in the virtual
`song vector depending on their respective reliabilities. One
`wayto implementthe confidence factor is by multiplying the
`result of a comparison between the center vector and another
`song vector by the inverse of the standard deviation value.
`Thus, for example, the confidence factor could have a value
`of 0.25/(o,°2+0.25). The “0.25”is put into the equation to
`avoid a mathematically undefinedresult in the event o, 2 is
`0 (.e., the confidence factor avoids “divide by zero” situa-
`tions).
`
`[0102] Returning to FIG. 7, “Identify Focus Traits” step
`706 identifies focus traits based on the values of character-
`istics of song vector (or virtual song vector) S. As stated
`previously, focus traits are specific combinations of charac-
`teristics (or even a single notable characteristic) representing
`significantly discernable attributes of a song. As such, focus
`traits are the kernel of what makes one song actually sound
`different, or like, another song. Focus traits may be created
`and defined in many ways,
`including by having trained
`musicologists determine what actually makes one song
`sound different from another, or els