GopherTrunk v0.1.9 — social announcement drafts

Copy-paste drafts for posting the v0.1.9 release. Two versions below: a longer one for Reddit and a tighter one for Discord.

Release: https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9


Reddit

Title: GopherTrunk v0.1.9 — call streaming to Broadcastify/RdioScanner, IQ recording & replay, analog trunking voice

Body:

GopherTrunk v0.1.9 is out. GopherTrunk is a pure-Go digital-trunking radio scanner for RTL-SDR — P25 (Phase 1 + 2), DMR, NXDN, Motorola Type II, EDACS, LTR, MPT 1327, and more. No CGO, no librtlsdr/libusb at build or runtime, single ~10 MB static binary for Linux, macOS, and Windows, with a headless daemon, a TUI cockpit, and a browser web console.

This release closes a big chunk of the gap with SDRtrunk. What’s new since v0.1.8:

  • Outbound call streaming. Completed calls are encoded to MP3 (with a pure-Go encoder — still zero CGO) and streamed out to Broadcastify Calls, RdioScanner, OpenMHz, and live Icecast/ShoutCast. Per-feed system filters; a talkgroup can opt out with stream: false.
  • Wideband IQ recording + offline replay. Tee a live tuner’s IQ stream to a baseband WAV, then mount that capture — or one of SDRtrunk’s — back as a virtual tuner and decode it with no radio attached.
  • Analog trunking voice. Motorola Type II / SmartZone, EDACS, LTR, and MPT 1327 calls now decode to audio through the FM voice chain.
  • GPS / location subsystem. Subscriber-unit GPS fixes are decoded off the air, logged, and served over the API for map display (strict NMEA-0183 parser).
  • Protocol-agnostic affiliation tracker. A live “which radio unit is on which talkgroup” table that works uniformly across P25, DMR (all tiers), and NXDN. Served at GET /api/v1/affiliations.
  • DMR vendor-trunking recognition. FID-aware CSBK dispatch — Motorola Capacity Plus / Capacity Max voice grants now decode correctly instead of emitting bogus grants from opcode collisions.
  • Per-talkgroup controls. Mute, icon assignment, and per-talkgroup record / stream opt-outs (CSV column, JSON field, or PATCH endpoint).
  • Decoded-message log. An SDRtrunk-style timestamped text log of every trunking event — grants, control-channel lock/loss, affiliations, registrations, patches, talker aliases, decode errors.
  • P25 control-channel fixes (#275). The C4FM path now uses the spec C4FM filter (instead of root-raised-cosine) and strips interleaved status symbols on the control channel — better lock on live RTL-SDR hardware.

Downloads (Linux/macOS/Windows, x64 + ARM64): https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9

Project & docs: https://gophertrunk.org

Heads-up: the v0.1.x line is still prereleases — actively developed, and feedback / captures / bug reports are very welcome.


Discord

Discord renders Markdown — headers (#/##/###), **bold**, - bullets, and -# subtext. Paste the block below as-is.

## GopherTrunk v0.1.9 is out

Pure-Go digital-trunking scanner for RTL-SDR — P25/DMR/NXDN/analog trunked, single static binary, zero CGO.

### What's new since v0.1.8

- **Call streaming** — calls now stream to Broadcastify Calls, RdioScanner, OpenMHz, and Icecast/ShoutCast (pure-Go MP3, still no CGO)
- **IQ recording + replay** — record baseband to WAV, replay captures as virtual tuners with no radio attached
- **Analog trunking voice** — Motorola Type II/SmartZone, EDACS, LTR, MPT 1327 now decode to audio
- **GPS / location** — subscriber GPS fixes decoded, logged, and served for map display
- **Affiliation tracker** — live unit-to-talkgroup table across P25/DMR/NXDN
- **DMR vendor trunking** — Motorola Capacity Plus / Capacity Max grants decode correctly
- **Per-talkgroup controls** — mute, icon, record, and stream opt-outs
- **Decoded-message log** — SDRtrunk-style event log
- **P25 #275 fixes** — spec C4FM filter + control-channel status-symbol stripping for better live lock

**Download:** <https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9>
**Docs:** <https://gophertrunk.org>
-# v0.1.x is a prerelease line — actively developed, feedback welcome.