Git Product home page Git Product logo

google / radioreceiver Goto Github PK

View Code? Open in Web Editor NEW
385.0 37.0 90.0 905 KB

An application to listen to broadcast stereo FM and AM radio from your Chrome browser or your ChromeBook computer using a $15 USB digital TV tuner.

Home Page: https://chrome.google.com/webstore/detail/radio-receiver/miieomcelenidlleokajkghmifldohpo

License: Apache License 2.0

JavaScript 82.96% HTML 13.74% CSS 3.30%

radioreceiver's Introduction

Radio Receiver

An application to listen to broadcast FM and AM radio from your Chrome browser or your ChromeBook computer using a $15 USB digital TV tuner.

Radio Receiver screenshot

What is this

Radio Receiver is a Chrome application that uses an USB digital TV receiver to capture radio signals, does FM and AM demodulation in the browser, and plays them through your computer's speakers or headphones. This is called SDR (Software-Defined Radio), because all the radio signal processing is done by software running in the computer.

Radio Receiver is 100% written in JavaScript, but is nevertheless fast enough that it can run on a 2012 Samsung ChromeBook laptop at full quality.

Features

  • Stereo FM.
  • Scan for stations.
  • Record what you hear on the radio.
  • Built-in bands:
    • International and Japanese FM bands.
    • Weather band (US and Canada).
    • Medium Wave AM (requires an upconverter).
  • Free-tuning mode to use the program as a multi-band radio and listen to anything: short wave, air band, marine band, etc.
  • Supported modes: Wideband FM, Narrowband FM, AM, SSB.

Compatible hardware and software

Radio Receiver was written to work with an RTL-2832U-based DVB-T (European digital TV) USB receiver, with a R820T tuner chip. You can easily buy one for $15 or less by searching for [RTL2832U R820T] on your favorite online store or web search engine.

You can use this application on a ChromeBook, or on any other computer running a Chrome browser. Just install it using the Chrome Web Store or any other mechanism, plug in your USB dongle, and click on the icon to start the Radio Receiver application.

To listen to Medium Wave and Short Wave radio, you need an upconverter connected between your antenna and the USB dongle. This upconverter shifts the signals up in frequency so that they can be tuned by your dongle. You can find upconverters for sale by searching for [SDR upconverter] on your favorite online store or web search engine.

Support

If you'd like to talk about Radio Receiver, or have any bug reports or suggestions, please post a message in the radioreceiver Google Group.

Note: This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

Acknowledgements

Kudos and thanks to the RTL-SDR project for figuring out the magic numbers needed to drive the USB tuner.

If you want to experiment further with Software-Defined Radio and listen to more things using your $15 tuner, you can try the various programs listed on rtl-sdr.com.

radioreceiver's People

Contributors

jtarrio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

radioreceiver's Issues

Request: Support for FM RDS

FM RDS would be a great feature. It would be nice to see what the name of the song is that is playing (that is, if the station supports RDS).

Thanks!

Error when power on Radio Receiver

Hi,
When I power on radio receiver I got 2 popup window error message showing:
There was a problem: USB write failed (length 0x64000), rc=1, lastErrorMessege="Transfer failed".
When I launch rtl_fm I can listen to the radio and see the folowing message
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuned to 89855000 Hz.
oversampling input by: 6x.
Oversampling output by: 1x.
Buffer size: 8.03ms
Exact sample rate is: 1020000.026345 Hz
Create UDP thread
Created UDP thread
Main socket started! :-) Tuning enabled on UDP/6020
Sampling at 1020000 S/s.
Output at 170000 Hz.

Do you have any idea of where this pb could come from?

Thanks for your help

Multiple tuner support causes crash

I've made a first pass of supporting the Elonics 4000 tuner. The modified tuner detect code looks, in part, like this:

com.i2c.open(function() {
R820T.check(com, function(found) {
if (found) {
  tuner = new R820T(com, xtalFreq, throwError);
} else {
  E4K.check(com, function(found) {
if (found) {
      tuner = new E4K(com, xtalFreq, throwError);
}
  });
}
if (!tuner) {
  throwError('Sorry, your USB dongle has an unsupported tuner chip. ' +
             'Only the R820T and E4000 chips are supported.');
  return;
}

So, try R820T, if it fails, try E4K. The problem is that the R820T check, when an E4K tuner is installed, fails with:

USB write failed (value 0x34 index 0x610 data [0x0]), rc=4, lastErrorMessage="Transfer stalled."

an uncatchable error that exits the extension. I don't see any code in rtlcom.js to probe for valid I2C addresses or to catch timeouts caused by operations to invalid I2C addresses.

I've swapped the order of the tests to continue my development.

WX Station frequencies are off...

In Portland, NOAA Weather Radio is broadcast on 162.550 which is supposed to be WX1 (frequencies are out of sequence) but in Radio Receiver 162.550 is WX7. While it doesn't stop me from listening, it does confuse you when you know what the WX #s are supposed to be, and it also throws off the rest of the WX #s. Here is a link to the Wikipedia chart of the frequencies each WX# should be: https://en.wikipedia.org/wiki/Weather_radio#Governmental_weather_radio_services (WX1-7 are the official ones. WX8-10 are NOT official or used by NOAA, but are listed in the chart). Could we make the WX #s point to the right frequencies in a future update please? In an emergency, people need to be able to tune to the right NOAA WX # and not have to guess and search for the right channel. Thank you for your time in this matter.

f key to focus on frequency display

Currently f invokes showFrequencyEditor() which is undefined.

I thought it would be easy to fix with frequencyDisplay.click() but for some reason that causes a crash.

Neither frequencyDisplay.focus() or frequencyInput.focus() did anything.

Sorry to be a bit of a newbie with this stuff. But it is a good learning experience...

I'd love to have an explanation.

Thanks.

extension Radio Receiver fails following reinstallation of Chrome.

Radio Receiver was working well (magnificent program, for people who just want to listen to FM radio rather than wade hip deep through SDR technical details).
Then google chrome said it could not update Chrome and said I should uninstall & reinstall it.
I did so, and Radio Receiver started failing. After playing well for ~23 minutes it stops playing, and an evanescent bubble pops up that says, more or less, that "Radio Receiver crashed".
Google Chrome Status (self reported):
Google Chrome is up to date
Version 91.0.4472.124 (Official Build) (32-bit)

Support for Elonics E4000 tuner

Support for Elonics E4000 tuner is missing.

The app finds the USB receiver but I get the following error:
There was a problem: USB write failed (value 0x34 index 0x610 data [0x0]), rc=4, lastErrorMessage="Transfer stalled."

I believe that the register values for configuring the R820T tuner are different from the E4000 tuner.

USB device paramters:
Realtek Semiconductor Corp. RTL2838 DVB-T
VendorId: 0x0bda
ProductId: 0x2838

I'm willing to add support for the E4000 but I'm not sure how difficult it will be. If you could give me an estimate where to start that would be great!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.