I'm still tinkering with my own SDR code in C, but I decided I'd give gqrx a go. It sports a simple UI to visualise things as well as a simple control network protocol.
FreeBSD has packages for it, so it really was as simple as:
# pkg install gqrx
I already have the rtl-sdr bits installed, so that was pretty easy:
# rtl_tcp
.. to bring up the network service for it.
But running gqrx .. didn't work. It just stood there and did nothing when I ran it - no UI, no useful log output, nothing.
So out came truss. Step one in the "what is going on" showed no useful logging. Step 2 is "ok, what syscalls is it making." It turns out it was trying to connect to the IPv6 localhost address - but rtl_tcp defaults on FreeBSD to IPv4 localhost. gqrx doesn't handle connect() errors gracefully, so it was just stuck in an infinite connect() loop.
So I cleared the config, started gqrx again, and ensured this time it was set to '127.0.0.1' instead of 'localhost'. Voila! It worked!
Now - I need an SDR unit that can go down closer to DC so I can pick up shortwave. This RTL dongle I have doesn't tune below 27MHz.