Repository navigation
v0.9.10 — microphone redirection
A feature release: the client's microphone presents as a real macOS input device. Opt-in and EXPERIMENTAL; nothing changes unless you turn it on.
- New: microphone redirection (#191).
--enable-microphone-redirection(configENABLE_MICROPHONE_REDIRECTION=1, or the menu-bar controller's Settings → Redirection → Microphone) feeds the client's mic into "macrdp Microphone" — a Core Audio device that shows up in System Settings → Sound → Input, Zoom, Teams, FaceTime and QuickTime. The client opts in too (mstsc: Local Resources → Remote audio → Settings → Record from this computer).- Install the driver once: it ships inside
macrdp.app; install it from the controller (Install macrdp Microphone… — one admin prompt, and Core Audio restarts, briefly interrupting sound) or withmacrdp.app/Contents/Resources/install-audio-plugin.sh. No entitlement needed. - Format: 16-bit PCM at 44.1 kHz only (no resampler yet). mstsc offers it; a client that can't gets no mic, and macrdp logs why.
- Privacy caveat: the audio reaches the driver through a shared-memory segment that other local accounts on the Mac can read while a session is streaming (they can't write to it). On a Mac shared with other people, treat an active redirected mic as audible to them. Details in
docs/macos-gotchas.md. - Upstream: the protocol layer is a vendored copy; upstream IronRDP's new
ironrdp-rdpeaireplaces it at the next dependency bump.
- Install the driver once: it ships inside
- Fix:
--lock-on-disconnectno longer locks underneath a client that's reconnecting (#190). A client that came back 12–22 s after leaving could be locked mid-handshake, stranding a remote user without--auto-unlock. A pending lock now holds for a recent authenticated reconnect (or briefly for a just-accepted connection), capped at 30 s so an unauthenticated peer can only delay the lock, never prevent it.
Verified: live on Windows 11 mstsc with the entitled build — the client's voice came through (−10.6 dB peak); on the final build the log confirms the 44.1 kHz format, a minute of streaming, and the shared segment wiped and released on disconnect. Controller install/remove verified. Not live-tested on FreeRDP's /microphone.
Pre-tag gates: cargo fmt --check clean on stable and nightly, cargo clippy --all-targets -- -D warnings clean, 259 tests passing.
Full history: docs/release-history.md
Artifacts
macrdp-v0.9.10-aarch64-apple-darwin-app.zip/.tar.gz— the standard CI build (ad-hoc signed, server only).macrdp-0.9.10-usb.dmg— entitled build with both apps (server + menu-bar controller), notarized and stapled. The only build in which--enable-usb-redirectionworks, and the one the microphone was verified on.
All three are covered by SHA256SUMS.
Full Changelog: v0.9.9...v0.9.10