Claims
- 1. A method comprising the steps of:
receiving, at a virtual jukebox device that is communicatively coupled to at least one networked device via a network interface, at least one playback request from at least one networked device for rendering at least one audio file; storing the received at least one playback request in a queue in the virtual jukebox device; requesting a copy of the at least one audio file associated with the at least one playback request; storing the copy of the requested at least one audio file in the virtual jukebox device; rendering the stored copy of the requested at least one audio file by the virtual jukebox device; and receiving at the virtual jukebox device, from the at least one networked device via the network interface, at least one vote for or against the at least one audio file.
- 2. The method of claim 1, wherein the step of receiving at the virtual jukebox device the at least one vote from the at least one networked device is performed substantially contemporaneously with the step of rendering the at least one audio file by the virtual jukebox device.
- 3. The method of claim 1, further comprising the step of providing audio in a shared acoustical environment, the audio corresponding to the at least one audio file being rendered.
- 4. The method of claim 1, wherein the at least one playback request received from the at least one networked device comprises an indication of location of the associated at least one audio file.
- 5. The method of claim 4, wherein the indication of location of the associated at least one audio file comprises at least one URL (Uniform Resource Locator) for the at least one audio file.
- 6. The method of claim 1, wherein the step of storing the received at least one playback request in the queue comprises the step of storing in the queue at least one queue item associated with the at least one associated audio file, respectively, wherein each of the at least one queue item includes a count of the number of times that an associated audio file has been requested.
- 7. The method of claim 1, further comprising the step of arranging the received at least one playback request in the queue in a first-in-first-out order.
- 8. The method of claim 1, wherein the step of requesting a copy of the at least one audio file associated with the at least one playback request comprises the step of requesting a copy of the at least one audio file from a networked device via the network interface.
- 9. The method of claim 8, wherein the step of requesting a copy of the at least one audio file from a networked device is accomplished in time for rendering at least a portion of the requested at least one audio file.
- 10. The method of claim 1, further comprising, after the step of rendering the stored copy of the requested at least one audio file, the step of removing from the queue the at least one playback request associated with the rendered at least one audio file.
- 11. The method of claim 1, further comprising the steps of:
totaling the received at least one vote for or against the at least one audio file; calculating the percent of votes for an audio file currently being rendered relative to the total votes received for and against the audio file; comparing the calculated percent to a threshold; and stopping the rendering of the audio file currently being rendered if the comparison does not meet or exceed the threshold.
- 12. A method comprising the steps of:
rendering an audio file; receiving via a network a message from a networked device, the message comprising one of the following:
a vote for the audio file being rendered; and a vote against the audio file being rendered; providing a relative vote indication corresponding to a summation of received votes relating to the audio file being rendered; comparing the relative vote indication to a voting threshold; and stopping the rendering of the audio file if the relative vote indication does not meet or exceed the voting threshold.
- 13. The method of claim 12, further comprising the step of:
contemporaneous with the step of rendering the audio file, providing audio in a shared acoustical environment, the audio corresponding to the audio file being rendered.
- 14. The method of claim 12, further comprising the step of requesting a copy of the audio file from a networked device via a network interface.
- 15. A method in a virtual jukebox system comprising the steps of:
storing a list of previously rendered audio files, the audio files having been rendered in response to received requests from networked devices; completing the rendering of all requested audio files; selecting an audio file from the list of previously rendered files; and rendering the selected audio file.
- 16. The method of claim 15, further comprising the step of:
substantially contemporaneous with the step of rendering the selected audio file, providing audio in a shared acoustical environment, the audio corresponding to the selected audio file being rendered.
- 17. The method of claim 15, further comprising the step of requesting a copy of the selected audio file from a networked device via a network interface.
- 18. The method of claim 15, wherein the step of selecting an audio file from the list of previously rendered files comprises the step of:
selecting an audio file based on at least one of:
the number of times the audio file has been rendered; a random selection method; a history of votes associated with the audio file; the time of the day; the time of the year; and the time since a last rendering of the audio file.
- 19. The method of claim 15, further comprises the steps of:
selecting an audio file from the list of previously rendered files before the end of the rendering of a last requested audio file; requesting a copy of a selected audio file from a networked device via a network interface; receiving the copy of requested audio file; storing the received copy of the requested audio file, and rendering the stored copy of the received audio file after the end of the rendering of the last requested audio file.
- 20. A computer readable medium including computer instructions for operating a virtual jukebox system, the computer instructions comprising instructions for:
rendering an audio file; receiving via a network a message from a networked device, the message comprising one of the following:
a vote for the audio file being rendered; and a vote against the audio file being rendered; providing a relative vote indication corresponding to a summation of received votes relating to the audio file being rendered; comparing the relative vote indication to a voting threshold; and stopping the rendering of the audio file if the relative vote indication does not meet or exceed the voting threshold.
- 21. The computer readable medium of claim 20, further comprising computer instructions for:
substantially contemporaneous with rendering the audio file, providing audio in a shared acoustical environment, the audio corresponding to the audio file being rendered.
- 22. The computer readable medium of claim 20, further comprising computer instructions for:
requesting a copy of the audio file from a networked device via a network interface.
- 23. A computer readable medium including computer instructions for operating a virtual jukebox system, the computer instructions comprising instructions for:
rendering an audio file; receiving via a network a message from a networked device, the message comprising one of the following:
a vote for the audio file being rendered; and a vote against the audio file being rendered; providing a relative vote indication corresponding to a summation of received votes relating to the audio file being rendered; comparing the relative vote indication to a voting threshold; and stopping the rendering of the audio file if the relative vote indication does not meet or exceed the voting threshold.
- 24. The computer readable medium of claim 23, further comprising computer instructions for:
requesting a copy of the audio file from a networked device via a network interface.
- 25. A virtual jukebox system comprising:
a network interface for communication with at least one networked device; an audio platform interface for rendering audio files; data memory comprising a queue for storing at least one playback request from at least one networked device for rendering at least one audio file corresponding to the at least one playback request; a program memory; a processor/controller, electrically coupled to the network interface, the data memory, and the program memory; a queue manager, electrically coupled to the program memory, for managing the queue; an audio player manager, electrically coupled to the program memory, for:
requesting a copy of the at least one audio file corresponding to the at least one playback request; storing the copy of the requested at least one audio file in the data memory; and rendering the stored copy of the requested at least one audio file; and a voting manager, electrically coupled to the program memory, for receiving, from the at least one networked device via the network interface, at least one vote for or against the at least one audio file.
- 26. The virtual jukebox system of claim 25, wherein the audio player manager renders the stored copy of the requested at least one audio file substantially contemporaneously with the voting manager receiving the at least one vote for or against the at least one audio file being rendered.
- 27. The virtual jukebox system of claim 25, wherein the audio player manager requests a copy of the at least one audio file corresponding to the at least one playback request from a networked device.
- 28. The virtual jukebox system of claim 25, further comprising an autoplay manager, electrically coupled to the program memory, for
storing a list of previously rendered audio files, the audio files having been rendered in response to received playback requests from networked devices; selecting an audio file from the list of previously rendered files; and after the rendering of all audio files associated with playback requests has been completed, rendering the selected audio file.
- 29. The virtual jukebox system of claim 25, wherein the autoplay manager stops selecting an audio file when a request for an audio file is received.
- 30. A list of lists, each of the individual lists containing at least one list item corresponding to at least one song that has been rendered by a virtual jukebox system, the at least one song further being associated with
a number of votes for and against the at least one song that were cast during its rendering, and a time of last rendering.
- 31. A method of selecting from a plurality of previously rendered songs, a song for rendering when no songs are requested, the method comprising the steps of:
generating a first random number; using the first random number to select a list of songs from a plurality of lists of songs; generating a second random number; using the second random number to select a song from the selected list of songs; placing the selected song in a queue; and placing a copy of the selected song in a cache; and rendering the selected song from the cache.
- 32. The method according to claim 31, wherein the step of rendering the song is substantially contemporaneous with the end of the previously rendered song.
- 33. The method according to claim 31, wherein the generation of the first random number is weighted based on a predetermined parameter.
- 34. The method according to claim 31, wherein the generation of the second random number is weighted based on a predetermined parameter.
- 35. A computer readable medium including computer instructions for selecting from at least two lists of previously rendered songs, a song for rendering when no songs are requested, the computer instructions comprising instructions for:
generating a first random number; using the first random number to select a list from a least two lists of songs; generating a second random number; using the second random number to select a song from the selected list of songs; placing the randomly selected song in a queue; placing a copy of the randomly selected song in a cache; and rendering the song from the cache.
- 36. The computer readable medium of claim 35, further comprising computer instructions for the generation of a random number that is used for weighted list selection based on a predetermined parameter.
- 37. The computer readable medium of claim 35, further comprising computer instructions for the selection of a song from a selected list of songs which is weighted based on a predetermined parameter.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present patent application is related to co-pending and commonly-owned U.S. patent application Ser. No. ______, Attorney Docket No. ARC920010018US1, entitled “Collaborative Content Programming”, filed on even date with the present patent application, the entire teachings of which being hereby incorporated by reference, and further is related to co-pending and commonly-owned U.S. patent application Ser. No. 09/163,498, entitled “An Extensible Thin Server for Computer Networks”, filed on Sep. 30, 1998, the entire teachings of which are hereby incorporated by reference.