Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Jan Svabenik 9c74eb2bd3 feat: add basic wav rate adaptation for offline and sim paths vor 1 Monat
..
NOTES.md docs: bootstrap fm rds transmitter project plan vor 1 Monat
README.md feat: add basic wav rate adaptation for offline and sim paths vor 1 Monat
config.sample.json feat: make no-hardware tone source configurable vor 1 Monat

README.md

fm-rds-tx docs

Build & Test

Root CLI

  • go test ./...
  • go run ./cmd/fmrtx -print-config
  • go run ./cmd/fmrtx -config docs/config.sample.json
  • go run ./cmd/fmrtx --dry-run --dry-output build/dryrun/frame.json
  • go run ./cmd/fmrtx --simulate-tx --simulate-output build/sim/simulated-soapy.iqf32 --simulate-duration 250ms
  • go run ./cmd/offline -duration 500ms -output build/offline/composite.iqf32

Audio source modes

Current no-hardware sources:

  • generated stereo tones via config
  • 16-bit PCM WAV file input via audio.inputPath
  • basic sample-rate adaptation for WAV sources into the composite generation path

Tone configuration

The current no-hardware source can be parameterized via config:

  • audio.toneLeftHz
  • audio.toneRightHz
  • audio.toneAmplitude

HTTP control surface

Available endpoints:

  • GET /healthz
  • GET /status
  • GET /dry-run
  • GET /config
  • POST /config

Current patchable runtime fields via POST /config:

  • frequencyMHz
  • outputDrive
  • toneLeftHz
  • toneRightHz
  • toneAmplitude
  • ps
  • radioText

Internal DSP module

  • cd internal
  • go test ./...

Examples module

  • cd examples
  • go test ./...
  • go run ./soapy_simulated

Dry run

The dry-run mode generates a synthetic, hardware-free frame summary based on the current config. It is intended as a no-hardware smoke path for the CLI and config/control-adjacent logic.

The HTTP control plane also exposes GET /dry-run for quick inspection of the currently effective no-hardware summary.

Simulated transmit

--simulate-tx runs the offline generator through the Soapy-oriented simulated backend path and writes an IQ-style artifact to disk. This is the current closest no-hardware stand-in for the future transmit pipeline in the main application path.

Offline generation

cmd/offline generates a deterministic no-hardware IQ/composite-style file using the repository's output backend path. This is still an MVP path, but it is a more realistic offline artifact than the JSON-only dry-run.

Release posture

Current honest release posture: pre-v1. Recommended milestone tag: v0.3.0-pre. See CHANGELOG.md and RELEASE.md.