FM broadcast transmitter software for SDR hardware.
AES67 · Icecast · SRT · RDS · Stereo MPX · BS.412
$ fmrtx --tx --config station.json \ --license FMRTX-MFRA4YLS... TX: configuring pluto-iio freq=102.800MHz rate=2280000Hz license: valid key — jingle disabled watermark: embedding key fingerprint engine: live audio stream wired 48000 Hz → 228000 Hz composite TX ACTIVE: 102.800MHz ▶ ingest: icecast connected RDS: "Radio Example — Live"
Icecast, SRT, AES67/RTP multicast, HTTP raw, stdin PCM. Switch sources live without restart.
Pre-emphasis, stereo MPX encoder, ITU-R BS.412 loudness control, composite limiter. Phase-coherent pilot at 19 kHz.
PS, RT, PI, PTY, CT, TA/TP. Live updates via HTTP control plane. ICY StreamTitle → RDS RadioText.
PlutoSDR via native IIO, anything else via SoapySDR. Split-rate DSP: generate at 228 kHz, transmit at device rate.
REST API + web UI. Live-patch RDS, audio gain, frequency, drive. Prometheus metrics. JSON config.
One compiled Go binary. No runtime, no dependencies, no Docker. Runs on Raspberry Pi, x86, Windows.
Build from source: go build -tags pluto ./cmd/fmrtx
Ferrite is free for hobbyists, LPFM operators, community radio, and non-profits. Commercial stations are asked to contribute — whatever feels fair.
Free for hobbyists. Pay what you want for commercial use.