VibeServer for macOS — v0.4.0 Alpha (SDRplay support, and an RDS analyser)
Pre-releaseVibeServer turns a Mac and an SDR into a small, private SDR server. Plug in a radio, click Open in Browser, and you have a full waterfall, tuning and audio — for yourself, or for your phone, watch and friends on your network. Notarised by Apple, so it opens cleanly.
📡 New: SDRplay RSP support
RSP receivers now work alongside RTL-SDR dongles. Pick your radio in Settings ▸ Radio.
On an RSP you get the controls it actually has, rather than a dongle's single gain slider:
- RF gain as an LNA state, and a separate IF gain reduction — with the direction labelled, because SDRplay gains are reductions and run the opposite way to every other gain control
- IF AGC with an adjustable target, and the loop dynamics SDRplay's own software uses
- System gain — the one number that makes two independent controls readable
- FM and DAB notch filters, and bias-T
- Sample rates to 8 MHz
- The receiver's own overload warning, straight from the hardware
⚠️ SDRplay's API must be installed firstWe deliberately don't bundle it — SDRplay distribute it themselves, and it installs a background service that every SDR application on the machine shares.
Download it (v3.15 or later): https://www.sdrplay.com/downloads/
Then plug in your RSP and press Refresh in Settings ▸ Radio. Without it, RSPs simply won't appear — everything else works exactly as before, so there's no need to install it if you only use a dongle.
If a radio stops appearing after another SDR program has crashed, that program may have left the SDRplay service locked. Restart it with
sudo launchctl kickstart -k system/com.sdrplay.serviceand press Refresh. VibeServer will tell you when this has happened rather than hanging.
📻 New: ADV RDS — a broadcast-analyser view
Open DECODERS ▸ ADV RDS. Basic RDS (station name, RadioText, PI) is always on; this is the full picture, built for people who care what a transmitter is actually doing.
Everything the station sends — PI in hex and decimal with its country, coverage area and reference number · PS and the 32-character Long PS · RadioText and RT+ artist/title tagging · PTY and PTYN · TP, TA, MS and DI · the clock · alternative frequencies you can tap to tune to, with a confidence score · EON, the other stations in the same network and their traffic flags · which ODAs the station runs · the group-type mix · language, ECC and PIN.
And what your receiver is making of it
- Block error rate — errors before correction, over the last 12 groups
- Pilot and RDS injection in kHz deviation — the figures a broadcast analyser shows. A healthy pilot is 6.0–7.5 kHz; RDS is typically 2–4 kHz
- Constellation — two tight lobes is healthy, a diffuse cloud means the subcarrier is buried, and a clean ring means the station's encoder isn't locked to its pilot at all
- Symbol trace — a clear gap through the middle means every bit is being decided with margin
- MPX spectrum — L+R, the 19 kHz pilot, the L−R sidebands and RDS at 57 kHz, labelled
- RDS-to-pilot phase — the measurement you'd normally carry a Pira analyser to make
Every reading says what it means, not just what it is: gain figures name their spec band, the constellation carries a plain-English verdict, and nothing is left as an unlabelled graph.
It keeps what it catches
85% block errors — five blocks in six arriving damaged — and the station is still fully
identified: name, PI, programme type, clock, decoder flags and injection levels.
Nothing is discarded when the signal dips. RDS repeats everything endlessly, so the panel
accumulates: the PI confirms from the first good burst, the name assembles from later ones,
and nothing is cleared unless the station itself changes. A fade costs you the next few
groups, not what you already caught.
On the phase figure: it's stable and repeatable — the same transmitter reads within a few degrees across different receivers and different antennas — but the absolute calibration hasn't been checked against a reference instrument. Treat differences between stations as real; treat the absolute number as provisional. If you can compare it against an analyser, please do get in touch.
⚠️ Still an early alpha
- One radio at a time, and one listener at a time — multi-radio pools and multi-client are designed but not built
- RSP spans below 2 MHz aren't offered yet — zero-IF needs 2 MHz or more, and the decimation that would allow narrower spans isn't built
- Best on your home network. If you open it to the internet, set a PIN (Settings ▸ Access) — a listener can change the radio's hardware settings
Install
Download VibeServer-0.4.0.zip, unzip, drag VibeServer.app to Applications. It's signed and notarised, so it opens without a Gatekeeper warning.


