# Patent

## Title
Radio device with virtually infinite simultaneous inputs

## Abstract

A method, system, media, and apparatus are directed to radio recording. Radio stations are simultaneously recorded based on a radio parameter including a processing parameter, a memory usage or allocation, a recording status, or the like. The radio parameter is adapted for an individual station, some radio stations, or all radio stations. The processing parameter is adapted based on a processor usage. The memory usage is adapted based on a memory requirement of a station being recorded. A station may be suspended from recording based on a loss of a signal and resumed based on a resumption of the signal. An access to a radio content recorded while a signal was available may be provided, if the signal is unavailable. The plurality of stations may be prioritized.

## Background
RELATED APPLICATIONS
This application claims the benefit of Provisional Patent Application No. 61/043,597 filed Apr. 9, 2008 entitled “RADIO DEVICE WITH VIRTUALLY INFINITE SIMULTANEOUS INPUTS RELATED APPLICATIONS” which is incorporated herein by reference.


FIELD OF INVENTION
This invention relates to radio systems and methods. In particular this invention relates to receiving radio signals from a plurality of radio inputs.
BACKGROUND OF THE INVENTION
U.S. Pat. No. 7,171,174, issued Jan. 30, 2007, and U.S. Pat. No. 7,343,141, issued Mar. 11, 2008, which are hereby explicitly incorporated by reference herein in their entirety illustratively disclose multi-tuner radio products and features. Multi-tuner radio receivers such as disclosed in the '141 patent simultaneously and continuously monitor and record all of the listener's favorite stations. This allows the listener to easily access content on any of these stations, even if the content from that station is not currently being output. It also allows the listener to easily replay radio content that was previously broadcast, as well as skip over content that is not of interest.



BRIEF DESCRIPTION OF THE DRAWINGS
The nature and various advantages of the present invention will become more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
FIG. 1 shows a block diagram of one implementation of a “virtually infinite radio” (VIR);
FIG. 2 shows a process for processing incoming radio signals;
FIG. 3 shows a process for prioritizing stations in order to adjust processing parameters associated with the stations; and
FIG. 4 shows a block diagram of an embodiment of a radio device that supports extension modules.



DETAILED DESCRIPTION
Current multi-tuner radio devices that use hardware tuners to receive each independent radio station are limited in the number of stations that can be monitored simultaneously. By using software-defined radio tuners, adaptive receiving and compressions algorithms, and extendable hardware, the number of radio stations that can be simultaneously received may be increased significantly. This may even be to the point where the radio device is able to simultaneously monitor and record all available radio stations in which the listener may be interested, thus becoming a “virtually infinite radio” (VIR). In addition, the cost of such a device may be significantly reduced and its flexibility may be greatly increased.
As used herein, the terms “enable a user” or “enabling a user” to perform a function refers to providing a hardware and/or hardware component or configuration to perform that function.
Generally, the present invention is directed to radio recording. Radio stations are simultaneously recorded based on a radio parameter including a processing parameter, a memory usage or allocation, a recording status, or the like. The radio parameter is adapted for an individual station, some radio stations, or all radio stations. The processing parameter is adapted based on a processor usage. The memory usage is adapted based on a memory requirement of a station being recorded. A station may be suspended from recording based on a loss of a signal and resumed based on a resumption of the signal. An access to a radio content recorded while a signal was available may be provided, if the signal is unavailable. The plurality of stations may be prioritized.
FIG. 1 shows a block diagram of one implementation of a VIR. Radio signal sources 110 may be hardware required to receive radio signals from different sources. This may include, for example, an AM antenna, an FM antenna, a satellite antenna, an Internet receiver, a wireless Internet receiver, a 700 MHz wireless receiver, a Bluetooth receiver, or any other suitable signal receiving device or circuitry. Additional circuits may be included, for example, amplifiers and filters. Analog-to-digital converters 120 may be included for each source to convert any received analog signal to digital for processing. If desired, direct memory access (DMA) device 130 may be included to store the digital radio signals into memory device 140. In some implementations, digital signal processor 150 may receive the converted digital radio signal and store the data into memory 140. If desired, multiple memory devices 40 may be included, and may be of any suitable type (for example, dynamic RAM, static RAM, flash memory, disk drive, or any suitable combination).
Digital signal processors 150 may include one or more high-performance digital signal processors. If multiple processors are included, they may be configured to allow or otherwise enable easily partitioning processing tasks between them. For example, each processor may take on a specific number of stations (e.g., one quarter of the monitored stations if there are four processors) or a specific set of tasks (e.g., one processor may handle tuning functions, another may handle compression, a third may handle audio output and user interface). Examples of processors that may be used include the Freescale MSC8144 high-performance four-core fixed-point processor operating at 1 GHz; the Analog Devices ADSP-TS201 TigerSHARC high-performance, floating-point processor operating at 600 MHz; or the Texas Instruments TMS320C6727 high-performance, floating-point processor operating at 350 MHz.
In addition to processing of the monitored radio signals, the processors 150 may handle the audio output 170 and the user input/output 160. User interface 160 may include any suitable circuit or circuits, such as buttons, voice input, gesture recognition, fingerprint recognition, and display devices. Processors 150 may also control other devices and functions, including GPS, CD, mobile phone, removable memory, and any other suitable functions.
FIG. 2 shows a process for processing incoming radio signals. In one embodiment, the process of FIG. 2 may be performed by DSP 150 of FIG. 1. The steps shown may be performed in an alternative order, steps may be omitted, and steps may be added as appropriate.
In step 210, processor 150 may scan the stored digitized signal from radio signal source 110. The purpose of this scanning step may be to determine the presence or absence (and other characteristics, such as signal strength) of stations at specific frequencies within the incoming signal. This may be based on prior knowledge of the modulation format expected to be used, based on the input source (e.g., the input antenna) and the frequency. For example, the incoming signal from an FM antenna may be scanned at 0.2 MHz intervals between 87.5 MHz and 108.0 MHz using FM demodulation. The scanning may be performed for each input source 110 and associated modulation type at any suitable interval, for example once per minute. An example of a commercial system that performs multi-channel radio monitoring is the WiNRADIO MS-8108 Multichannel Radio Monitoring System.
If radio content is found at any frequency, processor 150 may check to see if that frequency is currently being monitored. If it is, monitoring may continue for that station. If the station has not previously been found, the station may be added to those to be monitored. If the station had previously been found but is not currently being monitored because its signal had temporarily not been found, monitoring may resume for that station. If a station is not found at a frequency that is currently being monitored, then monitoring and storing on that station may be temporarily suspended.
An advantage of being able to suspend and resume monitoring and recording of radio stations as their signals come and go is that it allows or otherwise enables a user (particularly in a mobile environment such as a car radio) to listen to content from a radio station even after going out of range.
In step 220 the stations that are currently available are tuned. Processor 150 uses a software-defined radio (SDR) algorithm to extract the radio signal at the specified frequency. An example of a commercial product that performs SDR is the WiNRADIO WR-G305i PC-based wideband scanning receiver. This step may also be combined with step 230, demodulation of the radio signal. With at least one source, the audio data may be transmitted in a digital format, in which cases the demodulation may include extraction of the encoded audio data from the signal. The output of these steps may be a digitized stereo audio stream (e.g., data stream). These two steps may be performed in parallel for each of the monitored stations from each of the input sources, using parallel software processes that may be performed on a signal processor or spread out across multiple processors. These steps may be performed continuously, based on the digital sampling frequency of the input radio signal. Step 240, compression of the audio data, may optionally be performed to reduce the volume of data using any suitable compression technique, such as MP3 encoding. In some cases, the data may have been transmitted digitally already compressed, in which case compression may not be necessary. After compression, the data may be stored into memory 140 in step 250.
In step 260, the performance of processor 150 may be monitored. For example, processor 150 may include an idle task or an idle loop, and it may measure how much time is spent in that task or loop. The addition and removal of stations to be monitored may be controlled, so that the effect on processor utilization may be measured. In one embodiment, only one station may be added or removed at a time. In some embodiments, processor utilization monitoring may include counting the number of stations being monitored and/or estimating the number of parallel monitoring streams that can be handled by each processor. In some embodiments step 260 may also include monitoring of memory usage. Step 260 may occur at any suitable interval, such as once per minute, as well as whenever a station is added to or removed from the set of stations to be monitored.
When a new station is added and processor utilization increases above a predetermined threshold, or when a station is removed and/or processor utilization drops below a second threshold, processing parameters may be adjusted in step 270. When processor 150 is close to full utilization, algorithmic changes may be made to reduce the requirements on the processor, so that additional stations may be added. If a station is dropped, changes may be made to take advantage of more processor availability. Changes may include:

    
    
        The sampling frequency of the raw radio signal
        The sample size (number of bits per sample) of the raw radio signal
        The sampling frequency or sample size of the output audio signal
        The compression algorithm used (or it may be disabled completely)
        Level of compression used for a particular algorithm (higher compression may use more processing power)
        Amount of memory devoted to the storage of audio data from each monitored (or suspended) station
    
    


Any of these factors may be adjusted on a station-by-station basis. For example, stations that the user has designated as favorites may be allocated more processing power and more memory than stations that the user may not listen to, which may be removed completely from monitoring.
FIG. 3 shows a process for prioritizing stations in order to adjust processing parameters associated with the stations. In one embodiment, the process of FIG. 3 may be performed by DSP 150 of FIG A. The steps shown may be performed in an alternate order, steps may be omitted, and steps may be added as appropriate.
In step 310, the listener may be allowed or otherwise enabled to select favorite stations. In some embodiments, this may be done by allowing the user to select up to at least a fixed, pre-determined, selectable, or adaptable number of preset stations that can be selected easily by at least a single input command. In other embodiments, the user may be allowed or otherwise enabled to rate stations with a level or preference. Favorite stations may be allocated more memory, and may be used to generate higher quality audio (e.g., with a higher sample rate, larger sample size, or increased bits per second compression algorithm). Conversely, a station rated with a lower preference level may be allocated less memory and may be used to generate lower quality audio.
In step 320, the user may be allowed or otherwise enabled to delete stations. Deleting a station may remove its input from monitoring and storing. The user may be allowed or otherwise enabled to listen to a deleted station, but may be disabled from performing one, some, or any functions on that station that may require access to stored audio (such as skipping back in time).
In step 330, processor 150 may monitor the listening habits of the user. In this manner, favorite stations may be determined and stations that may not be accessed (e.g., not accessed for year, month, week, etc.) may also be determined. Processing parameters associated with these stations may be automatically adjusted.
In step 340, the type of content may be determined. For example, a station may be classified as popular music, sports, classical music, talk, or any other suitable category. This determination may be made based on manual classification or automatically based on analysis of the audio content. The processing parameters may be adjusted based on the category. For example, a station that broadcasts primarily talk programming may require lower quality audio than a station that broadcasts classical music. A user may also specify preferences for specific categories, and these preferences may be used to adjust the parameters or remove stations form the monitoring list. Other attributes of the station may also be used to determine appropriate processing parameters. For example, a station that broadcasts in mono or that often has poor reception may be given a lower audio quality, while one that broadcasts in HD may be assigned more memory.
In step 350, the listener may be allowed or otherwise enabled to adjust at least one of the processing parameters for individual stations. For example, the user may be allowed or otherwise enabled to assign a High, Medium, or Low audio quality to a station, which may impact the setting of sampling rate, sample size, and compression algorithm parameters. The user may also be allowed or otherwise enabled to select the number of minutes or hours of audio data to store for any individual station. Stations for which the user has not made any settings may revert to a default setting, or a setting based on the type of content on that station.
FIG. 4 shows a block diagram of an embodiment of a radio device that supports extension modules. Radio 410 may be similar to the radio shown in FIG. 1. If radio 410 becomes limited during its use, it may be extended to provide additional capabilities while maintaining its core functionalities. Device 410 may include extension interface 420, which may be any suitable interface port, such as a PC Card interface, a USB interface, or a Bluetooth interface. Interface 420 may allow one or more devices to be connected to radio 410 and augment its capabilities (or replace built-in capabilities). In some embodiments, multiple extension devices may be connected simultaneously over interface 420.
Device 430 is a processor extension module. This extension may augment or replace processor internal to base device 410, such as digital signal processor 150. Processor extension device 430 may provide additional processing power that is capable of simultaneously processing more inputs, or of processing the existing number of inputs at a higher audio quality. Module 430 may include multiple processors configured to allow suitable partitioning of processing functions. If desired, processor extension module 430 may include additional memory and other circuits.
Device 440 is an input source extension. This extension may provide the capability to monitor and listen to one or more additional types of sources. Input source extension module 440 may include any suitable antennas, analog-to-digital converters, DMA circuits, cache memory, tuning circuits, decryption circuits, and any other suitable circuits. Device 440 may be configured to provide access to a type of radio signal that was not well known or for which business agreements were not available at the time of manufacture of radio 410. For example, a standard for radio broadcast at 700 MHz may be published after device 410 is built and sold, and extension module 440 may provide access to input signals following that standard.
Device 450 is a memory extension. This extension provides additional storage capability to radio 410. It may include any suitable type of memory, such as flash memory, dynamic memory, static memory, or disk memory. This module may provide radio 410 with the capability to store audio data for more stations or to store more audio data for each monitored station.
Device 460 is a user interface extension. This extension may provide the user the ability to interact with radio device 410 in different ways, for example adding voice or gesture control to a base radio that may include button inputs.
Any other suitable extension devices not shown here may be supported as well. Preferably, interface 420 is designed to an open standard such that extension devices can be designed and built after radio 410 is in use by an end consumer. If desired, extension modules may be designed and manufactured by one or more companies that are different from the company that designed and manufactured radio 410.
By implementing the virtually infinite radio aspects of this invention, several feature advantages are made available over finite hardware tuner implementations. For example, because virtually all available stations can be monitored, the user does not have to set favorite stations in order to use the enhanced features. The user can select a station that may not have previously been selected for output, and may immediately skip back in time to hear content that was missed on that station. Selecting such a station may provide a much quicker response time, since, in one embodiment, it involves merely selecting a different playback buffer, rather than actually retuning. When the VIR is put into scan mode, stored content may be available for at least one or all of the available stations, making each switch quicker, and providing a greater amount of previously stored content for any station if the listener pauses or stops the scan at any station.
A VIR may be cheaper to manufacture than a multi-tuner radio with hardware tuners. Although the DSP to provide the simultaneous tuning and compression of virtually all stations may be more expensive than the processor needed for a radio with a fixed number of tuners, that cost may be more than made up for by the cost of multiple hardware tuners.
By providing an extension interface, the cost of the VIR may be kept down, and listeners with more requirements may pay for the features and capabilities they need. As faster processors and larger memory devices are made available and affordable, they may be used to extend the capabilities of the base VIR without having to replace it. New radio broadcast protocols that were not available at the time of manufacture may also be supported using this extension interface.
As shown here, by using a powerful digital signal processor and software-defined radio tuning with adaptive access and compression parameters, a radio has been defined that can simultaneously monitor and record a virtually unlimited number of radio stations and allow a listener to access the content of these stations, although it may be at a reduced quality and/or reduced storage capacity for at least one, some, or (virtually) all of the stations. By including an open extension interface, any lacking capabilities to monitor specific types of sources or limits on the number of stations or amount of data stored for each can be rectified after the radio has been sold and put into use or otherwise deployed.
An initially manufactured unit may for example provide adequate audio quality and quantity for the number of stations that are currently available in a typical metro area (e.g., New York, Washington DC, Denver, Baltimore, Hartford, Cleveland, Harrisburg, etc.) today, and that extensions added over time may adequately support station expected to be added in the future as new types of sources are conceived and made popular.
In some embodiments for implementing a VIR, the apparatus may be configured to tune or receive and record each and every radio input (e.g., simultaneously) bounded by the hardware and/or software capability (e.g., up to a threshold capability such as 99%, up to a sufficient margin for safety or sufficient device operation, or subject to other demands on the apparatus) of the platform on which the VIR is implemented. Thus the apparatus may implement a sequential, simultaneous, and/or random process by which it commences tuning and recording until all currently available inputs are monitored, device performance capacity is reached, or a preset threshold is reached. If desired, configuration options can be implemented such as to limit the number of stations (e.g., 100 channels total, 20 FM channels, 5 AM channels, and/or 30 Satellite channels). If desired, the configuration options may represent device capabilities. A user may also have the option to select one type of input (e.g., FM radio), combinations of inputs (e.g., FM and satellite), or all inputs. A database or file may be implemented to track identification information for the many stations monitored. After a first set of inputs are being monitored (e.g., tuned based on having adequate signal strength), the apparatus may continue the process of identifying additional inputs to add to the monitored channels such as by continuously, periodically, randomly, or by combinations thereof to seek to add additional inputs (e.g., channels) so that for example the apparatus can be current in monitoring all available channels (e.g. subject to device capabilities and/or threshold settings).
If desired, a VRI can be a plug-in module that can be implemented on different platforms such as a mobile handheld device or a car radio to implement one or more features illustratively described herein. As such, it can be third party add-on feature.
It is to be understood that other embodiments can be utilized and structural changes can be made without departing from the scope of the present invention.

## Claims

1. A radio playback device that simultaneously and continuously monitors and records substantially all available radio stations without previous selection for output by a user, that records stations based on the presence or quality of their signal, that suspends stations from recording based on loss of signal and resumes recording based on resumption of signal, and that changes its processing parameters based on processor usage, wherein the processing parameters are selected from sample frequency, sample size, compression algorithm, and compression parameter.

2. The radio of claim 1 that uses software tuners.

3. The radio of claim 1 configured to use multiple processors.

4. The radio of claim 1 that allows a listener to access radio content recorded while a signal was available at a later time when no signal is available.

5. The radio of claim 1 that adapts its memory usage based on the memory requirements of stations being recorded.

6. The radio of claim 1 in which stations are prioritized.

7. The radio of claim 6 in which the prioritization is based on a user priority.

8. The radio of claim 6 in which the priority is based on a user setting a station as a favorite.

9. The radio of claim 6 in which the priority is based on a user deleting a station.

10. The radio of claim 6 in which the priority is based on listening habits of a user.

11. The radio of claim 6 in which the priority is based on a type of content.

12. The radio of claim 6 in which processing parameters, memory allocation, or recording status of an individual station is modified based on its priority.

13. The radio of claim 1 further configured to allow a user to adjust a processing parameter of memory allocation for an individual station.

14. The radio of claim 1 further configured with an extension interface.

15. The radio of claim 14 further configured to support a processing module to be connected using the extension interface, said processing module augmenting the processing capabilities of the radio.

16. The radio of claim 14 further configured to support a memory module to be connected using the extension interface, said memory module augmenting the storage capabilities of the radio.

17. The radio of claim 14 further configured to support an input source module to be connected using the extension interface, said input source module augmenting the radio reception capabilities of the radio.

18. The radio of claim 14 further configured to support a user interface module to be connected using the extension interface, said user interface module augmenting the user input and/or output capabilities of the radio.

19. A method for recording a plurality of radio stations, comprising:
based on a processing parameter, simultaneously and continuously monitoring and recording a plurality of radio stations without previous selection for output by a user; and
changing the processing parameter based on a processor usage, wherein the processing parameter is selected from sample frequency, sample size, compression algorithm, and compression parameter.

20. The method of claim 19, wherein simultaneously recording further comprises:
performing at least one recording action comprising:
scanning an input source for at least one of the plurality of radio stations;
tuning the scanned radio station;
demodulating the scanned radio station;
compressing audio data from the scanned radio station; and
storing a version of the audio data; and
recording the processor usage for adapting based on performed recording action.

21. The method of claim 19, further comprising:
providing an interface to perform at least one interface action comprising:
selecting a favorite station;
deleting a station;
monitoring a listening habit;
determining a content type; and
providing an adjustment of a parameter for at least one of the plurality of radio stations.

22. The method of claim 19, further comprising:
suspending a radio station from the recording based on a loss of a signal; and
resuming the recording based on a resumption of the signal.

23. The method of claim 19, further comprising: providing an access to a radio content recorded while a signal was available, if the signal is unavailable.

24. The method of claim 19, further comprising: adapting a memory usage based on a memory requirement of a station being recorded, wherein recording is further based on a memory usage.

25. The method of claim 19, further comprising: prioritizing the plurality of stations.

26. The method of claim 19, further comprising: modifying a radio parameter based on a priority of the radio parameter, wherein the radio parameter comprises a processing parameter, a memory allocation, or a recording status of an individual station.

27. The method of claim 19, further comprising: providing an adjustment of a processing parameter of a memory allocation for an individual station.

28. The method of claim 19, further comprising: modifying a deployed device configured to perform the simultaneous receiving step with an extension module.

29. A non-transitory, processor readable medium for recording a plurality of radio stations, comprising instructions that when executed by a processor causes the processor to perform the steps of claim 19.

30. A system for recording a plurality of radio stations, comprising:
an analog-to-digital converter configured to receive a radio signal source and to convert the radio signal source to a digital data stream;
a processor in communication with the analog-to-digital converter, wherein the processor is configured to perform actions comprising:
based on a processing parameter, simultaneously and continuously monitoring and recording a plurality of radio stations without previous selection for output by a user; and
changing the processing parameter based on a processor usage, wherein the processing parameter is selected from sample frequency, sample size, compression algorithm, and compression parameter.

31. The system of claim 30, wherein the processor is a digital signal processor.

32. The system of claim 30, further comprising: a user interface in communication with the processor.

33. The system of claim 30, further comprising: an output circuit in communication with the processor.

34. The system of claim 30, further comprising: a direct memory access component in communication with the analog-to-digital converter, wherein the direct memory access component is configured to store the digital data stream into a memory.