Android APK, pre-release. Built from main at VibeServer 5.6.5. Supersedes builds 455 to 465; these notes cover all of them.
Fixed
- The countdown no longer restarts when you return to the app. On a shared-dial VibeServer the remaining time was read from the socket the app reopens on every foreground, so each return showed a full turn while the server kept the real one. The figure now continues the turn, and the shared dial's limit is actually enforced, which until now it was not. (Server side, from 5.6.4; the app simply shows the right number.)
- The Advanced RDS box no longer freezes when another listener leaves. The analyser was one switch for the whole radio and anyone closing a decoder turned it off for everyone. (Server side, from 5.6.4.)
- The TIME UP card says what happened: your guaranteed time ended and the session was closed so the receiver is free, you can try again after the cooldown but it may be in use by then, and a full turn starts again after the longer window. It no longer implies someone took the receiver.
- Your location is never sent to any directory. The UberSDR list was the one directory still told the listener's coarse position; it is now sorted by distance on the device like every other list.
- DAB "Tuning in — waiting…" no longer sticks on a playing station, and the tall DAB box no longer covers the session timer on a phone.
- Squelch is remembered per device (GitHub #28). Saved beside the gain and PPM for each RTL-TCP server and dongle and restored on connect, so NFM no longer opens at full noise on every launch.
- The squelch follows the visual gain. The red squelch marker was drawn from the raw threshold while the meter carried the display trim, and the OWRX squelch slider showed the raw server dB beside a trimmed signal readout. Both now sit on the same scale as what you see; the gate itself was always right.
- Waterfall taps snap to the tuning step, so a touch lands on the channel rather than the pixel: 9568.45 kHz becomes 9570 on 5 kHz steps, 7073.14 becomes 7074 on 1 kHz.
- The OWRX magic key is kept for the session only and typed masked. A stored key came back on the next connect after the server had stopped honouring it, which looked like a key that did not work.
- The Advanced RDS panel no longer crashes back to the server list when opened.
- The DAB box and the Advanced RDS box sit above the VTS bar like every other panel, and entering DAB closes the Advanced RDS box that sat underneath the station list.
New
- NOISE BLANKER in the audio menu for every mode but broadcast FM, as the web client has; and direct sampling now reaches a remote VibeServer's dongle instead of only the phone's own.
- The scope view in Advanced RDS: pilot, stereo and RDS each in its own box, coloured by its own health and labelled with its deviation, replacing the overlaid composite eye. The deviation caption says what noise was removed, or that a neighbour in the guard band blocked it. One symbol plot instead of two, and slightly larger type.
- The lock-screen card shows the station's own picture and knows DAB: the RDS logo on FM, the service logo and name in DAB, and the VibeServer mark on the card.
- 5 kHz tuning step, the shortwave broadcast raster, between 1 and 9 kHz.
- Two more dial-chat replies: "Yes, I'm using it, but you can tune" and "Yes, please hold on".
The phone as a VibeServer
- A shared dial's session limit is enforced, hard or soft, with the same warnings, handover notice and cooldown as a single-user radio. It was displayed and never acted on.
- Opus stereo at 96 kb/s, and the stream is always stereo unless a client asks for mono, so no listener rebuilds its decoder at a mode change or the DAB switch. Mono content costs a few kb/s more, not double.
- Uncompressed audio is never sent through the Cloudflare tunnel, whatever the setting; your own network and direct port-forward connections follow it.
- Safari listeners get sound on the first tap, and the Now Playing card shows DAB artwork as well as FM.
- A runaway client opening more than 30 sessions a minute is refused for four minutes instead of restarting the audio chain for everyone else.
- Filter cascades reworked: about a quarter less CPU per listener on ARM.
Privacy
The README and privacy policy now set out the position in full: no data-collecting SDKs of any kind, no bandwidth-sharing or proxy SDKs ever, no accounts, listener location never leaves the device, and a server owner's position is shared as a Maidenhead grid square only. There is advice for owners in remote places on listing from the nearest town instead.