CA2553159A1 - Network delivery of interactive entertainment complementing audio recording - Google Patents

Network delivery of interactive entertainment complementing audio recording Download PDF

Info

Publication number
CA2553159A1
CA2553159A1 CA002553159A CA2553159A CA2553159A1 CA 2553159 A1 CA2553159 A1 CA 2553159A1 CA 002553159 A CA002553159 A CA 002553159A CA 2553159 A CA2553159 A CA 2553159A CA 2553159 A1 CA2553159 A1 CA 2553159A1
Authority
CA
Canada
Prior art keywords
recording
recited
data
computer
network
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
CA002553159A
Other languages
French (fr)
Inventor
Dale Tyron Roberts
Ann E. Greenberg
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.)
Gracenote Inc
Original Assignee
Gracenote, Inc.
Dale Tyron Roberts
Ann E. Greenberg
Ion Inc.
Cddb, Inc.
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
Priority claimed from US08/838,082 external-priority patent/US5987525A/en
Application filed by Gracenote, Inc., Dale Tyron Roberts, Ann E. Greenberg, Ion Inc., Cddb, Inc. filed Critical Gracenote, Inc.
Publication of CA2553159A1 publication Critical patent/CA2553159A1/en
Abandoned legal-status Critical Current

Links

Abstract

Entertainment content complementary to a musical recording is delivered to a user's computer by means of a computer network link. The user employs a browser to access the computer network. A plug-in for the browser is able to control an audio CD or other device for playing the musical recording. A script stored on the remote computer accessed over the network is downloaded. The script synchronizes the delivery of the complementary entertainment content with the play of the musical recording.

Description

~r.
IbIT~RA~'f IYZ ~T~tTAIeBI~T
CO~~ ~AVDtO RZ~i~rGs 1-Fief,tha Invehti~~, This inv0ntion pex'tains t0 the field of computer networking, dnd iuoz'~ p~ytrcularly to the use of network s ' ~'c'.
protocols to provi~4 ,~lo~viC:~a to users, that are r~lated to CD
ROMs, audio reaordinqs etnd'other diotributed media.
2. Relat~d Art . --Over the past.fsw.yeera, on-liae~sorvices have axp~ri~nced explosive gro~rth 'r~'t~d .=have boco~me a major new form of entartainme~nt... R1~~Q~~ds this new entertain~ctent, more traditional forms such a~~°~musical recordings have continued to be consumed on a masaivs'scale.
.The traditional experience of the musical recording ig hastening by a amahl.group of persons gathered together in a roam. Th~ music fills'the room acoustically, but there is little assvciateci visual ceriteat, and there is only a' limited interaction with the recording, consisting essentially of deciding which tracks to play and performing simple transformations oa.th~.recorde4 sound, such as setting the volume or applying an studio equalizer. T~hix traditional exp~rience ?~dat,as beck, tb' the early age of 78 r.p.m, musical racordinQa altuost..a century ago.
The traditional production of a musical recording .
complements the traditional experience of the recording. The recording is. produced in a; number of recording'sessions, subject to careful mixing and editing, and then released to the publa,c.

At that point, the recording is in a fixed form, nowadays, an audio CD, whose purpose is to record as faithfully as possible the final sonic experience designed by its authors, the musicians, producer, and recording engineers.
Music videos have supplemented the traditional experience of musical recordings by allowing the association of visual content with tracks of such a recording. In practice, however, music videos have been broadcast, with all the problems of lack of user control which that implies, and they have not contributed to interactivity or participation by the consumer.
In EP-A-194143 (Sony) there is disclosed a videotex system developed by Sony in which a database center can control a video disc or CD player among other devices.
On-line services offer opportunities for enriching the experience associated with prerecorded material. The present invention is addressed to computer programs, systems, and 1 S protocols which can fulfil this promise.
SUMMARY OF THE INVENTION
It is therefore an object of an aspect of this invention to provide computer programs, systems, and protocols which allow producers to deliver entertainment complementary to distributed media recordings by means of on-line services such as the Internet. It is a further object of this invention to provide computer programs, systems, and protocols which allow such complementary entertainment to be meaningfully interactive fox the consumer, such that the consumer can also be a creator of the experience.
It is a further object of an aspect of the invention to achieve the foregoing objects by means of implementations designed to attain integration with existing environments and programs, particularly on the Internet, while retaining the flexibility to adapt to the continuing evolution of stands for on-line services.

=n a f~.r~st aspa~et cf the present invention prdvidas a means for producers and aalle~rx~ of distributed media such as CDs to maintain sad atrengthar~ their Conritob3or~ to their customers.
Retard companies dosir~lcad and pari,odical~,y update a central library of c~plamantary contest for cD's the. company has in rise market. The softWar~ of the prasant invention operate as~ a plug-in to a users web bromser and directs a user with a record company's CD to a parzicula~ sa~ctian of Che contral lib=cry appropxiaza for the u~sax~ s CD.
In another aspoct of the pre:ant inv~ntion, called "CA
W$tcher" data xaprasentative of thew8ers listening hab~.ts relaziv~s to h. xeca~Cd cvmpany~ s CD is transferred ~o the record company When complementary, oontant is de~.iverad to the user over a natwoxk connection.
iS alternatively, record companies conzrfbuzinc~ and ma~.r~ta~x~.ing the central library have access to the list~aning hab~.ts pf all user~a Nho have accessed the central l~.bxary for complementary content.
In ancthar aspect of the ~.nvsntion, softwaro ~,s provided ~0 which parmitd t~ computer program runr~i~ag ors a remote heat zo control a distri?xuted media player such as a. coiupacL disk (CD) playax, nvb player, or the like an a user's cotaputer. (sor Crrnvea~,eacs, wa use the tern ''CA"' to r~sf~r to al.i d~.aributsd media and the term HCD p7,ayar" to refer also to ah d#.st.r5.butsd ~s medf.a p~.ayers such. as DVD piayars and similar davicas ~ ) The seitware is deaiQnqd tv permit the xamote halt both to initiate actions oa the CD player and to become aware of actions which the uoer has iaitiatcd by otktar control means, aruoh as the buttons' Qn the CD pls~yer' a front pe~ne3. er r~ diffe=ant CD player ~0 control program. This aapsnt of the invention is a bu.ildiag-block for the provision of contplannentary aatartsinmanr far CD
3 content whey those recordings are fix~d in the prevailing contemporary form, the CD.
=n another aspect of the ~,avention, visual content, including interactive content, may be deliv~red over an on-line service in such a Way that it is synchronised to the d~livery of content from a musical recording. Such visual content may; for example, be synchronized to the playing of an audio CD or other distributed media in the user's computer. The visual content is thematically linked to'the musical recording, for example in~the manner of a music video.
In a further aspect of the invention, a method is provided for determining or assigning a substantially unique identifier to CD or other distributed media content consisting of a number of tracks. A uwiqua identifier is a useful complement Zo the delivery of supplemsntary~cont~nt in conjunction With the-playinQ of a CD or other distributed media in that l.t allows the software which delivers the supplementary content to be sure that~the CD is in fact the correct CD to which the suppleznen=ary content corresponds. . If the supplementary content is designed, for example, to accompany the Rosazy Sonatas of Heinrich Ignaz Franz Hibei,~it would presumably act function Well if the CD or vthor distributed media in the user's player were the soundtrack for the film Mary Poppins. The unique identifier also allows a CD or other distributed media to be used as a key to access a 2S premium Web area. Forth~rmore, the unique identifier can allow the user to be directed to an axes of the Web corresponding to the CU or other distributed media which is in the user's machine. .
rn a still further aspect of the iav~atioa, the imm~nsely popular on-line service generally referred to as a "chat room"
may be enhanced by means of a linx to a GD recording which all persons is the room arc playing. A remote host may control
4 distributed media players in multiple remote locations. The chat room experience as it exists today in on-line services has a disembodied quality by comparison with traditional face-to-face social encounters in which there are identifiable surroundings.
The only common experience to the chat users today are the words of the chat as they fly by on a computer screen, and perhaps the user icons ("avatars") or other visual content occupying a small space on the screen. The use of a musical recording in conjunction with a chat room opens up the possibility of restoring to the experience a degree of the shared ambience of traditional social encounters. Furthermore, shared content such as a musical recording offers a focal point that allows chat-seekers to group together by means of shared interests in a particular type of recording.
In accordance with an aspect of the present invention there is provided a system for transferring information associated with playback of a recording, comprising:
a first device to reproduce a recording, to obtain information from the recording used to play back contents of the recording perceived by the user and to collect sets of use data, each set associated with playing of the recording during at least one period of time;
a second device to store the sets of use data; and a network coupled to said first and second devices to transfer the sets of use data from said first device to said second device.
In accordance with another aspect of the present invention there is provided a method of obtaining information associated with playback of recordings at a first device connectable to a second device via a network, comprising:
collecting, at the first device, use data not previously associated with a recording fixed in a medium possessed by a user and identified using information provided with the recording to play back the recording, not provided to identify the recording;
and transferring the use data from the first device to the second device via the network.

In accordance with yet another aspect of the present invention there is provided a method of obtaining information associated with playback of recordings containing segments at a first device connectable to a second device via a network, comprising:
identifying at least one segment of a recording, fixed in a medium possessed by a user, based on information associated with the recording and stored in the medium for a purpose other than identifying the recording;
collecting, at the first device, use data not previously associated with the recording, the use data including segment data identifying the at least one segment played at the first device; and transferring the use data from the first device to the second device via the network.
In accordance with still yet another aspect of the present invention there is provided a system for obtaining information based on playback of at least one recording at a first device connected to a second device via a network, comprising:
identification means for identifying a recording fixed in a medium possessed by a user based on information associated with the recording and stored in the medium for a purpose other than identifying the recording;
collection means for collecting use data related to at least one of a portion of the recording and play time of the recording;
connection means for establishing a connection between the first and second devices;
transmission means for sending the use data from the first device to the second device via the network; and storage means for storing the use data at the second device.
In accordance with yet another aspect of the present invention there is provided a computer-readable storage storing instructions to control a processor to perform a process comprising:
collecting, at a first device, use data not previously associated with a recording fixed in a medium possessed by a user and identified using information provided with the recording to play back contents of the recording perceived by the user; and Sa transferring the use data from the first device to a second device connected to the first device via a network.
In accordance with still yet another aspect of the present invention there is provided a system for transferring information associated with playback of a recording, comprising:
a first device to reproduce a recording fixed in a medium possessed by a user, to identify the recording based on information associated with the recording and stored in the medium for a purpose other than identifying the recording, and to collect use data not previously associated with the recording;
a second device to store the use data; and a network coupled to said first and second devices to transfer the use data from said first device to said second device.
In accordance with yet another aspect of the present invention there is provided a method of obtaining information associated with playback of recordings at a first device connectable to a second device via a network, comprising:
collecting, at the first device, use data not previously associated with a recording identified using information provided with the recording to play back contents of the recording perceived by a user; and transferring the use data from the first device to the second device via the network.
In accordance with still yet another aspect of the present invention there is provided a method of obtaining information associated with playback of recordings containing segments at a first device connectable to a second device via a network, comprising:
identifying at least one segment of a recording, based on information obtained from or related to the segment and included in the recording to enable playback of the segment rather than to identify the segment;
collecting, at the first device, use data not previously associated with the at least one segment of the recording, the use data including segment data identifying the at least one segment played at the first device; and Sb transferring the use data from the first device to the second device via the network.
In accordance with yet another aspect of the present invention there is provided a system for obtaining information based on playback of at least one recording at a first device connected to a second device via a network, comprising:
identification means for identifying a recording fixed in a medium possessed by a user based on information provided with the recording to play back contents of the recording perceived by the user;
collection means for collecting use data related to at least one of a portion of the recording and play time of the recording;
connection means for establishing a connection between the first and second devices;
transmission means for sending the use data from the first device to the second device via the network; and storage means for storing the use data at the second device.
In accordance with still yet another aspect of the present invention there is provided a computer-readable storage storing instructions to control a processor to perform a process comprising:
collecting, at a first device, use data not previously associated with playback of a recording identified based on information provided with the recording to play back contents of the recording perceived by a user; and transferring the use data from the first device to a second device connected to the first device via a network.
In accordance with yet another aspect of the present invention there is provided a method for associating local and remote data on a local computer connected to a network, comprising:
automatically executing a program on the local computer when a recording is played, to obtain an at least partial pointer to remote data corresponding to the recording Sc from a correspondence of recording identifiers and pointer data stored on at least one remote computer connected to the local computer via the network;
obtaining the remote data via the network from a location based on the at least partial pointer; and outputting the remote data on the local computer.
In accordance with still yet another aspect of the present invention there is provided a method for associating a recording with output of data on a local device connected to a network, comprising:
obtaining an identifier from information provided with the recording to play back the recording;
comparing the identifier with records in a database maintained on a remote computer coupled to the local device via the network; and outputting remote data obtained from the network upon verification of access to the recording by the local device, the remote data obtained via the network from at least one storage location dynamically determined based on the identifier.
In accordance with yet another aspect of the present invention there is provided a method of delivering content complementary to a compact disc inserted in a compact disc player coupled with a computer connected to a network, comprising:
receiving the compact disc in the compact disc player coupled with the computer;
obtaining an identifier for the compact disc;
retrieving from a remote computer via the network an at least partial pointer related to the identifier;
linking to a remote device via the network using the at least partial pointer;
and delivering content complementary to the compact disc from the remote device to the computer via the network.
In accordance with still yet another aspect of the present invention there is provided a method of delivering content complementary to a compact disc inserted in a compact disc player coupled with a computer connected to a network, comprising:
inserting the compact disc in the compact disc player coupled with the computer;
obtaining an identifier for the compact disc;
Sd retrieving an at least partial pointer related to the identifier, including searching a local cache for the identifier;
connecting to a remote look-up server to search for the identifier and to return at least one pointer string related thereto when the identifier is not found in the local cache within a predetermined period of time;
storing the at least one pointer string returned from the remote look-up server in the local cache; and providing the at least one pointer string as the at least partial pointer when the identifier is found in the local cache and when the at least one pointer string is returned from the remote look-up server;
linking to a remote device via the network, in response to the at least partial pointer; and delivering content complementary to the compact disc from the remote device to the computer via the network.
In accordance with yet another aspect of the present invention there is provided a computer system, coupled to a network, to associate remote data and audio, comprising:
a playback unit, located at a first location, to play a recording;
a communication unit, located at the first location, to obtain remote data from the network using an at least partial pointer corresponding to the recording;
an output unit, located at the first location, to output the remote data; and a remote computer, coupled to said communication unit via the network and located at a second location remote from the first location, storing at least one database of recording identifiers and at least partial pointers and providing said communication unit with the at least partial pointer.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a compact disc inserted into a compact disc player coupled with a local computer connected to a network, comprising:
Se detecting insertion of the compact disc in the compact disc player coupled with the local computer;
obtaining an identifier for the compact disc;
retrieving from a remote computer via the network an at least partial pointer corresponding to the identifier;
linking to a remote device via the network, based on the at least partial pointer;
and delivering content complementary to the compact disc from the remote device to the local computer via the network.
In accordance with yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a compact disc inserted into a compact disc player coupled with a computer connected to a network, comprising:
inserting the compact disc in the compact disc player coupled with the computer;
obtaining an identifier for the compact disc;
retrieving an at least partial pointer corresponding to the identifier, including searching a local cache for the identifier;
connecting to a remote look-up server to search for the identifier and return at least one character string related thereto, when the identifier is not found in the local cache within a predetermined period of time;
storing the at least one character string returned from the remote look-up server in the local cache; and providing the at least one character string as the at least partial pointer, when the identifier is found in the local cache and when the at least one character string is returned from the remote look-up server;
linking to a remote device via the network, based on the at least partial pointer;
and delivering content complementary to the compact disc from the remote device to the computer via the network.
Sf In accordance with still yet another aspect of the present invention there is provided a method for associating remote and local data on a local device connected to a network, comprising:
automatically executing a program on the local device when the local data is accessed, to obtain at least one pointer string, corresponding to the local data, from at least one database of local data identifiers and pointer strings stored on at least one remote device connected to the local device via the network;
obtaining the remote data via the network from a content provider based on the at least one pointer string; and outputting at the local device the remote data obtained from the network.
In accordance with yet another aspect of the present invention there is provided a method for associating remote and local data on a local device connected to a network, the local data including at least one electronic file of digital audio stored on one of a compact disc and a digital versatile disc, said method comprising:
obtaining an identifier from information associated with the local data accessed by the local device when the one of a compact disc and a digital versatile disc is inserted into the local device;
automatically executing, when the local data is accessed, a communication program for communication via the network, after initiating the communication program if the communication program has not been initiated previously;
automatically requesting remote data based on the identifier; and automatically outputting at the local device the remote data obtained from the network.
In accordance with still yet another aspect of the present invention there is provided a method of delivering content complementary to a recording ready for playback by a local device connected to a network, comprising:
obtaining an identifier for the recording;
retrieving from a remote device via the network an at least partial pointer corresponding to the identifier;
Sg linking to the remote device via the network, based on the at least partial pointer;
and delivering content complementary to the recording from the remote device to the local device via the network.
In accordance with yet another aspect of the present invention there is provided a system coupled to a network and associating remote data with local data included in a recording, comprising:
a local device located at a first location, including an access unit playing the recording for a user of the local device and accessing the local data;
a communication unit, coupled to said access unit, automatically obtaining, upon access to the local data by said access unit, the remote data from the network using at least one pointer string at least partially defining a uniform resource locator corresponding to the local data; and an output unit, coupled to said communication unit at the first location, outputting the remote data; and a remote computer, coupled to said communication unit via the network and located at a second location remote from the first location, storing at least one database of recording identifiers and pointer strings, said communication unit obtaining the at least one pointer string from said remote computer.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a recording ready for playback by a local device connected to a network, comprising:
obtaining an identifier for the recording;
retrieving from a remote device via the network an at least partial pointer corresponding to the identifier;
linking to a remote device via the network based on the at least partial pointer;
and Sh delivering content complementary to the recording from the remote device to the local device via the network.
In accordance with yet another aspect of the present invention there is provided a method for associating local and remote data on a local computer connected to a network, comprising:
outputting on the local computer remote data based on playback of a recording by the local computer, the remote data obtained via the network from at least one storage location dynamically determined when the playback of the recording occurs.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for associating a recording at a local computer with data at a remote computer coupled to the local computer via a network, comprising:
obtaining an identifier based on information associated with the recording;
automatically accessing the remote computer at a location dynamically determined after verification of access to the recording by the local computer; and comparing the identifier with records in a database maintained on the remote computer.
In accordance with yet another aspect of the present invention there is provided a system coupled to a network, comprising:
an access unit to access local data containing no content stored for the purpose of providing enhanced capability;
a communication unit to automatically obtain remote data from the network upon access to the local data; and a processing unit, coupled to said access unit and said communication unit, to provide the enhanced capability by processing the remote data.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for associating a recording with output of remote data on a local computer connected to a network, comprising:
Si outputting remote data obtained via the network from at least one storage location dynamically determined after verification of access to the recording by the local computer.
In accordance with yet another aspect of the present invention there is provided a method for associating remote and local data on a local device connected to a network, comprising:
automatically obtaining the remote data using an at least partial pointer corresponding to the local data and obtained from the network by the local device upon access to the local data by the local device; and outputting at the local device the remote data obtained from the network, based on access to the local data by the local device.
In accordance with still yet another aspect of the present invention there is provided a system, coupled to a network, to associate remote data with local data, comprising:
an access unit to access the local data;
a communication unit to automatically obtain the remote data from the network upon access to the local data, using an at least one partial pointer obtained from the network and corresponding to the local data; and an output unit to output the remote data.
In accordance with yet another aspect of the present invention there is provided a method for associating a recording with output of data on a local computer connected to a network, comprising:
outputting remote data obtained from the network upon verification of access to the recording by the local computer, the remote data obtained via the network from at least one storage location dynamically determined after the recording is accessed.
In accordance with still yet another aspect of the present invention there is provided a computer system coupled to a network, comprising:
a playback unit to play a recording;
a communication unit to obtain remote data via the network from at least one storage location dynamically determined when playback of the recording occurs; and Sj an output unit to output the remote data.
In accordance with yet another aspect of the present invention there is provided a method for associating remote data with a recording accessed at a local computer connected to a network to provide enhanced capability based on the remote data, comprising:
outputting remote data, obtained from the network and providing enhanced capability, upon verification of access by the local computer to a recording containing no content stored for the purpose of providing the enhanced capability.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for associating remote data with a recording accessed at a local computer connected to a network to provide enhanced capability based on the remote data, comprising:
outputting remote data, obtained from the network and providing enhanced capability, upon verification of access by the local computer to a recording containing no content stored for the purpose of providing enhanced capability.
In accordance with yet another aspect of the present invention there is provided a method for controlling a local computer connected to a network to provide enhanced capability not available from content stored at the local computer, comprising:
controlling the local computer to provide the enhanced capability based on remote data obtained from the network upon verification of access by the local computer to a recording containing no content stored for the purpose of providing enhanced capability.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for controlling a local computer connected to a network to provide enhanced capability not available from content stored at the local computer, comprising:
controlling the local computer to provide the enhanced capability based on remote data obtained from the network upon verification of access by the local computer Sk to a recording containing no content stored for the purpose of providing enhanced capability.
In accordance with yet another aspect of the present invention there is provided a method for obtaining data related to a recording, comprising:
obtaining an identifier based on information associated with the recording;
using the identifier as a key to locate at least one record in at least one database file; and obtaining data from at least one related file linked to the at least one database file.
In accordance with still yet another aspect of the present invention there is provided at least one computer program stored on a computer-readable medium, embodying a method for obtaining data related to a recording, comprising:
obtaining an identifier based on information associated with the recording;
using the identifier as a key to locate at least one record in at least one database file; and obtaining data from at least one related file linked to the at least one database file.
In accordance with yet another aspect of the present invention there is provided a computer system, coupled to a network, to associate data with recordings, comprising:
a communication unit to receive via the network at least one of an identifier and information associated with a recording used to determine the identifier;
a storage unit storing at least one database file; and a database access unit, coupled to said communication unit and said storage unit, to use the identifier as a key to locate at least one record in the at least one database file, said communication unit outputting via the network at least one related file linked to the at least one database file.
In accordance with still yet another aspect of the present invention there is provided a computer system to associate data with a recording, comprising:
a processor to determine an identifier from information associated with the recording;

a storage unit storing at least one database file; and a database access unit, coupled to said processor and said storage unit, to use the identifier as a key to locate at least one record in the at least one database file.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a network diagram of a first embodiment of the present invention.
Fig. 2 is a flow diagram of the embodiment shown in Fig. 1.
Fig. 3 is a block diagram of the environment in which the present invention operates.
Fig. 4 is a block diagram of complementary content according to an aspect of the present invention.
Fig. 5 is a flowchart of the synchronization code of the invention.
Fig. 6 is a flowchart of the sequence of operations for connecting the present invention to a chat room.
Sm DZtSCRZBTtOTi OS ~~ii,R~ Ee~O~I~TS
Referring to Fig.~$ 1 and 2, as embodiment of the pro3ent invention dynamically connects a user playing a CD with a remote host for data exchange. At block 11, tho user links to a remote host and raquesta a download of client 26. To receive the download the user must,provide some basic information, name. e-mail, chat name, etc. The registration information is exchanged for client 26 at block 11A. At block l0A user coasputes 10 is running computer program 12 such as a browser with client Z6.
At block 30A insertion of CD 30 into~player 32 triggers action by client 26. Client 26 takes eez~txol of~player 32 and scans co 30. CD ~37, may include ti~tte code 31A and other encoded data 318.
Client 26 uses the results~ot the CD scan to calculate a substantially unique CD ID 3l, block 3~4. Some CD's may contain an rD text .file or IRC cede, there is no universal standard, thus an ID calculation teehrlique may yield a useful ID with any CD. This technique may create a pattern match 31~' by sampling a subset of the content of CD 30 and using the sample to create a substantially unique pattern watch 31F of CO 30. While client 26 is calculating CD ID 31, at block 36 use demographic data 62 is also collected and temQorarily stored by client 26.
tise demographic data 62 inciudes~but is not limitod to CD
use profiles including most used tracks, total time of use, most used CDs, average length of time computer 10 i8 running, software loaded, most used software, software running concurrently with client and the like:
Calculation of a CD TD 31 stimulates client 26 to direct computer program 12 to check a local cache for CD ID 31. TF CD
ID 3I is not present in the local cache client 26 links to look-up server 40 at block 38. Tf computer program 12 is loot already running, client 26 may launch it. Oncc the link to look-up server 40 is estab~.ished, client 26 sends cD TD 31 zo look-up s8rver 90. Leak-up server 90 compares CD ZD 37. against table 92. Table 42 is a lank-up table linking CD ID's w3.th $ome~
associated ccs~tent and With particular addressee having complementary content. other information ouch as tim5.ng and control dare, ale~ctxonia coupons, advertisstnenta and beaus oontens ~euoh as video with xit~i.nq and control data may also b~
contained 3n tata,le 4z. At block 49, leak-up ssrvsr 9 D sends ~info,rm~ation such as address 4s to the user in r~spanse to receipt of CD ID 31. The informat~,on sent td the ustr me,y of mzy noz b~ based on the user damogr~rph~.e data and uae~
demograph3.a data 62 sstlt to look--up server ~90. At blpCk ~48 client 26 establishes a link to address 46. Address 4G may be a p=emieua or subscription sits ~uch as sits SlA in which cane Cn Ib 32 ray operate ae a password.
13 tn one aspect of the prQSSnt invention, content suppliers 51-56 such as xaecord companies 1-6 reapect.iveZy, ma=stain a central ~.iJassry 5D on the vsb. ContAat suppliers usay also iz~cluda advertiser, CD retailers, and other corit~3rit rights haidsrs. Carrtral library "~0 may be an a single sarsrar such as xd lookup server 90 or it may be diaZributed. Cen=cal library 5D
caxtaina the Gomplemeritary content sites s~sch as site 51.A linked by the adcl~ressea ix~ table d2 such as address 96. Each content suppJ.iar S1-5& may change the cent~nt of their s~.t~e acrd add new links to add~.tiorral 9lta,a xs t~sw CD' a are released. As new 25 sites are added, new C~ xb's gnd linked addresses mre added to table 42.
At block 49A. srrwer ~B hosting site S~,A transi'ers cor~rplemarctary , conterst 60 to the user's ~oomputer 10. once the ug~.r ia. .~irsks~d to s~.~ce 31A, client 26 sends stored use 3D demographic data 62 and CD status data 64 to look-tip server 40 s.nd or server 58, Rt block 65 client 26 continua9 to update and transfQr use demograph~,c data G2 egad CD stetu.s data 6~4 to ~.ook~

up server 40 and or server 58 as long as client 26 is rur~.n.ing.
Closed loop update 70 permits a content supplier, such as content suppliers 51-56,-a real-liras or near real-time look at Which CDa are in use and relative frequency of use of CD
elements and related irifoxza,ation.~ Closed loop update 70 also providem control of distributed media playing on a users computer 10. A removal. or change of CD $t block 68 would' return the client tv block 30A.
=n another embod~BriL, this invention operates on this World _ 10 Wide Web. Th~ HTTP protocol on the web is run atop a general connection-oriented protoeo~.,.iuhich today is generally TCPlIB, described in Douglaa E. Comor, InternetworJcing r~r~th TCP/IP (3d ed. 1995). However, the invention described here is not limited to HTTP running over any particular kind of network software or hardware. The principles of the invention apply to other protocols for access to remote information that :nay come to compete With or supplant HTTP.
Re!'srring crow to Fig. 3, a user sits at his or her computer 10 and runs s computer program 12 such as a brvwser or other client softarare. The~browaer sends out HTTp requests 14 to other computers, referred to as servers such as server 16. In requests, particular items. of data, referred to as resources, Which are available on servers, are referred to by means of uniform resource locators (~RL~s), character strings in a particular format defined in 8erners~~Lee et al. , supra. A dRL
includes both an identification of the server and an identification of a particular item of data within the server.
Reacting to the requests, the servers return responses 18 to the users browser, and the browser acts upon those responses, generally by displaying some sort of content to the user.
The content portion of the responses can be a °Web page,"
expressed in the hypertext markup languago (HT~.) such as pages 20 and 22. That language allows one to express content consisting of teat interspersed with bitmap-format images and links (also known as anchors and hyperlink9). The links are turtlzer vRl~~ s to which the browssr may, at the user s prompting, ' S send further requests.
The responses can also include more'complex commands to be interpreted by the browsex, e.g., comartands which~result in an animation as discussed b~low for Fig. 9. IiTML itself does not define complex cominanøs. but rather they are considered to a IO belong to separately-datin~d scripting languages, of which two currently common one:. are JavaBeriQt and VHScript.
zn add.it~,en'to extending the function of the browser by mans of'code written in a scripting language, it is also possible, to extend tl~e funct~.oz~ of a browser with compiled code.
15 Such compiled code is referred to as a "plug-in." The precise protocol for writing a plug-iz~ ~,s dependent on the particular brow$er. Plug-ins for the Microsoft browser are referred to by the namo of ActiveX controls.
Plug-ins may be very complex. A plug-in which may ZU advantageously be used in connection with the invention'is Shockwave from Macsomedia., It permits animations which are part of'a server respon9e to be downloaded and played to the user.
Shoekwave defines its own scripting language called Zingo.
Lingo scripts era contained within the downloadable animatyon3 2~ which the Shockwave plug-in can play. The general format of a Shockwav~ animation is a timeline consisting of a series of frames, togethex with a number of visual objects which appear, perform motions, and disappear at particular frames within the timeline. To achieve morn complex effecfis within a Shockwave 30 animation, Lingo scripts may bo invoked in addition to predefined visual objects.

A currently pre.~erred embod3.ment of the present invent~.on employs a plug-in, referred to as the command plug-in 24, which provides to a scripting language the ability to command and monitor. 3.n a detailed fashion the ple,ying of s CD recording.
The command plug-in should provide and monitor, at a minimum, the following basic functions: ' (1) Start and stop play.
(Z) Get current track and position within the track.
( 3 ) Seek to a track and a positiow wl~thS.n the track.
~0 (4) Get and set volume,
(5). Gct information regarding the CD (e.g., the number of tracks, theix lengths, the pauses between tracks).
(6) Get information regarding the capabilities of the CD.
drive.
Other functions may be provided arid monstored, limited only by what th,e underlying operating system services are able to accommodate. The monitored functions are included in use demographic data 82 which is transferred to sexvsr 40 and or servers suoh as server 58.
The Command plug-in may be written in a conventional program:aing~language such as C++. The plug is must conform to the existing standards for plug-ins, such as those required of Microsoft ActiveX objects. In order to obtain the information and carry out the functions which the command plug-in makes available to the scripting language, the command plug-in relies on functions which proofds:;-conzrol and information regarding the play~,o,g musical recordirsg.~ ~ These functions will depend ~on the precise source of the recording. If, as in one embodiment of the present invention, the recording being played is an audio CD
in the computer eD player, and if the browser is running under Microsoft Windows 3.1 ox Windows 95 or Windoxs CE, these functions would be the MCl functions, which form a part of the win32 application programming intQrfae~. Those functions are documented, for example, i.n Microsoft Win32 Programmer's Referent~_ Different functioris may b~ provided by stre~xning audio receivers, as for example receivers which capture audio which is coming into th! user's computer aver a network connection in a suitable audio encoding forsiat such as MPEG.
Rn iiaportant point to note about the implem~ntation of the command plug-in is that the operations which it carries out, as for example ~seeks",.may take times on the order of a s~cond.
IO It is undesirable for command-plug-in 24 to r~tain control of computer 10 during that interval, so it is important that command plug-in 29 relinquish control of computer la to the browser whenever a lengthy operation is undertaken, and report vn the results of the operation via the asynchronous event handling capability used in the cocomon scripting languages.
Given the above summary of the functions which the Command plug-in provides, a general knowledge of how to write plug-~,ns (s.g., of how to write ActiveX objects), and a knowledge of the relevant application programming interface for controlling the play of the CD (e.g., MCI in Wiri32), a person skilled in the art could readily and without undue experimentatiori_develop an actual working command plug~in. For this reason, further d~tails of how the command plug-in is implemented are not 'provided here.
The exiatenoe o~ a command plug--in providing the function:
listed above to a scx~.pting language is a foundation on which entertainment complementary to the content of a CD may be constructed. In particular, it is possible to devise, building an this foundation, a method for synchronizing the display of complementary content by~means of the scripting language w5.th the events which are occurring.on the CD. .

R~otarrir~g saw to ~'iq. 'a 4 sad 9, ayriahronization of xha aompiemenzary content to the CD pxoooQda ar folloWS. For example, ccx~lementerx ~ontent 60 may bs provided by nasans o,f animetio~n sash a* ShockWave animation, including frames Fl-F'~ and eaript 73. coa~p7.ementary Gantent 60 3.a downloaded from s8rver 58 and displayed ,for -the u8e~r by means o! a Shockwave plug--i,a.
This dawnlQadis~g may take plaa~a before the animation is dioplayed, or altarnativsly it males tans place as the animation is beirrQ d~.apl,ayod, provided the user' a connection to the network i.s fast enough to support download at an appropriate speed. Ths dawnJ.osdinq i!! a function provided bx the 8hookwave plug~in i..ta~ii'.
1~s the 9hockwave animation 39 played, ~cr3pt 72 such as s z,inpo script axecutsQ each time d frame Fn finixhes displaying.
1~ The L#.ngo aaript eon=airs a daaeription o~ th4 reaat3,nr~~ah~.p which should exist between frames of the animation and segmen=s of the CD cor~zent, identified by track number and by time. That Lirip~o script detsiminsa, by means of the command plug-in dteaaribed abovo, at irh~.ch track nr~d time the p1$y at the GD ia.
It ~ehan rsferx to the dcscr~,ption ~.n order to dQt~ermi.ne which ~r~aa of the animat~Lon correspond to 'Chat .portion o~ the CD.
Vii' the current frame is not oaa of those fr;~.~, the Lingo script resat3 the time line o. tam a.nimation ao that the animativa will bs~5,n to play at the trrunc which cor~eapc~~ida to 33 they currant position tat the Cn. This parm~.tm the vis~u~tl eo:~ts~nt to catch uP if it ever lags the CD, for axamplb because downlosdxt~g Pram the nett~tcrk has t~,ll$n behind, because the user's aacnputer leaks the cycles to play the animation at full aPeed~ ex becauad the user hma fast-~arwarded the Cp.
Referrfhg norr to Wig 4, the synchron~,zatiart algorithm may GOUtrol indiv~,Ci~,tal i'~camas or groups o! cor~tiguoua~ fracnea .
re~et~tary _ aarizo~it 60 ~,ualudas tzamse ~'i-p" axed script 7z . At b7.ock 200, $ eerraspnndenca is established bstweeri~saah frazne~ fn or group of framaa and a particular a~ec,~aent of CD 30. At the end of each freune Fa of bha 8nimation block 205, the position of CD 30 ~.s determined, bleak 210. A test is done at black a15 to dete~.nw wha~ther zhe pasition-of CD 30 is Within ~hs segateut 4f the xac~ardlng that cerreapund~s 'GO the group of ~lrames to uhi.eh the next sequential frame belongs. xf the position of CD ~0 J.s with,a.n thax segttian'G, the playback of the anim~tiaa prQCSSds with the next gams, b~.ock 230. It th$ position bf CD 30 ~.a noz Nithis that swgment, then ac blocks 220 axed 225 zhe playback of the aniraatian is advanced to the trasae corraspQnd_j.ng to where the CD ia.
~L further aapoat o~ Zha present iav~enziar~ is a tourixig mvde- H:tth alieet 26 in touring made, a r~aota devicr suah as sar~rer 58 may caatrol one ar more user devices through de~.ivsrx of cvmplemertary content 50 intcraporsod wi~.h player 26 cantro3 datz to prov~,ds the one or rilc~lC~ ~tsexa with a guided tour of a particular distributed mect~.a such as CD 30.
A further aspect s~~ the invention is th~ ab~.,Iity, by making uoe Qf command p~.ug-3,ri 89, to provide a techrt3.que~ tar establialning s unique idansifier for a CD, CD x,o 31, which is ' locatod in the user's CD p.tayar 32. ~ Tha unique idsatif3~r may bs based an the nuu~bex and length$ of the tracks (medsurad in bZvc~ca. i.e., ~,/75ths of d ~aseond~, so that the identifier woul.ct '-5 ' be r~ cvr~aaaanatian o~ thqso let7fths. Tn praCti,ce, hoy,rever, it ~.a deaire~bls to have a sameWhat shorzdr idantifisr, sv the vs~iqus idr..riritisr is preferably the conaatanat~.on of the 'crack isngths expras3ad in b ~aixly~ooarse unit, such ss I/~th of it second. .
Appendix A aon~air~s souraø node, written i~ D, tar a furry comparison alqor~,~hm suitable for c~termis~ing Whether two ~udia CISs are a.xaatl.y or aFproxima~e~.x the aamo. ThQ fuezy aom~aariaaa algoritht~t proooeds as gollowe. For each of the two audio CDs to be compared, one determines the lengths of all the tracks in the recordings in millisoconds. On~ then shifts all track l~ngths ..
to the right by eight bits, in effect per~ormina a truncating division by Z8 = Z56. One then goes through both of the recordings track by track, accumulating as one proceeds two numbers, the match total and the match error. These nuaiber~ are both initialized,to zero at the start of the comparison. Far each of the tracks, one increments the match total by th~ -.
!0 shifted length of that track in the first GD to ba compared, and one inezementg the match error by the absolute valu~ of tho difgerenae~between the shii'ted lengths of the track in the two' CDs. Plhen one Qezs to the last track in the CD with the f~Her number of tracks, one continues with the tracks in the other cD, incrementing both the match total and the match error by the shifted lengths of those tracks. Following these steps of going through the tracks, the algorithm then divides the match error by th~ match numt~er, subtraate the resulting quotient from 2, and converts the difference to a pez~centage which is indicative .
or how well the two CDs match.
Appendix 8 contains source cods, written in C, for a comparison algorith~t suitab,~e for det~rmining whether two audio CDs are exactly the same, Tha algorithm gan~=azes from th~
number of tracks, th~a tsaok lengths, and the start and end times of the trao~ 8n 8--byte value. The high order 4 bytes are obtained by summing the start and end times of all tracks, expressed in milliseconds; The low order 4 bytes are obtained by sing th;e lengths of alt tracks expressed in milliseconds, shifting the s~ left ten bits, and adding the number of tracks.
CD ID 31 may be amployQd ag a databgse key. A site gu ch a9 site SZA~m$y maintain a database of information about CDs, for ex~fle intetmation about all CDs issued by record com an p y Z can ld be maintained on that reoord cotapany's site. There ar~ various $itmrnative ways for users tv navigate this information. For example, they could use a Web page~aoatainiag many hyperliaks as a table of contents, or they could use a conver~tioxtal saaroh engine. R third w:y of searching, Which is enabled by CD ID 31 of the invention. is for there to be a Web page Which invites the user to place in player 32 the CD about Hhioh he or she is se~king information, for example CD 30. Upon detection of the presence of CD 30 in the drive, a script in the Web page IO coxuputeo CD xD 31 corresponding to CD 30 nz~d sends it to server ~58. Server 58 then displays information about the CD retrieved from a database on th~ basis of CD ID 31. This~information may include a oPeb address (UItI,) that, is related to the CD (e. g. , that of the artists' home p$goj, s~ple data such as the.names IS of s4ngs on the Cp, and also complementary entertairunent, including potentially photographs (e.~., of the baad~, artwork.
animstians, and video clips. It is also pOBSible zo arrange things so that, .when the user ir~$arts a CD into the computer, ti) 'the Web browse= ib launched i~ not already running, t.ii) the 20 browser computes the CD's ursique~fdentifier and from that unique identifier derives a QRL, and till) the brawser does an HTTP get ' transaction an that oRL.
alternative application of unidue identifiers fox musical recoxdj,ng,s is to ploy a CD as a key for sntmring into 25 a premium area of the Web. There are presently premium areas of ' the Web to which people are admitted by subscription. A simple form of admission based on the unique identifier is to require, before accessing a partieu~,ar area of the Web, that the user place in his or her CD drive,a partiGUlar CD, or a CD published 30 by a particular company or containing thQ music of a patticu.Iar band °r a;tilt. This is readily c~ooomplfahcd by moans of a script which inPOkes the functions provided by the command plug-in and compt~ta8 a unique 3denti~i.or, Another aspoct ot,the Invention is the eo~aziectivn of chat rooms with musical recordings. The goal is to provide all participants in a chat.room with the same music at appzoxintately the same tim~.
One conventional network protocol far chat sexwi.ces is xaterney Relay chat'~=AC), described J. Oikari,nen & D. Reed, Tnt~rnct Relay Chat Protocol (znternet Reguest for Cott~tents No.
x.459, 1993). Tn this protocol, when on~ becomes a client of a chat s~xv~ar, one sends the name os a chat room. The chat server 1.0 receives messages from all of its of clinats.and relays the messages sent.in.by one client to all the other clients cor~nscted in the same room as that elirat. The measag~s r.~hich a client Sends are typically typed in by the user who is running the client, and.the messages which a client receives are I5 typivally displayed xor the user who is running the client to read. ' In a preferred embodiment 'of the invention, a chat client is cuszomixed by msans of a plug-.in, which we will. call the chat plug-in. Th0 chat client ,is~ started up by a browacr as follows (see Fig. 5) . The us~r1 connects by means of zk~e browser ~to a' central we~5 page (box 300) whioh, upon being downloaded,, asks that the user insert a CD into his or her player (box 305). ~9, un~.que identifier of tho CD is computed and communicat~d back to the server by using the cont,roZ plug-in described above under 23 the command of a aeript in the central Web page (box 3I0). The server then employs thea t~t~fque identifier to determine whether it has a chat room taeused on the CD (box 315). This step may be carried out by locking the unique identifier up in a database using techn~,ques well knowl~ in the art. Thars exists a vast 30 Ziteratuxe on connecting Web page9 to.databases, s.g., Decembe ' r Ginsburg, supza, chapter 21. If a chat room focused on the cD
exists or can be created, the server responds with the nerve of that chat room, and the browser starts up a chat client on the user's computer as a oliont of that chat room (box 320).
The chat room's name is set by the servQr to contain information about the track which the CD is playing in the other S chat room c~.ients' machines and tha time at which the track started to play, as Well as about the volume at orhich the CD is piay~,z~.g. The chat client plug-in employs that infotuiation to direct th0 control plug-irt to set the CD in the user's computer-.
to play in such a manner~thaz it ~.s approximately synchronized t'o the CD which is playing in the other ohat room clients' machines (box 320). .
Each user in the chat room is able to control the CD which is playing in hia yr her machine. Control actions result in the chat plug-in s~ndfng messages to the chat server which describe the control action being taken (box 325). For example. such messages may indicate a change in the position of the CD, a change in the volume, or the ejection of the CD to replace it w~.th another_ The chat plug-ins running on thQ other users' machines, upon seeing a rne3sage of this kind, replicate the ZO action (as far as possible) on the other users' machines by using the oontrol plug-in described above (box 330).
In a further aspect of the invention, a chat room focused on a particular musical record3.ng might allow for a voting procedure tv select particular tracks . ,A sf,rstple vot~,ng 35 procedure would be for each ohat plug-in to aEt upon a change message of the kind described in the preceding paragraph only when it se~s two identical consecutive change taessagea. This would'mean that in order to change the track which is being played, it would be neoeaeary for tHO users to Change to that 30 track. The number tyro may be replaced by a higher number.

In a further aspect of the inaeatiori the messages delivered to the users of a chat cen be driven from a text file rather than manual typing. This would allow a pre-recorded experience to be played back for a group of chat users. Such a technique may be used to create a pxe-recorded, narrated tout of an audio CD.
An important advantage of the embodiment described above is that it may be used with any chat server software which supports the minianal functionality xequired by Int~arnet Relay Chat or by lU a protocol providing aiad.lar minimum chat service. The additional software required is located in the chat client plug-in and in the central Web page, with its connection to a~.
database of CD information.
18.

Ap~DbC A
/t * FUZZY CD ID
* (c) 1996-199A xON Inc.
* by Ty . Rober'~s x/
#include <stdio.h>
#inciude <stdiib.h>
#include <time.h>
struct fuzzyCDid { ' short numberTracka; /! start time in milliseconds ' unsigned short fuzzleaqth(100];
);
typedef struct fuzzyCDid fuzzyCDid, *~fuzzyCDidPtr:
// strt~ature of a cd track With all times stored in milli3ecoads struct cdtrack long baginM9; //' start tune in milliaecoads long eadMs: // end time in milliseconds long lengthMs; /% length 17~ m~,.7.~.isecflnds typedef struct cdtrack cdtrack. *cdTrackPtr:
struct cd t short riuraberTracks;
cdtrack track(100~=
);
typedef struct cd cd, *cdPtr:
void Cieate~'uzzyzd( fuzzyCDidPtr fid. cdPtr cd );
float Fuzzy~ateh( fuzayCDidPtr fidl, fuzzyCDidPts fid2 );
// BUHROVTINES
void CreateFuzzyTd( fuzzyCDidPtr fid, cdPtr cd ) t long i;
Il first copy in the number of tracks fid->numberTxaeks = cd->numberTracks;
for (i~0=i<fid->numberTracks; ~.t+) [
/I shift left and croate a MS8 1~ngth thats nvt exact fid->fuz:length[i~ - (short) (cd~
>track[i] .lengthMa»8) i~
) float FuzzyMatcht fuzxyCOidPtr fidl, fuzzyCDidPtr fid2 ) t ' long fidasatcherr - 0,, fidmatchtotal A 0;
short i, trackcnt;
float matchpercent) / find the larger number of tracks trackcnt = fhdl->numbarTracks<fid2-->numberTracks ? fid2->numberTracks : fidl->numbcrTracks;
I/ cycle thru the tracks accumulating e.tror and total camparedtimes for (i-0: i<trackcnt;1++) t if .( ti < fidl->aumherTracks) &~ (i < fid2->numberTracks)) fidm3tcherr t= abs (fidl->fLtzZlength [i7 - fid2-afuzzlength(i~): .
f~.dalatchtotal. +s fidl->fuzzlcagth [i7 e18 a if ( i >~~ fid2->numberTracks ) . {
fidanatcherr~t= fidl->fuzzlongth[i]:
fidmatchtotal +- fidl->fuaZlcngth[1]:
els~ if (i >- fidx->n~erTracks) fidmatcherr t= fid2->fu2zlength[1~:
fidmatchtotal += fid2->fuzzlength[i~;~
y if ( fida~ateherr > 0 ) ( matchpercent - I00 -(Itf.Ieat)fidmatcherrltfloaz)fidmatchtotal) *lOfl~;
else alatahpercent ~ 100:
return matchparceat~

void maid (void) t shOr~ i:
float matchpercent;
// create global structures for two complete cda with up to 10o tracks cd cd2i.dt fuatyCDid fidcd2id;
cd edF~comDH : .
fuzzyCDid fidcdFromDHs printf ("Test #Z will compare two CDs that aura exactly the oame\n\n");
!/ put in some test values for the cd ~.raek lengths !/ since these are in ms, its basically 60000 = 1 minute cd2id.track(0].lengthMs C 1213231 cd2id.traak(1].lengthMa m 234565]
cd2id.track(2).lengthMs~o 566437;
cd2id.track~3).lengthMs = 295120 Cd~id.t='~ilCk[4] .1~llQthMB a ',00()0:
cd2id.track(5],.lertgthMs ~ 120386;
cd2id.trackl6l.lenQthMs = 323453:
cd2id.numberTracks s 7;
for(i-l;i<cd2id.numberTracks:3tt) printf t"CD #l: Track = %d length in minutes = %f\n", i~ (float)cd2id.track(i].LangthMs/60000.0)~
printf ("\n" ) t cdFromDB.track(0].leagthM~ = 121323:
cdFromDB.trackEl].lengthMs = 2345fi5:
cdFromnH.track[2].lengthMs = 566437:
adE'romDB.traek(3].lengthMs ~ 245120;
cdFromDB,trackl4).lenQthMs = 20000t cdFrcmDH.rrack[5)_lengthMs ~ 1?0386:
adFromDB.track(6).1~ngthMs - 323x53;
cdFromDB.numberTrack3 ~ 7;
for(i=l:i<cdFromD8.numberTracks:i++~
px~..ntf ("CD #2: Track = ~d length in miautea = ~f\n", ) i, (float)cdFramDH_track(i].lengthMs/60000.0 );
~createFu2zyld( ~fidcd2id, &cd2id ):
CreatsFuzzyId( &fidcdFromDB, &cdFromDB ):
matchpercenz ~ FuazyMatch( ~fidcd2id, &fidcdFromDB );
printf ("The cd~e matohpercent was computed as~%f~', matchperaent):
pr~nt~' ( ° \n" ) i printf ( "fin" ) _ printf ("Test #2 w~.ll compare two cd that are nearly the same\nexcept they have diffex~t # of tracks \n"); .
// put in some test values fcr the cd track lengths // since these~are in ms, its basically 60000 = 1 minute cd2id.traok~(0].lengthMs s 121323;
cd2id.t=ack[ll.lengthMs = 234565?
Cd2id.track[2].lengthMs = 566437;
cd2id.track[3~.lengthMs = 245120;
cd2id.track(9~.lengthMs ! 20000:
cd2id.traCk[5~.lengthMS = 120386;
cd2id.track(6].lengthMs ~ 323453r cd2id.numberTracks = 7;
for(i~l=i<cd2id.numberTracks:i++) printf ( "CD #1: Track = %d length in minutes = %f1n", i, (float)ed2id.track[i).lengthMa/60000.0 );
) printf ("\n"):
cdFromDB.track(0~).lengthMs = 121323:
cdFromDB.track[lj.lengthMs = 234565:
cdFromDH.track(2].lengthMs ~ 566437:
cdFromDH.track~(3j _l.engthMs = 245120;
cdFromDB.track(4].lengthMs ~ 20000r cdFromDH.. track [5 ) , lenc~thMs = 12038 6:
cdfrvmDB.numberTracks = g;
for (i'-1 j i<cdFromDH. nun~e~xacks; i++) printf ("CD #2: Track -- ~d length in minutes = %f\n.", i, (float)cdFromDH.track[i].lengthMs/60000.0 );
) CreateFUxxyzd( &fidcdZid, &cd2id CreateFuzayId ( &fidcdFroac~DB, &cdFrviaDH ) matchpexcaat = ~tzxyi~atch ( ~fidcdZid, ~fidcdFromDB ) ;
printf ("The id's matchpercent wag computed 8s~$f°,mat.ChFIerCent) ;
pr3ntf ("\n")l printf ( "\I1° ) i printf ("Test %3 will compass two cd that are not the came\n\n"):
// put ~,n some test values for the cd track lengths l/ since these are'in ms, its basically 60000 p 1 minute cd2id.track[OJ.l~ngthMs = 34213; , cd2id.track[1]..lengthMs = 3395651 cd2id.track[2] .length' m. 231423;
cd2id.trmck[3).lQngthMs =w139122;
cd2id.track[4]~.lengthMa ~ 2392f cd2id_ track [5] .longtlzDas = 3487;
cd2id.track~6~.lengthMs = 9976:
cd2id.nuu~erTracks = 7:
for (i=l:~i<cd2id. numbsrTracks t i++) ( ' ' priatf ("CD #1: Track - %d length in minutes = $f\n", i; (~lcat)cd2ld.track[~.).lengthMS/60000.0 );
printf ("\n") cdF=omDH.track[0].lenqthMs = 1,21323:
cdFro~mOH.track[1] .length~ds = X34565:
edFromDB.track[2].lengthMs = 566937:
cdFromDB.track[3].lenQthMs =.245120t cdFromoB.track[4].lengthMS = 20000;
cdFromDB.tra~k[5].l~ngthMs a I20386t cdFromDH.track(6].lengthMs~~ 323453' cdFromDB.numberTracks = 6 for(i=1:i<cdFromDB.numberTracks;i+-r) ( printf ("CD ~z: Track a ~d length in minutes = %f1n", i. (float)cdFromDB.trackli].lengthMs/60000.0 ) Cr~atesuasyld( &fidcd2id, &cd2id):
CreateFuzzyld( 8fidcdFromDH, &cdFrvmDH);
matchpercent = FuzzyMatch~ &fidcd2id, &fidcdFrazaDe );

priatf ("The cd's matehpercent was computed as~%f",matchpercent);

r*
* E,XA.GT MA.TCR CD ID
* ~ 1996-1998 ION Ino.
x by Ty Robe=ts */
#includa <stdio.h>
~iriclude <atdlib.h>' .
i~includ~ <tima.h>
struct cdid( , long idL2l:
?; ' typadef struct cdid cdid, '*cdidPtr: ' // structur~ of a cd crack with all times stored in milliseconds struct cdtrack~
long bag~.nMs: %! start time. in miliseconds long endMsj /! end time in millisaccz~Qs long lengthMa; //length in Miliseconds ):
typedaf struct cdtrack cdtraek, *edTraekPtr:
struct cd t short numbor~2rocks~
cdtrack track[100]t typedef struct cd cd,: *cdPtrt void CreateUniqueld( cdidPtr cid, cdPtr cd~ );
// SUHROQTINES
void CrsateUniqueId( cdidPtr cid, cdPtr cd ) ( .
l0rig i, Zs , 11;
t = 0;
n ~ 0;

for(i~0;i<nd->numberTracksti++) // shaft lift and create a M58 length Zhats not exact t +o ed-~track(i~.lengthMa;
n +~ cd->ttack[i~.beqir~Ms + cd->trackLil.endMs;
cid->id(0] ~ t<~10+cd->numberTracks;
cid->id ( 1 ] ~~ a=
void main (void) t ~ , short it abort motchtest:
// create global structures for two complete cds with up to 100 tracks cd cd2id:
Cdid cd20ID;
cd cdFsromDH;
cdid cdFromDBUTD;
printf ("Test #1 will compare,twe cd that arc exactly the same\n\n°):
put in some test values xor tho cd track lengths // since then are in ms, its basically 60000 ~ I
minute cd2id.track~0] .begir~Ms ~ Ot cdZid.track(1'] .bsgitiMs a 100f01:

cd2id.~rack[2l.bagin~ls o 231001:

cdZi.d.track[3l.boginMs ~ 345001:

cd2id.tsack[4].boginMs ~ 435007,:

cd2id.trackt5].beginMs ~ !9::0001:

'cd2id.zrack[6].beginMs v 590001r ~d2id.track(Q].endMs = 100000]

cd2id.track(1].endMB x31000:

cd2id.traek[2l.endMs a 345000;

cd2id.track(3].endMs 435000;

cd2id.trackt4].endMs m 460000;

cd2id.track[5]~.endMs ~ 590000=

cd2id. track [ 6] . nndhls 690000:
~

cd23d.track[Ol.lengthMs ~ ed2id.traek[0l.endMs -cd2id.txack[0~ .beginDds;

cd2id.track[1).leagthMs - cd2id.track(ll.eadMs -cd2id.track(1).beqinMs:
cdZid.traek[2).lengthMs ~ cd2id.track[2).andM3 -cd2id.track(2) .b~gitlMst cd2id~.trackt3~.lengthMs a cd2id.track(3).endMs -cd2id.track[3].begin~ds; ' cd2id.track(9].lcngthMs - cd2id.track(4].endMs -cd2ld.track[4l.baqinMs;
cd2id.track[5).lengthMs = cd2id.track[5).eadMs -cd2id.track(5].baginMsl cd2id. tr~tCk [ 61 . lenqthMa ~ cdZid. track ( 6 ] . erldMs -cd2id.track[6).b~ginMSt cd2id.numberTracks - 7: .
fot (i=1: i<cd2id.nt:mber'rrack:: i++) {
printf ("CD ~tl: Track ~~ %d length inminutes = %f\n".
i, afloat)cd2id.track[i).lsngfihMs/60000.0 ):
prj.ilt~ ("~ri°) 7 cdFromDH . track [ 0 ~ . begiriMs = 0 f cdFromDB.track[1).be9inras = 100001:
cdFromDS.track[2].boginNls ~ 2310D1t cdFsozaDB. track [3) , beginMs = 3450011 cdFromDH.track[9).boginMs ~ 4350011 cdFramDB.track(5].beqix:ra = 450001:
cdFromDH.track[6).beginMs s 590001]
cdFroruDH.track[0].endMa = 100000:
cdE'romDH.track[1].endMs = 231000:
cdFromDB.track[Z).eadMs a 3450001 . ' cdF=omDH.traek(3].endMs - 935000:
cdFromDB.track[4).endMs ~ 46000.01 cdFromDH.track[S].eadDle = 5900001 cdFromDe.track[6)~.endMs - 690000t edFromDH.traek[0).lengthMs = cd2id.zrack(0].endMs -cdZ id . track ( 0 ] . beQixt~is: ' cdFromDB.track'[1].lengthMs ~ cd2id.track[1).endMs -cd2id.track(1].beginM~;
cdFromDH.track[2).lengthMs = cd2id.track[2~.endMs -cd2i_d.track[Z].beginMst cdFromDB.track[3).lengthMs w cd2ld.track[3].ez~dMs -cd2id.track(3).beQinMst cdFromDH.track[4].leagthMs = cd2ld.track[4~.endMs -cd2id.track(4].baginMss cdFromDH.track(5).lengthMs a cd2id.track[5).endMs -cd2ld.track[S) .begirlMst cdFromDS.track[6].lengthMs = cd2id.track[6].endMs -cd2id.track[6].beqinMa;
cdFroiuDH . numberTracks o 7 ; ' for(~.=l:i<cdFramDS.BUmberTracks;i++) ( pxiatt ("CD ~2: Track = %d laagth inminutes = ~f\~.", i, (float)cdFromDB.track[i]:lengthMs/60000.D ): ~ .
CreateOniqueld( ~cd2UID. &cd2id ):
printf ( ~Unique ID fox CD #1 = %d~~i\n", cdZVID. id [ 0 ) , cd2UID.id[1] ) ~
GreatefJn~.queId ( ~cdFromD8UID, &cdFsomDB ) printf( "Unique IO for CD ~2 = %d~d\n", cdFromD9UID.id[0], adFroxnDHUID.id[1] );
matchteat = (cd2ClID.id[0] - cdFromDBVID.id[0]) &&
(cd2UID.id(1] ~~ cdFromDBtJID.id(1]):
prinzf (~The cd's match if result is non zero matchresult=gird",matchtest);
pXi,~)~,tf ( "\t1" ) ?
printf ( ~' \n"
prints ("Test #2 will compare two cd that are nearly the same\nexcept th~y hsvo ~diffoat ~~6 of tracks \n") ;
!/ put in some test~values for the~ed track lengths J/ sineo than are in :na, its basically 60D00 = 1 minute cd2id.track[O~.boginMs = 0;
cd2id.traoklll.baginMs = 100001;
cd2ld.track(2].beginMs ~ 231001:
cd2id.track[3].beginMa = 345001;
cd2id.track[9].beginMs = 435001:
cdzid.track(5] .bogir~4r = 460001:
cd2id.traok[6].beginMa = 5900D1:
cd2id.track(Oa.endMs = 100000;
cd2ld.track[Z)_endMs = ~31000t cd2id.track[2].~endMs = 395000:
cd2id.track(3].endMs = 435000;
cd2id.track[4].endMs = 4600001 cdZid.track[5].endMa - 5,90000:

cdzid.ttackj6].endlda = 690000:
cd2id.track(0]_lengthMs = cd2id.ttack[O].endMs -cd2id.txack[O~.beginMst cd2id.treickjl].lsngthMs~= cd2id.trackjl].endMS -cd2id.zrack(1].bsgirxMs:
cd2id.traok[2].lsngthMs - cd2id.trackl2)..endMs -cd2id.track(2].bsginMaf cd23d: t~caek [ 3 J . lenQthMs a ed2id. track ( 3 J . eadMs --cd2id.track[3].beginHst cd2id.track[4].lanQthMs = cd2ld.trackC47.endMs -cd2ld.track(4~.beginMS:
cd2id.track(5].lengthMs a cd2id.trackj5l.endMs cd2id~.track[5~ .bagissMst cd2id.track(fi].lengthMs = cdZid:track[6J.eadMa -cd2i.d.track[6].b~ginMs:
cd2id.numberTtacks ~ 7t for (~.~Zt i<cd2id.numberTracks; i.++) j printg t"CD ~Z: Tsack s %d length inaiiriutes = ~f\n".
i, (fivat)cd2ld.trackji].lengthMs/60000.0 ):
printf ("\n")i cdFromDH.track(0].beginMs ~ 0:
cdE'romDH.track(1].beginMa m 100001:
cdFrom~H.traek[2].beqiisMs - 231001:
cdFromDB.track[3l.begini4s m 345001:
cdFromDH , track.( 4 ] . b~ginDds a 435001:
cd8roaiDH.track(5].beginMs = 460001:
cdFromDB.track(6].beg].uMs = 590001;
cdFromDB.track[0].endMs ~ 100000;
cdFro:aDB.track[lj,endMa a 231000:
cdFxomDB.track(2].sndMs = 345000;.
cdFromDH.track[3].endMs a 435000;
cdFromDB.track[4].cndMs - 460000:
cdFromDB.track(5].endMs p 590000;
cdFromDB.track[O~.lengthMs a cd2id.trackj0).endMs -ad2id.track[0).beginMs:. .
cdFremDH.track(1)_lenqrhMg = cd2id.trackjl].endMs -cd2id_track[1] .beginl~ts=
cdFromDB.trackl2l.lenQthMs'= cd2id.track[2].eadrzs -cd2id.trackj2].beginMS;

cdFromas.track[3).laagthMs ~ cd2ld.track(3].sndMs -cd2id.traek[3].baq3nMse adFramDH.track[~].lengthMs = cd2id.traclc[4].endMs -cd2id.ttack[4].begirds;
cdFromD8.trzck[5].lengthMs ~ cdZid.track[5].endMs -cd2id.traok[5] .begirsMa;
cdFrptttDB . numberTraCks ~ 6 f for(i~Isi<CdFromDB.aumberTracks:i++) p~intf ("CD #2; Track = %d length inminutes = %f\n", i, (float)cdFrosnDB.traok[i].lengthMs/60000.0 )i , CreateUniqu~Id( ~cd2vlD, Scd2id );
pri.att ( "oaique ID fox CD #1 ~ %d%d\n", cd2UTD. ~.d [0 ] , cd2VID.id[1] );
CreateUniqueId ( 6cdFtvmDBt7ID. ~odfromDB ).:
printf ( "Clnique ID fOr CD ~2 = %d%d\n", adFromDHUID. id [ 0 j , cdFromDBUID.id[1] );
matcht~at ~~(cd2UID.3d[0] ~ cdFromDBUID.id[0]] ~&
(cd2UID.3.d(1] -- cdFromDHUTD.id[l~ ).:
printf t"The ed~~ match if result is non zero matchresult~%d",matchtest),;
pr~.ntf ( " \n" ). ;
printt ("fin"):

Claims (201)

I Claim:
1. A system for transferring information associated with playback of a recording, comprising:
a first device to reproduce a recording, to obtain information from the recording used to play back contents of the recording perceived by the user and to collect sets of use data, each set associated with playing of the recording during at least one period of time;
a second device to store the sets of use data; and a network coupled to said first and second devices to transfer the sets of use data from said first device to said second device.
2. A system as recited in claim 1, wherein the information used to identify the recording was not stored for the purpose of identifying the recording.
3. A method of obtaining information associated with playback of recordings at a first device connectable to a second device via a network, comprising:
collecting, at the first device, use data not previously associated with a recording fixed in a medium possessed by a user and identified using information provided with the recording to play back the recording, not provided to identify the recording;
and transferring the use data from the first device to the second device via the network.
4. A method as recited in claim 3, wherein said collecting occurs during playback of the recording.
5. A method as recited in claim 4, wherein the use data are related to at least one of how the recording is played back and operations performed by a user during playback of the recording.
6. A method as recited in claim 5, wherein the use data are related to at least one of play time of the recording and at least one portion of the recording played during playback.
7. A method as recited in claim 6, further comprising:
obtaining user demographic data; and sending the user demographic data to the second device.
8. A method as recited in claim 7, further comprising supplying complementary content for the recording to the first device via the network.
9. A method as recited in claim 8, further comprising selecting the complementary content based on the use data and the user demographic data.
10. A method as recited in claim 3, further comprising registering a user of the first device to obtain a user identifier, and wherein said transferring further includes transferring the user identifier with the use data to the second device.
11. A method as recited in claim 10, further comprising:
obtaining user demographic data; and sending the user demographic data to the second device.
12. A method as recited in claim 11, further comprising supplying complementary content for the recording to the first device via the network.
13. A method as recited in claim 12, further comprising selecting the complementary content based on the use data and the user demographic data.
14. A method as recited in claim 3, wherein the use data include frequency data indicating number of times the recording is played at the first device.
15. A method as recited in claim 14, wherein the recording contains segments, and wherein the frequency data indicate the number of times the segments are played at the first device.
16. A method as recited in claim 3, wherein the recording is a digital file containing digitized audio signals.
17. A method as recited in claim 16, wherein the digital file contains audio data compressed using MPEG encoding.
18. A method as recited in claim 3, wherein the use data include total time of use of the recording.
19. A method as recited in claim 18, wherein the use data include time of use of the first device.
20. A method as recited in claim 3, further comprising supplying complementary content for the recording to the first device via the network.
21. A method as recited in claim 20, further comprising:
obtaining user demographic data; and sending the user demographic data to the second device.
22. A method as recited in claim 21, further comprising selecting the complementary content based on the use data and the user demographic data.
23. A method as recited in claim 3, further comprising reading a recording identifier on the recording, and wherein said transferring includes sending the recording identifier to the second device.
24. A method as recited in claim 3, wherein the recording is fixed in a medium possessed by a user of the first device.
25. A method as recited in claim 3, further comprising:
automatically generating a recording identifier from information included in the recording, and sending the recording identifier with the use data from the first device to the second device.
26. A method as recited in claim 25, wherein the recording includes as least two segments, and wherein said generating generates the recording identifier based on length of the segments.
27. A method as recited in claim 3, wherein said collecting collects the use data for a plurality of recordings fixed in at least one medium possessed by the user, and wherein said transferring includes providing identification of the user.
28. A method as recited in claim 27, further comprising storing the use data at the second device to provide an indication of the recordings played by the user.
29. A method of obtaining information associated with playback of recordings containing segments at a first device connectable to a second device via a network, comprising:

identifying at least one segment of a recording, fixed in a medium possessed by a user, based on information associated with the recording and stored in the medium for a purpose other than identifying the recording;
collecting, at the first device, use data not previously associated with the recording, the use data including segment data identifying the at least one segment played at the first device; and transferring the use data from the first device to the second device via the network.
30. A method as recited in claim 29, wherein the use data include a number of times the at least one segment has been played at the first device.
31. A method as recited in claim 30, wherein the use data include how much of the at least one segment has been played each time.
32. A method as recited in claim 29, wherein the use data include how much of the at least one segment has been played.
33. A method as recited in claim 29, wherein the use data include how often the at least one segment has been played.
34. A method as recited in claim 29, wherein the medium is a compact disc with audio content, the segments are tracks on the compact disc and the use data indicate playback of the tracks on the compact disc.
35. A method as recited in claim 29, further comprising identifying the recording based on length of the segments to obtain a recording identifier, and wherein said transferring includes sending the recording identifier to the second device.
36. A method as recited in claim 35, wherein the medium is a disc and the length of the segments is obtained from table of contents information on the disc.
37. A method as recited in claim 29, further comprising:
automatically generating a recording identifier from the segment data, and sending the recording identifier with the use data from the first device to the second device.
38. A method as recited in claim 29, wherein said collecting is performed regardless of whether the first and second devices are connected, wherein said process further includes establishing a connection between the first and second devices, and wherein said transferring transfers all of the use data collected while the first and second devices were not connected, from the first device to the second device via the network after the first and second devices are connected.
39. A method as recited in claim 29, wherein the recording is fixed in a medium possessed by a user of the first device.
40. A method as recited in claim 29, wherein said collecting collects the use data for a plurality of recordings fixed in at least one medium possessed by the user, and wherein said transferring includes providing identification of the user.
41. A method as recited in claim 40, further comprising storing the use data at the second device to provide an indication of the recordings played by the user.
42. A method as recited in claim 29, wherein the medium is a compact disc, each segment is a portion of a track on the compact disc determined by track number and playing time within the track, and the segment data indicate playback of the segments on the compact disc.
43. A method as recited in claim 29, wherein the information used to identify the recording is stored in the medium prior to possession of the medium by the user.
44. A system for obtaining information based on playback of at least one recording at a first device connected to a second device via a network, comprising:
identification means for identifying a recording fixed in a medium possessed by a user based on information associated with the recording and stored in the medium for a purpose other than identifying the recording;
collection means for collecting use data related to at least one of a portion of the recording and play time of the recording;
connection means for establishing a connection between the first and second devices;
transmission means for sending the use data from the first device to the second device via the network; and storage means for storing the use data at the second device.
45. A system as recited in claim 44, wherein the use data relate to a plurality of recordings, and wherein the use data include frequency of use of the recordings.
46. A system as recited in claim 44, wherein said collecting means collects the use data for a plurality of recordings fixed in at least one medium possessed by the user, and wherein said sending means further sends data identifying the user.
47. A system as recited in claim 46, wherein said storing means stores the use data at the second device to provide an indication of the recordings played by the user.
48. A computer-readable storage storing instructions to control a processor to perform a process comprising:

collecting, at a first device, use data not previously associated with a recording fixed in a medium possessed by a user and identified using information provided with the recording to play back contents of the recording perceived by the user; and transferring the use data from the first device to a second device connected to the first device via a network.
49. A computer-readable storage as recited in claim 48, wherein said process further comprises:
obtaining user demographic data; and sending the user demographic data to the second device.
50. A computer-readable storage as recited in claim 49, wherein said process further comprises obtaining as the use data, information regarding playing of at least one portion of the recording.
51. A computer-readable storage as recited in claim 50, wherein said process further comprises supplying complementary content for the recording to the first device via the network.
52. A computer-readable storage as recited in claim 51, wherein said process further comprises selecting the complementary content based on the use data and the user demographic data.
53. A computer-readable storage as recited in claim 48, wherein the first device is a computer, wherein said collecting detects at least one computer program loaded in the computer, and wherein the use data transferred to the second device include identification of the at least one computer program loaded into the computer.
54. A computer-readable storage as recited in claim 53, wherein said collecting detects frequency of use of the at least one computer program loaded in the computer, and wherein the use data transferred to the second device include the frequency of use of the at least one computer program loaded in the computer.
55. A computer-readable storage as recited in claim 48, wherein said process further comprises registering a user of the first device to obtain a user identifier, and wherein said transferring further includes transferring the user identifier with the use data to the second device.
56. A computer-readable storage as recited in claim 55, wherein said process further comprises:
obtaining user demographic data; and sending the user demographic data to the second device.
57. A computer-readable storage as recited in claim 56, wherein said process further comprises supplying complementary content for the recording to the first device via the network based on the use data and the user demographic data.
58. A computer-readable storage as recited in claim 48, wherein the recording contains segments, wherein said process further comprises identifying at least one segment of the recording, and wherein the use data include segment data identifying the at least one segment played at the first device.
59. A computer-readable storage as recited in claim 58, wherein the segment data include a number of times the at least one segment has been played at the first device.
60. A computer-readable storage as recited in claim 59, wherein the segment data include how much of the at least one segment has been played each time.
61. A computer-readable storage as recited in claim 58, wherein the segment data include how much of the at least one segment has been played.
62. A computer-readable storage as recited in claim 58, wherein the segment data include how often the at least one segment has been played.
63. A computer-readable storage as recited in claim 48, wherein said process further comprises:

automatically generating a recording identifier from information included in the recording; and sending the recording identifier with the use data from the first device to the second device.
64. A computer-readable storage as recited in claim 63, wherein the recording includes at least two segments, and wherein said generating generates the recording identifier based on length of the segments.
65. A computer-readable storage as recited in claim 48, wherein said collecting is performed regardless of whether the first and second devices are connected, wherein said process further includes establishing a connection between the first and second devices, and wherein said transferring transfers all of the use data collected while the first and second devices were not connected, from the first device to the second device via the network after the first and second devices are connected.
66. A computer-readable storage as recited in claim 48, wherein said collecting collects the use data for a plurality of recordings fixed in at least one medium possessed by the user, and wherein said transferring includes providing identification of the user.
67. A computer-readable storage as recited in claim 66, further comprising storing the use data at the second device to provide an indication of the recordings played by the user.
68. A computer-readable storage as recited in claim 48, wherein the information used to identify the recording was not stored for the purpose of identifying the recording.
69. A system for transferring information associated with playback of a recording, comprising:

a first device to reproduce a recording fixed in a medium possessed by a user, to identify the recording based on information associated with the recording and stored in the medium for a purpose other than identifying the recording, and to collect use data not previously associated with the recording;

a second device to store the use data; and a network coupled to said first and second devices to transfer the use data from said first device to said second device.
70. A system as recited in claim 69, wherein the recording is a compact disc with audio content stored on tracks and the use data indicate playback of the tracks on the compact disc.
71. A system as recited in claim 70, wherein said first device obtains a recording identifier based on length of the tracks, and wherein said network sends the recording identifier from said first device to said second device.
72. A system as recited in claim 70, wherein said network sends data indicating length of the tracks from said first device to said second device; and wherein said second device obtains a recording identifier based on the data indicating the length of the tracks.
73. A system as recited in claim 69, wherein the recording is a computer file containing digitized audio signals.
74. A system as recited in claim 73, wherein the computer file contains audio data compressed using MPEG encoding.
75. A system as recited in claim 69, wherein said network transfers complementary content for the recording from said second device to said first device.
76. A system as recited in claim 75, wherein said first device obtains user demographic data; and wherein said network sends the user demographic data from said first device to said second device.
77. A system as recited in claim 76, wherein said second device selects the complementary content based on the use data and the user demographic data.
78. A system as recited in claim 69, wherein said first and second devices are not always connected via said network and said first device stores the use data when not connected to said second device and transmits the use data to said second device after a connection is established.
79. A system as recited in claim 69, wherein said first device automatically generates a recording identifier from information provided with the recording to play back contents of the recording perceived by the user and sends the recording identifier to said second device with the use data.
80. A system as recited in claim 79, wherein the recording includes at least two segments and said first device generates the recording identifier based on length of the segments.
81. A system as recited in claim 69, wherein said first device collects the use data for a plurality of recordings fixed in at least one medium possessed by the user, and wherein said network further transfers data identifying the user from said first device to said second device.
82. A system as recited in claim 81, wherein said second device stores the use data to provide an indication of the recordings played by the user.
83. A method of obtaining information associated with playback of recordings at a first device connectable to a second device via a network, comprising:
collecting, at the first device, use data not previously associated with a recording identified using information provided with the recording to play back contents of the recording perceived by a user; and transferring the use data from the first device to the second device via the network.
84. A method as recited in claim 83, wherein the information used to identify the recording was not stored for the purpose of identifying the recording.
85. A method of obtaining information associated with playback of recordings containing segments at a first device connectable to a second device via a network, comprising:

identifying at least one segment of a recording, based on information obtained from or related to the segment and included in the recording to enable playback of the segment rather than to identify the segment;

collecting, at the first device, use data not previously associated with the at least one segment of the recording, the use data including segment data identifying the at least one segment played at the first device; and transferring the use data from the first device to the second device via the network.
86. A system for obtaining information based on playback of at least one recording at a first device connected to a second device via a network, comprising:

identification means for identifying a recording fixed in a medium possessed by a user based on information provided with the recording to play back contents of the recording perceived by the user;

collection means for collecting use data related to at least one of a portion of the recording and play time of the recording;

connection means for establishing a connection between the first and second devices;

transmission means for sending the use data from the first device to the second device via the network; and storage means for storing the use data at the second device.
87. A system as recited in claim 86, wherein the information used to identify the recording was not stored for the purpose of identifying the recording.
88. A computer-readable storage storing instructions to control a processor to perform a process comprising:

collecting, at a first device, use data not previously associated with playback of a recording identified based on information provided with the recording to play back contents of the recording perceived by a user; and transferring the use data from the first device to a second device connected to the first device via a network.
89. A computer-readable medium as recited in claim 88, wherein the information used to identify the recording was not stored for the purpose of identifying the recording.
90. A method for associating local and remote data on a local computer connected to a network, comprising:

automatically executing a program on the local computer when a recording is played, to obtain an at least partial pointer to remote data corresponding to the recording from a correspondence of recording identifiers and pointer data stored on at least one remote computer connected to the local computer via the network;

obtaining the remote data via the network from a location based on the at least partial pointer; and outputting the remote data on the local computer.
91. A method as recited in claim 90, further comprising maintaining at least one database associating the recording identifiers and at least partial uniform resource locators of corresponding Internet resources for a plurality of recordings released by an organization.
92. A method as recited in claim 91, wherein the recording is a compact disc, the plurality of recordings are compact discs, and the organization is a record company.
93. A method as recited in claim 91, wherein the recording is an electronic file of digital audio and the plurality of recordings are electronic files of digital audio.
94. A method as recited in claim 90, wherein the at least partial uniform resource locator includes at least a partial address of a World Wide Web page maintained on behalf of at least one person who produced sound for the recording.
95. A method as recited in claim 94, wherein the remote data includes at least one of an image of the at least one person, a video in which the at least one person appears and biographical information about the at least one person.
96. A method for associating a recording with output of data on a local device connected to a network, comprising:

obtaining an identifier from information provided with the recording to play back the recording;

comparing the identifier with records in a database maintained on a remote computer coupled to the local device via the network; and outputting remote data obtained from the network upon verification of access to the recording by the local device, the remote data obtained via the network from at least one storage location dynamically determined based on the identifier.
97. A method as recited in claim 96, further comprising automatically sending the information provided with the recording from the local device to the remote computer, and wherein said obtaining is performed by the remote computer from the information provided with the recording received from the local device.
98. A method as recited in claim 96, wherein said obtaining includes generating the identifier by the local device based on the information provided with the recording, and wherein said method further comprises automatically sending the identifier from the local device to the remote computer.
99. A method of delivering content complementary to a compact disc inserted in a compact disc player coupled with a computer connected to a network, comprising:

receiving the compact disc in the compact disc player coupled with the computer;

obtaining an identifier for the compact disc;

retrieving from a remote computer via the network an at least partial pointer related to the identifier;

linking to a remote device via the network using the at least partial pointer;
and delivering content complementary to the compact disc from the remote device to the computer via the network.
100. A method as recited in claim 99, further comprising:

detecting insertion of the compact disc in the compact disc player; and automatically starting a client program within the computer to cause the computer to access the network when the compact disc is inserted in the compact disc player.
101. A method as recited in claim 99, wherein said obtaining is performed automatically upon insertion of the compact disc, wherein said retrieving of the at least partial pointer related to the identifier automatically retrieves a plurality of uniform resource locators related to the identifier upon determination of the identifier for the compact disc, and wherein said linking automatically links the computer to a selected remote device corresponding to one of the uniform resource locators related to the identifier.
102. A method of delivering content complementary to a compact disc inserted in a compact disc player coupled with a computer connected to a network, comprising:

inserting the compact disc in the compact disc player coupled with the computer;

obtaining an identifier for the compact disc;

retrieving an at least partial pointer related to the identifier, including searching a local cache for the identifier;

connecting to a remote look-up server to search for the identifier and to return at least one pointer string related thereto when the identifier is not found in the local cache within a predetermined period of time;

storing the at least one pointer string returned from the remote look-up server in the local cache; and providing the at least one pointer string as the at least partial pointer when the identifier is found in the local cache and when the at least one pointer string is returned from the remote look-up server;

linking to a remote device via the network, in response to the at least partial pointer; and delivering content complementary to the compact disc from the remote device to the computer via the network.
103. A method as recited in claim 102, wherein a plurality of uniform resource locators related to the identifier are returned from the remote look-up server as the at least one pointer string, and wherein said linking initially links to a selected remote device corresponding to one of the uniform resource locators related to the identifier.
104. A computer system, coupled to a network, to associate remote data and audio, comprising:

a playback unit, located at a first location, to play a recording;

a communication unit, located at the first location, to obtain remote data from the network using an at least partial pointer corresponding to the recording;

an output unit, located at the first location, to output the remote data; and a remote computer, coupled to said communication unit via the network and located at a second location remote from the first location, storing at least one database of recording identifiers and at least partial pointers and providing said communication unit with the at least partial pointer.
105. A computer system as recited in claim 104, wherein the at least one database stored on said remote computer associates the recording identifiers with at least partial pointers of corresponding World Wide Web pages for a plurality of recordings released by an organization.
106. A computer system, as recited in claim 104, wherein the at least partial pointer is at least one uniform resource locator of at least one World Wide Web page maintained on behalf of at least one person who produced sound for the recording.
107. At least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a compact disc inserted into a compact disc player coupled with a local computer connected to a network, comprising:

detecting insertion of the compact disc in the compact disc player coupled with the local computer;

obtaining an identifier for the compact disc;

retrieving from a remote computer via the network an at least partial pointer corresponding to the identifier;

linking to a remote device via the network, based on the at least partial pointer; and delivering content complementary to the compact disc from the remote device to the local computer via the network.
108. At least one computer program as recited in claim 107, further comprising automatically sending information, stored on the compact disc to play back the compact disc, from the local computer to the remote computer, and wherein said obtaining is performed by the remote computer from the information received from the local computer.
109. At least one computer program as recited in claim 107, wherein said obtaining includes generating the identifier by the local computer based on information stored on the compact disc to play back the compact disc, and wherein said method further comprises automatically sending the identifier from the local computer to the remote computer.
110. At least one computer program as recited in claim 107, further comprising automatically starting a client program within the computer to cause the computer to access the network when the compact disc is inserted in the compact disc player.
111. At least one computer program as recited in claim 107, wherein said obtaining is performed automatically upon insertion of the compact disc, wherein said retrieving of the at least partial pointer automatically retrieves a plurality of character strings at least partially defining uniform resource locators related to the identifier upon determination of the identifier for the compact disc, and wherein said linking automatically links the computer to a selected remote device corresponding to one of the uniform resource locators.
112. At least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a compact disc inserted into a compact disc player coupled with a computer connected to a network, comprising:

inserting the compact disc in the compact disc player coupled with the computer;

obtaining an identifier for the compact disc;

retrieving an at least partial pointer corresponding to the identifier, including searching a local cache for the identifier;

connecting to a remote look-up server to search for the identifier and return at least one character string related thereto, when the identifier is not found in the local cache within a predetermined period of time;

storing the at least one character string returned from the remote look-up server in the local cache; and providing the at least one character string as the at least partial pointer, when the identifier is found in the local cache and when the at least one character string is returned from the remote look-up server;

linking to a remote device via the network, based on the at least partial pointer; and delivering content complementary to the compact disc from the remote device to the computer via the network.
113. At least one computer program as recited in claim 112, further comprising automatically sending information, stored on the compact disc to play back the compact disc, from the computer to the remote look-up server, and wherein said obtaining is performed by the remote look-up server from the information received from the computer.
114. At least one computer program as recited in claim 112, wherein said obtaining includes generating the identifier by the computer based on information stored on the compact disc to play back the compact disc, and wherein said method further comprises automatically sending the identifier from the computer to the remote look-up server.
115. At least one computer program as recited in claim 112, wherein a plurality of uniform resource locators related to the identifier are returned from the remote look-up server, and wherein said linking initially links to a selected remote device corresponding to one of the uniform resource locators related to the identifier.
116. A method for associating remote and local data on a local device connected to a network, comprising:

automatically executing a program on the local device when the local data is accessed, to obtain at least one pointer string, corresponding to the local data, from at least one database of local data identifiers and pointer strings stored on at least one remote device connected to the local device via the network;

obtaining the remote data via the network from a content provider based on the at least one pointer string; and outputting at the local device the remote data obtained from the network.
117. A method as recited in claim 116, further comprising maintaining in the at least one database an association between the local data identifiers and the pointer strings which at least partially define uniform resource locators of corresponding Internet resources for a plurality of items of local data provided by an organization.
118. A method as recited in claim 117, wherein the local data are stored in a recording and are accessed to play the recording for a user of the local device.
119. A method as recited in claim 118, wherein the recording is digital audio and the items of local data are electronic files of digital audio.
120. A method as recited in claim 119, wherein the at least one pointer string at least partially defines an address of a World Wide Web page maintained on behalf of at least one person who produced sound for the recording.
121. A method as recited in claim 120, wherein the remote data include at least one of an image of the at least one person, a video in which the at least one person appears and biographical information about the at least one person.
122. A method as recited in claim 120, wherein the remote data include an electronic file of digital audio.
123. A method as recited in claim 116, wherein the remote data include an electronic file of digital audio.
124. A method for associating remote and local data on a local device connected to a network, the local data including at least one electronic file of digital audio stored on one of a compact disc and a digital versatile disc, said method comprising:

obtaining an identifier from information associated with the local data accessed by the local device when the one of a compact disc and a digital versatile disc is inserted into the local device;

automatically executing, when the local data is accessed, a communication program for communication via the network, after initiating the communication program if the communication program has not been initiated previously;

automatically requesting remote data based on the identifier; and automatically outputting at the local device the remote data obtained from the network.
125. A method of delivering content complementary to a recording ready for playback by a local device connected to a network, comprising:

obtaining an identifier for the recording;

retrieving from a remote device via the network an at least partial pointer corresponding to the identifier;

linking to the remote device via the network, based on the at least partial pointer;
and delivering content complementary to the recording from the remote device to the local device via the network.
126. A method as recited in claim 125, wherein the local device is a computer connected to the remote device via the network, and wherein said method further comprises:

detecting access to the recording by the computer; and automatically starting a client program within the computer to control the computer when the recording is accessed.
127. A method as recited in claim 125, wherein said retrieving of the at least partial pointer includes searching a local cache for the identifier;

connecting to a remote look-up server to search for the identifier and return at least one pointer string related thereto, when the identifier is not found in the local cache within a predetermined period of time;

storing the at least pointer string returned from the remote look-up server in the local cache; and providing the at least one pointer string as the at least partial pointer for said linking, when the identifier is found in the local cache and when the at least one pointer string is returned from the remote look-up server.
128. A method as recited in claim 127, wherein a plurality of pointer strings related to the identifier are returned from the remote look-up server, and wherein said linking initially links to a selected remote device at least partially addressed by one of the pointer strings.
129. A method as recited in claim 125, wherein said retrieving of the at least partial pointer related to the identifier retrieves a plurality of pointer strings at least partially defining uniform resource locators related to the identifier, and wherein said linking initially links to a selected remote device corresponding to one of the uniform resource locators related to the identifier.
130. A system coupled to a network and associating remote data with local data included in a recording, comprising:

a local device located at a first location, including an access unit playing the recording for a user of the local device and accessing the local data;

a communication unit, coupled to said access unit, automatically obtaining, upon access to the local data by said access unit, the remote data from the network using at least one pointer string at least partially defining a uniform resource locator corresponding to the local data; and an output unit, coupled to said communication unit at the first location, outputting the remote data; and a remote computer, coupled to said communication unit via the network and located at a second location remote from the first location, storing at least one database of recording identifiers and pointer strings, said communication unit obtaining the at least one pointer string from said remote computer.
131. A system as recited in claim 130, wherein said communication unit in said local device further sends to said remote computer information provided with the recording to play back the recording, and wherein said remote computer determines, based on the information received from said local device, a recording identifier for the recording corresponding to the at least one pointer string.
132. A system as recited in claim 130, wherein said local device further includes a processor generating a recording identifier for the recording based on information used to play back the recording, and wherein said communication unit sends the recording identifier to the remote computer to obtain the at least one pointer string.
133. A system as recited in claim 130, wherein the at least one database stored on said remote computer associates the recording identifiers with at least partial uniform resource locators of corresponding World Wide Web pages for a plurality of recordings released by an organization.
134. A system as recited in claim 130, wherein the at least one pointer string at least partially addresses a World Wide Web page maintained on behalf of at least one person who produced sound for the recording.
135. At least one computer program stored on a computer-readable medium, embodying a method for delivering content complementary to a recording ready for playback by a local device connected to a network, comprising:

obtaining an identifier for the recording;

retrieving from a remote device via the network an at least partial pointer corresponding to the identifier;

linking to a remote device via the network based on the at least partial pointer; and delivering content complementary to the recording from the remote device to the local device via the network.
136. At least one computer program as recited in claim 135, wherein the local device is a computer connected to the remote device via the network, and further comprising:

detecting access to the recording by the computer; and automatically starting a client program within the computer to control the computer when the recording is accessed.
137. At least one computer program as recited in claim 135, wherein said retrieving of the at least partial pointer includes generating the identifier by the local device based on information provided with the recording for playback of the recording;

searching the local cache for the identifier;

connecting to a remote look-up server to search for the identifier and return at least one pointer string at least partially defining a uniform resource locator related thereto, when the identifier is not found in the local cache within a predetermined period of time;

storing the at least one pointer string returned from the remote look-up server in the local cache; and providing the at least one pointer string as the at least partial pointer for said linking, when the identifier is found in the local cache and when the at least one pointer string is returned from the remote look-up server.
138. At least one computer program as recited in claim 137, wherein a plurality of pointer strings related to the identifier are returned from the remote look-up server, and wherein said linking initially links to a selected remote device at least partially addressed by one of the pointer strings.
139. At least one computer program as recited in claim 135, wherein said retrieving of the at least partial pointer corresponding to the identifier retrieves a plurality of pointer strings at least partially defining uniform resource locators related to the identifier, and wherein said linking initially links to a selected remote device at least partially addressed by one of the pointer strings.
140. At least one computer program as recited in claim 135, further comprising:

sending information, provided with the recording to play back the recording, from the local device to the remote device;

determining the identifier by the remote device based on the information received from the local device; and comparing the identifier with records in a database maintained on the remote device to find the at least partial pointer corresponding to the identifier.
141. At least one computer program as recited in claim 135, wherein the content complementary to the recording includes at least one of an image associated with the recording, animation associated with the recording, and a video associated with the recording.
142. At least one computer program as recited in claim 141, wherein the recording is an electronic file of digital audio, and wherein the content complementary to the recording further includes an album cover associated with the electronic file.
143. A method for associating local and remote data on a local computer connected to a network, comprising:

outputting on the local computer remote data based on playback of a recording by the local computer, the remote data obtained via the network from at least one storage location dynamically determined when the playback of the recording occurs.
144. A method as recited in claim 143, further comprising obtaining the remote data using an at least partial pointer corresponding to the recording, the at least partial pointer obtained from the network by the local computer.
145. A method as recited in claim 144, wherein the remote data is display data representing a World Wide Web page, and wherein the at least partial pointer at least partially defines a uniform resource locator for the World Wide Web page.
146. A method as recited in claim 143, further comprising:

automatically executing a communication program for communication via the network and output of the remote data received from the network, when the recording is played;

obtaining an identifier for the recording based on information associated with the recording;

determining at a remote computer at least one location, corresponding to the identifier, where the remote data is stored; and automatically sending the remote data from the at least one location to the local computer via the network.
147. A method as recited in claim 146, wherein the communication program is a web browser, the network is the Internet, and the remote data is display data representing at least part of one web page.
148. A method as recited in claim 146, wherein the information used to obtain the identifier is provided to play back the recording, not to identify the recording.
149. A method as recited in claim 148, wherein the information used to determine the identifier includes table of contents information for the recording wherein the recording is stored on a disc, and wherein said executing and determining begins when the disc is inserted into a disc drive coupled with the local computer, regardless of whether the communication program has been initiated.
150. A method as recited in claim 143, wherein the remote data includes at least one of an image associated with the recording, animation associated with the recording, and a video associated with the recording.
151. A method as recited in claim 150, wherein the recording is stored on a disc, and wherein the remote data includes display data representing an album cover associated with the disc.
152. A method as recited in claim 143, wherein said outputting outputs the remote data including at least one name of a song included in the recording.
153. A method as recited in claim 143, wherein the recording is on a compact disc containing a plurality of tracks, and wherein said outputting outputs the remote data including at least one title of a corresponding track on the compact disc.
154. At least one computer program stored on a computer-readable medium, embodying a method for associating a recording at a local computer with data at a remote computer coupled to the local computer via a network, comprising:
obtaining an identifier based on information associated with the recording;
automatically accessing the remote computer at a location dynamically determined after verification of access to the recording by the local computer; and comparing the identifier with records in a database maintained on the remote computer.
155. A system coupled to a network, comprising:
an access unit to access local data containing no content stored for the purpose of providing enhanced capability;
a communication unit to automatically obtain remote data from the network upon access to the local data; and a processing unit, coupled to said access unit and said communication unit, to provide the enhanced capability by processing the remote data.
156. At least one computer program stored on a computer-readable medium, embodying a method for associating a recording with output of remote data on a local computer connected to a network, comprising:
outputting remote data obtained via the network from at least one storage location dynamically determined after verification of access to the recording by the local computer.
157. At least one computer program as recited in claim 156, further comprising prior to said outputting prompting input of a disc containing the recording; and verifying access to the recording on the disc.
158. A method for associating remote and local data on a local device connected to a network, comprising:
automatically obtaining the remote data using an at least partial pointer corresponding to the local data and obtained from the network by the local device upon access to the local data by the local device; and outputting at the local device the remote data obtained from the network, based on access to the local data by the local device.
159. A method as recited in claim 158, further comprising obtaining the remote data using at least one uniform resource locator corresponding to the local data and based on the at least partial pointer obtained from the network by the local device.
160. A method as recited in claim 159, wherein the remote data is an Internet resource.
161. A method as recited in claim 158, further comprising:
automatically executing a communication program for communication via the network and output of the remote data received from the network, when the local data is accessed;
obtaining an identifier based on information associated with the local data;
and automatically requesting the remote data based on the identifier.
162. A method as recited in claim 161, wherein the communication program is a web browser, the network is the Internet, and the remote data is an Internet resource.
163. A method as recited in claim 161, wherein the remote data include an electronic file of digital audio.
164. A method as recited in claim 158, wherein the remote data include at least one of an image associated with the local data, animation associated with the local data, and a video associated with the local data.
165. A method as recited in claim 164, wherein the local data is an electronic file of digital audio, and wherein the remote data include an album cover associated with the electronic file.
166. A system, coupled to a network, to associate remote data with local data, comprising:
an access unit to access the local data;
a communication unit to automatically obtain the remote data from the network upon access to the local data, using an at least one partial pointer obtained from the network and corresponding to the local data; and an output unit to output the remote data.
167. A system as recited in claim 166, wherein said communication unit obtains the remote data using at least one uniform resource locator based on the at least partial pointer obtained from the network and corresponding to the local data.
168. A system as recited in claim 167, wherein the local data is included in a recording and is accessed to play the recording for a user of the local device.
169. A system as recited in claim 168, wherein the recording is an electronic file of digital audio.
170. A system as recited in claim 169, wherein the electronic file is stored on a disc, wherein said access unit is a disc playback unit, and wherein said communication unit requests the remote data upon insertion of the disc into said playback unit.
171. A system as recited in claim 167, wherein the remote data include an electronic file of digital audio.
172. A system as recited in claim 166, wherein the remote data include at least one of an image associated with the local data, animation associated with the local data, and a video associated with the local data.
173. A system as recited in claim 172, wherein the local data is an electronic file of digital audio, and wherein the remote data include an album cover associated with the electronic file.
174. A method for associating a recording with output of data on a local computer connected to a network, comprising:
outputting remote data obtained from the network upon verification of access to the recording by the local computer, the remote data obtained via the network from at least one storage location dynamically determined after the recording is accessed.
175. A method as recited in claim 174, further comprising:
prompting input of a disc containing the recording; and verifying access to the recording on the disc.
176. A method as recited in claim 174, wherein said outputting outputs the remote data including at least one name of a song included in the recording.
177. A method as recited in claim 174, wherein the recording is on a compact disc containing a plurality of tracks, and wherein said outputting outputs the remote data including at least one title of a corresponding track on the compact disc.
178. A computer system coupled to a network, comprising:
a playback unit to play a recording;
a communication unit to obtain remote data via the network from at least one storage location dynamically determined when playback of the recording occurs; and an output unit to output the remote data.
179. A computer system as recited in claim 178, wherein said communication unit obtains the remote data using a pointer string at least partially defining at least one uniform resource locator corresponding to the recording.
180. A computer system as recited in claim 178, wherein said communication unit obtains the remote data including at least one name of a song included in the recording.
181. A computer system as recited in claim 178, wherein the recording is on a compact disc containing a plurality of tracks, and wherein said communication unit obtains the remote data including at least one title of a corresponding track on the compact disc.
182. A method for associating remote data with a recording accessed at a local computer connected to a network to provide enhanced capability based on the remote data, comprising:
outputting remote data, obtained from the network and providing enhanced capability, upon verification of access by the local computer to a recording containing no content stored for the purpose of providing the enhanced capability.
183. ~At least one computer program stored on a computer-readable medium, embodying a method for associating remote data with a recording accessed at a local computer connected to a network to provide enhanced capability based on the remote data, comprising:
outputting remote data, obtained from the network and providing enhanced capability, upon verification of access by the local computer to a recording containing no content stored for the purpose of providing enhanced capability.
184. ~A method for controlling a local computer connected to a network to provide enhanced capability not available from content stored at the local computer, comprising:
controlling the local computer to provide the enhanced capability based on remote data obtained from the network upon verification of access by the local computer to a recording containing no content stored for the purpose of providing enhanced capability.
185. ~At least one computer program stored on a computer-readable medium, embodying a method for controlling a local computer connected to a network to provide enhanced capability not available from content stored at the local computer, comprising:
controlling the local computer to provide the enhanced capability based on remote data obtained from the network upon verification of access by the local computer to a recording containing no content stored for the purpose of providing enhanced capability.
186. ~A method for obtaining data related to a recording, comprising:
obtaining an identifier based on information associated with the recording;
using the identifier as a key to locate at least one record in at least one database file; and obtaining data from at least one related file linked to the at least one database file.
187. A method as recited in claim 186, wherein the database file specifies identifiers for other related recordings.
188. A method as recited in claim 186, wherein said obtaining comprises:
obtaining correlated identifiers for related recordings; and obtaining a plurality of related linked database files using the correlated identifiers.
189. A method as recited in claim 186, wherein said obtaining comprises:
obtaining an array of identifiers for related recordings; and obtaining a plurality of related linked database files using the array of identifiers.
190. At least one computer program stored on a computer-readable medium, embodying a method for obtaining data related to a recording, comprising:
obtaining an identifier based on information associated with the recording;
using the identifier as a key to locate at least one record in at least one database file; and obtaining data from at least one related file linked to the at least one database file.
191. At least one computer program as recited in claim 190, wherein the database file specifies identifiers for other related recordings.
192. At least one computer program as recited in claim 190, wherein said obtaining the data comprises:
obtaining correlated identifiers for related recordings; and obtaining a plurality of related linked database files using the correlated identifiers.
193. At least one computer program as recited in claim 190, wherein said obtaining the data comprises:
obtaining an array of identifiers for related recordings; and obtaining a plurality of related linked database files using the array of identifiers.
194. A computer system, coupled to a network, to associate data with recordings, comprising:
a communication unit to receive via the network at least one of an identifier and information associated with a recording used to determine the identifier;
a storage unit storing at least one database file; and a database access unit, coupled to said communication unit and said storage unit, to use the identifier as a key to locate at least one record in the at least one database file, said communication unit outputting via the network at least one related file linked to the at least one database file.
195. A computer system as recited in claim 194, wherein the at least one database file specifies identifiers for other related recordings.
196. A computer system as recited in claim 194, wherein the at least one database file in said storage unit includes correlated identifiers for related recordings, wherein said database access unit accesses related linked database files using the correlated identifiers, and wherein said communication unit outputs the related linked database files via the network.
197. A computer system as recited in claim 194, wherein said database access unit accesses an array of identifiers for related recordings and related linked database files using the array of identifiers, and wherein said communication unit outputs the related linked database files via the network.
198. A computer system to associate data with a recording, comprising:
a processor to determine an identifier from information associated with the recording;
a storage unit storing at least one database file; and a database access unit, coupled to said processor and said storage unit, to use the identifier as a key to locate at least one record in the at least one database file.
199. A computer system as recited in claim 198, wherein the at least one database file specifies identifiers for other related recordings.
200. A computer system as recited in claim 198, wherein the at least one database file in said storage unit includes correlated identifiers for related recordings, wherein said database access unit accesses related linked database files using the correlated identifiers.
201. A computer system as recited in claim 198, wherein said database access unit accesses an array of identifiers for related recordings and related linked database files using the array of identifiers.
CA002553159A 1997-04-15 1998-04-15 Network delivery of interactive entertainment complementing audio recording Abandoned CA2553159A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/838,082 US5987525A (en) 1997-04-15 1997-04-15 Network delivery of interactive entertainment synchronized to playback of audio recordings
US08/838,082 1997-04-15
CA002286641A CA2286641C (en) 1997-04-15 1998-04-15 Network delivery of interactive entertainment complementing audio recording

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CA002286641A Division CA2286641C (en) 1997-04-15 1998-04-15 Network delivery of interactive entertainment complementing audio recording

Publications (1)

Publication Number Publication Date
CA2553159A1 true CA2553159A1 (en) 1998-10-22

Family

ID=36955388

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002553159A Abandoned CA2553159A1 (en) 1997-04-15 1998-04-15 Network delivery of interactive entertainment complementing audio recording

Country Status (1)

Country Link
CA (1) CA2553159A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9686596B2 (en) 2008-11-26 2017-06-20 Free Stream Media Corp. Advertisement targeting through embedded scripts in supply-side and demand-side platforms
US9703947B2 (en) 2008-11-26 2017-07-11 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9716736B2 (en) 2008-11-26 2017-07-25 Free Stream Media Corp. System and method of discovery and launch associated with a networked media device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9686596B2 (en) 2008-11-26 2017-06-20 Free Stream Media Corp. Advertisement targeting through embedded scripts in supply-side and demand-side platforms
US9703947B2 (en) 2008-11-26 2017-07-11 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9706265B2 (en) 2008-11-26 2017-07-11 Free Stream Media Corp. Automatic communications between networked devices such as televisions and mobile devices
US9716736B2 (en) 2008-11-26 2017-07-25 Free Stream Media Corp. System and method of discovery and launch associated with a networked media device
US9838758B2 (en) 2008-11-26 2017-12-05 David Harrison Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9848250B2 (en) 2008-11-26 2017-12-19 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9854330B2 (en) 2008-11-26 2017-12-26 David Harrison Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9866925B2 (en) 2008-11-26 2018-01-09 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9967295B2 (en) 2008-11-26 2018-05-08 David Harrison Automated discovery and launch of an application on a network enabled device
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10032191B2 (en) 2008-11-26 2018-07-24 Free Stream Media Corp. Advertisement targeting through embedded scripts in supply-side and demand-side platforms
US10074108B2 (en) 2008-11-26 2018-09-11 Free Stream Media Corp. Annotation of metadata through capture infrastructure
US10142377B2 (en) 2008-11-26 2018-11-27 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US10425675B2 (en) 2008-11-26 2019-09-24 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10771525B2 (en) 2008-11-26 2020-09-08 Free Stream Media Corp. System and method of discovery and launch associated with a networked media device
US10791152B2 (en) 2008-11-26 2020-09-29 Free Stream Media Corp. Automatic communications between networked devices such as televisions and mobile devices
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US10986141B2 (en) 2008-11-26 2021-04-20 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device

Similar Documents

Publication Publication Date Title
US6330593B1 (en) System for collecting use data related to playback of recordings
US7167857B2 (en) Method and system for finding approximate matches in database
US7945645B2 (en) Method and system for accessing web pages based on playback of recordings
US7228280B1 (en) Finding database match for file based on file characteristics
KR100820796B1 (en) Method for reproducing an interactive optical disc using an internet
JP2007267173A (en) Content reproducing apparatus and method
CA2553159A1 (en) Network delivery of interactive entertainment complementing audio recording
KR100908144B1 (en) Multimedia editing / playback system and its operation method
JP2005032319A (en) Recording medium and playback device
EP1872272A1 (en) Method and apparatus for editing program search information
JP2004511838A (en) Method and system for finding matches in a database for waveforms
JP2004070882A (en) Metadata preparing method, contents providing server, metadata preparing program, and recording medium recording the program
JP2003015990A (en) Information display method, device and program thereof, recording medium with same program recorded thereon
JP2006173692A (en) Information processor and information processing method
JP4596080B2 (en) Recording medium and reproducing apparatus
JP2005216391A (en) Recording medium and playback device
JP2008300034A (en) Recording medium and reproducing device
JP2011134439A (en) Recording medium and reproducing device

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead