Signed, notarised and stapled. Download, unzip, drag to Applications.
Fixes audio stuttering that scaled with window size. Everything the sound needed — receiving the stream, decoding Opus, converting samples — ran on the same thread the browser uses to draw the waterfall. On a browser whose rendering is more expensive, a large window starved the audio: reproducible on demand by resizing, and clean the moment the window was made smaller or the tab hidden. Safari coped; Firefox did not.
Receiving and decoding now happen in a Worker, which feeds the player through a transferred channel so the page's thread is not in the audio path at all. Confirmed by the listener who could previously reproduce it at will: "i cant get it to stutter with the reproducing things earlier".
The old path remains and takes over automatically if anything goes wrong, so a browser without the necessary support behaves exactly as before.
The status row now labels its figures — "ping" (round trip to the receiver) and "buf" (audio buffered ahead). A buffer that climbs means a bursty link, and because the waterfall is held back to match, a large buffer is also why a receiver can feel sluggish to tune while sounding perfectly clean.
A server with no Maidenhead locator no longer retries its listing forever. The directory requires one and the publisher never checked, so it would start a tunnel, be refused, wait thirty seconds and repeat indefinitely. It now says what is wrong on the setup page and stops.
Also from 4.1.9 through 4.1.14: the SNR meter reads correctly, noise reduction has a usable range at both ends and stays where you put it, panning the spots map no longer interrupts audio, and tunnels use HTTP/2.