WaveShark

--stream · IQStream · rtl_tcp · SpyServer · KiwiSDR

Put the antenna where the signals are

Run the tuner on a machine at the mast, read it from the desk or a browser, open other people’s shared receivers off a map, and stitch several tuners into one wider span.

A remote tuner shows up in the receiver list as a local radio, over IQStream, rtl_tcp, SpyServer or KiwiSDR, and an IQStream one is tuned and set from here rather than only listened to. This receiver serves IQStream as well, on port 5555, and answers rtl_tcp and SpyServer clients on the same port, so the span a mast-head machine is already collecting can be read by other programs without a second antenna.

Shared receivers are a map away. IQStream stations list themselves on nostr, SpyServers on Airspy’s directory and KiwiSDRs on kiwisdr.com, and the TUNERS layer draws all three, filtered by what they can hear; CONNECT opens one. A listed IQStream station answers a browser too, over WebTransport or WebRTC, so app.waveshark.io can open it with nothing installed.

Several matching tuners can be offered as one wider receiver: the drift between them is measured on the band they share and taken out, which is how a span wider than any one radio gets covered. --headless runs the whole thing with no window, which is what belongs on the machine in the loft.

$ waveshark --stream mast.local:5555 --tune 868.3

Take broadcast apart

DVB-T multiplexes and DVB-S2 transponders down to their transport streams and playing, DAB and DAB+ stations, DRM services on shortwave, and FM with stereo and RDS.

Read that one