BROADCAST SYSTEM WITH ASSOCIATED DATA TRANSMISSION CAPABILITIES

Abstract: A broadcast system includes a device to compare program material to be transmitted with a database of known material, and to transmit along with the program material data corresponding to that program material. A corresponding receiving system stores the data in memory and displays, at the selection of the user, the data corresponding to the program material. The user selectively stores the data on a magnetic recording card for electronic coupon or other uses. Various modes of operation are selectable by the user, and the data may be used as electronic coupons, or to control attached equipment, or to sound alarms, or for other applications.

Description: BROADCAST SYSTEM WITH ASSOCIATED DATA TRANSMISSION CAPABILITIES RELATED APPLICAΉON This is a continuation in part of co-pending United States patent application, serial number 08,045,352, filed April 8, 1993. BACKGROUND AND FIELD OF THE INVENTION This invention relates generally to broadcasting systems, and specifically to a system for transmitting data associated with audio or video program material to provide a listener or viewer with useful information regarding the program material. Many radio broadcast systems are known to exist in which digital data are transmitted along with audio program material. For example, the United States Radio Broadcast Data System ("RBDS") Standard, published by the National Radio Systems Committee and sponsored by the Electronics Industry Association and the National Association of Broadcasters, describes a system for broadcasting a variety of program- related information on a subcarrier of a standard FM broadcast channel. The RBDS standard teaches a system for transmitting station identification and location information, as well as time, traffic and miscellaneous other information. U.S. patent no. 5,063,610 to Alwadish discloses a system in which advertising text, song titles, or other program-related data may be transmitted along with audio program material and stored, displayed, or printed by a listener using appropriate receiving apparatus. The Alwadish system is understood to require data corresponding to program material to be stored along with the program material source itself (i.e., on compact disc or digital audio tape). Thus, the Alwadish system relies on customized audio program source hardware and software. In another field of art, several systems have been taught for automatically monitoring received broadcast signals in order to log the program content of such broadcasts. For instance, U.S. patent nos. 4,450,531 and 4,843,562 to Kenyon et al. teach schemes for automatically recognizing received program material as one of a number of "reference" library programs. Notably absent from the known prior art, however, is a system for broadcasting program material and associated data that does not rely on customized program source material and related apparatus in which the program and the data are linked at the program source level. It would be desirable to have a system in which conventional program sources (e.g., conventional phonograph records, tape cartridges, or compact discs) could be played using conventional program source apparatus (e.g., conventional turntables, tape cartridge players and compact disc players), yet still provide the advantages of transmitting data pertaining to the program material. It would also be desirable to have systems and methods for applying such broadcast data to diverse uses. SUMMARY OF THE INVENTION In accordance with the present invention, a broadcast transmission system includes conventional program sources, a device for detecting which of several program sources is selected, a device for recognizing program material by comparing the program material with a database of known program material, and a device for applying to a transmitter a data stream corresponding to the recognized program material for transmission along with the program material. Also in accordance with the present invention, a receiver includes a demodulator for detecting the program material and data stream, and a user interface device for providing the user with a menu of data options, the options depending on information in the data stream. Further in accordance with the present invention, a receiver includes a data card recorder for recording selected information from the data stream on a portable data card for later use. Still further in accordance with the present invention, a receiver operates in various modes to selectively receive, process and reproduce portions of transmitted program material and data. Yet further in accordance with the present invention, a receiver includes a game- playing mode processing transmitted game-playing data. Still further in accordance with the present invention, a receiver generates signals to control connected devices, based on transmitted data. Yet further in accordance with the present invention, a receiver produces a scannable bar code based on transmitted data. In another aspect of the invention, a receiver includes multiple tuner subsystems for selectively receiving more than one channel of program material and transmitted data. In still another aspect of the invention, a receiver is coupled to a computer system, the operation of which is controlled responsive to transmitted data. The features and advantages described in the specification are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram of a transmission system for program material and associated data, in accordance with the present invention. Figure la is a block diagram detailing a data stream generator as illustrated in figure 1. Figure 2 is a block diagram of a receiving system for program material and associated data, in accordance with the present invention. Figure 3 is an illustration of a user interface display panel showing information about a musical composition, in accordance with the present invention. Figure 4 is an illustration of a user interface display panel showing information about a composer, in accordance with the present invention. Figure 5 is a flow diagram illustrating receiver operation, in accordance with the present invention. Figure 6 illustrates memory addresses for data storage and retrieval, in accordance with the present invention. Figure 7 illustrates the components of a data packet, in accordance with the present invention. Figure 8 illustrates receiver screen menu hierarchy, in accordance with the present invention. Figure 9 illustrates screen menu flow for the programmer terminal illustrated in figure 1. Figure 10 is a block diagram for a receiver that operates in various modes to selectively receive, process and reproduce portions of transmitted program material and data, in accordance with the present invention. Figure 11 is a block diagram of a receiver that includes a game-playing mode processing transmitted game-playing data, in accordance with the present invention. Figure 12 is a block diagram of a receiver that generates signals to control connected devices based on transmitted data, in accordance with the present invention. Figure 13 is a block diagram of a receiver that produces a scannable bar code based on transmitted data. Figure 14 is a block diagram of a receiver that includes multiple tuner subsystems for selectively receiving more than one channel of program material and transmitted data, in accordance with the present invention. Figure 15 is a block diagram of a system including a receiver and a connected computer system controlled responsive to transmitted data, in accordance with the present invention. DESCRIPTION OF A PREFERRED EMBODIMENT The figures depict a preferred embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein. Referring now to figure 1, there is shown a transmission system 100 in accordance with the present invention. The operation of the transmission system 100 is illustrated by discussion of the component parts illustrated in figure 1. Conventional audio sources such as microphone 102, compact disc player 103, and tape cartridge player 104 provide program source audio to mixing board 101. Mixing board 101 and audio sources 102-104 may be conventional units, such as those already present in a typical radio broadcast station. Audio output is fed from mixing board 101 to transmitter 110 in the conventional manner over an audio bus 113 for transmission from antenna 111. Transmitter 110 may be any conventional radio broadcasting transmitter with main channel and subcarrier channel input capabilities, such as that typically installed in modern FM broadcasting stations. Additional conventional audio compression, limiting, or other processing circuitry (not shown) may be installed at mixing board 101, transmitter 110, or in between, but is not pertinent for purposes herein. The audio output of mixing board 101 is also applied to a program material recognizer 106 via audio bus 113. The purpose of the program material recognizer 106 is to compare the program material coming from mixing board 101 with a database of known program material 107. If a match is detected, program material recognizer 106 sends pertinent program data, for instance the title of the program material, the composer, and the performer, to data stream generator 105. Any suitable program recognizing system can be used to implement program material recognizer 106 and database of known program material 107, for instance the system taught by Kenyon et al. in U.S. Patent no. 4,843,562 for received broadcast audio signals. The teachings of U.S. Patent no. 4,843,562 are incorporated herein by reference. Those skilled in the art may readily apply such known systems for recognizing audio programs to implement the program material recognizer 106 and database of known program material 107 of figure 1. The output data provided by program material recognizer 106 are converted by data stream generator 105 into a form that may be directly applied to a conventional subcarrier channel input of transmitter 110. The manner of making this conversion will depend on the particular program material recognizer 106 employed and the desired data format for transmission, and may readily be accomplished by one skilled in the art. In a preferred embodiment, data stream generator 105 is configured to conform to the large transmission capacity multiplex data broadcast system protocol promulgated by NHK (Japan Broadcasting Corporation) known as L-MSK. This protocol permits data transmission speeds of up to 32 kbits per second. Mixing board 101 also provides a signal, either through an existing facility on mixing board 101 or through a simple modification, representative of which program source (i.e., microphone 102, compact disc player 103 or tape cartridge player 104) is currently selected by mixing board 101. Program source detector 108 converts this signal to a form usable by data stream generator 105. While the particular implementation of program source detector 108 may vary with the type of mixing board 101, those skilled in the art will readily be able to implement program source detector 108 for operation with any particular mixing board 101. Data stream generator 105 generates different data streams depending on the program source detected by program source detector 108. For example, if program source detector 108 indicates that compact disc player 103 or tape cartridge player 104 is selected by mixing board 101, then data stream generator 105 applies to transmitter 110 the information generated by program material recognizer 106. However, if program source detector 108 indicates that microphone 102 is selected, then data stream generator 105 may generate data identifying the announcer's name, or the fact that news or traffic information is being broadcast, as appropriate for the use to which microphone 102 is put. If microphone 102 is put to multiple uses, then a general message such as the station's call sign or a random advertisement may be generated by data stream generator 105. Thus, in operation, data stream generator 105 provides a stream of data to transmitter 110 indicating, for example, details about a musical composition played on compact disc player 103, then advertiser information corresponding to a commercial played on tape cartridge machine 104, then an appropriate message corresponding to the selection of microphone 102 such as "Traffic Alert". In one embodiment of the present invention, database of known program material 107 contains both the data needed by program material recognizer 106 to recognize a particular program, and also the data associated with that program to be sent to transmitter 110 via data stream generator 105. The data associated with the program material can be entered, as known with regard to conventional recognition systems, by manual key entry from programmer terminal 112 or by some other common data entry method. Programmer terminal 112 may be a dedicated computer terminal or may be a personal computer connected to data stream generator 105 via a conventional local area network. Database 107 may be provided by a third party, for instance in the form of computer tapes or disks contaming both the data needed for recognition and the data desired for transmission. In such an embodiment, other data associated with program material, such as data associated with commercial announcement program material, may be separately entered into database 107 using conventional data entry techniques. Furthermore, data to be transmitted when program source detector 108 indicates selection of microphone 102 may be stored either as part of database 107 or in a separate database (not shown). Those skilled in the art will recognize that any such choice that provides associated data for transmission may be used in accordance with the present invention. As is evident from figure 1, none of the existing components of a conventional broadcast station, with the possible exception of the mixing board 101 as discussed above, needs to be replaced or altered to implement transmission system 100. An upgrade from a conventional transmission system to the transmission system 100 of figure 1 requires only the connection of the program source detector 108 to the mixing board 101, tap-off of the audio program material feed between mixing board 101 and transmitter 110 to program material recognizer 106, and connection from data stream generator 105 to a subcarrier channel input of transmitter 110. Referring now to figure la, there is shown a detailed functional block diagram of data stream generator 105. The major components of data stream generator 105 include a data input processor 153, database manager 155, system controller 157, output spooler 154, and NHK encoder 152. Data input processor 153 receives program source data from program source detector 108 via a serial RS-232 data link 151, and receives program recognition data from program material recognizer 106, also via a serial RS- 232 data link 151. Data input processor 153 uses this input data to determine which data from a screen storage database 156 should be accessed, using database manager 155, and sent to output spooler 154. For example, if data input processor 153 receives data indicating that a compact disc player is active and that the program material being broadcast is a musical selection known as "Concertino for Piano and Chamber Ensemble", it will cause a database entry corresponding to data particular to that selection to be extracted from screen storage database 156 and applied, through database manager 155, to output spooler 154. The database entry would include all of the data required for display of information of data associated with the musical selection on a receiver, as described below in connection with figures 3 and 4. A system controller 157 is coupled to database manager 155 and output spooler 154 for two discrete purposes. First, system controller 157 provides timing and control signals to regulate the movement of data from database manager 155 to output spooler 154. Second, system controller 157 provides, through a connection with a programmer terminal 112, a means by which data may be inserted into screen storage database 156, through database manager 155. For instance, radio station personnel may key in data to be associated with any particular entry of screen storage database, to permit such information to be transmitted over the system when the associated program material selection is played. As a specific example, if there is to be a public performance of "Concertino for Piano & Chamber Ensemble" at a local symphony hall, that fact may be entered into screen storage database 156 so that whenever this musical selection is played, this information will be transmitted for display on the user's receiver. Further discussion regarding data entry is provided below in connection with figure 9. Output spooler 154 is a buffer that stores data to be transmitted and sends such data, via RS-232 serial data link 151, to an NHK data encoder to permit transmission of the data using transmitter 110. NHK data encoder transforms the data from output spooler 154 into a data stream meeting the specifications of the NHK high capacity multiplex data broadcast protocol L-MSK described above. One example of a commercially-available device operating in accordance with this protocol is the model 4001A FM Multiplex Signal Transmitter for Mobile Receivers available from Eiden Company Limited, Tokyo, Japan. In the preferred embodiment, components 152-157 are implemented by using a programmed general purpose computer. Those skilled in the art may easily implement the functions of these components in such a manner. Referring now to figure 2, there is shown a receiving system 200 in accordance with the present invention. The operation of the receiving system 200 is illustrated by discussion of the component parts illustrated in figure 2. A signal transmitted by transmission system 100 of figure 1 is received by antenna 211 and demodulated into audio and data components in a conventional manner by demodulator 201. Demodulator 201 is of conventional design for detecting and demodulating audio and data signals transmitted over a main broadcast channel and a subcarrier of that channel, respectively. Audio program information from demodulator 201 is applied to conventional program material reproduction circuitry 202. Data associated with the program material (corresponding to that generated by data stream generator 105 of figure 1) are error corrected in a conventional manner by error correction circuitry 203, transferred to microprocessor 204, and then are stored in data memory 205, using any of the conventional techniques and devices well known to those skilled in the art. A user interface apparatus 206 allows a user of receiving system 205 to selectively access data stored in 203. User interface apparatus 206 is implemented using a conventional microprocessor-based design well known to those skilled in the art of user interface design and implementation. User interface apparatus 206 provides both display capabilities for the transmitted data and user input capabilities to permit user selection of portions of the transmitted data. A conventional data card recorder 207, such as that used to record information on magnetic library cards or the like, is connected to data memory 205 through microprocessor 204. The purpose of data card recorder 207 is to allow the user of receiving apparatus 200 to store selected data on portable magnetic cards. For instance, data associated with a promotion by an advertiser may be used as "electronic coupons" to allow listeners who record such data to receive a discount on merchandise. The coupon data could include standardized identifying data for a product, such as the "SKU" code for a product. A corresponding magnetic card reader of conventional design (not shown) would be used at the store where the coupon is to be redeemed. Receiving system 200 may readily be implemented by augmenting a conventional broadcast receiver capable of providing the functions of demodulator 201, program material reproduction circuitry 202, and antenna 211, with the digital data functions corresponding to error correction circuitry 203, microprocessor 204, data memory 205, user interface apparatus 206, and, if desired, data card recorder 207. Alternatively, the functions of elements 203 - 207 may be implemented by a general purpose digital computer, such as a conventional personal computer, notebook computer, or home entertainment computer, and antenna demodulator 201, program material reproduction circuitry 202, and antenna 211 may be implemented by an attached device or an add-in circuit card. In such a case, the general purpose digital computer may even be employed to provide the audio /video program material output of the main programming channel, as would conventionally be provided by program material reproduction circuitry 202. Those skilled in the art will readily recognize additional possible implementations in accordance with the present invention. Referring now to figure 3, there is shown a display panel 300 of user interface apparatus 206. Display panel 300 includes four menu button areas 301 - 304 and a larger information window 305. In the preferred embodiment, display panel 300 is of conventional liquid crystal design, with conventional touch-screen technology being used to implement switches over the menu button areas 301 - 304. Alternatively, physically separate switches could be used in locations adjacent to menu button areas 301 - 304, but one advantage of using touch-screen technology is that button areas can dynamically change in size, location and number under software control. The information window 305 of figure 3 indicates composer, title, and performer data stored in memory 205, corresponding to program material contemporaneously being received by receiving system 200. Menu button area 301 provides the user the option of requesting another screen with further information about this composer; menu button area 302 provides the user with the option of requesting orchestra information; menu button area 303 provides the user with the option of requesting another screen with information on the running time of the current selection; and menu button area 304 provides the user with the option of requesting ordering information for this recording. It should be recognized that the information presented in information window 305 and menu button areas 301 - 304 can be of virtually infinite variety and is not limited to the type of information or layout shown in figure 3. In an alternate embodiment some top-level menu choices may be stored in permanent memory (not shown) of user interface apparatus 206, but in general all of the information displayed on display panel 300, as well as the number, style, and labeling of the button areas (e.g., 301-304) is determined by data generated by data stream generator 105, transmitted to receiving system 200, and stored in data memory 205. For convenience, data corresponding to menu button areas (e.g., 301) are referred to as header data. The number of menu choices and the amount of displayable information is limited only by the bandwidth of the data transmission subcarrier channel and the capacity of data memory 205. Within these limits, each radio station may choose to include as much or as little header data as it desires, and may custom-design the menu information and layout that appear on the display panel 300. Referring now to figure 4, there is shown display panel 300 after the user has touched menu button area 301 of figure 3 to request a screen with more information about the composer. Information window 405 now displays different information than in information window 305 of figure 3. Menu button area 301 of figure 3 is replaced with menu button 401 providing the user with the capability of returning to the first screen (i.e., the screen of figure 3). Button area 302 of figure 3 is replaced with button area 402 providing the user with a further choice of viewing a screen indicating other works by the composer. There being no other options under this menu path, button areas 303, 304 of figure 3 have not been replaced with corresponding button areas in figure 4. Referring now to figure 5, there is shown a procedure for receiving and displaying data as described in connection with figures 3 and 4. The process begins by receiving data at step 501. Next, step 502 performs error correction to validate the data received. This being accomplished, the received and validated data are stored in step 503 at a specified address for later use. A check is then made in step 504 to determine whether, based on received data, new program material, e.g., a new musical selection, is currently being transmitted. If not, a check is made at step 505 to determine whether the user has requested a new screen by making a selection on one of the screen button areas, e.g., 301 - 304. A new screen request is indicated by a "new screen request flag" being set. If the new screen request flag has not been set, processing returns to step 501 for the acquisition of further data. If the check at step 504 indicates that new program material is being transmitted, processing flows to step 506, in which a new main menu screen for that new program material is displayed. In accordance with the present invention, the first data transmitted for new program material correspond to the main menu screen for that selection, so as soon as a new program is detected, main screen data for that material should already be available. Upon displaying the new main screen data in step 506, processing returns to step 501 for the acquisition and validation of further data corresponding to other screens. In a preferred embodiment, once a new program selection is detected, data from a previous program selection need not be discarded, but may be stored for later access by the user. In an alternate embodiment, users may recall data from several preceding selections, if desired. For example, if users hear a musical selection that they like, but that they do not realize they would like to order until after the selection is complete, they may still access ordering information for that selection after the next selection begins. Conventional techniques well known to those skilled in the art may be used to store and retrieve such information from previous selections. If the check in step 505 indicates that a user has requested a new screen, processing flows to step 507, where a determination is made as to the particular new screen requested. Next, step 508 checks to see whether data for that new screen have yet been stored for the current program selection. If not, processing returns to step 501 to allow further data to be acquired. If the requisite data have been stored for that screen, step 509 resets the new screen request flag and step 510 displays the new screen. Processing then returns to step 501. Referring now to figure 6, there is shown a memory map 600 for screen data in accordance with the present invention. Data for a main screen menu are given the highest address, in this case 1000. Data for screens corresponding to main screen menu choice numbers 1 through 4 are stored at addresses 1100-1400, respectively. Data for screens corresponding to menu selections from the screen data addressed at 1100 are stored at locations 1110 through 1130, and so on. Thus, addresses for screen data are defined such that the most significant bits of an address identify the parent screens corresponding to a screen of data. Referring now also to figure 8, this hierarchy of screens may be thought of as a pyramid, with the main menu screen of data 800 appearing at the tip of the pyramid and with the pyramid of screens broadening out as moves down through the menus of screens, e.g., 801-804. The memory map 600 of figure 6 does not list addresses in numerical order, but in correspondence with this menu hierarchy. This menu hierarchy also determines which data are transmitted first once a new program material selection is broadcast. Data for the initial menu screen 800 (e.g., data with address 1000) are broadcast first, then data for the menu screens 801 - 804 directly accessible from that menu screen (e.g., data with addresses 1100, 1200, 1300), then data for menu screens , e.g., 812, accessible from those menu screens (e.g., data with addresses 1110, 1120, 1130) and so on through the hierarchy. In this manner, the user will have data that are higher in the hierarchy available more quickly than if the data were transmitted strictly in order of the addresses. Data for the main screen 800 are sent first and repeated relatively often, while data for subsequent screens, e.g., 801 - 804, are sent next and are repeated less often. Referring now to figure 7, there is shown a data packet 700 in accordance with the present invention. To provide a flexible structure for presenting data on a receiver display, e.g., the display 300 illustrated in figure 3, data are transmitted in variable- length packets, e.g., 700. In a preferred embodiment, a packet 700 consists of several elements, the first of which is an eight bit pyramid address 710 identifying the data to be sent as corresponding to a particular selection of program material. Thus, if a musical selection is being broadcast, all data pertaining to that musical selection will have identical pyramid addresses. Next, an eight bit data segment is used for a screen address 720, to identify a particular screen of data. This address is used primarily for control purposes, so that when a user selects a new screen to view, an address is available to identify the data corresponding to that screen. The following eight bit data segment serves as an identifier of packet type 730. A packet type 730 provides data indicative of whether the packet 700 is one providing screen text, one setting a parameter for such screen text (e.g., the font of the text), or one providing only control information (e.g., an address to jump to if a particular user selection is made from the current screen, or an action to take if no user selection is made within a particular "time-out" duration of time). In an alternate embodiment, one other packet type 730 might indicate that the data of that packet are to be used for drawing graphical images on the display 300. Following the packet type 730 is an eight bit starting address 740. In the case of packet types 730 indicative of text to be displayed on a screen, starting address 740 is used to provide a starting row and column on the display 300 for such text. In the case of packet types 730 used to control jumps to other addresses, starting address 740 is used to provide the address to be jumped to. Following the starting address is a variable length text body segment 750 containing text, if any, to be displayed on display 300. In a preferred embodiment, conventional techniques, such as a simple header, are used to indicate the length of the text body segment 750. Finally, a 16 bit error correction segment 760 is included in the packet 700 so that conventional error-checking methods may be used to validate the received data, as mentioned previously in connection with figures 2 and 5. In a simplified alternate embodiment, a fixed hierarchical structure may be used for the data and the display 300, thereby eliminating the need for variable-length packets 700. For instance, a "block" structure may be employed, in which each program material selection has, corresponding to it, a block of data of a fixed size. As a specific example, the menu structure may be three levels deep, with menus in each level except for the last providing three choices for subsequent menus. If each menu is constrained to a given number of text characters, then fixed addresses may be used for each screen of the hierarchy. Thus, while flexibility is sacrificed, increased data throughput is possible, since addressing of data is implicit in the structure and there is no need to transmit a unique address for each portion of data. Those of ordinary skill in the art may readily apply an appropriate data structure to the particular requirements of any system in accordance with the present invention. Referring again to figure 8, there is shown a flow diagram of a menu hierarchy in accordance with the present invention. The menu hierarchy of figure 8 corresponds to the displays illustrated in figures 3 and 4. In the diagram of figure 8, a main menu 800 provides the user with four choices for second-level screens 801-804. Screen 801 in turn provides the user with two choices for additional screens, one of which is main menu screen 800, and the second of which is a "Screen 12" 812. Screens 800 - 804 and 812 are shown using larger boxes to indicate that those screens are shown directly, or are indicated as possible screen selections, in figures 3 and 4. In the example of figure 8, other screen choices are available as well. For instance, "Screen 2" 802 provides four screen choices 822 - 824, and one of those choices, 822, provides yet another choice of a screen 825, which itself permits another choice, of screen 826. This structure may be used where information on a particular subject is so lengthy that three screens are required to present it. Similarly, "Screen 3" 803 provides two choices 831, 832. Screen 832 also provides three choices, screens 833 - 835. "Screen 4" 804 provides three choices 841 - 843. Any configuration of screens may be employed for a given selection of program material, as suits the program material itself. The only limitations on such structure are transmission time for the data and available memory to store such data at the receiver. In an alternative embodiment, even if there is not sufficient memory to store all data in the hierarchy, a small "scratchpad" memory may be used to store user-requested data that are low in the hierarchy the next time it is transmitted. In such a manner, a very complex hierarchy may be used, without the need for large receiver data memory, but at the added cost of a potentially slower response time. For purposes of clarity, figure 8 only illustrates one return path to main menu 800. It should be recognized, however, that in a preferred embodiment, every screen at the bottom of the hierarchy provides the user with a choice to return to a main menu 800. In addition, other screens may provide this choice as well, and may provide the user with the possibility of jumping directly to immediately preceding screens ("parents" in the hierarchy) or even to screens elsewhere in the hierarchy. The paths for navigation through the hierarchy are not fixed in any way, and may be different for each selection of program material (i.e., each musical piece). Referring now to figure 9, there is shown a diagram of menu choices available from programmer terminal 112 of transmitting system 100 illustrated in figure 1. As previously mentioned, programmer terminal 112 permits entry of data associated with programming material. In a preferred embodiment, a menu-driven user interface provides a flexible configuration for entering various types of data. A main menu 900 permits the programmer to choose operations concerning a music database, an advertising database, a fallback database, and possibly other databases. These databases are portions of screen storage database 156, discussed previously in connection with figure la. A music database menu 901 provides the programmer with three choices for further operations. An update menu 911 allows the programmer to download music database updates, for instance information provided by a third-party database service. This information may be available on magnetic disk, optical disk, magnetic tape, or may be accessed through an on-line service. This information may typically contain an identification portion identifying a particular musical selection in a manner compatible with program material recognizer 106, and title and artist information of the sort described in connection with figures 3 and 4 above. In a preferred embodiment, an existing database is merely updated by inputting new or changed information, but an entirely new database of information could also be downloaded in accordance with the present invention. Modify menu 912 permits the programmer to change information that is currently in the music database. For instance, if there is a constraint on the amount of information that may be stored in transmitting system 100, modify menu 912 permits a programmer to delete information for musical selections for which such information is no longer required. For example, if a radio station -changes the format of the music that it plays from classical to jazz, it may not be sensible to maintain classical information in the database. Programmers with greater constraints on storage space may even delete information on songs that are "stale" and will only be played rarely, if at all, in the future. Conventional techniques are used in modify menu 912 to allow a programmer to search for .and select particular items for deletion. Modify menu 912 also permits the programmer to add localized information to the database. Such information may include, for instance, the date, time and place of an upcoming local performance of a particular musical selection, or may be used to add information for selections that are not included in the general database downloaded using update menu 911. Conventional techniques are used to permit the programmer to customize any of the receiver screens, e.g., those displayed in figures 3 and 4, to provide such localized information. In some circumstances, it may be desired to limit the ability of local stations to modify information for a particular selection, and conventional bit-switch techniques may be used to allow or deny such modifications. If local modifications are desired, these may supplement or replace the information downloaded using update menu 911. In cases where a programmer wishes to add information for a progranriϊiing selection not included in the general database downloaded using update menu 911, the modify menu 912 also permits the programmer to record and store a "footprint" of the new programming selection so that it may be recognized by program material recognizer 106. Print menu 913 permits the programmer to print various reports regarding the information that has previously been stored using update menu 911 and modify menu 912. If the programmer selects the advertising database menu 902, the programmer may perform a number of operations relating to data that will be transmitted along with advertising program material. Update menu 921 provides functions similar to update menu 911 of music database 901. Update menu 921 may be used, for example, to load an advertising database with information that is to be transmitted along with particular commercial announcements. Modify menu 922 provides capabilities for adding, deleting and changing advertising information. In addition to the functions discussed in connection with the modify menu 912 of music database menu 901, modify menu 922 also permits the programmer to schedule dates for a particular advertisement to begin and end, so that the associated data may be added and deleted from a database of active advertisements as needed. Link menu 923 provides the programmer with both internal and external linking capabilities. Exemplary of internal linking is a facility to permit advertising information to selectively be broadcast during particular program selections. For instance, if an advertiser is sponsoring a local performance by a musician, any program material selections by that musician might have associated with them messages from that advertiser. Exemplary of external linking is a facility to permit a conventional "traffic" software package that keeps track of advertisement schedules, rotations, and changes, to interface with the advertising database. As an example of the use of such external linking, when a traffic director deletes a completed advertising campaign, all of the information that was stored in the advertising database for that campaign will automatically be deleted. Print menu 924 generates and prints reports concerning the advertising database as desired by the programmer. For instance, the programmer may request a report of all entries corresponding to advertisers having ad information that is to be transmitted during news broadcasts on the main (i.e., audio) channel. If the programmer selects the fallback database menu 903, various operations may be performed on information that is to be transmitted when program material other than music or advertising is being transmitted or when the program material being transmitted is not recognized by program material recognizer 106. For example, one fallback choice would be transmitting the station's call sign, location, and logo, or the current time. Another might be a rotating set of messages regarding upcoming programs. As a further example of use of the fallback database, if program source detector 108 described in connection with figure 1 determines that a "sports microphone" is the currently selected device, current sports standings or statistics stored in the fallback database may be transmitted for display on a user's receiver display panel 300. Update menu 931 permits the programmer to download new information for this database in a manner similar to that described in connection with update menus 911 and 921. Modify menu 932 permits the programmer to make further additions, changes, or deletions to this database, and is similar in operation to the facility described in connection with modify menus 912 and 922. Print menu 933 allows the programmer to generate and print reports concerning the contents of the fallback database, and is similar to the print menus 913 and 924 previously described. If the programmer selects the other databases menu 904, various operations may be performed concerning any other databases supported by the transmitting system 100. One example of such other databases is a schedule for upcoming advertisements or promotions. Another database might be a horoscope database for transmission of astrological information at pre-set times regardless of what program material is being transmitted. Yet a third example of a database accessible through the other databases menu 904 is information for an automated interactive listener call-in fax service, in which a listener uses the telephone handset of a fax machine to request facsimile printouts of information corresponding to recently transmitted program material. This last database might provide listeners not having receivers with associated data capability, e.g., receiver 200, with a mechanism to obtain similar information about program material selections. In an alternative embodiment, the system illustrated in figures 1 and 2 may also be used to provide personal messages to users. A personal identification code may be stored in data memory 203 or in other available memory within receiving system 200. This identification code may be entered by the user or may be predetermined, for instance by using a serial number for receiving system 200 as the identification code. A radio station operating the transmission system 100 may include in the associated data provided by data stream generator 105 a personal message (e.g., a song dedication or a promotional prize announcement) to a listener using known information as to the personal identification code stored in that listener's receiving system 200. User interface apparatus 206 performs a simple check to see whether such any such personal messages received have matching personal identification codes, and permits display (or output to card recorder 207) of only those personal messages where such a match is detected. One application of such a facility is to allow listeners calling the radio station to request personal dedications to their loved ones who may be listening at another location. In another application, stations themselves can offer promotional prizes through electronic coupons to only those listeners who have pre-registered their identification codes and are listening when it is announced that a listener's prize coupon is available for recording on a data card. In a second alternate embodiment, an associated data capability may be added to video programming material. For example, a menu screen might appear as an inset to a television picture, and the user might be given a choice to receive data concerning the soundtrack of a motion picture that is currently being viewed. Similarly, a conventional pointing device, or "mouse" might be available for the user to select portions of a video picture for which the user might desire additional information. Thus, if a fashion model is displaying clothes, jewelry and a particular hairstyle, the user might position the cursor on a piece of jewelry and then click the pointing device to obtain a description of the jewelry and information on how to order it. In yet another alternate embodiment, the data associated with the programming could be data corresponding to a software computer program. For instance, a television or radio station could transmit an entire software program to the user during a particular segment of audio /video programming. That software may or may not be directly associated with the audio/video programming being sent, but would typically be of interest to one interested in that audio /video programming. As one specific example, a station might transmit, along with a children's cartoon, game software for a home entertainment computer including the same characters as in the cartoon. The software may be transmitted gradually throughout the audio /video program, or even during commercial breaks, to give the user an incentive not to change stations during the data transmission. In another aspect of this embodiment, stations may transmit software in small portions throughout the broadcast day, either to individual groups or to all listeners /viewers, thus providing a further incentive for such listeners /viewers to stay tuned to the station. This software downloading capability could also be employed to provide updated system software for use directly by receiver 200, or could alternatively be employed to download software completely unrelated to the audio/video program material being transmitted by the station. In yet another alternate embodiment, information such as a winning lottery number may be transmitted, either along with audio /video programming relating to the lottery drawing or at other times. A simple memory configuration in the user's receiver could store such information, either for later manual review by the user or for automatic comparison against the user's previously entered lottery number selections. Referring now to figure 10, there is shown a receiver 1000 capable of operating in multiple modes, in accordance with the present invention. Rather than having a single mode in which program material and associated data are always received and processed, receiver 1000 allows user selection of various modes of operation. By appropriate selection of a menu entry using user interface 1002, a user may select one of several modes of operation. In the example illustrated in figure 10, seven modes are available. The "Full" mode corresponds to operation as described above in connection with figure 2, in which receiver 100 provides both audio output and display of associated data. A "Sound Only" mode ignores the associated data and makes receiver 1000 operate as a conventional audio-only radio receiver. A "Data Only" mode mutes audio output from receiver 1000 so that it functions solely as a data receiver, storing and displaying data as described above in connection with figure 2. A "Station Activate" mode similarly mutes audio output while maintaining data reception, but reactivates audio output upon receipt of predetermined associated data from a transmitting station. For example, receiver 1000 is configurable so that when it is in station activate mode, it will mute audio until such time as it receives data indicating that an emergency message is to be transmitted, at which time it will reactivate audio output for the duration of the emergency message. A "Listener Priority" mode similarly mutes audio output while mamtaining data reception, but permits listener selection of the types of data that will result in audio output reactivation. For example, in a preferred embodiment user selection of the "Listener Priority" mode results in display of a submenu listing "Weather," "Traffic," "Financial," "Sports," and "News Headlines." The user may select one or more of these categories. Before transmitting program material in any of these categories, a transmitting station transmits a corresponding data signal that, when received, causes the audio output of receiver 1000 to be reactivated. In alternative embodiments, data corresponding to each of these categories is transmitted in addition to, or instead of, the program material. In this embodiment, receiver 1000 stores and /or displays, at the user's selection, data received in each of the selected categories. In still another embodiment, data and/or program material are categorized by their importance, e.g., "5-star" (most important") to "1-star" (only moderately important. In this embodiment, the user selects a level of priority for which reactivation of audio output or storage of data is desired. For example, if the user selects "3-star," then any program material having an importance of "3-star" or higher will be provided as audio output, or alternatively all data of "3-star" or higher priority will be displayed and /or stored. Thus, the user is provided with a great deal of flexibility in deteπnining the type and amount of information to be provided by receiver 1000. A "Half-Sleep" mode causes the receiver 1000 to continue to receive and store data as in "Data Only" mode, but such data are not displayed. This mode may be selected when power consumption is a critical issue. A "Game" mode is similar to the "Half-Sleep" mode, except that the only data stored is transmitted game data for use as described below in connection with figure 11. Referring still to figure 10, user interface 1002 is coupled to data decoder 1004 so that the menu selections made via user interface 1002 may control the operation of data decoder 1004. Depending on the mode selected by the user, data decoder 1004 will either be inactive or will filter incoming data for the types of data described in connection with each of the modes discussed above. Receiver power controller 1006, coupled to data decoder 1004, receives control signals from data decoder 1004 and controls audio, data, and display circuitry of receiver 1000 in the manner discussed above for each of the selected modes. For example, if the user has selected the "Station Activate" mode of operation, data decoder 1004 examines incoming data for a predetermined data set corresponding to a transmitting station desiring to activate receivers, e.g., 1000, that are in this mode. When such a data set is decoded, data decoder 1004 sends a signal to receiver power controller 1006, and receiver power controller 1006 in turn activates the audio output from receiver 1000. In a preferred embodiment, user interface 1002 is implemented by user interface apparatus 206 of figure 2, and data decoder 1004 and receiver power controller 1006 are implemented by microprocessor 204 of figure 2. Referring now to figure 11, there is shown a receiver 1100 that includes a game playing mode processing transmitted game-playing data, in accordance with the present invention. Data transmitted as discussed in connection with Figure 1 may include data for playing various types of games. As an example, a transmitting station may transmit data representing bingo cards and numbers, and data for card games such as poker, blackjack, and the like. As an incentive for listener loyalty, potentially "wmning" data may be transmitted at various times during the day. If a receiver 1100 is tuned to the station, the winning data may be received; if not, the winning data will not be received. If a receiver 1100 is tuned in to a particular station long enough to receive winning data, a coupon may be generated, either electronically or in hard copy, that the user may remit for prizes, discounts on merchandise, or other benefits. Specifically, receiver 1100 includes a game data decoder 1104 that filters incoming data searching for game-related data. Such data are, for example, identified by a predetermined data header. Such data are decoded by game data decoder 1104 and stored in game data storage 1106, all under the control of game data processor 1108. If game data processor 1108 determines that winning data are stored in game data storage 1106, game data processor 1108 directs coupon generator 1110 to issue a coupon that the user may redeem for a prize. User interface 1102 allows the user to interact with the game data, if desired, informs the user of the game results, and is also capable of displaying coupons, as is discussed below in connection with figure 13. In one embodiment, a transmitting station transmits data representative of a bingo card every morning. During the day, the station transmits data representative of bingo numbers. Both the card data and the number data are stored in game data storage 1106. If, during the day, sufficient portions of the number data match the card data (as in the ordinary bingo game), the user is a winner and a coupon is issued. In one variation on this embodiment, the user selects from various cards transmitted at the beginning of the day, using user interface 1102. In still another embodiment, the user or the transmitting station selects a particular card game by user interface selection or transmitted data, respectively. The transmitting station periodically transmits data representative of dealt cards, which the user of receiver 1100 either accepts for storage in game data storage 1106 via user interface 1102 or ignores. If the user selects a set of cards that represents a winning hand in the selected game, as determined by game data processor 1108, then game data processor 1108 directs coupon generator 1110 to generate a prize coupon. It should be recognized that numerous other games, such as roulette and slot machine, may be implemented in this manner. In a preferred embodiment, game data decoder 1104 and game data processor 1108 are implemented by microprocessor 204 of figure 2, game data storage is implemented by data memory 205 of figure 2, user interface 1102 is implemented by user interface apparatus 206 of figure 2, and coupon generator 1110 is implemented by microprocessor 204 and either data card recorder 207 or user interface apparatus 206 of figure 2, as described in greater detail below in connection with figure 13. Referring now to figure 12, there is shown a receiver 1200 configured to control external equipment 1208 based on transmitted data, in accordance with the present invention. In one embodiment, receiver 1200 includes a data decoder 1204 that examines a received stream of data searching for a predetermined type of data. One such type of data corresponds to the acoustic properties of the program material being broadcast, such that lights, bells, chimes, and other annunciators may be activated in synchronism with the program material. A simple example is one in which data corresponding to the tempo and volume of the program material is transmitted, such that by use of external equipment interface 1206, external equipment 1208 comprising decorative lights may be energized in a manner corresponding with the program material. In this example, for instance, the lights of a Christmas tree could be controlled in correspondence with transmitted Christmas music program material. Similarly, specialty dance floor lighting and even "smoke" machines may be triggered by such data in correspondence with transmitted dance music program material. In yet another example, a "bouncing ball" display with or without displayed lyrics can be made to move along with the lyrics of transmitted vocal program material. In still another example, data to drive a conventional electronically-actuated piano or other instrument is transmitted along with program material, so that the listener may hear a "live" piano performance with background music or vocals from the audio output of receiver 1200. In a different embodiment, receiver 1200 is installed in an automobile. Data decoder 1204 is configured to examine received data for a unique data set corresponding to the serial number or other identifying number of receiver 1200 or the automobile in which it is installed. In this embodiment, if the automobile in which receiver 1200 is installed is ever stolen, the owner may request a transmitting station to broadcast the unique data set. Upon decoding the unique data set, data decoder 1204 provides a signal to equipment interface 1206 to control external equipment 1208, such as the lights, horn, electric door locks, and ignition of the automobile, in an appropriate manner. In one variation of this embodiment, receipt of the unique data set by receiver 1200 can result in the automobile's lights flashing, the horn sounding, the doors locking, and the ignition being disabled. Referring now to figure 13, there is shown a receiver 1300 that produces a scannable bar code 1321 based on transmitted data, in accordance with the present invention. As mentioned above, it is desirable in a variety of applications to produce coupons that the user may redeem at vendor locations for prizes, discounts, and other benefits. One way to produce such coupons is through use of a data card recorder 207, as described in connection with figure 2. Another way to produce electronic coupons is to display on user interface 1302 a bar code 1321 that may be scanned using conventional bar code reader apparatus. In one embodiment, a data decoder 1304 examines received data searching for a predetermined type of data representing an electronic coupon. For example, while a transmitting station broadcasts program material from a particular compact disc, the station may also broadcast data representing an electronic coupon providing a discount for purchasing that disc from a particular vendor. When such data are decoded by data decoder 1304, data decoder 1304 directs coupon generator 1310 to generate a corresponding electronic coupon. In the embodiment illustrated in figure 13, coupon generator causes user interface 1302 to display a coupon 1320 including a conventional bar code 1321 and a text message 1322. User interface 1302 provides the user with the option of displaying the coupon and saving the coupon. Also, a menu selection for erasing the coupon is provided, so that the vendor can erase the coupon after it has been scanned. In a preferred embodiment, user interface 1302 provides a liquid-crystal display on which coupon 1320 may be shown and which is of sufficient quality and contrast to permit bar code scanning. In operation, the vendor may scan not only the bar code 1321 provided by user interface 1302, but may also scan or otherwise record information identifying receiver 1300. Such information may be obtained by presentation of another bar code, carrying the serial number of receiver 1300, on user interface 1302, or may be obtained by a conventional printed bar code or serial number on the back or bottom of receiver 1300. By collecting coupon and receiver information at the same time, the vendor or third parties may compile customer profile and demographic information that may be useful for marketing or other commercial purposes. Referring now to figure 14, there is shown a receiver 1400 that includes multiple tuners for selectively receiving more than one channel of program material and transmitted data, in accordance with the present invention. In some situations, users may prefer the program material of one station and the data of another station. Therefore, rather than requiring the user to switch between such stations, receiver 1400 includes a sound tuner 1404 and a data tuner 1406 that permit receiver 1400 to provide audio program material from a first station and data from a second station. User interface 1302 permits a user to select whether sound and data are to be received from a single station or from separate stations. In one variation of this embodiment, sound tuner 104 is used for both audio and data in this mode. In another variation, sound tuner 104 and data tuner 1406 are merely tuned to the same frequency in this mode. Conventional user interface techniques permit the user to single-station or dual-station mode, and to enter the desired frequencies. Thus, if a user prefers the music programming of a first station, but wishes to receive electronic coupons from a second station as discussed in connection with figure 13, receiver 14 permits such operation. Referring now to figure 15, there is shown a system including a receiver 1500 and a connected computer 1510 that is to be controlled responsive to transmitted data, in accordance with the present invention. Connectors 1502 and 1512 electrically connect computer 1510 and receiver 1500. It should be recognized that other means of coupling computer 1510 and receiver 1500, such as an infrared or other wireless link, could also be used. Connected in this manner, computer 1510 can display and process data received by receiver 1500. For example, receiver 1500 and computer 1510 may be configured so that important news, weather, or traffic information received as data by receiver 1500 flashes on the screen of computer 1510. If receiver 1500 or computer 1510 is equipped with a modem, the user may enter transactions with a remote site based on received data. For example, if received data provides the name of a compact disc on which the current program material is found, computer 1510 may be configured to automatically dial to a remote location to place an order for that compact disc, which can then be sent to the user by mail. In an alternate embodiment, the data received by receiver 1500 may be used directly by computer 1510. For example, the data may represent game data for use by computer 1510, computer programs for use by computer 1510 or even customized screen saver data for display by computer 1510 during periods that computer 1510 is not provided with user input. Such screen saver information may dynamically move on the display of computer 1510 with the program material being received by receiver 1500. In still another embodiment, receiver 1500 may be configured in a foldable form, to allow ease of portability and use while still providing a form factor compatible for connection with computer 1510. It should be recognized that other convenient form factors and configurations of receiver 1500 and computer 1510 may be used, as may be desirable for any particular application. From the above description, it will be apparent that the invention disclosed herein provides a novel and advantageous broadcast system with associated data capabilities, in which program material is recognized at the broadcast studio and corresponding data is transmitted therewith, and in which a receiving system includes a flexible menu display user interface and magnetic card reader. The foregoing discussion discloses and describes merely exemplary methods and embodiments of the present invention. As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims: What is claimed is: 1. A system for the transmission and reception of program material and associated data, comprising: a transmitter for broadcasting said program material and said associated data, said associated data including header data defining a plurality of user interface selections; a receiver, including, a demodulator for detecting said program material and said associated data as detected program material and detected associated data, respectively; program material reproduction circuitry for reproducing said detected program material; and user interface apparatus for displaying a first portion of said detected associated data on a display, for displaying on said display said header data from said detected associated data as a menu of user interface choices, and for displaying a subsequent portion of said detected associated data responsive to user selection of one of said user interface choices, said receiver operating in a plurality of modes responsive to mode selection made by a user by manipulation of said user interface apparatus. 2. A system as in claim 1, wherein said plurality of modes includes a mode selectively muting audio output from said receiver responsive to absence of receipt of predetermined types of said detected associated data. 3. A system as in claim 1, wherein said plurality of modes includes a mode selectively storing said detected associated data responsive to predetermined types of said detected associated data. 4. A system as in claim 1, wherein said plurality of modes includes a game playing mode comparing current portions of said detected associated data with previously-stored data and producing therefrom a signal indicating a winning outcome in response to correspondence between said current portions of said detected associated data and said previously-stored data. 5. A system as in claim 1, further comprising an annunciator operatively connected to said demodulator, wherein one of said plurality of modes includes a mode for actuating said annunciator in response to a predetermined type of detected associated data. 6. A system as in claim 5, further comprising an interface circuit disposed between said annunciator and said demodulator, said interface circuit controlling operation of said annunciator in response to a signal produced by said demodulator corresponding to said detected associated data. 7. A system as in claim 5, wherein said annunciator is an automobile alarm. 8. A system as in claim 5, wherein said annunciator is a lighting unit. 9. A system as in claim 5, wherein said annunciator is a theatrical effects device. 10. A system as in claim 5, wherein said annunciator is a musical instrument. 11. A system as in claim 5, wherein said annunciator is an automobile ignition interlock. 12. A system as in claim 5, wherein said annunciator is an automobile door locking system. 13. A system as in claim 1, wherein one of said plurality of modes provides display of a scannable bar code on said user interface apparatus. 14. A system as in claim 13, wherein said scannable bar code is produced responsive to said detected associated data. 15. A system as in claim 13, wherein said scannable bar code forms part of a coupon on said user interface apparatus. 16. A system as in claim 1, further comprising a computer, the computer accepting as input for processing said associated data. 17. A system for the transmission and reception of program material and associated data, comprising: a transmitter for broadcasting said program material and said associated data, said associated data including header data defining a plurality of user interface selections; a receiver, including, a first demodulator for detecting said program material as detected program material; a second demodulator for detecting said associated data as detected associated data; program material reproduction circuitry for reproducing said detected program material; and user interface apparatus for displaying a first portion of said detected associated data on a display, for displaying on said display said header data from said detected associated data as a menu of user interface choices, and for displaying a subsequent portion of said detected associated data responsive to user selection of one of said user interface choices. 18. A method of transmitting and receiving program material and associated data, comprising the steps of: transmitting said program material and said associated data, said associated data including header data defining a plurality of user interface selections; detecting said program material and said associated data as detected program material and detected associated data, respectively; reproducing said detected program material; displaying a first portion of said detected associated data; displaying said header data as a menu of user interface choices; and displaying a subsequent portion of said detected associated data responsive to user selection of one of said user interface choices and responsive to selection of one of a plurality of operating modes. 19. A method as in claim 18, wherein said plurality of modes includes a mode selectively muting reproduction of said program material responsive to absence of receipt of predetermined types of said detected associated data. 20. A method as in claim 18, wherein said plurality of modes includes a mode selectively storing said detected associated data responsive to predetermined types of said detected associated data. 21. A method as in claim 18, wherein said plurality of modes includes a game playing mode comparing current portions of said detected associated data with previously-stored data and producing therefrom a signal mdicating a winning outcome in response to correspondence between said current portions of said detected associated data and said previously-stored data. 22. A method as in claim 18, wherein said plurality of modes includes a mode providing annunciation in response to said detected associated data including a predetermined type of data.

Inventors: TAKAHISA TSUTOMO, TAKAHISA, TSUTOMO
Applicants: DIGITAL D J INC, DIGITAL D.J. INC.
Application year: 1996
Main classification: H04H1
IPC codes: G06Q30, G10H1, H04B1, H04H20, H04H60, H04N7