Repository navigation
Radio Audio And Scope Performance
Related pages:
- Native Radio Console
- IC-9700 Native Connectivity
- Troubleshooting
- RX Audio Stream
- SSTV Decoder
- FT4 / FT8 Module
Pi-Sat limits queued receive audio with bounded buffers in the backend and browser. CAT commands, scope rendering, and microphone traffic use separate paths so routine control activity does not intentionally delay listening audio.
CPU pressure, network conditions, and browser scheduling can still cause delay or dropouts. Buffer limits describe individual stages, not guaranteed end-to-end audio latency.
The native Home console's Advanced Settings includes RX Audio Transport choices for WebRTC and PCM. Available status readouts depend on the transport. The following buffer counters describe PCM playback.
Browsers with AudioWorklet support use a persistent audio renderer for PCM decoding, sample-rate conversion, buffering, and MAIN/SUB/Both routing. The renderer targets about 45 ms of buffered audio and trims a large burst back to that target when the backlog would exceed 110 ms. Backend listener queues retain at most about 120 ms of PCM and reject stale packets.
The Home radio console reports:
| Readout | Meaning |
|---|---|
| Buffer | Audio currently queued in the browser. |
| Gaps | Starvation events that forced playback to rebuffer. |
| Trimmed | Buffered audio discarded to restore bounded latency. |
| PCM level | Peak level in the selected receive stream. |
These values describe browser buffering and PCM activity. They are not an end-to-end latency measurement and do not indicate RF signal strength.
Browsers without AudioWorklet use a playback fallback and do not provide the same low-latency buffer counters. Worklet loading errors appear in the console status. Reload the page after a Pi-Sat update so the browser loads the current JavaScript and worklet files.
The IC-9700's CI-V scope output determines the available waterfall cadence. A complete 475-bin sweep arrives only as often as the radio and configured CI-V bandwidth provide it. Pi-Sat draws each complete sweep but cannot create additional radio data.
The spectrum toolbar's Smooth option changes display motion only:
- Waterfall rows move by a fractional offset between incoming sweeps, using the measured sweep interval.
- The spectrum trace uses a three-point average to soften bin-to-bin noise.
Smooth does not invent sweeps, alter amplitudes, or send radio commands. Turning it off restores whole-row waterfall steps. Display level, fill, grid, and max hold are also browser-only controls.
Microphone capture streams while the radio session is connected. PTT still controls whether audio reaches the transmitter, so an idle session does not transmit. At a 16 kHz radio rate, microphone traffic is approximately 256 kbit/s; stereo receive audio is approximately 512 kbit/s.
The microphone level meter shows captured browser audio. If the uplink is interrupted, Pi-Sat reconnects it while capture is active and records the event in Monitor. A key held during the interruption is released. Receive audio uses a separate connection and should remain available.
- Connect to the radio and note the Buffer, Gaps, Trimmed, and PCM level readouts while listening normally.
- If Gaps rises, check Wi-Fi quality, browser CPU load, radio connectivity, and whether the selected MAIN/SUB channel contains audio.
- If Trimmed rises, the browser received a burst after falling behind. Hidden or heavily throttled tabs can contribute to this.
- If Buffer remains high after activity settles, reload the page and confirm AudioWorklet is active.
- Compare MAIN, SUB, and Both. SUB and Both require stereo audio and an active SUB receiver.
- Review
journalctl -u pi-sat -n 100 --no-pagerfor radio, audio, or socket errors.
When reporting a problem, include the selected listening side, configured sample rate, connection type, browser, and the four audio readouts.
The receive modules share the native radio session and use separate, bounded audio queues. The built-in SSTV module passively extracts SUB/RX AF audio for its worker; browser PCM or WebRTC playback does not supply that worker's input.
External DATA Decode changes the shared source: it selects SUB FM-DATA/FIL1 or USB-DATA/FIL1 according to the demodulation choice, switches LAN output to IF, and software-demodulates that wider-bandwidth path to 48 kHz mono PCM for external clients. It does not preserve an independent normal AF stream for other consumers. Do not use it and built-in SSTV at the same time. Disable it and confirm normal AF operation before returning to built-in SSTV or other AF-based reception.
External client queues are bounded. A full data-path source buffer stops that path instead of silently discarding its oldest audio. The Windows connector also stops on its own five-second buffer overflow. Inspect source drops, client queue status, and output underflows when troubleshooting discontinuities. See External DATA Decode and Windows Connector.
Managed FT4/FT8 reception adds the WSJT-X process and audio bridges on the Pi. Additional native browser windows add status delivery and can add separate listening-audio sessions. If lag starts during digital operation, compare one browser with multiple browsers and report whether it occurs during receive, transmit, or a Halt TX request. Closing an unused browser ends its subscriptions; changing pages does not necessarily end them.
The native radio scope is shared. Windows following different MAIN/SUB listening choices can compete over that scope; use the same listening choice in each window when comparing behavior. The digital audio passband display is a separate view of the receive audio, including its Doppler correction. Changing Smooth on the radio scope affects browser presentation, not WSJT-X decoding load.
Pi-Sat cannot remove buffering inside the radio, network loss, TCP head-of-line blocking, browser scheduling delays, or the output device's own buffer. Stale audio is discarded after a stall to return playback to live operation. Smoothing changes presentation only and cannot increase the radio's scope information rate.