-
released this
2026-05-10 13:49:43 -07:00 | 44 commits to main since this releaseValidates the server key client-side using the same rules
NVDARemoteAudioServerenforces, so a bad key produces a clear message in the settings dialog (or when starting a connection) instead of a generic server handshake failure.Rule Behavior Empty "Remote audio key is not set" Contains control characters (tab, newline, escape, etc.) Rejected in settings; settings can't be saved More than 128 UTF-8 bytes Rejected in settings; settings can't be saved Any printable string ≤128 UTF-8 bytes (incl. spaces, symbols, Unicode) Allowed Matches
validate_key()in haitun001/NVDARemoteAudioServersrc/protocol.rs. No protocol change.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-05-06 16:04:37 -07:00 | 45 commits to main since this releaseLAN profile retuned for lower latency without choppy audio.
Setting Was Now prebufferMs 60 30 outputLatencyMs 60 40 bufferMs 300 200 Saves about 50 ms end-to-end on LAN. The 30 ms prebuffer is two 15 ms wire packets — enough to absorb a single late packet without underrun, since LAN jitter is normally well under a millisecond.
Tailscale and Internet profiles are unchanged.
If audio gets choppy after upgrading on a particular LAN, switch to the Tailscale profile in
Preferences > Settings > NVDA Remote Audio > Latency profileand tell me — that's a sign your LAN has more jitter than expected and we'd want a middle profile.Install
Download `remoteAudioClient-0.1.12.nvda-addon` below and open it in NVDA on both machines. Settings carry over.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-05-06 12:12:21 -07:00 | 46 commits to main since this releaseDiagnostic + responsiveness update for the slow-Reconnect report.
The upstream relay has no cooldown on rapid publisher reconnect (verified against the server source), and a local stop-and-respawn cycle finishes in ~230 ms. So the 30 s being observed is something specific to your network/setup that needs more data than I can see locally.
What this build does
- `Reconnect audio` no longer freezes NVDA's UI. The stop+start cycle now runs on a background thread, so NVDA speaks "Reconnecting" immediately and stays responsive while the helper is exiting and restarting.
- Helper status lines are now mirrored into NVDA's log at INFO level. Every phase the helper reports — `Connected`, `Capture started`, `Listening for remote audio`, `Stopped`, error events, etc. — gets a timestamped entry in `%APPDATA%\nvda\nvda.log`.
- Reconnect itself logs how long the stop+start took in wall-clock seconds.
Action
After installing on both machines and reproducing the slow Reconnect, grab the chunk of `%APPDATA%\nvda\nvda.log` covering the click. Lines containing `remoteAudio` show exactly which phase is eating the time, which is what I need to land a real fix.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-06 12:03:48 -07:00 | 47 commits to main since this releaseFixes "audio dies on the publisher when I click Reconnect" reported in v0.1.9.
What was wrong
`Reconnect audio` killed the helper with `TerminateProcess` on Windows. The publisher held WASAPI process-loopback handles which were never released, the TCP/UDP session never closed cleanly, and the next helper could not reacquire the device reliably.
Fix
- Helper now watches its own stdin in a background task. When NVDA closes the pipe (or writes any byte) the cancellation token fires and the session's
IAsyncDisposable.DisposeAsyncruns —IAudioCaptureClient/IAudioClientCOM objects are released, TCP/UDP sockets close cleanly. Exits with statusStopped.. - Add-on spawns the helper with
stdin=PIPE, andstop()now closes stdin first and waits up to 2 s for graceful exit.TerminateProcessis only used as a last resort if the helper is hung.
Verified locally that subscriber and publisher both shut down cleanly in well under a second, and that a stop-immediately-respawn cycle on the publisher reacquires WASAPI cleanly.
Install
Download `remoteAudioClient-0.1.10.nvda-addon` below and open it in NVDA on both machines. Settings carry over.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Helper now watches its own stdin in a background task. When NVDA closes the pipe (or writes any byte) the cancellation token fires and the session's
-
released this
2026-05-06 11:56:07 -07:00 | 48 commits to main since this releaseFixes a bug where the receiver showed as connected but never played audio after the sender came online, until the add-on was manually reloaded.
What was happening
The receiver registered fine, but UDP heartbeats to the relay can be silently dropped by NAT/path issues without raising any error in the helper. After 15 s of dropped heartbeats the server timed out the receiver's UDP session, so when the sender's packets arrived the server had nowhere to forward them. The receiver's helper kept listening on a session the server had already forgotten.
Helper changes
- TCP and UDP heartbeat loops now catch send errors. On failure, the session tears down cleanly and the add-on's existing auto-retry kicks in (about 5 s).
- The UDP heartbeat now also re-sends a UDP
registerpacket about every 15 s, so the relay refreshes the receiver's session even if individual heartbeats are lost. - UDP heartbeat interval capped at 3 s (was 5 s) so path flaps are detected sooner.
Add-on change
- New Reconnect audio entry in
Tools > NVDA Remote Audio. Stops and restarts the helper using the current role. Recovers from a stuck session in one click without reloading plugins.
Install
Download `remoteAudioClient-0.1.9.nvda-addon` below and open it in NVDA on both machines. Settings carry over.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-06 11:40:55 -07:00 | 49 commits to main since this releaseThe Receive remote audio and Send this computer's audio menu items are now check-items, so NVDA tells you which one is active when you open the menu.
Behavior
- Clicking the unchecked item starts that role.
- Clicking the checked item disconnects.
- Clicking the other item while one is active switches roles (the helper restarts in the new role).
- Auto-start, auto-retry on disconnect, and unexpected helper exits all keep the check marks in sync.
Install
Download `remoteAudioClient-0.1.8.nvda-addon` below and open it in NVDA. Settings carry over.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-06 11:34:53 -07:00 | 50 commits to main since this releaseThe add-on can now install NVDARemoteAudioServer and the Windows Firewall rules itself. No manual download or netsh.
New Tools-menu items
- Install audio server (this machine sends audio)... — downloads the latest NVDARemoteAudioServer Windows ZIP from GitHub, extracts to
C:\NVDARemoteAudioServer\(or%LOCALAPPDATA%\NVDARemoteAudioServer\if the first is not writable), registers a per-user logon scheduled task, starts the server, and prompts for UAC to add Windows Firewall inbound TCP+UDP allow rules on port 6838. - Add firewall rules for audio server... — re-runs only the firewall step (separate UAC prompt). Use this if you declined UAC during install.
Behaviour change
Picking Send this computer's audio on a machine without the server installed now offers the install dialog instead of failing silently.
Notes
- No admin needed for the download/extract/scheduled-task part.
- Firewall rules require admin (UAC). Decline UAC and the rest still installs; you can retry firewall rules from the menu.
- The .NET runtime is not a dependency of this add-on — the helper EXE is published self-contained.
Install
Download
remoteAudioClient-0.1.7.nvda-addonbelow and open it in NVDA on both machines. Settings carry over.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Install audio server (this machine sends audio)... — downloads the latest NVDARemoteAudioServer Windows ZIP from GitHub, extracts to
-
v0.1.6 — security hardening Stable
released this
2026-05-06 11:20:58 -07:00 | 51 commits to main since this releaseSecurity fixes against a hostile or buggy audio server. No protocol or behavioural changes for honest servers.
Changes
- Cap server-supplied
udp_audio_payload_max_bytesto [64, 1500] bytes so a malicious server cannot inflate every per-packet allocation. - Floor server-supplied
tcp_heartbeat_interval_msat 500 ms so a zero/one value cannot spin the heartbeat loop tight. - Replace the unbounded
StreamReader.ReadLineAsyncon the TCP handshake with a bounded byte-level reader (cap 64 KB). A server that streams data without a newline can no longer exhaust client memory.
Install / upgrade
Download `remoteAudioClient-0.1.6.nvda-addon` below and open it in NVDA on both machines. Settings carry over.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Cap server-supplied
-
v0.1.5 — initial release Stable
released this
2026-05-06 11:13:33 -07:00 | 52 commits to main since this releaseFirst public release of the NVDA Remote Audio Client.
Install
- Install NVDARemoteAudioServer on whichever machine should send audio.
- Download `remoteAudioClient-0.1.5.nvda-addon` below and open it on both machines.
- In NVDA, open Preferences > Settings > NVDA Remote Audio on both machines and set the same Host, Port (6838), and Key. The key is required — there is no default.
- Restart NVDA.
What it does
- Streams system audio (music, games, browser, Discord, etc.) between two Windows machines.
- Excludes NVDA's process tree from WASAPI loopback capture, so NVDA speech stays on NVDA Remote and is not double-sent.
- Opus 48 kHz stereo at 15 ms packets with packet-loss concealment.
- Latency profiles: LAN (60/60/300 ms), Tailscale (90/80/450 ms), Internet (150/120/800 ms). Auto-picked from the host you set.
Requires
- Windows 10 build 20348+ (process-loopback exclusion API).
- NVDA 2025.1+.
Security
Audio is sent unencrypted over UDP. Run this over LAN, VPN, or Tailscale only.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
mirror of
https://github.com/serrebidev/NVDARemoteAudioClient.git
synced 2026-10-28 15:16:18 -07:00