v1.9.0 Pre-release — Go Backend
This is the first pre-release of the Go backend (serverng). The Node.js backend has been retired to attic/.
What's new
- Go backend replaces Node.js — same WebSocket binary protocol and REST API, client unchanged
- Full demodulator parity: WFM stereo, NFM, AM, AM-Stereo (C-QUAM), SAM, SSB (USB/LSB), CW
- Audio quality fixes: FM discriminator gain, WFM 51-tap FIR LPF, DC block + AGC for AM/SSB, correct de-emphasis (75µs WFM / 75µs NFM)
- Bandwidth control: per-mode audio LPF on all demodulators (NFM/AM/SSB/SAM/CW)
- Codec support: ADPCM IQ, raw IQ, Opus (mono/stereo), FFT deflate/ADPCM
- Codec switching at runtime: IQ ↔ Opus switches without restart, stereo enable/disable respected
- Race-free hot path: per-pipeline mutex (
pmu) protects Opus pipeline pointer - FFT history panic fix: profile switch now resets history buffer; mixed-size frame guard added
- Docker image: new multi-stage Dockerfile (Node client build + Go binary + Alpine runtime)
Breaking changes
- The
server/directory has moved toattic/server/— it is no longer part of the npm workspace or build npm run dev/npm run buildnow target the Go backend only; legacy scripts removed
Docker
docker pull ghcr.io/gbozo/no-sdr:1.9.0Or use docker/docker-compose.yml for USB passthrough.