US20100269042A1 - Jukebox menu navigation system - Google Patents

Jukebox menu navigation system Download PDF

Info

Publication number
US20100269042A1
US20100269042A1 US12/764,605 US76460510A US2010269042A1 US 20100269042 A1 US20100269042 A1 US 20100269042A1 US 76460510 A US76460510 A US 76460510A US 2010269042 A1 US2010269042 A1 US 2010269042A1
Authority
US
United States
Prior art keywords
network
jukebox
popularity
data
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/764,605
Inventor
Ronald Richards
Danny GARRETT
John GROPPE
Marc SAEGESSER
Charles JAROS
Jesse Buck
Eran LOEWENTHAL
Jeffrey KALIS
Constantin HAPAIANU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AMI Entertainment Network LLC
Original Assignee
AMI Entertainment Network LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AMI Entertainment Network LLC filed Critical AMI Entertainment Network LLC
Priority to US12/764,605 priority Critical patent/US20100269042A1/en
Assigned to AMI ENTERTAINMENT NETWORK, INC. reassignment AMI ENTERTAINMENT NETWORK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KALIS, JEFFREY, MR., BUCK, JESSE, MR., GARRETT, DANNY, MR., GROPPE, JOHN, MR., JAROS, CHARLES, MR., LOWENTHAL, ERAN, MR., RICHARDS, RONALD, MR., SAEGESSER, MARC, MR., HAPAIANU, CONSTANTIN, MR.
Publication of US20100269042A1 publication Critical patent/US20100269042A1/en
Assigned to AMI ENTERTAINMENT NETWORK, LLC reassignment AMI ENTERTAINMENT NETWORK, LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: AMI ENTERTAINMENT NETWORK, INC.
Assigned to THE GOVERNOR AND COMPANY OF THE BANK OF IRELAND reassignment THE GOVERNOR AND COMPANY OF THE BANK OF IRELAND SECURITY AGREEMENT Assignors: AMI ENTERTAINMENT NETWORK, LLC
Priority to US14/722,878 priority patent/US9939993B2/en
Assigned to AMI ENTERTAINMENT NETWORK, LLC reassignment AMI ENTERTAINMENT NETWORK, LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: THE GOVERNOR AND COMPANY OF THE BANK OF IRELAND
Priority to US15/897,319 priority patent/US20180173384A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • G06F16/639Presentation of query results using playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0383Remote input, i.e. interface arrangements in which the signals generated by a pointing device are transmitted to a PC at a remote location, e.g. to a PC in a LAN

Definitions

  • An embodiment of the present invention relates generally to a jukebox menu navigation system, and more particularly, to improvements for menu navigation based primarily on aggregation and distribution of network-wide data.
  • Jukeboxes having a plurality of songs available for selection and play are generally known. Jukeboxes typically operate upon input of currency and are installed in locations such as bars, restaurants, airports, shopping malls, video arcades, casinos or the like. Upon receipt of currency, a user is prompted to select one or more songs for play, typically over a public speaker system installed in the location of the jukebox. Originally, the music selections were provided on 45 rpm records that were played by an automated turntable in the jukebox. The vinyl records were eventually replaced by compact discs (CDs) and the turntable replaced by a CD player. More recently, jukeboxes have become computerized, capable of playing selections of music as MP3 files, streaming audio data sets, or the like.
  • CDs compact discs
  • jukeboxes are presently connected to networks and can receive digital audio files over Broadband connections, thereby reducing memory size requirements.
  • network capabilities current jukeboxes still have functional limitations that limit the information and experience that may be provided to a user.
  • a jukebox network that compiles and distributes affinity data to a plurality of jukeboxes, each of which may present song choices that are commonly selected by users network-wide. It is further desirable to provide a searching feature that allows a user to search multiple categories when selecting music. It is also desirable to provide a jukebox with the ability to create collections comprising a combination of artists, albums, and songs. It is still further desirable to provide a jukebox network that compiles and distributes network popularity data to a plurality of jukeboxes, each of which may present an ordered list of the most popular songs, artists, and albums network-wide.
  • an embodiment of the present invention comprises a jukebox device configured to play music data sets.
  • Each music data set has a plurality of identification values corresponding to a respective plurality of identification categories.
  • the jukebox device includes a display, an input component, an audio output and a controller.
  • the controller is configured to receive a string of characters from the input component, and to search simultaneously across the plurality of identification categories for identification values containing the string of characters.
  • the controller is further configured to cause the display to present the identification values containing the string of characters for each of the plurality of identification categories.
  • Another preferred embodiment comprises a jukebox network system having a plurality of jukebox devices connected over a network.
  • Each of the jukebox devices includes a display, an input component, an audio output, and a controller configured to store local affinity data uploadable to the network.
  • the local affinity data includes identification of music data sets selected from a plurality of music data sets during a common credit session.
  • the controller is also configured to store network affinity data received from the network.
  • the network affinity data includes pairs of music data sets having high affinity values determined from the local affinity data received by the network from the plurality of jukebox devices.
  • the controller is further configured to retrieve for play a first music data set selected by a user upon establishment of a one or more credits.
  • the controller is also configured to cause the display to present an option to select and play at least one second music data set selected from the network affinity data.
  • Still another preferred embodiment comprises a jukebox network system having a plurality of jukebox devices connected over a network.
  • Each of the jukebox devices includes a display, an input component, an audio output, and a controller configured to retrieve for play at least one music data set selected by a user from a plurality of music data sets upon establishment of one or more credits.
  • Each music data set has a plurality of identification values corresponding to a respective plurality of identification categories.
  • the controller is further configured to store local play data uploadable to the network.
  • the local play data includes a number of times a music data set is selected for play on the jukebox device.
  • the controller is also configured to store network popularity data received from the network.
  • the network popularity data includes popularity values for at least a portion of the plurality of identification values in at least one of identification categories.
  • the popularity values are determined from the local play data received by the network from the plurality of jukebox devices.
  • the controller is further configured to cause the display, for a user-selected one of the plurality of identification values in at least one user-selected identification category, to present corresponding identification values in another of the identification categories in a predetermined configuration based on the respective popularity values of the corresponding identification values.
  • FIG. 1 is a perspective view of a jukebox device for use in accordance with preferred embodiments of the present invention
  • FIG. 2 is a schematic view of a jukebox network in accordance with preferred embodiments of the present invention.
  • FIG. 3 is a first message sequence diagram of communication between the server and jukebox of FIG. 2 ;
  • FIG. 4 is a second message sequence diagram of communication between the server and jukebox of FIG. 2 ;
  • FIG. 5 is a third message sequence diagram of communication between the server and jukebox of FIG. 2 ;
  • FIG. 6 is a screenshot of a menu displayed on a jukebox device in accordance with preferred embodiments of the present invention.
  • FIG. 7 is a screenshot of an artist sub-menu displayed on a jukebox device in accordance with a first preferred embodiment of the present invention.
  • FIG. 8 is a screenshot of an album sub-menu displayed on a jukebox device in accordance with the first preferred embodiment of the present invention.
  • FIG. 9 is a screenshot of a suggestion page displayed on a jukebox device in accordance with a second preferred embodiment of the present invention.
  • FIG. 10 is a screenshot of a blank search page displayed on a jukebox device in accordance with a third preferred embodiment of the present invention.
  • FIG. 11 is a screenshot of the search page of FIG. 10 following a search conducted on the jukebox device.
  • FIGS. 1 and 2 there is shown in FIGS. 1 and 2 a preferred embodiment of a jukebox device 12 .
  • the jukebox device 12 includes a controller U 1 and a memory U 2 .
  • the memory U 2 can be any known or suitable memory device or combination of such devices such as random access memory (RAM), read only memory (ROM), flash RAM, hard disk, optical disk, or the like.
  • the jukebox device 12 further includes a video display 20 that is operatively connected to the controller U 1 .
  • the video display 20 is a touchscreen video display configured to accept touch input.
  • the jukebox device 12 shown in FIG. 1 is a free-standing or floor-standing apparatus, but may also be arranged in any configuration including table mount, wall mount, pole mount, and the like without departing from the invention.
  • the jukebox device 12 may also include at least one value input or value acceptor 22 that receives value in order to establish one or more credits.
  • the value received may be at least one of currency, coins, tokens, chits, credits, credit cards/debit cards, or the like.
  • FIG. 1 shows a coin acceptor 22 a and a bill acceptor 22 b as part of the jukebox device 12 .
  • value may also be received through input of a keypad or touchscreen of online account data, personal identification numbers (PINs), or the like, which may obviate the need for a value acceptor 22 , although such methods are not mutually exclusive and may both be provided to provide the user with a wide array of payment options.
  • PINs personal identification numbers
  • the jukebox device 12 is made operable only upon receipt of value, for example, a user may only select and play a song once value is received and/or one or more credits are established. However, free selections may be offered at the discretion of an operator of the jukebox device 12 .
  • an input component 24 is coupled to the controller U 1 .
  • the input component 24 is preferably a touchscreen input from the display 20 , but may also be one or more of a pushbutton(s), a track-ball or touchpad, a mouse, a joy-stick, a foot-pedal, a voice recognition system, a keypad or keyboard, and the like. Further, multiple input components 24 of the foregoing or other types may be provided on the jukebox device 12 .
  • the jukebox device 12 also includes an audio output 26 coupled to the controller U 1 .
  • the audio output 26 is preferably a digital amplifier with multi-channel pre-amplifier and one or more sockets for connection to one or more speakers or the like (not shown). Additionally, the audio output 26 may comprise one or more sockets for connection to an external audio amplification system (not shown), such as a stereo, wall-mounted speakers, surround sound system, or the like.
  • the audio output 26 may also comprise one or more speakers internally housed by the jukebox device 12 . Volume may be controlled by an external control, wireless remote, or an on-screen volume control manipulated via the touchscreen display 20 .
  • FIG. 2 shows the jukebox device 12 as part of a network 10 having a plurality of additional jukebox devices 12 connected thereto.
  • Each of the jukebox devices 12 is preferably in communication with a server 14 .
  • intermediate connections to the server 14 such as additional file servers, computers, other jukebox devices 12 , or the like, may also be implemented.
  • functions of the server 14 may be divided among a plurality of devices.
  • the controller U 1 of the jukebox device 12 preferably communicates with the server 14 over an Ethernet port, a wireless transceiver, or the like and may communicate with other devices or file servers, access the Internet, communicate over wide area networks (WANs) or local area networks (LANs), or the like.
  • WANs wide area networks
  • LANs local area networks
  • the jukebox device 12 remains operable even if disconnected from the network 10 or is only connected to the network 10 via a dial-up connection. In dial-up mode, the jukebox 12 still may receive data from the server 14 as described below. However, once the relevant data is received, the jukebox device 12 operates in a disconnected state. While retaining all of its usual functionality, as will be described below, operation of the jukebox device 12 is limited to content available locally, rather than content available through the network.
  • the memory U 2 may store a plurality of music data sets and a system control program.
  • a music data set includes the audio data required for playing a song through the output component or audio output 26 , and may be stored in any conventional format, such as an MP3 file, WAV file, or the like.
  • the music data set also includes a plurality of identification values (also known as “metadata”) corresponding to a respective plurality of identification categories. Examples of identification categories include a song title, an album title, an artist name, a genre of music, or the like.
  • Music data sets may also be stored remotely, such as at the server 14 or other remote file storage locations accessible by the controller U 1 .
  • a music data set may be streamed to the controller U 1 via a Broadband connection or the like.
  • a music data set may be downloaded by the jukebox device 12 from the memory U 2 , on instruction, onto the hard drive of the jukebox device 12 .
  • the music data set is downloaded in its entirety.
  • the jukebox device 12 then plays the music data set off of the jukebox hard drive.
  • the music data set is preferably provided serially to the memory U 2 or a temporary memory of the controller U 1 and the music data set is played as packets thereof are being received.
  • the music data set does not necessarily remain in the jukebox device memory once it has been played.
  • the music data set is preferably buffered such that a minor interruption in the music data set download does not cause an interruption in the audio performance of the jukebox device 12 .
  • the controller U 1 is configured to retrieve for play, either from the memory U 2 or from a remote location, such as the server 14 , at least one music data set selected by a user from the plurality of stored music data sets upon establishment of one or more credits.
  • the controller U 1 also controls the video display 20 based upon a system control program retrieved from the memory U 2 and based upon inputs from the touchscreen or other input component 24 .
  • the system control program refers to all of the software functions outside of the application program files including an operating system, display control, input control, sound drivers, and the like.
  • play data based on user selected music data sets from the plurality of jukebox devices 12 are aggregated over the network 10 in order to determine the most popular, songs, albums, artists, or the like on a network-wide basis for use in the plurality of jukebox devices 12 .
  • the controller U 1 of each jukebox device 12 preferably stores local play data to the memory U 2 .
  • the local play data preferably includes a number of times that each particular music data set is selected for play on the particular jukebox device 12 .
  • the local play data is uploadable to the network 10 , where it is received by the server 14 , preferably in response to periodic server generated requests for data.
  • the local play data from each jukebox device 12 of the network 10 may be uploaded at regular predetermined periodic intervals, such as hourly, daily, weekly, or the like. However, it will be understood by those skilled in the art that the intervals of uploading need not be predetermined, but rather may be unplanned and sporadic.
  • the server 14 stores a plurality of tables for aggregating the local play data from all of the jukebox devices 12 to generate network popularity data.
  • a daily table Preferably three tables are kept, a daily table, a monthly table, and a yearly table.
  • the daily table may only contain the previous thirty-one days of data
  • the monthly table may only contain the previous thirteen months of data
  • the yearly table may only contain the previous three years of data, or the like. All of the tables are preferably continuously updated at the server 14 upon receipt of the local play data from the plurality of jukebox devices 12 .
  • the server 14 periodically sends network popularity data back to each of the jukebox devices 12 over the network 10 .
  • the predetermined periodic interval between the time that the network popularity data is sent is long enough to allow for significant changes in popularity, such as a week.
  • the interval may be set to any duration as desired, and is preferably controlled using a Macro4 (M4) variable.
  • M4 Macro4
  • the network popularity data is preferably kept in a compressed data file that may be downloaded by a jukebox device 12 via a Uniform Resource Locator (URL), however, the popularity data may also be sent directly to the jukebox device 12 .
  • the controller U 1 of each of the plurality of jukebox devices 12 is configured to store the network popularity data in the memory U 2 .
  • FIG. 3 is a diagram of a message sequence between the server 14 and a jukebox device 12 when a new version of the downloadable network popularity data is created.
  • the server 14 notifies the jukebox device 12 that a new version of the network popularity data file is available.
  • the jukebox device 12 responds with a request for the updated network popularity data.
  • the jukebox device 12 may either request the URL or a message containing the network popularity data, in which case the jukebox device 12 may specify limits on the data.
  • An exemplary portion of an Extensible Markup Language (XML) request including .xsd and .xml files for both types of requests, is attached as Appendix 1 .
  • the server 14 responds with either the requested URL or the requested data.
  • XML Extensible Markup Language
  • An exemplary portion of an XML response including the relevant .xsd and .xml files, is attached as Appendix 2 .
  • the jukebox device 12 responds with an Error Status Message to acknowledge whether the response from the server 14 was received successfully.
  • the server 14 responds with an acknowledgement (ACK) message.
  • ACK acknowledgement
  • the jukebox device 12 sends a Software Version Message (see exemplary XML message attached as Appendix 3 ) containing the version of the network popularity data received by the jukebox device 12 .
  • the server 14 responds with an ACK message.
  • the jukebox device 12 keeps track of the version number of the popularity data it receives as part of its software version data.
  • FIG. 4 is a similar diagram to FIG. 3 , except that the message sequence is triggered by a jukebox device 12 connecting to the network 10 and reporting to the server 14 that its version of the network popularity data is out of date. This is preferably done by a Software Version Message.
  • the server 14 responds with an ACK message before proceeding in the manner as detailed above with respect to FIG. 3 .
  • the network popularity data preferably includes popularity values for at least a portion of the identification values in at least one of the identification categories.
  • network popularity data is generated and stored for a plurality of the identification values in a plurality of the identification categories.
  • the popularity values are determined from the local play data from each of the plurality of jukebox devices 12 on the network 10 .
  • the popularity values may be the aggregate number of plays over a predetermined period, such as a day, week, month, or the like, of a particular song, album, artist, or the like.
  • the popularity values may also be relative rankings of, for example, a song, such that a popularity value of “1” indicates the song selected for play the most number of times over a certain period, “2” indicates the song selected for play the second most number of times over the same period, and the like.
  • the entirety of the network popularity data is sent back to each of the jukebox devices 12 .
  • the amount of network popularity data sent to each of the jukebox devices 12 may be arbitrarily set in order to limit the size of the file. For example, for each identification category, only the top 100 identification values would be included in the file. Alternatively, a song, artist, or the like may be required to exceed a certain number of plays in order to be included in the network popularity data.
  • the network 10 may also provide for on-demand requests by a jukebox device 12 for specific network popularity data from the server 14 .
  • the message sequence is a basic request-response interaction.
  • the jukebox device 12 sends a request message specifying a particular identification category and other parameters, such as groupings, limits, or the like.
  • An exemplary on-demand request including .xsd and .xml files for requesting specific songs for specific genres, specific albums from specific artists, and songs for specific artists, is attached as Appendix 4 .
  • the response from the server 14 may be organized hierarchically depending on the request from the jukebox device 12 .
  • An exemplary response, including .xsd and .xml files for responding to a request for songs for a specific genre, is attached as Appendix 5 .
  • the controller U 1 is configured to cause the video display 20 , for a user-selected one of the plurality of identification categories in at least one user-selected one of the plurality of identification categories, to present corresponding identification values in another of the plurality of identification categories in a predetermined configuration based on the respective popularity values of each of the corresponding identification values.
  • FIG. 6 is an exemplary screenshot 100 from a jukebox device 12 .
  • a “Top Artists” list is shown near the top of the screenshot 100 .
  • the artists are listed in order of the popularity values associated with each of the artists, from those associated with the highest popularity values to artists associated with the lowest popularity values. While six artists are shown, the entire list may be smaller or larger, in accordance with limits as described above, and may provide scrolling or paging capability to view the remainder of the list. Additional information may be provided in the list, such as the number of songs, albums, or the like associated with the displayed artist, photos, advertisements, or the like.
  • a “Top Songs” list is shown near the bottom of the screenshot 100 .
  • the songs are listed in order of the popularity values associated with each song. Additional information, such as the artist of the displayed song, the required number of credits for play of the song, cover art, or the like, may also be displayed. Other lists may also be shown, such as by genre, album, or the like.
  • the listings of identification values and derivative information thereof may be changed to correspond to available selections of music data sets.
  • the “Top Artists” list will display the number of available albums and songs for the respective artist that are available over the entire network 10 (i.e., residing in the server 14 or other remote storage).
  • the number of available albums and songs displayed corresponds only to the music data sets that are stored locally, i.e. in the memory U 2 or the like of the particular (local) jukebox device 12 .
  • Lists of identification values displayed on the video screen 20 are not limited to order based on network-wide popularity.
  • the controller U 1 may order the identification values based on network popularity data, local play data, combinations thereof, or the like.
  • a combination list utilizing both network popularity data and local play data may be determined based on a ratio of network popularity data to local play data applied by the controller U 1 .
  • the ratio is preferably alterable so that, for example, a new jukebox device 12 initially displays lists ordered based solely on network popularity data, but as the controller U 1 accumulates its own local play data, the ratio may be changed to reflect local popularity.
  • the server 14 may also further analyze the local play data uploaded from the jukebox devices 12 on the network 10 in order to determine subsets of popularity data.
  • the aggregated local play data may be analyzed to generate regional popularity data, genre-related popularity data, location-theme popularity data (e.g., all soiled or country-style restaurants or bars), or the like.
  • the jukebox devices 12 on the network may incorporate any of such popularity data received from the network 10 or combinations thereof.
  • FIG. 7 is a screenshot 200 illustrating that the presentation of identification values based on popularity values from the network popularity data may be utilized by the controller U 1 for organization and presentation of further submenus when selecting music data sets. For example, once an artist is selected by a user, a listing of some or all other songs from that user-selected artist may be presented to the user. In screenshot 200 , the songs are listed in order of the corresponding popularity values for songs of the user-selected artist.
  • the jukebox device 12 may also allow for convenient switching between sorting options. For example, as shown in FIG. 7 , a user may conveniently toggle between ordering based on network popularity data and alphabetical order by simply tapping the touchscreen 24 in the appropriate location. A user may also select one of the album titles displayed. Once a user does so, a listing of some or all other songs from that user-selected album may be presented to the user. The songs are preferably listed in order of the corresponding popularity values for songs of the user-selected album. However, listing the songs in an order based on popularity values is one of a number of options of ordering. Other orderings are also possible, including by track order, alphabetically, and the like. Other lists and menus may similarly be operated by the controller U 1 to aid the user in sorting or ordering music data sets for selection.
  • FIG. 8 is a screenshot 300 illustrating further use of the network popularity data by the controller U 1 in enhancing the experience of the user. For example, the most popular music data sets in particular user-selected identification categories may be highlighted or emphasized to the user.
  • the user has selected an album and a song listing of the album is displayed. A small number of the songs for the album, for example two or three, are highlighted as the most popular songs for the particular album selected.
  • the highlighting may be in the form of shading, icons, static or dynamic images, or the like.
  • local affinity data from the plurality of jukebox devices 12 is compiled over the network 10 in order to determine music data sets that are most often selected together on a network-wide basis for providing recommendations to the user.
  • the controller U 1 For every two music data sets that are selected and retrieved for play by the controller U 1 during a common credit session, local affinity data is generated and stored by the controller U 1 .
  • the local affinity data includes identification of the music data sets selected from the plurality of available music data sets during a common credit session.
  • the local affinity data preferably includes the number of times that two music data sets were selected for play within a common credit session. Further data is preferably also included, such as the number of times the associated music data sets were selected on-demand (downloaded), locally, as a result of promotions, or the like, and whether the two music data sets were selected as a result of an affinity recommendation, described below.
  • Other information may also be included, such as the last date either music data set was selected, the last date the two music data sets were selected in a common credit session, or the like.
  • the local affinity data from each of the plurality of jukebox devices 12 on the network 10 is preferably uploadable to the network 10 .
  • the local affinity data is uploaded to the network 10 from each of the plurality of jukebox devices 12 on the network 10 at regular intervals, such as daily, weekly, monthly, or the like.
  • An exemplary plain text file format of local affinity data reporting is attached as Appendix 6 .
  • Data is aggregated at the server 14 in steps, preferably performed on a daily basis, although other intervals may be utilized.
  • An exemplary pseudo-code for aggregating the local affinity data is attached as Appendix 7 , wherein a step represents a configurable number of days and the minimum value of a step is “1.”
  • Network affinity data is generated by the server 14 based upon the local affinity data uploaded to the network 10 .
  • the network affinity data includes pairs of music data sets which have high affinity values as determined from the local affinity data received by the network 10 from the plurality of jukebox devices 12 .
  • Affinity values for each pair of music data sets are preferably calculated based on weighted factors (e.g., on-demand selections, local selections, or the like) detailed above.
  • weighted factors e.g., on-demand selections, local selections, or the like
  • a formula to calculate an affinity value may be as follows:
  • Affinity value M 4_genre* M 4_popularity*((mod_count* M 4_mod)+(local_count* M 4_local)+(affinity_count* M 4_affinity) ⁇ ( kp _count*(1 ⁇ M 4 — kp )))
  • M4_genre is “1” if the music data sets have different genres, otherwise use the M4 variable value if music data sets have the same genre
  • M4_popularity is “1” if neither of the music data sets are extremely popular, otherwise use the M4 variable value if one of the music data sets is an extremely popular song
  • M4_mod, M4_local, M4_kp, M4 affinity are M4 configurable variables for weights; and the counts are as described above (e.g., on-demand, local, or the like).
  • the network affinity data is preferably downloadable by each of the plurality of jukebox devices 12 on the network 10 .
  • network affinity data is preferably limited to the most relevant affinity values for each song. That is, only the top affiliations for each song are provided by the network server 14 back to the jukebox devices 12 .
  • An exemplary XML file containing network affinity data provided to the jukebox devices 12 is attached as Appendix 8 . Delta files may also be created when changes are made to the network affinity date file.
  • the jukebox devices 12 are notified by the server 14 when new network affinity data is available, and the jukebox devices 12 may request to download all of the network affinity data or a portion based on demand.
  • a request for an entire file of network affinity data proceeds similarly to the sequence in FIG. 3 .
  • the sequence is similar to that shown in FIG. 5 .
  • Exemplary .xsd files for the request from the jukebox device 12 and the response from the server 14 are attached as Appendices 9 and 10 respectively.
  • FIG. 9 is a screenshot 400 following a music data set selection by a user.
  • Four additional music data sets are recommended to the user because the four illustrated music data sets were included in the network affinity data (meaning the respective affinity values were high).
  • the user may then conveniently select one or more of the recommended additional music data sets for play.
  • Identification values may be included with the recommendation, such as artist, album, or the like. Further information, such as cover art or the like is also preferably included. Although four music data sets are shown in FIG. 9 , more or less may be provided, depending upon limits to the network affinity data.
  • a jukebox device 12 may, as described above with respect to the network popularity data, continue to offer recommended additional music data sets, although limited only to music data sets available locally.
  • searching for desired music data sets is enhanced by simultaneously searching multiple identification categories.
  • a user may be presented with a search screen, such as screenshot 500 in FIG. 10 .
  • the search feature may be provided as part of other screens, such as a home page or the like.
  • the controller U 1 is configured to receive from the input component 24 a string of characters. For example, a user may enter a word, phrase, or fragment in the search box in screenshot 500 using the on-screen keyboard as part of the touchscreen video display 20 .
  • the controller U 1 searches for identification values containing the string of characters. Preferably the string of characters may be found at any portion of an identification value, such as at the beginning, middle, or end of the value.
  • the controller U 1 preferably searches simultaneously across the plurality of identification categories (e.g., song title, album title, artist name, and genre of music) for identification values containing the input string of characters.
  • the video display 20 is caused to present, for each of the searched identification categories, the identification values containing the string of characters.
  • screenshot 600 in FIG. 11 shows that for the search term “mart,” seven results were returned under the identification category “Artist,” twelve results were returned for “Albums,” and eight results were returned for “Songs.”
  • the results for each identification category may be ordered alphabetically or the like.
  • the results are ordered according to network popularity data.
  • Using the touchscreen or other input component 24 to choose one of the results enables the user to navigate to a corresponding page, such as an artist or album page listing songs, to select one or more music data sets for play.
  • the jukebox device 12 may include collections that include music data sets based on multiple identification categories. For example, in FIG. 6 , a number of collections are presented to the user toward the middle of screenshot 100 . Each of the collections includes an identifying title. For each collection, as an example, songs, albums, and artists may all be included as part of the collection.
  • the controller U 1 accordingly selects and retrieves all of the identification values associated with the collection for presentation to the user.
  • Selection of an artist in a collection navigates to an artist page similar to screenshot 200 of FIG. 7 .
  • Selection of an album in a collection navigates to a page similar to screenshot 300 in FIG. 8 .
  • Selection of a song navigates to a confirmation page, which may include recommended music data sets, such as in screenshot 400 in FIG. 9 .
  • Collections may be generated locally at a jukebox device 12 , or may be generated at the server 14 . Collections can be generated automatically based on collected data from the jukebox devices 12 , from release dates, or the like.
  • Embodiments of the present invention also include methods of operating a jukebox device 12 in a network 10 as described above.
  • the jukebox device 12 may also include other functionality and features such as electronic game play, video jukebox, multimedia player, Internet browsing, broadcast media viewing, time based rental mode, non-prize tournaments, prize-based tournaments, head-to-head competitions, prize-based lotteries, ticket dispensing, prize dispensing, debit/credit card charging, phone card dispensing, e-mail, photography, placing customer orders, communicating with other jukebox devices, and the like.
  • other functionality and features such as electronic game play, video jukebox, multimedia player, Internet browsing, broadcast media viewing, time based rental mode, non-prize tournaments, prize-based tournaments, head-to-head competitions, prize-based lotteries, ticket dispensing, prize dispensing, debit/credit card charging, phone card dispensing, e-mail, photography, placing customer orders, communicating with other jukebox devices, and the like.
  • the jukebox device 12 may also provide for remote or local access for accounting and/or bookkeeping purposes.
  • the jukebox device 12 may include a local connector for uploading to a hand-held or portable computer or removable memory for receiving accounting or other data.
  • the jukebox device 12 may include accounting and bookkeeping screens accessible by an operator through set up screens and/or through password protection.
  • RequestSongs tag must be present.

Abstract

A plurality of jukeboxes each having a display, input component, audio output, and controller are connected over a network. The controller is configured to play music data sets selected by a user and to store local affinity data uploadable to the network. The controller is further configured to store network popularity and affinity data received from the network. The controller causes the display to present menus and screens based on the data received from the network. The controller is also configured to perform searches over multiple identification categories and store collections of music data sets based on multiple identification categories.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Patent Application No. 61/171,327, filed on Apr. 21, 2009, entitled “Jukebox Menu Navigation System,” the entire contents of which are incorporated by reference herein.
  • COPYRIGHT NOTICE AND AUTHORIZATION
  • Portions of the documentation in this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
  • BACKGROUND OF THE INVENTION
  • An embodiment of the present invention relates generally to a jukebox menu navigation system, and more particularly, to improvements for menu navigation based primarily on aggregation and distribution of network-wide data.
  • Jukeboxes having a plurality of songs available for selection and play are generally known. Jukeboxes typically operate upon input of currency and are installed in locations such as bars, restaurants, airports, shopping malls, video arcades, casinos or the like. Upon receipt of currency, a user is prompted to select one or more songs for play, typically over a public speaker system installed in the location of the jukebox. Originally, the music selections were provided on 45 rpm records that were played by an automated turntable in the jukebox. The vinyl records were eventually replaced by compact discs (CDs) and the turntable replaced by a CD player. More recently, jukeboxes have become computerized, capable of playing selections of music as MP3 files, streaming audio data sets, or the like.
  • In particular, jukeboxes are presently connected to networks and can receive digital audio files over Broadband connections, thereby reducing memory size requirements. Despite the network capabilities, current jukeboxes still have functional limitations that limit the information and experience that may be provided to a user.
  • It is desirable to provide a jukebox network that compiles and distributes affinity data to a plurality of jukeboxes, each of which may present song choices that are commonly selected by users network-wide. It is further desirable to provide a searching feature that allows a user to search multiple categories when selecting music. It is also desirable to provide a jukebox with the ability to create collections comprising a combination of artists, albums, and songs. It is still further desirable to provide a jukebox network that compiles and distributes network popularity data to a plurality of jukeboxes, each of which may present an ordered list of the most popular songs, artists, and albums network-wide.
  • BRIEF SUMMARY OF THE INVENTION
  • Briefly stated, an embodiment of the present invention comprises a jukebox device configured to play music data sets. Each music data set has a plurality of identification values corresponding to a respective plurality of identification categories. The jukebox device includes a display, an input component, an audio output and a controller. The controller is configured to receive a string of characters from the input component, and to search simultaneously across the plurality of identification categories for identification values containing the string of characters. The controller is further configured to cause the display to present the identification values containing the string of characters for each of the plurality of identification categories.
  • Another preferred embodiment comprises a jukebox network system having a plurality of jukebox devices connected over a network. Each of the jukebox devices includes a display, an input component, an audio output, and a controller configured to store local affinity data uploadable to the network. The local affinity data includes identification of music data sets selected from a plurality of music data sets during a common credit session. The controller is also configured to store network affinity data received from the network. The network affinity data includes pairs of music data sets having high affinity values determined from the local affinity data received by the network from the plurality of jukebox devices. The controller is further configured to retrieve for play a first music data set selected by a user upon establishment of a one or more credits. The controller is also configured to cause the display to present an option to select and play at least one second music data set selected from the network affinity data.
  • Still another preferred embodiment comprises a jukebox network system having a plurality of jukebox devices connected over a network. Each of the jukebox devices includes a display, an input component, an audio output, and a controller configured to retrieve for play at least one music data set selected by a user from a plurality of music data sets upon establishment of one or more credits. Each music data set has a plurality of identification values corresponding to a respective plurality of identification categories. The controller is further configured to store local play data uploadable to the network. The local play data includes a number of times a music data set is selected for play on the jukebox device. The controller is also configured to store network popularity data received from the network. The network popularity data includes popularity values for at least a portion of the plurality of identification values in at least one of identification categories. The popularity values are determined from the local play data received by the network from the plurality of jukebox devices. The controller is further configured to cause the display, for a user-selected one of the plurality of identification values in at least one user-selected identification category, to present corresponding identification values in another of the identification categories in a predetermined configuration based on the respective popularity values of the corresponding identification values.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing summary, as well as the following detailed description of preferred embodiments of the invention, will be better understood when read in conjunction with the appended drawings. For the purpose of illustration, there are shown in the drawings embodiments which are presently preferred. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
  • FIG. 1 is a perspective view of a jukebox device for use in accordance with preferred embodiments of the present invention;
  • FIG. 2 is a schematic view of a jukebox network in accordance with preferred embodiments of the present invention;
  • FIG. 3 is a first message sequence diagram of communication between the server and jukebox of FIG. 2;
  • FIG. 4 is a second message sequence diagram of communication between the server and jukebox of FIG. 2;
  • FIG. 5 is a third message sequence diagram of communication between the server and jukebox of FIG. 2;
  • FIG. 6 is a screenshot of a menu displayed on a jukebox device in accordance with preferred embodiments of the present invention;
  • FIG. 7 is a screenshot of an artist sub-menu displayed on a jukebox device in accordance with a first preferred embodiment of the present invention;
  • FIG. 8 is a screenshot of an album sub-menu displayed on a jukebox device in accordance with the first preferred embodiment of the present invention;
  • FIG. 9 is a screenshot of a suggestion page displayed on a jukebox device in accordance with a second preferred embodiment of the present invention;
  • FIG. 10 is a screenshot of a blank search page displayed on a jukebox device in accordance with a third preferred embodiment of the present invention; and
  • FIG. 11 is a screenshot of the search page of FIG. 10 following a search conducted on the jukebox device.
  • DETAILED DESCRIPTION OF THE INVENTION
  • Certain terminology is used in the following description for convenience only and is not limiting. The words “right”, “left”, “lower”, and “upper” designate directions in the drawings to which reference is made. The words “inwardly” and “outwardly” refer to directions toward and away from, respectively, the geometric center of the apparatus and designated parts thereof. The terminology includes the above-listed words, derivatives thereof, and words of similar import. Additionally, the words “a” and “an”, as used in the claims and in the corresponding portions of the specification, mean “at least one.” Further, the terms “coin” or “currency” should not be construed as limiting and can be used herein to mean all forms of coin and paper currency from any country as well as proprietary tokens, game cards, credit cards, debit cards, chits, or other representative forms of credit and/or payment.
  • This patent application includes Appendices which are incorporated by reference into the present patent application. At least one preferred embodiment of the present invention is implemented via the source code in the Appendices. The Appendices are subject to the “Copyright Notice and Authorization” stated above.
  • Referring to the drawings in detail, wherein like reference numerals indicate like elements throughout, there is shown in FIGS. 1 and 2 a preferred embodiment of a jukebox device 12. The jukebox device 12 includes a controller U1 and a memory U2. The memory U2 can be any known or suitable memory device or combination of such devices such as random access memory (RAM), read only memory (ROM), flash RAM, hard disk, optical disk, or the like. The jukebox device 12 further includes a video display 20 that is operatively connected to the controller U1. Preferably, the video display 20 is a touchscreen video display configured to accept touch input. The jukebox device 12 shown in FIG. 1 is a free-standing or floor-standing apparatus, but may also be arranged in any configuration including table mount, wall mount, pole mount, and the like without departing from the invention.
  • The jukebox device 12 may also include at least one value input or value acceptor 22 that receives value in order to establish one or more credits. The value received may be at least one of currency, coins, tokens, chits, credits, credit cards/debit cards, or the like. FIG. 1 shows a coin acceptor 22 a and a bill acceptor 22 b as part of the jukebox device 12. In addition, value may also be received through input of a keypad or touchscreen of online account data, personal identification numbers (PINs), or the like, which may obviate the need for a value acceptor 22, although such methods are not mutually exclusive and may both be provided to provide the user with a wide array of payment options. Preferably, the jukebox device 12 is made operable only upon receipt of value, for example, a user may only select and play a song once value is received and/or one or more credits are established. However, free selections may be offered at the discretion of an operator of the jukebox device 12.
  • As shown in FIG. 2, an input component 24 is coupled to the controller U1. The input component 24 is preferably a touchscreen input from the display 20, but may also be one or more of a pushbutton(s), a track-ball or touchpad, a mouse, a joy-stick, a foot-pedal, a voice recognition system, a keypad or keyboard, and the like. Further, multiple input components 24 of the foregoing or other types may be provided on the jukebox device 12.
  • The jukebox device 12 also includes an audio output 26 coupled to the controller U1. The audio output 26 is preferably a digital amplifier with multi-channel pre-amplifier and one or more sockets for connection to one or more speakers or the like (not shown). Additionally, the audio output 26 may comprise one or more sockets for connection to an external audio amplification system (not shown), such as a stereo, wall-mounted speakers, surround sound system, or the like. The audio output 26 may also comprise one or more speakers internally housed by the jukebox device 12. Volume may be controlled by an external control, wireless remote, or an on-screen volume control manipulated via the touchscreen display 20.
  • FIG. 2 shows the jukebox device 12 as part of a network 10 having a plurality of additional jukebox devices 12 connected thereto. Each of the jukebox devices 12 is preferably in communication with a server 14. However, intermediate connections to the server 14, such as additional file servers, computers, other jukebox devices 12, or the like, may also be implemented. Further, functions of the server 14 may be divided among a plurality of devices. The controller U1 of the jukebox device 12 preferably communicates with the server 14 over an Ethernet port, a wireless transceiver, or the like and may communicate with other devices or file servers, access the Internet, communicate over wide area networks (WANs) or local area networks (LANs), or the like. The jukebox device 12 remains operable even if disconnected from the network 10 or is only connected to the network 10 via a dial-up connection. In dial-up mode, the jukebox 12 still may receive data from the server 14 as described below. However, once the relevant data is received, the jukebox device 12 operates in a disconnected state. While retaining all of its usual functionality, as will be described below, operation of the jukebox device 12 is limited to content available locally, rather than content available through the network.
  • Turning now to the operation of the jukebox device 12, the memory U2 may store a plurality of music data sets and a system control program. A music data set includes the audio data required for playing a song through the output component or audio output 26, and may be stored in any conventional format, such as an MP3 file, WAV file, or the like. The music data set also includes a plurality of identification values (also known as “metadata”) corresponding to a respective plurality of identification categories. Examples of identification categories include a song title, an album title, an artist name, a genre of music, or the like. Music data sets may also be stored remotely, such as at the server 14 or other remote file storage locations accessible by the controller U1. When retrieved remotely, a music data set may be streamed to the controller U1 via a Broadband connection or the like. Alternatively, a music data set may be downloaded by the jukebox device 12 from the memory U2, on instruction, onto the hard drive of the jukebox device 12. Preferably, the music data set is downloaded in its entirety. The jukebox device 12 then plays the music data set off of the jukebox hard drive. The music data set is preferably provided serially to the memory U2 or a temporary memory of the controller U1 and the music data set is played as packets thereof are being received. The music data set does not necessarily remain in the jukebox device memory once it has been played. The music data set is preferably buffered such that a minor interruption in the music data set download does not cause an interruption in the audio performance of the jukebox device 12.
  • The controller U1 is configured to retrieve for play, either from the memory U2 or from a remote location, such as the server 14, at least one music data set selected by a user from the plurality of stored music data sets upon establishment of one or more credits. The controller U1 also controls the video display 20 based upon a system control program retrieved from the memory U2 and based upon inputs from the touchscreen or other input component 24. As used herein, the system control program refers to all of the software functions outside of the application program files including an operating system, display control, input control, sound drivers, and the like.
  • In a first preferred embodiment of the present invention, play data based on user selected music data sets from the plurality of jukebox devices 12 are aggregated over the network 10 in order to determine the most popular, songs, albums, artists, or the like on a network-wide basis for use in the plurality of jukebox devices 12.
  • Accordingly, the controller U1 of each jukebox device 12 preferably stores local play data to the memory U2. The local play data preferably includes a number of times that each particular music data set is selected for play on the particular jukebox device 12. The local play data is uploadable to the network 10, where it is received by the server 14, preferably in response to periodic server generated requests for data. The local play data from each jukebox device 12 of the network 10 may be uploaded at regular predetermined periodic intervals, such as hourly, daily, weekly, or the like. However, it will be understood by those skilled in the art that the intervals of uploading need not be predetermined, but rather may be unplanned and sporadic.
  • The server 14 stores a plurality of tables for aggregating the local play data from all of the jukebox devices 12 to generate network popularity data. Preferably three tables are kept, a daily table, a monthly table, and a yearly table. However, it will be understood by those skilled in the art that other time frames and durations may also be utilized. In order to conserve space at the server 14, the daily table may only contain the previous thirty-one days of data, the monthly table may only contain the previous thirteen months of data, the yearly table may only contain the previous three years of data, or the like. All of the tables are preferably continuously updated at the server 14 upon receipt of the local play data from the plurality of jukebox devices 12.
  • The server 14 periodically sends network popularity data back to each of the jukebox devices 12 over the network 10. Preferably, the predetermined periodic interval between the time that the network popularity data is sent is long enough to allow for significant changes in popularity, such as a week. However, the interval may be set to any duration as desired, and is preferably controlled using a Macro4 (M4) variable. The network popularity data is preferably kept in a compressed data file that may be downloaded by a jukebox device 12 via a Uniform Resource Locator (URL), however, the popularity data may also be sent directly to the jukebox device 12. The controller U1 of each of the plurality of jukebox devices 12 is configured to store the network popularity data in the memory U2.
  • FIG. 3 is a diagram of a message sequence between the server 14 and a jukebox device 12 when a new version of the downloadable network popularity data is created. The server 14 notifies the jukebox device 12 that a new version of the network popularity data file is available. The jukebox device 12 responds with a request for the updated network popularity data. The jukebox device 12 may either request the URL or a message containing the network popularity data, in which case the jukebox device 12 may specify limits on the data. An exemplary portion of an Extensible Markup Language (XML) request, including .xsd and .xml files for both types of requests, is attached as Appendix 1. The server 14 responds with either the requested URL or the requested data. An exemplary portion of an XML response, including the relevant .xsd and .xml files, is attached as Appendix 2. Once the response from the server 14 is received, the jukebox device 12 responds with an Error Status Message to acknowledge whether the response from the server 14 was received successfully. The server 14 responds with an acknowledgement (ACK) message. Once the network popularity data is processed in the controller U1, the jukebox device 12 sends a Software Version Message (see exemplary XML message attached as Appendix 3) containing the version of the network popularity data received by the jukebox device 12. The server 14 responds with an ACK message. The jukebox device 12 keeps track of the version number of the popularity data it receives as part of its software version data.
  • FIG. 4 is a similar diagram to FIG. 3, except that the message sequence is triggered by a jukebox device 12 connecting to the network 10 and reporting to the server 14 that its version of the network popularity data is out of date. This is preferably done by a Software Version Message. The server 14 responds with an ACK message before proceeding in the manner as detailed above with respect to FIG. 3.
  • The network popularity data preferably includes popularity values for at least a portion of the identification values in at least one of the identification categories. Preferably, network popularity data is generated and stored for a plurality of the identification values in a plurality of the identification categories. The popularity values are determined from the local play data from each of the plurality of jukebox devices 12 on the network 10. For example, the popularity values may be the aggregate number of plays over a predetermined period, such as a day, week, month, or the like, of a particular song, album, artist, or the like. The popularity values may also be relative rankings of, for example, a song, such that a popularity value of “1” indicates the song selected for play the most number of times over a certain period, “2” indicates the song selected for play the second most number of times over the same period, and the like.
  • Preferably, the entirety of the network popularity data is sent back to each of the jukebox devices 12. Alternatively, the amount of network popularity data sent to each of the jukebox devices 12 may be arbitrarily set in order to limit the size of the file. For example, for each identification category, only the top 100 identification values would be included in the file. Alternatively, a song, artist, or the like may be required to exceed a certain number of plays in order to be included in the network popularity data.
  • The network 10 may also provide for on-demand requests by a jukebox device 12 for specific network popularity data from the server 14. As shown by FIG. 5, the message sequence is a basic request-response interaction. The jukebox device 12 sends a request message specifying a particular identification category and other parameters, such as groupings, limits, or the like. An exemplary on-demand request, including .xsd and .xml files for requesting specific songs for specific genres, specific albums from specific artists, and songs for specific artists, is attached as Appendix 4. The response from the server 14 may be organized hierarchically depending on the request from the jukebox device 12. An exemplary response, including .xsd and .xml files for responding to a request for songs for a specific genre, is attached as Appendix 5.
  • Once the jukebox device 12 has the latest network popularity data, the controller U1 is configured to cause the video display 20, for a user-selected one of the plurality of identification categories in at least one user-selected one of the plurality of identification categories, to present corresponding identification values in another of the plurality of identification categories in a predetermined configuration based on the respective popularity values of each of the corresponding identification values.
  • FIG. 6 is an exemplary screenshot 100 from a jukebox device 12. A “Top Artists” list is shown near the top of the screenshot 100. The artists are listed in order of the popularity values associated with each of the artists, from those associated with the highest popularity values to artists associated with the lowest popularity values. While six artists are shown, the entire list may be smaller or larger, in accordance with limits as described above, and may provide scrolling or paging capability to view the remainder of the list. Additional information may be provided in the list, such as the number of songs, albums, or the like associated with the displayed artist, photos, advertisements, or the like.
  • Similarly, a “Top Songs” list is shown near the bottom of the screenshot 100. The songs are listed in order of the popularity values associated with each song. Additional information, such as the artist of the displayed song, the required number of credits for play of the song, cover art, or the like, may also be displayed. Other lists may also be shown, such as by genre, album, or the like.
  • In the event that a jukebox device 12 becomes disconnected from the network 10, the network becomes unavailable, or other service disruptions occur, the listings of identification values and derivative information thereof may be changed to correspond to available selections of music data sets. For example, during connection to the network 10, the “Top Artists” list will display the number of available albums and songs for the respective artist that are available over the entire network 10 (i.e., residing in the server 14 or other remote storage). However, during a network disruption, the number of available albums and songs displayed corresponds only to the music data sets that are stored locally, i.e. in the memory U2 or the like of the particular (local) jukebox device 12.
  • Lists of identification values displayed on the video screen 20 are not limited to order based on network-wide popularity. The controller U1 may order the identification values based on network popularity data, local play data, combinations thereof, or the like. A combination list utilizing both network popularity data and local play data may be determined based on a ratio of network popularity data to local play data applied by the controller U1. The ratio is preferably alterable so that, for example, a new jukebox device 12 initially displays lists ordered based solely on network popularity data, but as the controller U1 accumulates its own local play data, the ratio may be changed to reflect local popularity.
  • The server 14 may also further analyze the local play data uploaded from the jukebox devices 12 on the network 10 in order to determine subsets of popularity data. For example, the aggregated local play data may be analyzed to generate regional popularity data, genre-related popularity data, location-theme popularity data (e.g., all southwestern or country-style restaurants or bars), or the like. The jukebox devices 12 on the network may incorporate any of such popularity data received from the network 10 or combinations thereof.
  • FIG. 7 is a screenshot 200 illustrating that the presentation of identification values based on popularity values from the network popularity data may be utilized by the controller U1 for organization and presentation of further submenus when selecting music data sets. For example, once an artist is selected by a user, a listing of some or all other songs from that user-selected artist may be presented to the user. In screenshot 200, the songs are listed in order of the corresponding popularity values for songs of the user-selected artist.
  • Other sorting options may also be available, such as alphabetical, release date, or the like. The jukebox device 12 may also allow for convenient switching between sorting options. For example, as shown in FIG. 7, a user may conveniently toggle between ordering based on network popularity data and alphabetical order by simply tapping the touchscreen 24 in the appropriate location. A user may also select one of the album titles displayed. Once a user does so, a listing of some or all other songs from that user-selected album may be presented to the user. The songs are preferably listed in order of the corresponding popularity values for songs of the user-selected album. However, listing the songs in an order based on popularity values is one of a number of options of ordering. Other orderings are also possible, including by track order, alphabetically, and the like. Other lists and menus may similarly be operated by the controller U1 to aid the user in sorting or ordering music data sets for selection.
  • FIG. 8 is a screenshot 300 illustrating further use of the network popularity data by the controller U1 in enhancing the experience of the user. For example, the most popular music data sets in particular user-selected identification categories may be highlighted or emphasized to the user. In screenshot 300, the user has selected an album and a song listing of the album is displayed. A small number of the songs for the album, for example two or three, are highlighted as the most popular songs for the particular album selected. The highlighting may be in the form of shading, icons, static or dynamic images, or the like.
  • In a second preferred embodiment of the present invention, local affinity data from the plurality of jukebox devices 12 is compiled over the network 10 in order to determine music data sets that are most often selected together on a network-wide basis for providing recommendations to the user.
  • Establishment of one or more credits in a jukebox device 12 is considered by the controller U1 to be a “credit session.” For every two music data sets that are selected and retrieved for play by the controller U1 during a common credit session, local affinity data is generated and stored by the controller U1. Specifically, the local affinity data includes identification of the music data sets selected from the plurality of available music data sets during a common credit session. The local affinity data preferably includes the number of times that two music data sets were selected for play within a common credit session. Further data is preferably also included, such as the number of times the associated music data sets were selected on-demand (downloaded), locally, as a result of promotions, or the like, and whether the two music data sets were selected as a result of an affinity recommendation, described below. Other information may also be included, such as the last date either music data set was selected, the last date the two music data sets were selected in a common credit session, or the like.
  • The local affinity data from each of the plurality of jukebox devices 12 on the network 10 is preferably uploadable to the network 10. Preferably, the local affinity data is uploaded to the network 10 from each of the plurality of jukebox devices 12 on the network 10 at regular intervals, such as daily, weekly, monthly, or the like. An exemplary plain text file format of local affinity data reporting is attached as Appendix 6. Data is aggregated at the server 14 in steps, preferably performed on a daily basis, although other intervals may be utilized. An exemplary pseudo-code for aggregating the local affinity data is attached as Appendix 7, wherein a step represents a configurable number of days and the minimum value of a step is “1.”
  • Network affinity data is generated by the server 14 based upon the local affinity data uploaded to the network 10. Specifically, the network affinity data includes pairs of music data sets which have high affinity values as determined from the local affinity data received by the network 10 from the plurality of jukebox devices 12. Affinity values for each pair of music data sets are preferably calculated based on weighted factors (e.g., on-demand selections, local selections, or the like) detailed above. For example, a formula to calculate an affinity value may be as follows:

  • Affinity value=M4_genre*M4_popularity*((mod_count*M4_mod)+(local_count*M4_local)+(affinity_count*M4_affinity)−(kp_count*(1−M4 kp)))
  • where M4_genre is “1” if the music data sets have different genres, otherwise use the M4 variable value if music data sets have the same genre; M4_popularity is “1” if neither of the music data sets are extremely popular, otherwise use the M4 variable value if one of the music data sets is an extremely popular song; M4_mod, M4_local, M4_kp, M4 affinity are M4 configurable variables for weights; and the counts are as described above (e.g., on-demand, local, or the like).
  • The network affinity data is preferably downloadable by each of the plurality of jukebox devices 12 on the network 10. In order to enable quick responses at the jukebox devices 12, network affinity data is preferably limited to the most relevant affinity values for each song. That is, only the top affiliations for each song are provided by the network server 14 back to the jukebox devices 12. An exemplary XML file containing network affinity data provided to the jukebox devices 12 is attached as Appendix 8. Delta files may also be created when changes are made to the network affinity date file.
  • As described above with the network popularity data, the jukebox devices 12 are notified by the server 14 when new network affinity data is available, and the jukebox devices 12 may request to download all of the network affinity data or a portion based on demand. A request for an entire file of network affinity data proceeds similarly to the sequence in FIG. 3. For on-demand requests, the sequence is similar to that shown in FIG. 5. Exemplary .xsd files for the request from the jukebox device 12 and the response from the server 14 are attached as Appendices 9 and 10 respectively.
  • Once a jukebox device 12 has stored network affinity data, the controller U1 is configured to retrieve for play a first music data set selected by a user. The video display 20 is then caused by the controller U1 to present an option to the user to select and play at least one second music data set from the network affinity data. For example, FIG. 9 is a screenshot 400 following a music data set selection by a user. Four additional music data sets are recommended to the user because the four illustrated music data sets were included in the network affinity data (meaning the respective affinity values were high). The user may then conveniently select one or more of the recommended additional music data sets for play. Identification values may be included with the recommendation, such as artist, album, or the like. Further information, such as cover art or the like is also preferably included. Although four music data sets are shown in FIG. 9, more or less may be provided, depending upon limits to the network affinity data.
  • In the event of a network disruption or disconnection, a jukebox device 12 may, as described above with respect to the network popularity data, continue to offer recommended additional music data sets, although limited only to music data sets available locally.
  • In a third preferred embodiment, searching for desired music data sets is enhanced by simultaneously searching multiple identification categories. Accordingly, a user may be presented with a search screen, such as screenshot 500 in FIG. 10. However, the search feature may be provided as part of other screens, such as a home page or the like. The controller U1 is configured to receive from the input component 24 a string of characters. For example, a user may enter a word, phrase, or fragment in the search box in screenshot 500 using the on-screen keyboard as part of the touchscreen video display 20. The controller U1 then searches for identification values containing the string of characters. Preferably the string of characters may be found at any portion of an identification value, such as at the beginning, middle, or end of the value. The controller U1 preferably searches simultaneously across the plurality of identification categories (e.g., song title, album title, artist name, and genre of music) for identification values containing the input string of characters.
  • Once the controller U1 has obtained the search results, the video display 20 is caused to present, for each of the searched identification categories, the identification values containing the string of characters. For example, screenshot 600 in FIG. 11 shows that for the search term “mart,” seven results were returned under the identification category “Artist,” twelve results were returned for “Albums,” and eight results were returned for “Songs.” The results for each identification category may be ordered alphabetically or the like. Preferably, in accordance with the first embodiment of the present invention, the results are ordered according to network popularity data. Using the touchscreen or other input component 24 to choose one of the results enables the user to navigate to a corresponding page, such as an artist or album page listing songs, to select one or more music data sets for play.
  • In a fourth preferred embodiment, the jukebox device 12 may include collections that include music data sets based on multiple identification categories. For example, in FIG. 6, a number of collections are presented to the user toward the middle of screenshot 100. Each of the collections includes an identifying title. For each collection, as an example, songs, albums, and artists may all be included as part of the collection.
  • The controller U1 accordingly selects and retrieves all of the identification values associated with the collection for presentation to the user. Selection of an artist in a collection navigates to an artist page similar to screenshot 200 of FIG. 7. Selection of an album in a collection navigates to a page similar to screenshot 300 in FIG. 8. Selection of a song navigates to a confirmation page, which may include recommended music data sets, such as in screenshot 400 in FIG. 9.
  • Collections may be generated locally at a jukebox device 12, or may be generated at the server 14. Collections can be generated automatically based on collected data from the jukebox devices 12, from release dates, or the like.
  • Embodiments of the present invention also include methods of operating a jukebox device 12 in a network 10 as described above.
  • The jukebox device 12 may also include other functionality and features such as electronic game play, video jukebox, multimedia player, Internet browsing, broadcast media viewing, time based rental mode, non-prize tournaments, prize-based tournaments, head-to-head competitions, prize-based lotteries, ticket dispensing, prize dispensing, debit/credit card charging, phone card dispensing, e-mail, photography, placing customer orders, communicating with other jukebox devices, and the like.
  • The jukebox device 12 may also provide for remote or local access for accounting and/or bookkeeping purposes. The jukebox device 12 may include a local connector for uploading to a hand-held or portable computer or removable memory for receiving accounting or other data. The jukebox device 12 may include accounting and bookkeeping screens accessible by an operator through set up screens and/or through password protection.
  • It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiments disclosed, but it is intended to cover modifications within the spirit and scope of the present invention as defined by the appended claims.
  • APPENDIX 1
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
     <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
     <xs:element name=“TrackPopularityReq”>
       <xs:annotation>
         <xs:documentation>Parent tag for all data in the file.</xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:sequence>
           <xs:element ref=“RevisionID” minOccurs=“1” maxOccurs=“1” />
           <xs:choice minOccurs=“1” maxOccurs=“1”>
             <xs:annotation>
               <xs:documentation>One of SendURL tag or SendData tag must be
               present. </xs:documentation>
             </xs:annotation>
             <xs:element ref=“SendURL” maxOccurs=“1” />
             <xs:element ref=“SendData” maxOccurs=“1” />
           </xs:choice>
         </xs:sequence>
       </xs:complexType>
     </xs:element>
     <xs:element name=“RevisionID” type=“xs:string”>
       <xs:annotation>
         <xs:documentation>The revision of the TrackPopularity file format.</xs:documentation>
       </xs:annotation>
     </xs:element>
     <xs:element name=“SendURL”>
       <xs:annotation>
         <xs:documentation>If it is present will specify that the server has to send only the
         URL. </xs:documentation>
       </xs:annotation>
     </xs:element>
     <xs:element name=“SendData”>
       <xs:annotation>
         <xs:documentation>
           If it is present specify that the server has to send the popularity data inside
    the message body.
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:choice minOccurs=“0” maxOccurs=“unbounded”>
           <xs:element ref=“Songs” maxOccurs=“1” />
           <xs:element ref=“Albums” maxOccurs=“1” />
           <xs:element ref=“Artists” maxOccurs=“1” />
         </xs:choice>
       </xs:complexType>
     </xs:element>
     <xs:element name=“Songs”>
       <xs:annotation>
         <xs:documentation>
           Parent tag under SendData. Specify that the response message has to contain
    popularity info for songs. If no Songs, Albums or Artists tag is present the server will send all the
    songs popularity info.
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:attribute name=“limit” use=“optional”>
           <xs:annotation>
             <xs:documentation>
               Optional attribute that specify the limit for the top popularity
    songs that will be included in the server response.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
       </xs:complexType>
     </xs:element>
     <xs:element name=“Albums”>
       <xs:annotation>
         <xs:documentation>
           Parent tag under SendData. Specify that the response message has to contain
    popularity info for albums. If no Songs, Albums or Artists tag is present the server will send all the
    songs popularity info.
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:attribute name=“limit” use=“optional”>
           <xs:annotation>
             <xs:documentation>
               Optional attribute that specify the limit for the top popularity
    albums that will be included in the server response.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
       </xs:complexType>
     </xs:element>
     <xs:element name=“Artists”>
       <xs:annotation>
         <xs:documentation>
           Parent tag under SendData. Specify that the response message has to contain
    popularity info for artists. If no Songs, Albums or Artists tag is present the server will send all the
    songs popularity info.
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:attribute name=“limit” use=“optional”>
           <xs:annotation>
             <xs:documentation>
               Optional attribute that specify the limit for the top popularity
    artists that will be included in the server response.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
       </xs:complexType>
     </xs:element>
    </xs:schema>
  • Example 1 Request URL
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <TrackPopularityReq
    xsi:noNamespaceSchemaLocation=“TrackPopularityReq.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <SendURL />
    </TrackPopularityReq>
  • Example 2 Request Data
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <TrackPopularityReq
    xsi:noNamespaceSchemaLocation=“TrackPopularityReq.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <SendData>
    <Songs limit=“123”/>
    <Albums limit=“4578”/>
    </SendData>
    </TrackPopularityReq>
  • APPENDIX 2
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
      <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
      <xs:element name=“TrackPopularity”>
        <xs:annotation>
          <xs:documentation>Parent tag for all data in the file.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref=“RevisionID” minOccurs=“1” maxOccurs=“1” />
            <xs:element ref=“DataVersion” minOccurs=“1” maxOccurs=“1” />
            <xs:choice minOccurs=“1” maxOccurs=“1”>
              <xs:annotation>
                <xs:documentation>
                  One of PopularityURLFile tag or PopularityData tag must
    be present.
                </xs:documentation>
              </xs:annotation>
              <xs:element ref=“PopularityURLFile” maxOccurs=“1” />
              <xs:element ref=“PopularityData” maxOccurs=“1” />
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RevisionID” type=“xs:string”>
        <xs:annotation>
          <xs:documentation>The revision of the TrackPopularity file format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name=“DataVersion” type=“xs:string”>
        <xs:annotation>
          <xs:documentation>The version number of the Track Popularity Data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name=“PopularityURLFile”>
        <xs:annotation>
          <xs:documentation>Contains info about the URL that points to popularity data file.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“URL”>
            <xs:annotation>
              <xs:documentation>
               Specify the URL for the file that contains relevance popularity
    data.
              </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“PopularityData”>
        <xs:annotation>
          <xs:documentaticn>Parent tag for popularity data info.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“Songs” maxOccurs=“1” />
            <xs:element ref=“Albums” maxOccurs=“1” />
            <xs:element ref=“Artists” maxOccurs=“1” />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name=“Songs”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under PopularityData that contains popularity info for songs.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“SP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for songs popularity
              data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“SP”>
        <xs:annotation>
          <xs:documentation>Parent tag under Songs tag, which contains popularity info for a
          song. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
      <xs:element name=“Albums”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under PopularityData that contains popularity info for albums.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“ALP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for albums
              popularity data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“ALP”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under Albums tag, which contains popularity info for an album.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
      <xs:element name=“Artists”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under PopularityData that contains popularity info for artists.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“ARP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for artists
              popularity data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“ARP”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under Artists tag, which contains popularity info for an artist.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
    </xs:schema>
  • Example 1 URL Response
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <TrackPopularity
    xsi:noNamespaceSchemaLocation=“TrackPopularity.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <DataVersion>String</DataVersion>
    <PopularityURLFile URL=“url to file...”/>
    </TrackPopularity>
  • Example 2 URL Data
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <TrackPopularity
    xsi:noNamespaceSchemaLocation=“TrackPopularity.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <DataVersion>String</DataVersion>
    <PopularityData>
    <Songs limit=“123”>
    <SP id=“1” val=“1245”/>
    <SP id=“2” val=“145”/>
    </Songs>
    <Albums limit=“123”>
    <ALP id=“1” val=“1245”/>
    <ALP id=“2” val=“145”/>
    <ALP id=“3” val=“100”/>
    <ALP id=“4” val=“30”/>
    </Albums>
    </PopularityData>
    </TrackPopularity>
  • APPENDIX 3
    <?xml version=”1.0” ?>
    <SoftwareVersion>
     <software version=″2.2.9″ type=″IDL″ group=”production” />
     <connection type=”dialup”number=”616-123-4546”version=”12” />
     <trackcatalog version=″5″ type=″full″ />
     <trackpopularity version=″14″ />
     <harddrive id=” F429H967295A3D7” />
    </SoftwareVersion>
  • APPENDIX 4
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
      <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
      <xs:element name=“OnDemandPopularityRqo”>
        <xs:annotation>
        <xs:documentation>Parent tag for all data in the file.</xs:documentation>
          </xs:annotation>
        <xs:complexType>
        <xs:sequence>
          <xs:element ref=“RevisionID” minOccurs=“1” maxOccurs=“1” />
            <xs:choice minOccurs=“1” maxOccurs=“1”>
              <xs:annotation>
                <xs:documentation>
                  One of SpecificGenres, SpecificArtists or SpecificAlbums
    tag must be present.
                </xs:documentation>
              </xs:annotation>
              <xs:element ref=“SpecificGenres” maxOccurs=“1” />
              <xs:element ref=“SpecificArtists” maxOccurs=“1” />
              <xs:element ref=“SpecificAlbums” maxOccurs=“1” />
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RevisionID” type=“xs:string”>
        <xs:annotation>
          <xs:documentation>The revision of the OnDemandPopularity format</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name=“SpecificGenres”>
        <xs:annotation>
          <xs:documentation>
            Specify that requested popularity data must be relevant to some specific genres.
    One of RequestSongs, RequestAlbums or RequestArtists must be present.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“1”>
            <xs:element ref=“IdList” minOccurs=“1” maxOccurs=“1” />
            <xs:choice minOccurs=“1” maxOccurs=“1”>
              <xs:element ref=“RequestSongs” minOccurs=“0” maxOccurs=“1” />
              <xs:element ref=“RequestAlbums” minOccurs=“0” maxOccurs=“1” />
              <xs:element ref=“RequestArtists” minOccurs=“0” maxOccurs=“1” />
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“SpecificArtists”>
        <xs:annotation>
          <xs:documentation>
            Specify that requested popularity data must be relevant to some specific
    artists. One of RequestSongs or RequestAlbums must be present.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“1”>
            <xs:element ref=“IdList” minOccurs=“1” maxOccurs=“1” />
            <xs:choice minOccurs=“1” maxOccurs=“1”>
              <xs:element ref=“RequestSongs” minOccurs=“0” maxOccurs=“1” />
              <xs:element ref=“RequestAlbums” minOccurs=“0” maxOccurs=“1” />
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“SpecificAlbums”>
        <xs:annotation>
          <xs:documentation>
            Specify that requested popularity data must be relevant to some specific albums.
    RequestSongs tag must be present.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“1”>
            <xs:element ref=“IdList” minOccurs=“1” maxOccurs=“1” />
            <xs:element ref=“RequestSongs” minOccurs=“1” maxOccurs=“1” />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RequestSongs”>
        <xs:annotation>
          <xs:documentation>Identify that the jukebox wants songs popularity
    info.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>An optional limit for amount of data reported.
              </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RequestAlbums”>
        <xs:annotation>
          <xs:documentation>Identify that the jukebox wants albums popularity
    info.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>An optional limit for amount of data reported.
              </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RequestArtists”>
        <xs:annotation>
          <xs:documentation>Identify that the jukebox wants artists popularity
    info.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>An optional limit for amount of data reported.
              </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“IdList”>
        <xs:annotation>
          <xs:documentation>Parent tag that encapsulate a list of specific ids.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element name=“Id” minOccurs=“1” maxOccurs=“unbounded”>
              <xs:annotation>
                <xs:documentation>
                  Parent tag under IdList. Includes info for one specific
    entity.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name=“val” use=“required” type=“xs:int” />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  • Example 1 Request Songs for Specific Genres
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <OnDemandPopularityReq
    xsi:noNamespaceSchemaLocation=“OnDemandPopularityReq.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <SpecificGenres>
    <IdList>
    <Id val=“100”/>
    <Id val=“103”/>
    <Id val=“105”/>
    <Id val=“54”/>
    </IdList>
    <RequestSongs limit=“4567”/>
    </SpecificGenres>
    </OnDemandPopularityReq>
  • Example 2 Request Albums for Specific Artists
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <OnDemandPopularityReq
    xsi:noNamespaceSchemaLocation=“OnDemandPopularityReq.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <SpecificArtists>
    <IdList>
    <Id val=“12”/>
    <Id val=“547”/>
    <Id val=“64”/>
    <Id val=“102”/>
    </IdList>
    <RequestAlbums limit=“10”/>
    </SpecificArtists>
    </OnDemandPopularityReq>
  • Example 3 Request Songs for Specific Artists
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <OnDemandPopularityReq
    xsi:noNamespaceSchemaLocation=“OnDemandPopularityReq.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <SpecificArtists>
    <IdList>
    <Id val=“457”/>
    </IdList>
    <RequestSongs limit=“12”/>
    </SpecificArtists>
    </OnDemandPopularityReq>
  • APPENDIX 5
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
      <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
      <xs:element name=“OnDemandPopularity”>
        <xs:annotation>
          <xs:documentation>Parent tag for all data in the file.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref=“RevisionID” minOccurs=“1” maxOccurs=“1” />
            <xs:element ref=“DataVersion” minOccurs=“1” maxOccurs=“1” />
            <xs:choice minOccurs=“1” maxOccurs=“1”>
              <xs:annotation>
                <xs:documentation>
                  One of the GenreList, ArtistList or AlbumList tags must be
    present.
                </xs:documentation>
              </xs:annotation>
              <xs:element ref=“GenreList” maxOccurs=“1” />
              <xs:element ref=“ArtistList” maxOccurs=“1” />
              <xs:element ref=“AlbumList” maxOccurs=“1” />
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“RevisionID” type=“xs:string”>
        <xs:annotation>
          <xs:documentation>The revision of the OnDemandPopularity format</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name=“DataVersion” type=“xs:string”>
        <xs:annotation>
          <xs:documentation>The version number of the Track Popularity Data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name=“GenreList”>
        <xs:annotation>
          <xs:documentation>The server return popularity information grouped by
    genres.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element name=“Genre” minOccurs=“1” maxOccurs=“unbounded”>
              <xs:annotation>
                <xs:documentation>
                  Parent tag under GenreList. Includes popularity data and
    info for a specific genre.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:choice minOccurs=“1” maxOccurs=“1”>
                  <xs:element ref=“Songs” minOccurs=“0” maxOccurs=“1” />
                  <xs:element ref=“Albums” minOccurs=“0” maxOccurs=“1” />
                  <xs:element ref=“Artists” minOccurs=“0” maxOccurs=“1” />
                </xs:choice>
                <xs:attribute name=“id” use=“required” type=“xs:int” />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“ArtistList”>
        <xs:annotation>
          <xs:documentation>The server return popularity information grouped by
    artists.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element name=“Artist” minOccurs=“1” maxOccurs=“unbounded”>
              <xs:annotation>
                <xs:documentation>
                  Parent tag under ArtistList. Contain popularity
    information grouped by/for a specific artist.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:choice minOccurs=“1” maxOccurs=“1”>
                  <xs:element ref=“Songs” minOccurs=“0” maxOccurs=“1” />
                  <xs:element ref=“Albums” minOccurs=“0” maxOccurs=“1” />
                </xs:choice>
                <xs:attribute name=“id” use=“required” type=“xs:int” />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“AlbumList”>
        <xs:annotation>
          <xs:documentation>The server return popularity information grouped by
    albums.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element name=“Album” minOccurs=“1” maxOccurs=“unbounded”>
              <xs:annotation>
                <xs:documentation>
                  Parent tag under ArtistList. Contain popularity
    information grouped by/for a specific album.
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence minOccurs=“1” maxOccurs=“1”>
                  <xs:element ref=“Songs” minOccurs=“1” maxOccurs=“1” />
                </xs:sequence>
                <xs:attribute name=“id” use=“required” type=“xs:int” />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“Songs”>
        <xs:annotation>
          <xs:documentation>Contains popularity info for songs.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“SP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for songs popularity
              data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“SP”>
        <xs:annotation>
          <xs:documentation>Parent tag under Songs tag, which contains popularity info for a song.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
      <xs:element name=“Albums”>
        <xs:annotation>
          <xs:documentation>Contains popularity info for albums.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“ALP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for albums popularity
              data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“ALP”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under Albums tag, which contains popularity info for an album.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
      <xs:element name=“Artists”>
        <xs:annotation>
          <xs:documentation>Contains popularity info for artists.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence minOccurs=“1” maxOccurs=“unbounded”>
            <xs:element ref=“ARP” />
          </xs:sequence>
          <xs:attribute name=“limit” use=“optional”>
            <xs:annotation>
              <xs:documentation>Specify if a limit has been used for artists popularity
              data. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name=“ARP”>
        <xs:annotation>
          <xs:documentation>
            Parent tag under Artists tag, which contains popularity info for an artist.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:int” />
          <xs:attribute name=“val” type=“xs:int” />
        </xs:complexType>
      </xs:element>
      </xs:schema>
  • Example 1 Response Songs for Specific Genres
  • <?xml version=“1.0” encoding=“UTF-8”?>
    <!--Sample XML file -->
    <OnDemandPopularity
    xsi:noNamespaceSchemaLocation=“OnDemandPopuarity.xsd”
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <RevisionID>String</RevisionID>
    <DataVersion>String</DataVersion>
    <GenreList>
    <Genre id=“100”>
    <Songs limit=“6”>
    <SP id=“1” val=“1231”/>
    <SP id=“2” val=“123”/>
    <SP id=“3” val=“122”/>
    <SP id=“4” val=“13”/>
    <SP id=“5” val=“10”/>
    <SP id=“6” val=“6”/>
    </Songs>
    </Genre>
    <Genre id=“103”>
    <Songs limit=“4”>
    <SP id=“10” val=“123”/>
    <SP id=“31” val=“122”/>
    <SP id=“34” val=“13”/>
    <SP id=“25” val=“10”/>
    </Songs>
    </Genre>
    <Genre id=“105”>
    <Songs limit=“5”>
    <SP id=“2” val=“123”/>
    <SP id=“36” val=“122”/>
    <SP id=“7” val=“13”/>
    <SP id=“8” val=“13”/>
    <SP id=“10” val=“10”/>
    </Songs>
    </Genre>
    <Genre id=“54”>
    <Songs limit=“2”>
    <SP id=“1” val=“12454”/>
    <SP id=“3” val=“6545”/>
    </Songs>
    </Genre>
    </GenreList>
    </OnDemandPopularity>
  • APPENDIX 6
    <?xml version=″1.0″ ?>
    <PlayDetail>
     <RevisionID>1.0</RevisionID>
     <harddrive id=”AHDE2YT96XFX95” />
     <JukeboxID>00-0B-CD-16-68-D1</JukeboxID>
     <Scope StartDate=”2004-02-16T08:34:19” EndDate=”2004-02-16T08:49:19”
        IncludeExported=”False” />
     <List>
      <Play JukeboxID=”00-50-ba-cc-6c-7e” Type=”100” SongId=″2375″ PaidCredits=”1”
        FreeCredits=”1” IsMod=”1” Rate=”54830” Result=”100” Selected=″2004-02-16T08:44:14″
        Played=″2004-02-16T08:44:16″ Finished=″2004-02-16T08:48:04″ CreditSessionId=”2004-
        02-16T08:43:47” />
      <Play JukeboxID=”00-50-ba-cc-6c-7e” Type=”100” SongId=″75092″ PaidCredits=”1”
        Result=”100” SelectionCode=”100” Selected=″2004-02-16T08:44:25″ Played=″2004-02-
        16T08:48:06″ Finished=″2004-02-16T08:51:22″ CreditSessionId=”2004-02-16T08:43:47”
        />
      <Play JukeboxID=”00-50-ba-cc-6c-7e” Type=”100” SongId=″4265″ PaidCredits=”2”
        FreeCredits=”0” IsMsf=”1” Result=”300” SelectionCode=”200” Selected=″2004-02-
        16T08:45:06″ Played=″2004-02-16T08:51:24″ Finished=″2004-02-16T08:54:53”
        CreditSessionId=”2004-02-16T08:43:47” />
      <Play JukeboxID=”00-50-ba-cc-6c-7e” Type=”700” SongId=″250991″ PaidCredits=”0”
        FreeCredits=”0” Result=”100” SelectionCode=”200” Source=”00-02-6b-0a-38-6c”
        Selected=″2004-02-16T08:52:32″ Played=″2004-02-16T08:54:55″ Finished=″2004-02-
        16T08:57:29” />
     </List>
    </PlayDetail>
  • APPENDIX 7
    for every step
       take play detail event data for current step with credit session
       not null, type code = 100 or 700 and song not null
       for every combination between two songs (s1, s2) that are in the
       same credit session for the same jukebox
         use key = (s1, s2) if s1 < s2 or key = (s2, s1) if s1 > s2
         if the key exists in the affinity data
           update existing row with:
           if s1.is_mod then
             set mod_count = mod_count + 1
           else
             set local_count = local_count + 1
           end if
           if s1.is_kp then
             set kp_count = kp_count + 1
           end if
         if s1.is_affinity then
             set affinity_count = affinity _count + 1
           end if
           if s2.is_mod then
             set mod_count = mod_count + 1
           else
             set local_count = local_count + 1
           end if
           if s2.is_kp then
             set kp_count = kp_count + 1
           end if
           if s2.is_affinity then
             set affinity_count = affinity _count + 1
           end if
         else
           insert a new row for key with:
           if s1.is_mod then
             set mod_count = 1
           else
             set local_count = 1
           end if
           if s1.is_kp then
             set kp_count = 1
           end if
           if s1.is_affinity then
             set affinity_count = 1
           end if
           if s2.is_mod then
             set mod_count = mod_count + 1
           else
             set local_count = local_count + 1
           end if
           if s2.is_kp then
             set kp_count = kp_count + 1
           end if
           if s2.is_affinity then
             set affinity_count = affinity _count + 1
           end if
       end for
    end for
  • APPENDIX 8
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
      <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
      <xs:element name=“NetworkAffinityData”>
        <xs:complexType>
          <xs:sequence>
            <xs:element name=“RevisionID” type=“xs:string” minOccurs=“1”
    maxOccurs=“1” />
            <xs:element name=“DataVersion” type=“xs:string” minOccurs=“1”
    maxOccurs=“1” />
            <xs:element ref=“SongList” minOccurs=“1” maxOccurs=“1” />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“SongList”>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref=“Song” minOccurs=“1” maxOccurs=“n” />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name=“Song”>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref=“AffinitySong” minOccurs=“1” maxOccurs=“n” />
          </xs:sequence>
          <xs:attribute name=“id” type=“xs:integer” use=“required” />
        </xs:complexType>
      </xs:element>
      <xs:element name=“AffinitySong”>
        <xs:complexType>
          <xs:attribute name=“id” type=“xs:integer” use=“required” />
        </xs:complexType>
      </xs:element>
    </xs:schema>
  • Example 1
  • <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <NetworkAffinityData>
    <RevisionID>1</RevisionID>
    <DataVersion>1</DataVersion>
    <SongList>
    <Song id=“123543”>
    <AffinitySong id=“123543” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    <AffinitySong id=“563124” />
    <AffinitySong id=“267754” />
    <AffinitySong id=“547234” />
    <AffinitySong id=“754723” />
    <AffinitySong id=“123543” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    </Song>
    <Song id=“15643”>
    <AffinitySong id=“123543” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    <AffinitySong id=“563124” />
    <AffinitySong id=“267754” />
    <AffinitySong id=“547234” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    </Song>
    <!-- ... -->
    <Song id=“89723”>
    <AffinitySong id=“123543” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    <AffinitySong id=“563124” />
    <AffinitySong id=“267754” />
    <AffinitySong id=“547234” />
    <AffinitySong id=“125412” />
    <AffinitySong id=“726636” />
    </Song>
    </SongList>
    </NetworkAffinityData>
  • APPENDIX 9
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
       <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
       <xs:element name=“OnDemandSongAffinityDataRQO”>
          <xs:annotation>
             <xs:documentation>
                The root node of the On Demand Affinity Data Request. Must contain
    information about a specific song or a list of songs.
             </xs:documentation>
          </xs:annotation>
          <xs:complexType>
             <xs:sequence>
                <xs:element ref=“SongList” minOccurs=“1” maxOccurs=“1” />
             </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name=“SongList”>
          <xs:complexType>
             <xs:sequence>
                <xs:element ref=“Song” minOccurs=“1” maxOccurs=“n” />
             </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name=“Song”>
          <xs:complexType>
             <xs:attribute name=“id” type=“xs:integer” use=“required” />
             <xs:attribute name=“limit” type=“xs:integer” use=“optional” />
          </xs:complexType>
       </xs:element>
    </xs:schema>
  • APPENDIX 10
    <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>
       <xs:import namespace=“http://www.w3.org/XML/1998/namespace” />
       <xs:element name=“OnDemandSongAffinityData”>
          <xs:annotation>
             <xs:documentation>
                The root node of the On Demand Affinity Data.
             </xs:documentation>
          </xs:annotation>
          <xs:complexType>
             <xs:sequence>
                <xs:element name=“RevisionID” type=“xs:string” minOccurs=“1”
    maxOccurs=“1” />
                <xs:element name=“DataVersion” type=“xs:string” minOccurs=“1”
    maxOccurs=“1” />
                <xs:element ref=“SongList” minOccurs=“1” maxOccurs=“1” />
             </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name=“SongList”>
          <xs:complexType>
             <xs:sequence>
                <xs:element ref=“Song” minOccurs=“1” maxOccurs=“n” />
             </xs:sequence>
          </xs:complexType>
       </xs:element>
       <xs:element name=“Song”>
          <xs:complexType>
             <xs:sequence>
                <xs:element ref=“AffinitySong” minOccurs=“0” maxOccurs=“n” />
             </xs:sequence>
             <xs:attribute name=“id” type=“xs:integer” use=“required” />
             <xs:attribute name=“limit” type=“xs:integer” use=“required” />
          </xs:complexType>
       </xs:element>
       <xs:element name=“AffinitySong”>
          <xs:complexType>
             <xs:attribute name=“id” type=“xs:integer” use=“required” />
             <xs:attribute name=“affinity” type=“xs:integer” use=“required” />
          </xs:complexType>
       </xs:element>
    </xs:schema>

Claims (20)

1. A jukebox device configured to play music data sets, each music data set having a plurality of identification values corresponding to a respective plurality of identification categories, the jukebox device comprising:
(a) a display;
(b) an input component;
(c) an audio output; and
(d) a controller configured to:
(i) receive from the input component a string of characters;
(ii) search simultaneously across the plurality of identification categories for identification values containing the string of characters,
(iii) cause the display to present, for each of the plurality of identification categories, the identification values containing the string of characters in an order according to network popularity data received from a network to which the jukebox device is connected, the network popularity data including popularity values for at least a portion of the plurality of identification values in at least one of identification categories, the popularity values being determined from a number of times each music data set is selected for play.
2. The jukebox device of claim 1, wherein the display is a touchscreen video display.
3. The jukebox device of claim 1, wherein the input component is at least one component selected from the group consisting of a touchscreen input from the display, a pushbutton, a track-ball, a touchpad, a mouse, a joy-stick, a foot-pedal, a voice recognition system, a keypad, and a keyboard.
4. The jukebox device of claim 1, wherein the string of characters is a word, a phrase, or a fragment thereof.
5. The jukebox device of claim 1, wherein the plurality of identification categories includes at least one of an album title, an artist name, a song title, or a genre of music.
6. (canceled)
7. A jukebox network system having a plurality of jukebox devices connected over a network, each of the jukebox devices comprising:
(a) a display;
(b) an input component;
(c) an audio output; and
(d) a controller configured to:
(i) store local affinity data uploadable to the network, the local affinity data including identification of music data sets selected from a plurality of music data sets during a common credit session,
(ii) store network affinity data generated and received from the network, the network affinity data including pairs of music data sets having high affinity values determined from the local affinity data received by the network from the plurality of jukebox devices,
(iii) retrieve for play a first music data set selected by a user upon establishment of one or more credits, and
(iv) cause the display to present an option to select and play at least one second music data set selected from the network affinity data.
8. The jukebox network system of claim 7, wherein the network notifies the plurality of jukebox devices of the availability of newly generated network affinity data.
9. The jukebox network system of claim 8, wherein at least one of the plurality of jukebox devices requests to download at least a portion of the network affinity data from the controller upon receipt of the notification.
10. The jukebox network system of claim 7, wherein the controller is configured to request to download at least a portion of the network affinity data upon selection of the first music data set.
11. The jukebox network system of claim 7, wherein the local affinity data includes the number of times that two or more music data sets were selected for play during the common credit session.
12. The jukebox network system of claim 7, wherein the local affinity data is uploaded to the network at predetermined periodic intervals.
13. A jukebox network system having a plurality of jukebox devices connected over a network, each of the jukebox devices comprising:
(a) a display;
(b) an input component;
(c) an audio output; and
(d) a controller configured to:
(i) retrieve for play at least one music data set selected by a user from a plurality of music data sets upon establishment of one or more credits, each music data set having a plurality of identification values corresponding to a respective plurality of identification categories,
(ii) store local play data, the local play data being uploadable to the network and including a number of times each music data set is selected for play on each jukebox device,
(iii) store network popularity data received from the network, the network popularity data including popularity values for at least a portion of the plurality of identification values in at least one of identification categories, the popularity values being determined from the local play data received by the network from the plurality of jukebox devices, and
(iv) cause the display, for a user-selected one of the plurality of identification values in at least one user-selected identification category, to present corresponding identification values in another of the identification categories in a predetermined configuration based on the respective popularity values of the corresponding identification values.
14. The jukebox network system of claim 13, wherein the network sends network popularity data to each of the plurality of jukebox devices either at predetermined periodic intervals or upon receipt of a request for network popularity data by the jukebox device.
15. The jukebox network system of claim 13, wherein the network popularity data includes the number of times a particular music data set was selected for play during a predetermined time period.
16. The jukebox network system of claim 13, wherein a jukebox device requests network popularity data from the network for all of the identification categories.
17. The jukebox network system of claim 13, wherein the user-selected identification value is an artist and the corresponding identification values are songs of the artist.
18. The jukebox network system of claim 13, wherein the user-selected identification value is an album and the corresponding identification values are songs on the album.
19. The jukebox network system of claim 13, wherein the predetermined configuration of the corresponding identification values is a listing of the corresponding identification values in order from corresponding identification values having the highest popularity values to corresponding identification values having the lowest popularity values.
20. The jukebox network system of claim 13, wherein the predetermined configuration of the corresponding identification values is an ordering of the corresponding identification values with at least one of the corresponding identification values being emphasized.
US12/764,605 2009-04-21 2010-04-21 Jukebox menu navigation system Abandoned US20100269042A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/764,605 US20100269042A1 (en) 2009-04-21 2010-04-21 Jukebox menu navigation system
US14/722,878 US9939993B2 (en) 2009-04-21 2015-05-27 Jukebox network system
US15/897,319 US20180173384A1 (en) 2009-04-21 2018-02-15 Jukebox network system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17132709P 2009-04-21 2009-04-21
US12/764,605 US20100269042A1 (en) 2009-04-21 2010-04-21 Jukebox menu navigation system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/722,878 Continuation US9939993B2 (en) 2009-04-21 2015-05-27 Jukebox network system

Publications (1)

Publication Number Publication Date
US20100269042A1 true US20100269042A1 (en) 2010-10-21

Family

ID=42981942

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/764,605 Abandoned US20100269042A1 (en) 2009-04-21 2010-04-21 Jukebox menu navigation system
US14/722,878 Active 2031-04-22 US9939993B2 (en) 2009-04-21 2015-05-27 Jukebox network system
US15/897,319 Abandoned US20180173384A1 (en) 2009-04-21 2018-02-15 Jukebox network system

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/722,878 Active 2031-04-22 US9939993B2 (en) 2009-04-21 2015-05-27 Jukebox network system
US15/897,319 Abandoned US20180173384A1 (en) 2009-04-21 2018-02-15 Jukebox network system

Country Status (4)

Country Link
US (3) US20100269042A1 (en)
CA (1) CA2758561C (en)
GB (1) GB2481559A (en)
WO (1) WO2010124007A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140297453A1 (en) * 2013-04-02 2014-10-02 Build A Song, Inc. System and method for creating a riff gift
USD742396S1 (en) * 2012-08-28 2015-11-03 General Electric Company Display screen with graphical user interface
US20160041640A1 (en) * 2009-03-18 2016-02-11 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
KR20160135831A (en) * 2014-03-25 2016-11-28 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US20170046724A1 (en) * 2010-04-14 2017-02-16 Viacom International, Inc. Systems and Methods for Discovering Artists
US9702500B2 (en) 2014-02-10 2017-07-11 Ami Entertainment Network, Llc Jukebox mount with video displays
US9939993B2 (en) 2009-04-21 2018-04-10 Ami Entertainment Network, Llc Jukebox network system
US9998785B2 (en) 2014-11-10 2018-06-12 Ami Entertainment Network, Llc Video caching system and method for a jukebox
US10224056B1 (en) * 2013-12-17 2019-03-05 Amazon Technologies, Inc. Contingent device actions during loss of network connectivity
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
USD903624S1 (en) * 2018-02-27 2020-12-01 Touchtunes Music Corporation Jukebox
USD1011303S1 (en) * 2020-12-01 2024-01-16 Shenzhen Huangwei-Rgb Electronics Co., Ltd. Television

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424118B (en) * 2013-08-23 2017-12-26 深圳市腾讯计算机系统有限公司 The adaptive copy method of focus file and system

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5959945A (en) * 1997-04-04 1999-09-28 Advanced Technology Research Sa Cv System for selectively distributing music to a plurality of jukeboxes
US20030005035A1 (en) * 2001-06-04 2003-01-02 Hewlett Packard Company Peer-to-peer content popularity
US20030041325A1 (en) * 1997-07-23 2003-02-27 Touchtunes Music Corp. Intelligent digital audiovisual reproduction system
US20030135424A1 (en) * 2002-01-17 2003-07-17 Davis Jeffrey S. System and method for automatically updating media in a digital jukebox
USRE38353E1 (en) * 1996-08-13 2003-12-16 Hitdisc.com, Inc. Musical CD creation unit
US20040243482A1 (en) * 2003-05-28 2004-12-02 Steven Laut Method and apparatus for multi-way jukebox system
US6970834B2 (en) * 1990-06-15 2005-11-29 Arachnid, Inc. Advertisement downloading computer jukebox
US20060161952A1 (en) * 1994-11-29 2006-07-20 Frederick Herz System and method for scheduling broadcast of an access to video programs and other data using customer profiles
US20060159109A1 (en) * 2000-09-07 2006-07-20 Sonic Solutions Methods and systems for use in network management of content
US20060195789A1 (en) * 2005-02-28 2006-08-31 Yahoo! Inc. Media engine user interface
US20060227673A1 (en) * 2005-03-24 2006-10-12 Sony Corporation Player device
US20070033321A1 (en) * 2005-08-08 2007-02-08 Rowe International Corporation Quick pick apparatus and method for music selection
US7219153B1 (en) * 2002-12-02 2007-05-15 Cisco Technology, Inc. Methods and apparatus for distributing content
US20070288470A1 (en) * 2006-06-08 2007-12-13 Hannu Kauniskangas Selection of media for public rendering via user devices
US20080056075A1 (en) * 2006-09-01 2008-03-06 Kalis Jeffrey J Automatic music management methods and systems
US20080086379A1 (en) * 2002-09-16 2008-04-10 Dominique Dion Digital downloading jukebox with enhanced communication features
US20080091717A1 (en) * 2006-09-27 2008-04-17 Zachary Adam Garbow Generation of Collaborative Playlist Based Upon Musical Preference Data from Multiple Digital Media Players
US20090070369A1 (en) * 2007-09-10 2009-03-12 Kalis Jeffrey J Systems and methods for conducting searches of multiple music libraries
US8260656B1 (en) * 2001-04-19 2012-09-04 Amazon.Com, Inc. Mining of user-generated playlists for data regarding relationships between digital works

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6545209B1 (en) * 2000-07-05 2003-04-08 Microsoft Corporation Music content characteristic identification and matching
WO2009021198A1 (en) * 2007-08-08 2009-02-12 Baynote, Inc. Method and apparatus for context-based content recommendation
GB2481559A (en) 2009-04-21 2011-12-28 Ami Entertainment Network Inc Jukebox menu navigation system

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970834B2 (en) * 1990-06-15 2005-11-29 Arachnid, Inc. Advertisement downloading computer jukebox
US20060161952A1 (en) * 1994-11-29 2006-07-20 Frederick Herz System and method for scheduling broadcast of an access to video programs and other data using customer profiles
USRE38353E1 (en) * 1996-08-13 2003-12-16 Hitdisc.com, Inc. Musical CD creation unit
US5959945A (en) * 1997-04-04 1999-09-28 Advanced Technology Research Sa Cv System for selectively distributing music to a plurality of jukeboxes
US20030041325A1 (en) * 1997-07-23 2003-02-27 Touchtunes Music Corp. Intelligent digital audiovisual reproduction system
US20060159109A1 (en) * 2000-09-07 2006-07-20 Sonic Solutions Methods and systems for use in network management of content
US8260656B1 (en) * 2001-04-19 2012-09-04 Amazon.Com, Inc. Mining of user-generated playlists for data regarding relationships between digital works
US20030005035A1 (en) * 2001-06-04 2003-01-02 Hewlett Packard Company Peer-to-peer content popularity
US20030135424A1 (en) * 2002-01-17 2003-07-17 Davis Jeffrey S. System and method for automatically updating media in a digital jukebox
US20080086379A1 (en) * 2002-09-16 2008-04-10 Dominique Dion Digital downloading jukebox with enhanced communication features
US7219153B1 (en) * 2002-12-02 2007-05-15 Cisco Technology, Inc. Methods and apparatus for distributing content
US20040243482A1 (en) * 2003-05-28 2004-12-02 Steven Laut Method and apparatus for multi-way jukebox system
US20060195789A1 (en) * 2005-02-28 2006-08-31 Yahoo! Inc. Media engine user interface
US20060227673A1 (en) * 2005-03-24 2006-10-12 Sony Corporation Player device
US20070033321A1 (en) * 2005-08-08 2007-02-08 Rowe International Corporation Quick pick apparatus and method for music selection
US7548958B2 (en) * 2005-08-08 2009-06-16 Rowe International Corporation Quick pick apparatus and method for music selection
US20070288470A1 (en) * 2006-06-08 2007-12-13 Hannu Kauniskangas Selection of media for public rendering via user devices
US20080056075A1 (en) * 2006-09-01 2008-03-06 Kalis Jeffrey J Automatic music management methods and systems
US20080091717A1 (en) * 2006-09-27 2008-04-17 Zachary Adam Garbow Generation of Collaborative Playlist Based Upon Musical Preference Data from Multiple Digital Media Players
US20090070369A1 (en) * 2007-09-10 2009-03-12 Kalis Jeffrey J Systems and methods for conducting searches of multiple music libraries

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318027B2 (en) 2009-03-18 2019-06-11 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US20160041640A1 (en) * 2009-03-18 2016-02-11 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US20160042063A1 (en) * 2009-03-18 2016-02-11 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10977295B2 (en) * 2009-03-18 2021-04-13 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10789285B2 (en) * 2009-03-18 2020-09-29 Touchtones Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10423250B2 (en) * 2009-03-18 2019-09-24 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9939993B2 (en) 2009-04-21 2018-04-10 Ami Entertainment Network, Llc Jukebox network system
US20230206258A1 (en) * 2010-04-14 2023-06-29 Viacom International Inc. Systems and methods for discovering artists
US11620661B2 (en) * 2010-04-14 2023-04-04 Viacom International Inc. Systems and methods for discovering artists
US20170046724A1 (en) * 2010-04-14 2017-02-16 Viacom International, Inc. Systems and Methods for Discovering Artists
US11810133B2 (en) * 2010-04-14 2023-11-07 Viacom International Inc. Systems and methods for discovering artists
USD742396S1 (en) * 2012-08-28 2015-11-03 General Electric Company Display screen with graphical user interface
US20140297453A1 (en) * 2013-04-02 2014-10-02 Build A Song, Inc. System and method for creating a riff gift
US10224056B1 (en) * 2013-12-17 2019-03-05 Amazon Technologies, Inc. Contingent device actions during loss of network connectivity
US11626117B2 (en) 2013-12-17 2023-04-11 Amazon Technologies, Inc. Contingent device actions during loss of network connectivity
US11626116B2 (en) 2013-12-17 2023-04-11 Amazon Technologies, Inc. Contingent device actions during loss of network connectivity
US9702500B2 (en) 2014-02-10 2017-07-11 Ami Entertainment Network, Llc Jukebox mount with video displays
KR102378718B1 (en) 2014-03-25 2022-03-24 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US20230065316A1 (en) * 2014-03-25 2023-03-02 Touchtunes Music Company, Llc Digital jukebox device with improved user interfaces, and associated methods
US11880518B2 (en) 2014-03-25 2024-01-23 Touchtunes Music Company, Llc Digital jukebox device with improved user interfaces, and associated methods
KR20220041952A (en) * 2014-03-25 2022-04-01 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US11327588B2 (en) 2014-03-25 2022-05-10 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US11353973B2 (en) 2014-03-25 2022-06-07 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
KR102425594B1 (en) 2014-03-25 2022-07-27 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
KR20220110594A (en) * 2014-03-25 2022-08-08 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US11513619B2 (en) * 2014-03-25 2022-11-29 Touchtunes Music Company, Llc Digital jukebox device with improved user interfaces, and associated methods
KR20210115060A (en) * 2014-03-25 2021-09-24 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
KR20160135831A (en) * 2014-03-25 2016-11-28 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US11625113B2 (en) 2014-03-25 2023-04-11 Touchtunes Music Company, Llc Digital jukebox device with improved user interfaces, and associated methods
KR102303730B1 (en) 2014-03-25 2021-09-17 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US20190354208A1 (en) * 2014-03-25 2019-11-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
KR102533342B1 (en) 2014-03-25 2023-05-17 터치튠즈 뮤직 컴퍼니, 엘엘씨 Digital jukebox device with improved user interfaces, and associated methods
US10949006B2 (en) 2014-03-25 2021-03-16 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US11782538B2 (en) 2014-03-25 2023-10-10 Touchtunes Music Company, Llc Digital jukebox device with improved user interfaces, and associated methods
US9998785B2 (en) 2014-11-10 2018-06-12 Ami Entertainment Network, Llc Video caching system and method for a jukebox
USD903624S1 (en) * 2018-02-27 2020-12-01 Touchtunes Music Corporation Jukebox
USD1011303S1 (en) * 2020-12-01 2024-01-16 Shenzhen Huangwei-Rgb Electronics Co., Ltd. Television

Also Published As

Publication number Publication date
US20150261396A1 (en) 2015-09-17
WO2010124007A1 (en) 2010-10-28
GB2481559A (en) 2011-12-28
US20180173384A1 (en) 2018-06-21
US9939993B2 (en) 2018-04-10
GB201118190D0 (en) 2011-12-07
CA2758561A1 (en) 2010-10-28
CA2758561C (en) 2018-09-04

Similar Documents

Publication Publication Date Title
CA2758561C (en) Jukebox menu navigation system
US7734680B1 (en) Method and apparatus for realizing personalized information from multiple information sources
US8669457B2 (en) Dynamic generation of playlists
US8219224B2 (en) Automatic music management methods and systems
US8316299B2 (en) Information processing apparatus, method and program
US20070199014A1 (en) Consumer portal
CN1940910B (en) Content providing system, content providing apparatus and method, content distribution server, and content receiving terminal
US20160179299A1 (en) Visually Indicating A Replay Status Of Media Items On A Media Device
CA2618707C (en) Quick pick apparatus and method for music selection
US20100125351A1 (en) Ordering A Playlist Based on Media Popularity
US20060292537A1 (en) System and method for conducting multimedia karaoke sessions
CN101828224A (en) System and method for selectively identifying media items for play based on a recommender playlist
US20100229124A1 (en) Graphical representation of elements based on multiple attributes
CN102214193A (en) Information processing device, client device and server device
EP1840774A1 (en) Content list display
US20080243633A1 (en) Systems and methods for receiving and sponsoring media content
US20060059530A1 (en) Distributed configuration of entertainment devices
US20100257030A1 (en) Method and system for conducting a contest
KR101028902B1 (en) Method and apparatus for organizing and playing data
US20100232263A1 (en) Category management
US10586275B2 (en) System for using mobile devices for outputting audio data sets at a venue
US20140310280A1 (en) System and method for discovery, grouping and sharing of media content
WO2001086842A2 (en) Method and apparatus for delivering digital content using an internet appliance

Legal Events

Date Code Title Description
AS Assignment

Owner name: AMI ENTERTAINMENT NETWORK, INC., PENNSYLVANIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RICHARDS, RONALD, MR.;GARRETT, DANNY, MR.;GROPPE, JOHN, MR.;AND OTHERS;SIGNING DATES FROM 20100427 TO 20100520;REEL/FRAME:024740/0690

AS Assignment

Owner name: AMI ENTERTAINMENT NETWORK, LLC, DELAWARE

Free format text: CHANGE OF NAME;ASSIGNOR:AMI ENTERTAINMENT NETWORK, INC.;REEL/FRAME:031475/0029

Effective date: 20131018

Owner name: THE GOVERNOR AND COMPANY OF THE BANK OF IRELAND, C

Free format text: SECURITY AGREEMENT;ASSIGNOR:AMI ENTERTAINMENT NETWORK, LLC;REEL/FRAME:031475/0209

Effective date: 20131018

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: AMI ENTERTAINMENT NETWORK, LLC, PENNSYLVANIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:THE GOVERNOR AND COMPANY OF THE BANK OF IRELAND;REEL/FRAME:043466/0570

Effective date: 20170721