System and method for filling content gaps
Claim Score by NHIP
Abstract
A system and method including an agent for selecting at least two songs among simultaneously streaming songs based on user information and inserting additional content in the duration of time between the end of the earlier song and the start of the later song.
Term
Term ended
Expired 14 August 2022, 4.1 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
43 claims: 5 independent, 38 dependent
- 1A method of selecting content comprising:playing first data representative of first content having a beginning and an end, the first data streaming via a first channel during a first time period;selecting second data representative of second content having a beginning and an end, the second content streaming via a second channel during a second time period such that the beginning of the second time period occurs a duration of time after the end of the first time period;retrieving third content based on the length of the duration of time;between the start time and stop time of the first content, accessing streaming data associated with the first content;between the start time and stop time of the second content, accessing streaming data associated with the second content;playing the first content;playing the third content after the first content;and playing the second content after the third content.
- 21Broadest claimClaim Score 88, very broad(NHIP)A method of transitioning between songs comprising:playing a first song;identifying a second song to be streamed after the end of the first song;if the second song begins a duration of time after the end of the first song, retrieving audio information;at the end of the first song, playing the retrieved audio information;and playing the second song after it begins streaming and after the end of the retrieved audio information.
- 33A method of transitioning between songs comprising:(a) playing a first song;(b) identifying, based on information relating to a user, a second song to be streamed after the end of the first song;(c) if the second song begins a duration of time after the end of the first song, then retrieving audio information based on the duration and playing the retrieved audio information between the end of the first song and the beginning of the second song;and (d) if the second song begins before the end of the first song, then storing the second song in memory as it streams and playing, from the memory, the second song after the end of the first song.
- 38A system for playing songs comprising:a processor capable of executing instructions;and a connection to a network streaming songs, the instructions including: identifying a second song to be streamed after the end of a first streaming song, if the second song begins a duration of time after the end of the first song, retrieving audio information based on the duration of time and, at the end of the first song, playing the retrieved audio information followed by the second song.
- 43A non-transitory computer-readable medium including instructions for:playing a first song;identifying a second song to be streamed after the end of the first song;if the second song begins a duration of time after the end of the first song, retrieving audio information based on the duration of time;at the end of the first song, playing the retrieved audio information;and playing the second song after it begins streaming and after the end of the retrieved audio information.
Independent claims5
97 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
0001A variety of web sites transmit music over the Internet. One manner in which this occurs involves an end user computer connected to the Internet which sends a request for music to a radio station web site. When the web site gets that request, it “sends” music to the user by sending various digitally-encoded packets. Typically, the radio web site transmits whatever music is broadcast at the time by the radio station. In this scenario, the user is not getting files of specific songs, but rather the opportunity to listen to a radio broadcast over the Internet instead of airwaves. When the packets arrive at the end user's computer, the packets are reassembled in the correct order and converted into audio signals. The audio signals are then provided to the speakers connected to the computer.
0002There are many services which specialize in streaming music over the Internet, such as www.NetRadio.com. These services typically make a number of different audio streams available to end users. They may also be played using typical audio playing software such as RealNetworks, Inc.'s Real Player 7 and Microsoft's Windows Media Player 7.
0003It is common to analogize the availability of songs from different sources or the same source as “channels”. Each channel may be considered to represent the connection between two computers whereby one computer sends audio signals to another over a network. For example, one channel on the web site www.a.com may stream rock songs whereas another channel on www.b.com may stream pop songs. When a user's computer connects to www.a.com, the web server hosting that web site will stream the currently-playing rock song to the computer. Channels may be available from URL's with different Internet domain names. Alternatively, two channels may originate from the same web site and server. In other words, two channels may comprise a computer simultaneously accessing two different songs from the same web server at the same time. For example, each of the two songs may be divided into discrete pieces of data, with a piece of the first song arriving, then a piece of the second song arriving, then another piece of the first song arriving, then another piece of the second song arriving, etc.
0004One of the current problems with Internet music channels is the number of available channels. There may be hundreds of channels to choose from and it is often difficult for the user to find a song they want to hear. Moreover, even if the user finds a song on a channel they like, the next song on the channel may not be as interesting to the user as another song on another channel.
SUMMARY OF THE INVENTION
0005The present invention addresses the foregoing issues. In one aspect, a method of selecting content is provided and includes: playing first data representative of first content having a beginning and an end, the first data streaming via a first channel during a first time period; selecting second data representative of second content having a beginning and an end, the second content streaming via a second channel during a second time period such that the beginning of the second time period occurs a duration of time after the end of the first time period; retrieving third content based on the length of the duration of time; between the start time and stop time of the first song, accessing streaming data associated with the first song; between the start time and stop time of the second song, accessing streaming data associated with the second song; playing the first song; playing the third content after the first content; and playing the second content after the third content.
0006In another aspect, a method of transitioning between songs includes: playing a first song; identifying a second song to be streamed after the end of the first song; if the second song begins a duration of time after the end of the first song, retrieving audio information; at the end of the first song, playing the retrieved audio information; and playing the second song after it begins streaming and after the end of the retrieved audio information.
0007A further aspect relates to a method of transitioning between songs. This method includes playing a first song; identifying, based on information relating to a user, a second song to be streamed after the end of the first song; if the second song begins a duration of time after the end of the first song, then retrieving audio information based on the duration and playing the retrieved audio information between the end of the first song and the beginning of the second song; and if the second song begins before the end of the first song, then storing the second song in memory as it streams and playing, from the memory, the second song after the end of the first song.
0008Yet another aspect provides a system for playing songs having a processor capable of executing instructions and a connection to a network streaming songs. The instructions include: identifying a second song to be streamed after the end of a first streaming song, if the second song begins a duration of time after the end of the first song, retrieving audio information based on the duration of time and, at the end of the first song, playing the retrieved audio information followed by the second song.
0009Yet a further aspect provides a computer-readable medium including instructions for: playing a first song; identifying a second song to be streamed after the end of the first song; if the second song begins a duration of time after the end of the first song, retrieving audio information based on the duration of time; at the end of the first song, playing the retrieved audio information; playing the second song after it begins streaming and after the end of the retrieved audio information.
0010It is understood that both the foregoing general description and the following detailed description are exemplary and are intended to provide further explanation of the invention claimed.
0011The accompanying drawings, which are incorporated in and constitute part of this specification, are included to illustrate and provide a further understanding of the system and method of the invention. Together with the description, the drawings serve to explain the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
0012<figref idref="DRAWINGS">FIG. 1</figref> is a functional diagram of a system in accordance with one embodiment.
0013<figref idref="DRAWINGS">FIG. 2</figref> is a functional diagram of an agent and player in accordance with one embodiment, including the relationship of the agent and player to speakers and a network.
0014<figref idref="DRAWINGS">FIG. 3</figref> is user interface in accordance with an one embodiment.
0015<figref idref="DRAWINGS">FIG. 4</figref> is a graph of exemplary song start and stop times.
0016<figref idref="DRAWINGS">FIG. 5</figref> is a graph of exemplary song start and stop times.
DETAILED DESCRIPTION OF THE EMBODIMENTS
0017As shown in <figref idref="DRAWINGS">FIG. 1</figref>, a system <b>50</b> in accordance with one embodiment of the invention comprises a network of computers such as end user personal computer <b>60</b> which communicates with web servers <b>70</b>-<b>72</b> via Internet <b>80</b>. Although only a few computers are depicted in <figref idref="DRAWINGS">FIG. 1</figref>, it should be appreciated that a typical system can include a large number of connected computers. Preferably, end user computer <b>60</b> is a general purpose computer having all the internal components normally found in a personal computer such as, for example, central processing unit (CPU) <b>61</b>, display <b>62</b>, CD-ROM <b>63</b>, hard-drive <b>64</b>, mouse <b>65</b>, keyboard <b>66</b>, speakers <b>67</b>, microphone <b>68</b>, modem <b>69</b> and all of the components used for connecting these elements to one another. Although CPU <b>61</b> is shown as a single processor, the instructions may actually be distributed to a number of different components or processors for execution.
0018End user computer <b>60</b> communicates with the Internet <b>80</b> via modem <b>69</b>. End user computer <b>60</b> may comprise any device capable of processing instructions and transmitting data to and from humans and other computers, including network computers lacking local storage capability, PDA's with modems and Internet-capable wireless phones.
0019Web servers <b>70</b>-<b>72</b> contain hardware for sending and receiving information over the World Wide Web, such as web pages or files. The web servers <b>70</b>-<b>72</b> may be typical web servers or any computer network server or other automated system capable of communicating with other computers over a network, including the Internet, wide area networks or local area networks. For example, the system described above in connection with end user computer <b>60</b> may also function as a web server.
0020As shown in greater detail in <figref idref="DRAWINGS">FIG. 2</figref>, the user computer <b>60</b> contains instructions and a variety of data. Preferably, the instructions and data are stored as a program on a medium such as the hard drive <b>64</b> of the computer <b>60</b>. Although the data is shown separately from instructions <b>102</b>, the data may be modified by the program. The functions, methods and routines of the program are explained in more detail below.
0021One set of data and instructions comprises streaming audio player <b>200</b>. When provided with the IP address of a server providing streaming audio, player <b>200</b> requests and accesses that information in a manner known to those of ordinary skill in the art. These IP addresses may be the TCIP/IP number address (such as 204.171.64.2), the URL associated with that address (such as www.Sony.com) or any other identifier which identifies a node of the applicable network.
0022Agent <b>100</b> comprises a set of instructions and data for, among other things, selecting songs. Agent <b>100</b> comprises instructions <b>102</b> which are executed by processor <b>61</b> in accordance with the steps described below. These instructions use and manipulate a variety of data. One of the data items is User Profile Database <b>150</b>. The User Profile Database contains information about the user which the agent may find helpful in choosing songs. For example, the User Profile Database <b>150</b> contains Genre Table 160. Genre Table 160 associates certain genres with a metric that is indicative of how much the user likes a particular genre of music. For example, Genre Table 160 may include a set of records where each record has two fields: genre field <b>161</b> which identifies the genre and value field <b>162</b> which stores the metric. For ease of discussion, sample values for the table are shown below. It is not necessary for the table to contain every possible genre.
0023<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>GENRE TABLE 150</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="133pt" align="center" /><tbody valign="top"><row><entry /><entry>Genre 151</entry><entry>Value 152</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Rock</entry><entry>30</entry></row><row><entry /><entry>Pop</entry><entry>10</entry></row><row><entry /><entry>Country</entry><entry>20</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0024User Profile Database <b>150</b> may also contain information representing how much a user likes or dislikes a particular artist. In this regard, Artist Table 170 associates certain artists with a metric that is indicative of how much the user likes a particular genre of music. For example, Artist Table 170 may include a set of records where each record has two fields: artist field <b>161</b> which identifies the artist and value field <b>162</b> which stores the metric. For ease of discussion, sample values for the table are also shown in <figref idref="DRAWINGS">FIG. 2</figref>. The negative value indicates that the user dislikes the artist. It is not necessary for the table to contain every possible artist.
0025<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>ARTIST TABLE 170</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="133pt" align="center" /><tbody valign="top"><row><entry /><entry>Artist 171</entry><entry>Value 172</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="133pt" align="char" char="." /><tbody valign="top"><row><entry /><entry>Artist1</entry><entry>40</entry></row><row><entry /><entry>Artist3</entry><entry>20</entry></row><row><entry /><entry>Artist10</entry><entry>−20</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0026Artist Table 170 and Genre Table 160 associates information which is directly applicable to songs with a value indicative of user interest. For example, most songs fall into a genre and are performed by an artist. However, User Profile Database <b>150</b> advantageously also contains information that is not directly applicable to music but may be useful in finding songs which the user is likely to be interested in.
0027Other song-specific information may also be used. By way of example, if a user has indicated that they like a particular artist, then the agent may select songs of related artists. For example, the related artist may be an ex-member of the original artist. Similarly, the agent may be aware that users who like one particular band are highly likely to enjoy another particular band.
0028Demographic Values <b>180</b> contains information about the user. For example, Demographic Values <b>180</b> may include data representing the user's gender, birthday and the geographic region in which the user resides.
0029Demographic Rules <b>190</b> contains information regarding how the information about the user can be used to find songs the user may like. This information may be represented by a set of rules. By way of example, if it was believed that people tended to like songs that were popular when they were 18 years old, a rule may add or subtract points to a song based on when it came out relative to a person's 18th birthday. The rule is stored in the system in a syntax which can interpreted by the system. Thus, a rule stating that a point is deducted from a song for each year the song came out before or after a user's 18th birthday might be represented as the string: “Points decrement=Abs([Song Publication Date]−[User Birth Year]−18).” Points and the foregoing sample rule are explained in more detail below.
0030In addition to storing information about the user, agent <b>100</b> also stores a schedule which identifies a collection of songs which can be streamed to player <b>200</b>. Preferably, Song Schedule 140 associates the identity of a song with the channel it will be streamed on and the time it will be streamed. This information may be stored in tabular form containing a variety of fields such as the song's title <b>141</b>, the song's channel <b>142</b>, the artist name <b>143</b>, the genre <b>143</b>, the year it was copyrighted <b>145</b>, the time at which the song will begin streaming <b>146</b> and the time at which the song will stop streaming <b>147</b>. For the purposes of illustration, exemplary values are shown below (time values being in hh:mm:ss).
0031<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Song Schedule 140</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="28pt" align="center" /><colspec colname="6" colwidth="28pt" align="center" /><colspec colname="7" colwidth="35pt" align="center" /><tbody valign="top"><row><entry>Song</entry><entry /><entry /><entry /><entry /><entry>Start</entry><entry>Stop</entry></row><row><entry>Title</entry><entry>Channel</entry><entry>Artist</entry><entry>Genre</entry><entry>Year</entry><entry>Time</entry><entry>Time</entry></row><row><entry>141</entry><entry>142</entry><entry>143</entry><entry>144</entry><entry>145</entry><entry>146</entry><entry>147</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row><row><entry>SongA</entry><entry>a.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>1999</entry><entry>12:00:01</entry><entry>12:03:00</entry></row><row><entry>SongB</entry><entry>b.com</entry><entry>Artist2</entry><entry>Pop</entry><entry>1985</entry><entry>12:00:02</entry><entry>12:05:00</entry></row><row><entry>SongC</entry><entry>c.com</entry><entry>Artist3</entry><entry>Country</entry><entry>2001</entry><entry>12:01:03</entry><entry>12:06:00</entry></row><row><entry>SongD</entry><entry>a.com</entry><entry>Artist4</entry><entry>Pop</entry><entry>1995</entry><entry>12:03:00</entry><entry>12:05:00</entry></row><row><entry>SongH</entry><entry>d.com</entry><entry>Artist6</entry><entry>Rock</entry><entry>1989</entry><entry>12:04:00</entry><entry>12:07:00</entry></row><row><entry>SongE</entry><entry>e.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:10:00</entry></row><row><entry>SongF</entry><entry>a.com</entry><entry>Artist4</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:08:00</entry></row><row><entry>SongG</entry><entry>c.com</entry><entry>Artist5</entry><entry>Country</entry><entry>1985</entry><entry>12:06:00</entry><entry>12:09:00</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0032As songs are selected, they are added to a Playlist 199. The Playlist identifies the songs and the order they are to be played in.
0033Another set of data comprises buffer <b>195</b> which stores digital audio information for later use by player <b>200</b>. Preferably, the buffer is a FIFO buffer, i.e., it outputs information to the player <b>200</b> in the same order as it is stored in the buffer. The buffer is not limited structurally. For example, it may comprise a specialized circuit devoted to buffering music data. On the other hand, the buffer may also comprise a set of instructions executable by the processor which stores the incoming audio information on the hard drive of a general purpose computer and then retrieves the information from the hard drive in the order it was stored.
0034The agent may store other data as well, such as the values identified as Maximum Ad Length <b>196</b>, Maximum Buffer Length <b>197</b> and Remaining Time Threshold <b>198</b>. This data is discussed in more detail below.
0035The data structures described herein, such as the foregoing tables, are exemplary only. Other data structures, such as different fields and tables or completely different methods of storing information such as XML or the like, may be used instead.
0036In addition to maintaining the aforementioned data, the agent also sends information to the player <b>200</b>. As discussed more below, this information may include the IP address of a streaming music channel, commands (such as instructions to play music) and data representing music.
0037Although some of the operations of the agent are automatic, other operations may be instigated by a user. For these sorts of operations, the agent provides a user interface such as the user interface <b>300</b> shown in functional form in <figref idref="DRAWINGS">FIG. 3</figref>. Information relating to the currently playing song is shown in textbox <b>301</b>, with its start and stop times shown in textboxes <b>302</b> and <b>303</b>, respectively. A user may play or stop or song, or go to the next or previous song, by activating buttons <b>304</b>-<b>307</b>, respectively. Some of the buttons may be disabled based on the state of the agent. For example, if the player is only streaming currently available songs, the previous song button <b>307</b> may be disabled by the agent. Song finder button <b>308</b> is used to search for a new song. Information about the next song to be displayed is shown in textbox <b>301</b>, with the start and stop times of the next song shown in textboxes <b>309</b> and <b>310</b> respectively. The reject button <b>311</b> allows a user to inform the agent that the user does not like the next song. Clicking the edit user info button <b>312</b> would open a window or launch a program which allows the user to edit the information contained in the User Profile Database <b>150</b>.
0038Web server <b>72</b> provides a variety of audio advertisements in response to requests from other computers on the network. The ads are of various durations and stored so that when a request for an ad is provided along with a particular duration, an audio file meeting that criteria can be sent to the user. The ads are stored in a manner which associates certain durations of times with audio files such as Ad Table <b>73</b>. Exemplary values for Ad Table <b>73</b> follow for the purposes of illustration.
0039<tables id="TABLE-US-00004" num="00004"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>ADVERTISEMENT TABLE</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="126pt" align="center" /><tbody valign="top"><row><entry /><entry>Duration</entry><entry>File</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>58 seconds</entry><entry>Ad1.mp3</entry></row><row><entry /><entry>59 seconds</entry><entry>Ad2.mp3</entry></row><row><entry /><entry>60 seconds</entry><entry>Ad3.mp3</entry></row><row><entry /><entry>61 seconds</entry><entry>Ad4.mp3</entry></row><row><entry /><entry>62 seconds</entry><entry>Ad5.mp3</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0040In operation, the agent obtains the music schedules from various music channels. For example, each web site may provide a schedule of the songs to be played on the channels it hosts. Alternatively, the agent may obtain the information from a central storage facility providing a list of various songs on various channels. Indeed, the agent may not be able to determine the start and stop time of songs that are scheduled to play in the future. Rather, and particularly if there are legal benefits to doing so, the music channel servers <b>70</b>-<b>71</b> may only release textual information (title, artist, genre, remaining length, etc.) about the song while it is playing. Accordingly, the schedule may only comprise songs which are currently playing, and may not include the stop time of the song.
0041The steps of actually selecting and playing a song may start in any number of ways, including the user indicating that they would like to hear a song. In such an instance, the user will click the Song Finder button <b>308</b> of user interface <b>300</b> (<figref idref="DRAWINGS">FIG. 3</figref>). The agent interprets this command as requiring the agent to immediately start playing the song which best matches the user's preferences.
0042Once the user indicates that they want the agent to find the best song, the agent will create a list of the currently playing songs. One manner in which this may be performed is for the agent to query Song Schedule Table 140 for all songs having start times before the current time and stop times after the current time. For example, if the current time is 12:02:05 pm, the agent would pull the following set of records from Song Schedule Table 140.
0043<tables id="TABLE-US-00005" num="00005"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="35pt" align="center" /><colspec colname="6" colwidth="28pt" align="center" /><colspec colname="7" colwidth="28pt" align="center" /><thead><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>SongA</entry><entry>a.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>1999</entry><entry>12:00:01</entry><entry>12:03:00</entry></row><row><entry>SongB</entry><entry>b.com</entry><entry>Artist2</entry><entry>Pop</entry><entry>1985</entry><entry>12:00:02</entry><entry>12:05:00</entry></row><row><entry>SongC</entry><entry>c.com</entry><entry>Artist3</entry><entry>Country</entry><entry>2001</entry><entry>12:01:03</entry><entry>12:06:00</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0044Preferably, the agent will filter out (either before or during the step of retrieving current songs) those songs which are almost over. This filtering may occur by not including songs whose remaining time is less than a particular value, or whose remaining time is less than a particular percentage compared to the entire length of the song. Regardless, the threshold value may be stored in Remaining Time Threshold <b>198</b>. For example, if the threshold value is 61 seconds, then SongA would not be included in the list of currently playing songs because its end time (12:03:00) will occur less than 61 seconds from the current time (12:02:05). Thus, the remaining possibilities include SongB and SongC.
0045Once a list of currently-playing songs is compiled, the agent chooses the best song to play based on the user's profile. One manner in which this step may be performed is by assigning point values to each song based on the information contained in User Profile Database 150 and then choosing the song with the greatest point value. For example, based on the exemplary values contained in Genre Table 160, 10 points are assigned to SongB because it is a member of the “Pop” genre and 20 points are assigned to SongC because it is a member of the Country genre.
0046The agent also uses the Demographic Rules and Values to select a song the user is likely to be interested in. The agent retrieves a rule from Demographic Rules <b>190</b> and applies the rule to the information it has about the user and song. Using the example above, for each song, the agent retrieves the user's birthday <b>181</b>, the year <b>145</b> of the song and the rule “Points decrement=Abs([Song Publication Date]−[User Birth Year]−18).” If the user was born in 1970 and the current year is 2001, then the exemplary rule for SongC is realized as follows: “Points decrement=Abs(2001−1970−18).” In other words, the rule indicates that 13 points are to be decremented from the total points associated with SongC (reflecting the difference between the song's year of publication and the user's 18th birthday). For SongB which was published in 1985, the points decrement is far less, i.e. 2 points. Thus, SongB's total is 20−2=+18 and SongC's total is 10−13=−3. Based on these point, the agent will choose SongB.
0047Accordingly, song agent <b>100</b> can choose a song based not only on the user's music-specific preferences but also based on information relating to the user which is not music specific. Moreover, the song agent is able to prioritize the songs that it finds. Based on the artist and demographic information, for example, the agent may determine that the user would be interested in any number of songs. However, using the weighted values, the agent can pick the “best” song.
0048Once the song is chosen, song agent <b>100</b> sends the IP address of the selected channel to player <b>200</b> thus causing the player to access the data streaming from that IP address. Using the foregoing example, song agent would send the URL address “www.b.com” to player <b>200</b>. Agent <b>100</b> simultaneously commands the music player <b>200</b> to begin playing whatever music is being streamed to it.
0049Song agent <b>100</b> also stores the information regarding the current song in Playlist 199 in a manner which identifies the current song. Thus, after SongB is selected, the playlist may appear as follows:
0050<tables id="TABLE-US-00006" num="00006"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Playlist 199</entry></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="8"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="21pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="21pt" align="left" /><colspec colname="6" colwidth="21pt" align="center" /><colspec colname="7" colwidth="28pt" align="center" /><colspec colname="8" colwidth="28pt" align="center" /><tbody valign="top"><row><entry>Current Song</entry><entry>SongB</entry><entry>b.com</entry><entry>Artist2</entry><entry>Pop</entry><entry>1985</entry><entry>12:00:02</entry><entry>12:05:00</entry></row><row><entry>Next Song</entry></row><row><entry namest="1" nameend="8" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0051Information relating to the current song is also displayed in the user interface <b>300</b>. As shown in <figref idref="DRAWINGS">FIG. 3</figref>, the information relating to the current song is displayed in the text box <b>301</b>, the start time in text box <b>302</b> and the stop time in text box <b>303</b>.
0052Preferably, the agent does not wait for the current song to end before it starts looking for the next one. Rather, it immediately begins searching for the next song to play after the current one ends.
0053In one aspect, the agent will limit the next song to those songs that begin immediately after the current one ends. Specifically, agent <b>100</b> queries the Song Schedule Table 140 for all songs having a start time which is equal to the stop time of the current song. Using the example values for Song Schedule Table 140, the agent would thus select the following songs as possible songs to play when SongB ends:
0054<tables id="TABLE-US-00007" num="00007"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="21pt" align="left" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="21pt" align="left" /><colspec colname="5" colwidth="28pt" align="center" /><colspec colname="6" colwidth="35pt" align="center" /><colspec colname="7" colwidth="42pt" align="center" /><thead><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>SongE</entry><entry>e.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:10:00</entry></row><row><entry>SongF</entry><entry>a.com</entry><entry>Artist4</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:03</entry><entry>12:08:00</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0055Once a list of the next possible songs to play is retrieved, agent <b>100</b> selects a song from the list in the same manner it chose a song from the list created in response to the user clicking song finder button <b>308</b>. Using the exemplary values contained in the Artist Table <b>170</b>, the agent would choose SongE over SongF because the user has assigned positive points to Artist<b>1</b> and Artist<b>4</b> is unlisted.
0056Once the next song is chosen, agent <b>100</b> stores the information relating to the next song in Playlist 199. Thus, after SongE is selected, the playlist may appear as follows:
0057<tables id="TABLE-US-00008" num="00008"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Playlist 199</entry></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="8"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="21pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="21pt" align="left" /><colspec colname="6" colwidth="21pt" align="center" /><colspec colname="7" colwidth="28pt" align="center" /><colspec colname="8" colwidth="28pt" align="center" /><tbody valign="top"><row><entry>Current Song</entry><entry>SongB</entry><entry>b.com</entry><entry>Artist2</entry><entry>Pop</entry><entry>1985</entry><entry>12:00:02</entry><entry>12:05:00</entry></row><row><entry>Next Song</entry><entry>SongE</entry><entry>e.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:10:00</entry></row><row><entry namest="1" nameend="8" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0058Information relating to the next song is also displayed in the user interface <b>300</b>. As shown in <figref idref="DRAWINGS">FIG. 3</figref>, the information relating to the current song is displayed in the text box <b>313</b>, the start time in text box <b>309</b> and the stop time in text box <b>310</b>.
0059Once the current song is done playing, agent <b>100</b> modifies playlist 199 so that the next song is now the current song. Thus, as described above, the agent sends the IP address of the selected channel of the newly current song to player <b>200</b>, thus causing the player to access the data streaming from that IP address. Using the foregoing example, song agent would send the URL address “www.e.com” to player <b>200</b> and simultaneously command the music player <b>200</b> to begin playing the music streamed from that channel.
0060As the newly current song is playing, agent <b>100</b> will search for the next song and the process will continue as described above. Alternatively, rather than keeping only two songs in the playlist (i.e., the current and next song), agent <b>100</b> may fill playlist 199 with a stack of songs to be played one after the other.
0061In another embodiment, the agent does not limit itself to songs which begin immediately after the current song ends. Rather, the agent may also select songs which begin some duration of time after the current song ends. If one song is better than the other but starts a little later, a user may not mind waiting for the better song. For example, SongG was omitted from the list of possible songs to play after SongB ends because SongG starts at 12:06:00 and SongB ends at 12:05:00. However, based on the User Profile Database, it may be that SongG is more likely to be interesting to the user than the songs (SongE and SongF) which begin immediately after the current song ends.
0062Accordingly, agent <b>100</b> queries the Song Schedule Table 140 for all songs whose start time minus the current song's stop time is less than some threshold duration. This threshold duration may be stored by the agent as Maximum Ad Length <b>196</b>. Using the foregoing example, if the Maximum Ad Length were 61 seconds, then agent <b>100</b> would select the following songs as possible songs to play when SongB ends because each song has a start time which is less than 61 seconds after the SongB stop time:
0063<tables id="TABLE-US-00009" num="00009"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="21pt" align="left" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="28pt" align="center" /><colspec colname="6" colwidth="35pt" align="center" /><colspec colname="7" colwidth="35pt" align="center" /><thead><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>SongE</entry><entry>c.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:10:00</entry></row><row><entry>SongF</entry><entry>a.com</entry><entry>Artist4</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:08:00</entry></row><row><entry>SongG</entry><entry>c.com</entry><entry>Artist5</entry><entry>Country</entry><entry>1985</entry><entry>12:06:00</entry><entry>12:09:00</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0064The Maximum Ad Length could be set to any time. For example, ads are more likely to be thirty seconds in length.
0065The agent then selects the best song to play from this expanded list based on the user's profile information and the song information as discussed above. It shall be assumed for the purposes of example that the agent would choose SongG over the other songs after it performs the process of evaluating the songs for the potential desirability to the user.
0066Advantageously, the agent does not simply switch to the channel streaming the next song upon the end of the current song. If it did, the gap between the songs would cause the player to play only portions of a song. Specifically, if the agent switches from a first channel to a second channel at the end of the current song, then the user will hear the end of the current song on the second channel before the next selected song begins. On the other hand, if the agent switches from a first channel to a second channel at the beginning of the next selected song, then the user will hear the beginning of the next song on the first channel before the next selected song begins.
0067<figref idref="DRAWINGS">FIG. 4</figref> illustrates the gap using the foregoing example. As shown by the shaded portion, there is a gap of one minute between the end of SongB on channel b.com and the beginning of SongG on channel c.com. If agent <b>100</b> instructs player <b>200</b> to switch from channel b.com to channel c.com when SongB ends at 12:05, the user will hear the beginning of the next song on channel b.com (SongX) until the switch occurs. Once the switch occurs, SongX will be interrupted in the middle in the song. On the other hand, if agent <b>100</b> waits until the beginning of SongG (12:06) before it instructs player <b>200</b> to switch from channel b.com to channel c.com, then the user will be dropped into the middle of SongY on channel c.com. In either instance, the user will hear either the beginning or end of a song that the agent never selected. This has the potential of being disruptive to the listening experience.
0068The agent addresses the problem by inserting audio information from a different source into the gap. For example, as soon as the current song ends, the agent sends a message via the Internet to ad server <b>72</b>. The message requests an advertisement having a duration equivalent to the length of the gap between selected songs. Upon receipt of the request, advertisement server <b>70</b> selects an advertisement based on the requested duration. For example, in response to a request for a 60 second advertisement, advertisement server <b>70</b> would stream the audio information represented by the file Ad3.mp3 to the end user computer <b>60</b>. If an ad having that exact duration is not available, the server may stream the closest file it has to that duration. Preferably, it would stream the largest file it has which still fits within the gap. Alternatively, the agent may stack advertisements together to fill the gap. For example, if the gap between songs is 90 seconds and the longest ads on the advertisement server are 30 seconds, then the agent may play three 30-second ads in a row to fill the 90-second gap.
0069Agent <b>100</b> simultaneously instructs player <b>200</b> to access the data streaming from Ad Server <b>70</b>. Accordingly, the user will hear the selected advertisement while the user is waiting for the next selected song to begin. Once the next selected song begins, agent <b>100</b> instructs player <b>200</b> to access the data streaming the channel carrying the next selected song.
0070There also may be instances where the next best song does not start immediately or some time after the end of the current song ends, but rather starts before the end of the current song. For example, SongH was omitted from the list of possible songs to play after SongB ends because SongH starts at 12:04:00 and SongB ends at 12:05:00. However, based on the User Profile Database, it may be that SongH is more likely to be desired by the user than the songs which begin immediately (SongE and SongF) or a short time (SongG) after the end of the current song (SongB).
0071In another embodiment, the agent adds such songs to the list of possible songs for selection. When selecting possible next songs, agent <b>100</b> chooses a range of acceptable start times. To determine the bottom end of the range, the agent may take the end time of the current song and subtract a threshold duration stored in Maximum Buffer Length <b>197</b>. To determine the top end of the range, the agent takes the end time of the current song and adds the threshold duration stored in Maximum Ad Length <b>196</b>. The agent then queries the Song Schedule Table 140 for all songs whose start time falls within that range. Using the exemplary values of Song Schedule 140, the agent would select the following songs as possible songs to play when SongB ends if the Maximum Buffer Length <b>197</b> and Maximum Ad Length <b>196</b> are both set at 61 seconds:
0072<tables id="TABLE-US-00010" num="00010"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="1" colwidth="35pt" align="left" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="21pt" align="center" /><colspec colname="6" colwidth="35pt" align="center" /><colspec colname="7" colwidth="35pt" align="center" /><thead><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>SongH</entry><entry>d.com</entry><entry>Artist6</entry><entry>Rock</entry><entry>1989</entry><entry>12:04:00</entry><entry>12:07:00</entry></row><row><entry>SongE</entry><entry>e.com</entry><entry>Artist1</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:10:00</entry></row><row><entry>SongF</entry><entry>a.com</entry><entry>Artist4</entry><entry>Rock</entry><entry>2000</entry><entry>12:05:00</entry><entry>12:08:00</entry></row><row><entry>SongG</entry><entry>c.com</entry><entry>Artist5</entry><entry>Country</entry><entry>1985</entry><entry>12:06:00</entry><entry>12:09:00</entry></row><row><entry namest="1" nameend="7" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0073Agent <b>100</b> then selects the next song to play from this expanded list in the same manner as described above. It shall be assumed for the purposes of example that the agent would choose SongH over the other songs after it performs the process of evaluating the songs.
0074Advantageously, the agent does not simply switch to the channel streaming the next song if the next song has already started. If it did, the user would miss the beginning of the next selected song. For example, as shown in <figref idref="DRAWINGS">FIG. 5</figref>, SongH starts at 12:04, i.e. one minute before SongB ends. The shaded portion in <figref idref="DRAWINGS">FIG. 5</figref> represents the amount of overlap between the selected songs.
0075Instead of simply switching at the specific start and stop times, the next song is placed in an anticipatory buffer. Specifically, while the current song is being streamed to player <b>200</b> on one channel, agent <b>100</b> simultaneously requests streaming audio associated with the selected next song on the other channel as soon as the next song begins. However, the agent does not instruct the player to play the audio on the other channel. Rather, agent <b>100</b> stores the streaming data in Buffer <b>195</b>. For example, at 12:05 pm, agent <b>100</b> accesses the streaming data from www.d.com.
0076Once the current song ends, agent <b>100</b> then streams the audio information out of buffer <b>195</b> directly to the player <b>200</b> and commands the player to play the data streamed from agent <b>100</b>. Because buffer <b>195</b> outputs data in the order it was received, the buffer will stream the audio information it is storing to the player, starting with the beginning of the song. For example, player <b>200</b> will play SongH from beginning to end based on the information contained in buffer <b>195</b>.
0077While the next song is streaming from the buffer to the player, the agent is not idle. Rather, agent <b>100</b> begins the foregoing steps of selecting songs all over again.
0078Advantageously, the buffer may be used even if a schedule of upcoming songs is unavailable. For example, even if the music channel servers only provide information about the currently playing song, computers and computer networks will often be fast enough to begin buffering the song as soon as information about it become available. This is particularly true if the textual information describing the song is made available at least a short duration of time before the song starts.
0079The various embodiments provide numerous advantages. In one aspect, the agent intelligently chooses songs for a user from the hundreds of possible channels and it makes that decision by evaluating the likelihood of the user enjoying the song. Moreover, rather than simply relying on information which is particular to the song, the agent preferably uses a variety of categories of data to arrive at its conclusion including: information which is specific to the song regardless of the user information (such as the song's genre); information which is specific to the user's preferences with respect to music (such as the extent of a user's preference for a particular genre); and information which is related to the users regardless of the user's music-specific preferences (such as the user's age).
0080Another advantage is its ability to give the user seamless transitions between selected songs which have a gap between the end of one and the start of the other. Rather than disrupting the user with interrupted songs, the agent intelligently chooses audio to play in the gap so the user has a seamless user experience. The agent simultaneously uses the gap in a manner which makes the invention attractive not only to users but also marketers. For example, the audio to be played in the gap may include an advertisement which is chosen and maintained by an advertising company.
0081Another advantage of the agent is its ability to handle songs which overlap. Rather than simply abandoning good songs because they have already started, the agent plans ahead by putting the next overlapping and selected song in a buffer while the currently selected song is playing. Accordingly, the user is not deprived of hearing a song they are likely to be interested in.
0082Yet another unique advantage of the agent is the way it synergistically combines all of these aspects and advantages to create a whole which rises above the sum of its parts. The agent is able to select the best song regardless of overlaps and gaps. It seamlessly moves from buffering one minute to playing advertisement in gaps the next.
0083The features also complement one another. For example, the invention may also be used when the length of a gap between songs is not known. If the start time of the second song is not known, the agent may continuously play advertisements until the second song starts. If the second song suddenly begins and an advertisement is still playing, the agent may buffer the second song until the end of the current advertisement, thus providing a seamless transition.
0084Another advantage is the numerous alternatives and options which can be implemented, making the agent extremely flexible.
0085For instance, if the user initiates some action on the user interface <b>300</b> which causes the selected song to stop playing, the agent <b>100</b> may record that indication in the User Profile Database <b>150</b>. For example, if the user clicked the song finder button <b>308</b> while SongB was playing, the agent <b>100</b> may add a record to artist table <b>170</b> which associates Artist<b>2</b> with a negative value. The next time that artist comes up in the list of possible choices, all other things being equal the artist's song would not be selected.
0086The user may also reject the next chosen song by clicking the reject button <b>311</b>. This would cause the agent to search for a new song and the action would be stored in the User Profile Database.
0087The invention may also be used to search for specific songs. For example, the user may indicate that they are only interested in songs from a particular artist such as Madonna. Alternatively, the user may indicate that they are only interested in dance songs from the 1980's. In either instance, the agent will only select songs which satisfy the search criteria.
0088Moreover, it is not necessary for the gap-filling audio information to be streamed from a remote location during the gap. Rather, the gap-filling audio may be downloaded while the current song is playing and stored in buffer <b>195</b> so that it is immediately available when the current song ends.
0089Moreover, in one aspect, the gap-filling information is not obtained from an outside source at all. Rather, the agent may search end user computer <b>60</b> to see if it has any audio information, such as other songs, stored on hard drive <b>64</b> which fit the gap. If so, rather playing an advertisement the player may play a locally stored song. This is particularly advantageous if the agent discovers a particularly large gap between two songs of if there is an unanticipated (or anticipated) break in the transmission of data over the network.
0090Indeed, rather than having the player connect directly to the network, the agent may obtain all of the audio data destined for player <b>200</b> and store it in buffer <b>195</b>. When two songs overlap, the buffer would contain the audio information for both songs. The data associated with the next selected song would be streamed to player <b>200</b> after the current song is finished playing.
0091It is also not necessary to consider the agent and player to be different programs. Rather all of the functionality can be included in a single product. Alternatively, the agent and player may be provided by completely different companies, one specializing in audio players and the other specializing in song selectors.
0092In fact, it is not necessary that the agent and player be limited to software for a general purpose computer. The player may be solid-state digital music player such as Sony's Memory Stick™ Walkman which connects to a personal computer. The agent could run on the PC and automatically download the selected songs to the player. Or instead, the agent could be stored on the dedicated device if the device is able to connect to a network.
0093It is also preferable for the agent to run in the background of the user's computer, constantly or periodically searching and updating song schedules while other applications are running. The advantage of searching for songs in the background is that the Song Schedule 140 will be up to date and ready for access in an instant; the user will not have to wait for the agent to search the network when they click the song finder button.
0094Although the agent is particularly advantageous when used with songs and other musical works, the agent may also be used in connection with other audio information. For example, the invention may select poems or news reports instead. The agent may also be used to select non-audio streaming content, such as music videos as well.
0095Unless stated to the contrary, any use of the words such as “including,” “containing,” “comprising” and the like, means “including without limitation” and shall not be construed to limit any general statement that it follows to the specific or similar items or matters immediately following it. References to a “plurality” of things means at least two of the things.
0096Except where the context indicates to the contrary, all exemplary values are intended to be fictitious, unrelated to actual entities and are used for purposes of illustration only.
0097Most of the foregoing alternative embodiments are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the invention as defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the invention as defined by the claims.
Contents4
Every citation, both waysCites: the store holds 22 of 23
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2002002897A1 | Cites | United States of America | Applicant |
| US2002032019A1 | Cites | United States of America | Applicant |
| US2002072326A1 | Cites | United States of America | Applicant |
| US2002078056A1 | Cites | United States of America | Applicant |
| US2002100062A1 | Cites | United States of America | Search report |
| US2002162106A1 | Cites | United States of America | Search report |
| US2002165770A1 | Cites | United States of America | Applicant |
| US2003236843A1 | Cites | United States of America | Search report |
| US2004244035A1 | Cites | United States of America | Search report |
| US2005193410A1 | Cites | United States of America | Search report |
| US2008124052A1 | Cites | United States of America | Search report |
| US2008313669A1 | Cites | United States of America | Search report |
| US2009106792A1 | Cites | United States of America | Search report |
| US5629867A | Cites | United States of America | Applicant |
| US5809246A | Cites | United States of America | Applicant |
| US6122660A | Cites | United States of America | Search report |
| US6248946B1 | Cites | United States of America | Applicant |
| US6360368B1 | Cites | United States of America | Applicant |
| US6507727B1 | Cites | United States of America | Applicant |
| US6546421B1 | Cites | United States of America | Applicant |
| US6791020B2 | Cites | United States of America | Applicant |
| US7500258B1 | Cites | United States of America | Search report |
| Field et al. "Personal DJ, an Architecture for Personalised Content Delivery" ACM 2001. | Non-patent | – | Applicant |
3 members in 1 office
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 21900802 | United States of America | A | |
| 21900802 | United States of America | A | |
| 52161706 | United States of America | A | |
| 10219008 | – | – | – |
| US20020219008 | – | – | – |
| US20060521617 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2004031378A1 | United States of America | A1 | |
| US6791020B2 | United States of America | B2 | |
| USRE44569EThis record | United States of America | E |
64 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections and 1 RCE.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Response after Non-Final ActionA... | A... | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| New or Additional Drawing FiledC614 | C614 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Application Is Now CompleteCOMP | COMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by OIPE CSRL194 | L194 | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| The identification of one or more legal entities other than the inventor(s), each such legal entityASGMT | ASGMT | |
| Cleared by OIPE CSRL194 | L194 | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| Preliminary AmendmentA.PE | A.PE | |
| Initial Exam Team nnIEXX | IEXX |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee payment procedurePAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- RE044569
- Publication, DOCDB
- RE44569
- Publication, EPODOC
- USRE44569E
- Application
- 11521617
- Application, DOCDB
- 52161706
- Application, EPODOC
- US20060521617
Titles
- English
- System and method for filling content gaps
Classification
- CPC, 3
- G10H1/0058
- G10H2240/105
- G10H2240/305
- IPC, 4
- G10H7 00
- A63H5 00
- G04B13 00
- G10H1 00
- USPC, 2
- 084609000
- 709231000