A graphical interface for nrsc5 that allows tuning, listening, and recording HD Radio broadcasts.
- Tune to HD Radio stations by frequency and program number
- Start/stop live radio streaming
- Record audio to files using
ffmpeg - Display "Now Playing" metadata (Title, Artist, Album)
- Maintain a history of recently played tracks
- Show Bit Error Rate (BER) graph in real time
- Display relative distance and bearing to the station
- Manage station presets (add, remove, reorder, import/export)
- Configurable recording directory, units (metric/imperial), and user location
- Real-time NRSC5 log with optional display
git clone https://github.com/TheRealUnusual/nrsc5-gui.git
cd nrsc5-guipip install -r requirements.txtInstall required system packages:
- nrsc5 (must be built from source)
- ffmpeg
- rtl-sdr (provides rtl_tcp)
- Cmake Building Tools (for building nrsc5)
sudo apt update
sudo apt install ffmpeg rtl-sdr build-essential git cmakesudo dnf install ffmpeg rtl-sdr git gcc gcc-c++ make cmakesudo pacman -S ffmpeg rtl-sdr git base-devel cmakegit clone https://github.com/theori-io/nrsc5.git
cd nrsc5
mkdir -p build
cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfigStart rtl_tcp (default host: localhost, default port: 1234):
rtl_tcpRun the GUI with:
python3 main.pySteps:
-
Enter the Frequency (MHz) of the station.
-
Select the Program number (0–3).
-
Enter the rtl_tcp host and port.
-
Click Start Radio to begin streaming.
-
Add a preset with the current frequency and program number.
-
Tune to a preset by selecting it and clicking Tune to selected.
-
Reorder, import, or export presets using the buttons in the Presets tab.
-
rtl_tcp IP address and port
-
Recording directory: Select where recorded files are saved.
-
Units: Metric or Imperial for distance and altitude calculations.
-
User location: Latitude, longitude, and altitude for station distance calculations.
This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See the LICENSE file for details.
