Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

2.3KB

Changelog

v0.4.0-pre

Full DSP chain implementation, pre-hardware milestone.

Added

  • RDS encoder rewrite: standards-grade group framing (0A for PS, 2A for RadioText), CRC-10 per IEC 62106 with offset words, differential encoding, group scheduler with PS/RT cycling and A/B flag toggle
  • Stereo encoder: stateful 38 kHz DSB-SC subcarrier oscillator (phase-coherent across block boundaries), replaces fragile sample-indexed sin() in generator
  • Pre-emphasis filter: first-order IIR high-shelf, configurable τ (50 µs EU, 75 µs US, 0=off), with complementary de-emphasis for verification
  • FM modulator: composite-to-IQ via phase integration, configurable ±75 kHz deviation, unit-magnitude output guaranteed
  • MPX limiter: smooth attack/release peak limiter with hard-clip safety net
  • Linear-interpolation audio resampler (replaces nearest-neighbor)
  • Robust WAV loader with RIFF chunk scanning (handles LIST, INFO, bext, etc.)
  • New config fields: preEmphasisUS, maxDeviationHz, limiterEnabled, limiterCeiling, fmModulationEnabled
  • New patchable runtime fields via HTTP: preEmphasisUS, limiterEnabled, limiterCeiling
  • Comprehensive tests for all new DSP blocks

Changed

  • Config defaults: pre-emphasis 50µs, limiter on, FM modulation on, deviation ±75kHz, RDS injection 0.05
  • Offline generator wires full DSP chain: pre-emphasis → stereo encode → RDS → MPX combine → limiter → FM modulate
  • Dry-run output includes all new config fields
  • Status endpoint reports pre-emphasis, limiter, and FM modulation state

Fixed

  • Stereo subcarrier phase discontinuity at block boundaries
  • WAV loader breaking on files with extra metadata chunks before data
  • Resampler aliasing artifacts from zero-order hold

v0.3.0-pre

Initial pre-v1 milestone for the licensed short-term FM/RDS transmitter project.

Included

  • Windows-first Go project scaffold
  • validated JSON config schema
  • HTTP status/control surface with dry-run endpoint
  • deterministic dry-run output
  • offline composite/IQ-style file generation
  • simulated transmit path in main CLI via Soapy-oriented backend abstraction
  • automated no-hardware tests and smoke scripts

Not yet included

  • real SoapySDR hardware driver integration
  • full RDS group framing/CRC/timing correctness
  • real audio ingestion pipeline
  • release CI / packaged distribution