VibeAGC now knows what band it is on — and it stops the receiver inventing stations.
A very strong local transmitter makes a receiver lie
Two miles from a 104.2 MHz transmitter, an RTL-SDR does not simply hear it loudly: it starts manufacturing copies of it on empty frequencies, complete with that station's own RDS name and a stereo lock. They look exactly like real stations — they stand well clear of the noise, they decode — and the gain control used to settle happily into one and stay there, while the real, weaker stations either side were buried.
The giveaway is that they grow faster than the gain that makes them. A real signal gets one decibel louder for each decibel of gain you add; a manufactured one grows about three times as fast. VibeAGC now watches that ratio on every adjustment it makes, recognises what it is looking at, and comes down out of it.
Measured on air: a frequency carrying nothing but a copy of that transmitter went from being received at full strength with the wrong station's name attached, to being correctly reported as empty — and two stations that were previously destroyed by it became listenable.
On FM the damage is not where you are listening, it is all around it
Tuned to the strong station itself everything looks healthy — it is a real signal and it behaves like one — while the receiver quietly sprays over the rest of the band. Measured on that very station, a 5 dB increase in gain lifted the station itself by 3.7 dB (honest) and everything around it by 14.8 dB. The gain control now watches the neighbourhood either side of whatever you are listening to, not just the station itself.
Tuned per band, invisibly
FM broadcast, wide digital signals, and the narrow modes (AM, medium wave, shortwave, single sideband) want genuinely different behaviour. On medium wave and shortwave a station fading away for a few seconds is ordinary weather, not a fault — so reacting quickly there would mean fidgeting with the gain every time the band breathed. Each gets its own settings and its own reaction speed, chosen automatically from the demodulator's bandwidth.
There is still one switch. Nothing new to configure.
Faster
The gain could always jump upwards, because it can work out in advance how far it can safely go. Coming down it could only creep one step at a time — which is what made it feel slow. It now sizes a downward jump from the evidence in the same way, so a receiver that lands badly wrong recovers in a few moves instead of seventeen.
Also in this release
- The overload readout tells you what is actually happening. It now reports how much of the signal is being clipped rather than how close the peak is, which are very different things — a receiver can sit a whisker below its limit and be perfectly clean.
- Tuning across the band re-evaluates the gain at a sensible distance for the mode you are in — one channel over, whether that is 100 kHz on FM or 5 kHz on medium wave.
- The web client's signal meter updates properly again.
Install
Linux / Raspberry Pi — apt carries 4.1.0 for both arm64 and amd64:
sudo apt update && sudo apt install vibeserver
macOS — download VibeServer-4.1.0.zip below. Signed and notarised, so it opens without a Gatekeeper warning.