texysexr/hackrf-fm-encoder — explained in plain English
Analysis updated 2026-07-24
Convert your favorite music into FM radio files for playback on a PortaPack device.
Create low-storage radio signal files to fit more audio on a small SD card.
Generate high-fidelity FM broadcast files for the best possible sound quality.
Prepare custom FM radio transmissions at a specific frequency using HackRF One.
| texysexr/hackrf-fm-encoder | 0xallam/my-recipe | 0xhassaan/nn-from-scratch | |
|---|---|---|---|
| Stars | 0 | — | 0 |
| Language | Python | Python | Python |
| Last pushed | — | 2022-11-22 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 2/5 | 2/5 | 4/5 |
| Audience | general | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Python 3.8+ and a separate installation of FFmpeg on your computer.
This repository provides a command-line tool that converts ordinary audio files into a special format used by HackRF One and PortaPack radio devices. These devices can transmit radio signals, and the tool prepares audio so it can be played back as FM radio through that hardware. Supported input formats include MP3, WAV, FLAC, and M4A. The tool runs on Python and relies on a few helper programs. NumPy and SciPy handle the math involved in turning sound into radio signal data. Rich provides a clean interface in the terminal. FFmpeg, a separate program you install on your computer, handles the initial audio conversion when needed. You also need Python 3.8 or newer, and the tool works on Windows, Linux, and macOS. Using it is straightforward. You place your audio files in the same folder as the script and run it. The tool shows a list of your audio files and asks you to pick one. Then you choose from four presets: PortaPack FM Broadcast at 500 kHz for most users, High Fidelity at 1 MHz for best quality, Low Storage at 250 kHz for smaller files, or a fully custom option. You enter a center frequency in megahertz and a name for the output file. The tool then processes the audio through several steps. It converts the file to WAV if needed, normalizes the volume, applies FM pre-emphasis filtering for better sound quality, resamples the audio, and generates the radio signal data. It saves a .c8 file containing that data and a .txt file with metadata the PortaPack device needs, including the frequency and sample rate you chose. To play the result on a PortaPack, you copy both files to the SD card and select the .c8 file from the Replay app. If you are using a HackRF directly, the tool prints the exact command you need to run for playback. The project is open source under the MIT License and welcomes contributions.
A Python tool that converts audio files like MP3 and WAV into FM radio signal files for HackRF One and PortaPack devices. Pick a file, choose a quality preset, and it generates a ready-to-play radio signal file.
Mainly Python. The stack also includes Python, NumPy, SciPy.
Use this software freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly general.
This repo across BitVibe Labs
double-check against the repo, no cap.