VibeServer for macOS — v0.3.4 Alpha
Turn a Mac with an RTL-SDR into a receiver anyone on your network can use, from a browser or from the VibeSDR app.
RDS reads far more stations
The decoder only ever looked at one phase of the 57 kHz data carrier. A station whose signal happened to arrive rotated — which depends on the transmitter, the receive filters and the weather — produced nothing at all, no matter how strong it was. Measured on the bench, the old decoder failed completely at 80–90° of carrier phase; the new one is flat at every angle.
It also now repairs damaged blocks instead of discarding them, only accepts a station name once it has been confirmed, and holds sync through a fade rather than dropping it after a few bad blocks. Names and RadioText arrive faster and stick.
Faster
- FM stereo costs about a third less CPU. Audio filtering now happens at the audio rate rather than the full channel rate, with hand-vectorised maths in the FM detector. Nothing about the sound changed — stereo separation is identical, and rejection of the 19 kHz pilot tone improved by 22 dB.
- RDS is roughly 8× cheaper. It was doing its work at over a hundred times the rate it needed. On a Raspberry Pi that single change is the difference between managing a listener and not: 190% of a CPU core down to 112%, and a Pi can now carry a full RDS listener at 1.024 MSPS where before it could not at any rate.
- GPU waterfall — the web client's waterfall renders on the GPU, crisper at any resolution and much lighter, especially in Chrome/Edge and on phones.
- Idle power — with nobody connected the server stops the dongle instead of quietly processing it for no one.
Media controls
- Safari: the macOS Now Playing card is live and correct — station name, frequency, and the station's own logo from RDS, updating as you tune. It no longer keeps showing a station you have tuned away from.
- Chrome / Edge: the media keys now work. Play/pause mutes; skip tunes up and down. This has never worked in Chromium before, and unlike the earlier attempt at it, this one costs nothing.
Decoders and controls
- Clearer weather-fax (WEFAX), and Save & compare for WEFAX and SSTV images.
- Separate waterfall Speed and Data Rate, so a slow link stays smooth without looking low-res.
- Audio is Opus (~4× lighter), which is what lets VibeSDR Jr on the Apple Watch pull decent stereo and a live waterfall over Bluetooth.
Notes
- Alpha: one SDR, one listener at a time. Best on your local network.
- Set a PIN if you port-forward it — listeners can change the dongle's hardware settings otherwise.
- Notarised, so a downloaded copy opens without a Gatekeeper warning. Drag VibeServer.app to your Applications folder.
- Weak stations still need signal: RDS rides at the top of the FM multiplex where noise is worst, so it wants roughly 35–40 dB of channel SNR. Clean stereo with no RDS is normal, not a fault.
