Repository navigation
Releases: derek20la/HiDefRadio
Release list
HiDef Radio 1.0 (build 16)
The first full release of HiDef Radio: HD Radio (NRSC-5) and analog FM for Android with an RTL-SDR dongle, with a car-radio style blend between the two.
What's in 1.0
- HD Radio on FM, including HD2 / HD3 / HD4, with station logos and album art received over the air
- Analog FM in stereo with RDS / RBDS, and an automatic blend to HD that lines the two up and fades over dropouts before you hear them
- Dongle clock correction, so dongles without a TCXO blend too
- Favorites, media notification and lock-screen controls, light / dark / true-black themes
- Signal details for radio people: MER, BER, quieting S-meter, alignment and blend status, a built-in FCC station list
- A two-pane layout on tablets (720 dp and wider)
- A faster FM demodulator on arm64 (NEON)
Changes since 1.0-beta5
- No changes to reception or sound. The privacy text in Settings > About is updated.
Installing
This APK is signed with the developer's own key. The Google Play version is signed by Google, so the two are separate installs: to switch from one to the other, uninstall first (your favorites are not carried over).
HiDefRadio-1.0-build16.apk SHA-256: 7cecc9bda325a348e03819b480633b82c891b23d74a304e8f161a728e3af26af
AM: HD Radio stations only for now (needs a dongle that tunes AM, such as the RTL-SDR Blog V4). Analog AM and AM stereo are planned for 1.1.
HiDef Radio 1.1-beta1 (build 20)
A beta of 1.1: analog AM. Until now AM was HD only. Now every AM station plays, with the same blend to HD as on FM.
New: analog AM
- Analog AM with a synchronous detector, the kind HD-ready AM radios use. Tune any AM station and the sound starts in analog.
- Blend to HD on AM, like on FM: in Auto the analog plays first, and once the app has lined the two up it crossfades to HD (about 15-20 s after tuning on AM). In Auto, AM sound starts about 3 seconds after you tune, because the analog plays that far behind live so the blend can see HD dropouts coming.
- C-QUAM AM stereo for the stations that still send it ("ST" on the signal line). It is switched off while an HD signal is in sync, because a hybrid HD station's digital carriers sit where C-QUAM puts its stereo.
- AM signal meter: "Analog AM ▮▮▮▮▯" shows the carrier-to-noise ratio. The signal details show it in dB, plus the carrier level, the offset and the stereo state.
- Settings: "FM stereo" is now "Stereo" (it covers C-QUAM too), and there is a new AM audio bandwidth setting (3 / 5 / 8 / 10 kHz, 5 by default).
- A favorite saved from an AM station without HD shows as "1260 AM". The welcome card mentions AM again.
Also
- RTL-SDR Blog V4 Lite (V4L): the driver already supported it. The debug info now names its tuner correctly (R828S) instead of calling it an R820T. Nobody has tried a V4L with the app yet - reports welcome.
Good to know - please test
- Heard on the air so far: KHTS 1220 (no HD). The AM blend has been proven on recordings of KMZT 1260 and KBRT 740, but not yet on the air.
- C-QUAM has only been tested on a made-up signal. If you have a C-QUAM station nearby, please say whether left and right come out the right way round. If you can provide me a recorded IQ (cu8) sample file, even better.
- The AM meter's bars are a first guess. Tell me how they compare with what you hear.
- A V3 (direct sampling) on AM should work but is not confirmed yet.
- Most helpful in a report: station and frequency, your dongle, what the signal line said, and the AM line from the speed test ("Show debug info" → "Run speed test").
Installing
This is a pre-release on GitHub only. The Google Play test stays on 1.0 for now. It is signed with the same key as the earlier GitHub releases, so it installs over 1.0 from GitHub and your favorites stay. If you installed from Google Play, you have to uninstall that copy first (Android won't mix the two signatures), and your favorites won't carry over.
HiDefRadio-1.1-beta1-build20.apk SHA-256:
cca53488311129d1ab4fa8fd5c9064e1328c35ddbd504639ff71f6a56153376d
HiDef Radio 1.0-beta5 (build 15)
A screen-only update: HiDef Radio now uses the space on a tablet.
New
- Two-pane layout on tablets. The radio is on the left (frequency display, HD buttons, favorites, station, song, signal line) and the signal details are always open on the right, with the debug info and speed test under them. The frequency display, the picture and the text are a size bigger.
- Small tablets (around 8 inches, about 600 dp wide in portrait) get the two panes in landscape and the familiar phone layout in portrait, so nothing gets squeezed.
- Phones are unchanged, in either orientation.
Unchanged
The radio engine is exactly the one in 1.0-beta4: the native library is byte-identical.
Tested on the Android Studio Pixel Tablet emulator (Android 17), portrait and landscape, and on a Moto G Stylus 2024. If you have a tablet, a screenshot is very welcome!
Installing
- Signed with the same key as the earlier GitHub releases, so it installs over 1.0-beta4 and your favorites stay.
- The GitHub copy and the Google Play copy are separate installs (different signing keys). To switch from one to the other, uninstall first; favorites are lost.
- SHA-256 of
HiDefRadio-1.0-beta5-build15.apk:
c7b56c0f32b418f6f3d655d90f69ffedf1933aa6ea147592dc4e24184f5ea4cb
HiDef Radio 1.0-beta4 (build 14)
Faster on every 64-bit phone. The FM demodulator now uses the processor's NEON instructions (part of every 64-bit Android phone, so no phone is left out). nrsc5 and FFTW use their own NEON code too.
Measured with the new speed test on a Moto G Stylus 2024 (ms of processor time per second of radio, lower is better):
| 1.0-beta3 | 1.0-beta4 | |
|---|---|---|
| FM demodulator | 87 | 25 (3.4x faster) |
| HD decoding | 42 | 36 |
| HD searching | 139 | 130 |
A station with HD in Auto now needs about 6 % of one fast core. This mostly gives more headroom on slower phones. Battery life barely changes, because the dongle itself uses about two thirds of the power.
New
- Speed test: tap "Show debug info" on the main screen, then "Run speed test". It takes about 30 seconds and the radio keeps playing. Please post the three numbers and your phone model (Radio Discussions thread, Reddit, or a GitHub issue). Results from other phones are the most useful feedback right now.
- Battery current in the debug info, including the average for the last time the screen was off.
Improved
- Clearer wording when two stations share one frequency (one station's HD, another station's analog). The two-station handling from 1.0-beta3 has now been heard working on the air (KDSC + XETRA on 91.1).
- When no HD is found, the debug info says "resting, next look in N s" instead of an ever-growing "searching".
Installing
- This APK is signed with the same key as the earlier GitHub releases, so it installs over 1.0-beta3 and your favorites stay.
- It is a separate install from the Google Play test version (different signing key). To switch between the two, uninstall first.
- SHA-256 of
HiDefRadio-1.0-beta4-build14.apk:
31e0cbca00c8c9abe23d185b812bf513f275ccec67a9d1cb49f2f3cc15b5b56e
HiDef Radio 1.0-beta3 (build 11)
Third test build: a fix from a tester's video, a battery saver, and a new piece of logic for frequencies that two stations share.
Two stations on one frequency
In some places the HD on a frequency belongs to one station and the analog you receive to another (seen on 91.1 in the valleys north of Los Angeles: KDSC's HD under XETRA-FM's analog). The app used to swap between the two several times a minute. Now:
- the HD plays alone, and an HD dropout is silence (as on HD2), not the other station;
- an amber line under the signal box says the analog here is another station - tap it to listen to that one instead;
- a saved logo belongs to a station, not to a frequency, so it is no longer shown over another station.
Call letters only when confirmed
An RDS code that spells a US call sign which is not licensed on the tuned frequency is no longer shown as the station's name (XHITZ 90.3 Tijuana read as "WHTZ, Newark, NJ"). Signal details > Station now says what the code spells and where that call is licensed.
Battery: the HD search rests
In Auto, on a station without HD, the HD decoder rests after 30 seconds and takes a 3-second look every 30 seconds. Searching for HD was the most expensive thing the app did. The signal line says "(no HD)" and the details "HD decode resting". HD that appears later is picked up at the next look.
Dongle clock correction is steadier
On stations whose analog and HD audio are processed differently, two or three noisy measurements could produce a wrong figure ("+103 ppm" in a tester's video). The app now checks the audio measurement against the tuning offset and uses it only when the two agree, or when the audio has made a strong case over a longer time.
Also fixed
- Auto > Analog only > Auto on an HD station could put the HD on without lining it up (a 2.5 second jump in the programme).
- A word in the welcome card.
Good to know
- The two-station logic was tested with recordings mixed for the purpose, not yet on the air. If you have such a frequency, a screenshot of the signal details would help a lot.
- Logos saved by earlier builds have no owner yet. They get one the next time that station's HD is received.
Installing
HiDefRadio-1.0-beta3-build11.apk updates the 1.0-beta1 and 1.0-beta2 APKs from this page in place; favorites and settings stay.
It is signed with the developer's own key, so it is a separate install from the Google Play test version: it cannot be installed over the Play version, or the reverse, without uninstalling first (favorites are not carried over). Pick one and stay with it. An APK install does not count toward the Play test - if you can, join the test instead.
APK SHA-256: 421d46bc6c368ebb85e00368ee6522834751310b3203fec0aaf429bd4513b28b
Signing certificate SHA-256: 0f7ba7ed4584a04293a2a76fd8b2cfd4ff83416f1c66f0647d30c329d5032117
HiDef Radio 1.0-beta2 (build 7)
Second test build, with fixes from the first test reports.
- Dongles without a TCXO (many older RTL-SDR dongles, such as a 2014 Nooelec R820T): the blend from analog to HD never started. Their crystals can be 50 ppm off and more, so the analog audio crept away from the HD audio. The app now measures the dongle's clock against the station's and corrects the analog audio. Tested with recordings turned into "cheap crystal" recordings; confirmation from a real dongle is welcome. Details: How the blend works.
- After a USB hiccup (lost samples) the analog and the HD are lined up again within seconds.
- "MHz" no longer breaks in two on narrow phones.
- New: a short welcome card on first start, also under Settings > About > Getting started.
- The signal details show the dongle's clock error ("dongle clock +57 ppm"). If you test, please tell me your number, phone and dongle.
Installing: download HiDefRadio-1.0-beta2-build7.apk below and open it on the phone. It updates the 1.0-beta1 APK from this page in place. It is signed with the developer's own key, so it can't be installed over the Google Play test version, or the other way round: uninstall first, and favorites are not carried over. APK installs don't count toward the Play test. To help with that, see Get the app.
APK SHA-256: d5a183e2aa22481b71184f516cbea5f6f274b1b951520ae7067e55d09cd3b53c
Signing certificate SHA-256: 0f7ba7ed4584a04293a2a76fd8b2cfd4ff83416f1c66f0647d30c329d5032117
HiDef Radio 1.0-beta1 (build 5)
First public test build of HiDef Radio.
You need an RTL-SDR USB dongle, a USB-OTG adapter and a 64-bit Android phone with Android 8 or newer.
Two ways to get it
1. The closed test on Google Play. This is the way that helps most. Google asks for 12 testers over 14 days before the app can be published, and only installs from Play count.
- Join the group: https://groups.google.com/g/hidef-radio-testers
- Become a tester: https://play.google.com/apps/testing/io.github.derek20la.hidefradio
- Install from the Play Store link on that page.
2. The APK below. Download HiDefRadio-1.0-beta1-build5.apk, open it on the phone and allow the install.
Please pick one and stay with it. The Play version is signed with Google's key and this APK with my own, so Android treats them as two different apps. To move from one to the other you have to uninstall first, and favorites are not carried over.
What it does
- HD Radio on FM, with the extra HD2 / HD3 / HD4 programs
- Analog FM in stereo, with RDS (station name, song title and artist)
- A blend between analog and HD like a car radio: sound at once, HD about ten seconds later, and back to analog before a dropout
- HD Radio on AM (digital only, and little tested so far)
- Favorites with station logos, media controls on the lock screen, signal details for radio people
- No internet permission, no ads, no tracking
Known limits
- Developed with an RTL-SDR Blog V4. Other dongles should work on FM but are not confirmed yet.
- Tested in the Los Angeles area only, on two phones.
- AM is HD only. Analog AM is planned for 1.1.
Feedback
Please tell me which phone and dongle you use and what works or doesn't: open an issue, or write to hidefradioapp@yahoo.com.
APK SHA-256: e2c00ae4799bf8c3852923c352964fb9e732b3f9cf3453ace402bb9151820ad4
Signing certificate SHA-256: 0f7ba7ed4584a04293a2a76fd8b2cfd4ff83416f1c66f0647d30c329d5032117