Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

2.3KB

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
  • transparent tone fallback if the configured WAV source cannot be loaded

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 now reports the active source label as well, so dry-run output is less disconnected from the offline/sim paths.

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. The current summary includes backend, input source, frequency, and configured output sample rate.

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. The generator summary now reports whether the active source is tones, wav, or tone-fallback.

Release posture

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