Skip to content

About

Virtual audio panel & intercom for MSFS — crew headsets with VOX/PTT, joystick PTT to BeyondATC/vPilot, game-audio mixing and radio ducking. Free for personal use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

PilotCommBox

License: PolyForm Noncommercial 1.0.0 Latest release

📥 Download

Download the installer — PilotCommBox-Setup-2026.09.01-beta.exe (~50 MB, Windows 10 2004+ / 11, no .NET install needed)

All versions: Releases page. Windows SmartScreen will warn because the app isn't code-signed — choose More info → Run anyway (the full source is right here in this repo).

A standalone software audio panel / intercom for flight simming (MSFS 2024, BeyondATC, vPilot, …) — the software equivalent of a GMA-345-style audio control panel:

  • Multiple crew stations, each with its own headset (mic + output), volumes and PTT keys
  • VOX or PTT intercom between stations, with sidetone
  • Game/sim audio mixed into every headset (captured via Windows process-loopback — no extra virtual cable needed for this)
  • Radio PTT routes the keyed mic to a virtual cable that BeyondATC/vPilot uses as its microphone, with real audio-panel TX lockout (first station to key wins)
  • Radio-over-game ducking — game audio drops during ATC calls
  • Global keyboard and joystick/yoke button PTT bindings (work while the sim has focus)
  • Runs standalone; the sim is never required

Requirements

  • Windows 10 2004+ / Windows 11 (process-loopback capture needs 2004+)
  • .NET 8 Desktop Runtime
  • VB-Audio Virtual Cable (free/donationware) — the one third-party piece, needed only for the mic → ATC path, because Windows has no user-mode API for creating a virtual microphone.

Setup

  1. Install VB-Cable and reboot.
  2. Build and run PilotCommBox (dotnet build, run PilotCommBox.exe).
  3. Crew stations — for each seat: pick the headset's microphone and output, bind an Intercom PTT and a Radio PTT (click the button, then press any key or joystick/yoke button). VOX is on by default, so the intercom is voice-activated even without PTT.
  4. Game / Sim audio — leave on "All system audio except PilotCommBox" (default). MSFS can keep playing to your normal default device; PilotCommBox mirrors it into every headset. Alternatively pick single process mode and enter FlightSimulator2024.exe.
  5. Radio TX — select CABLE Input (VB-Audio Virtual Cable) as the TX device. In BeyondATC (or vPilot), set the microphone to CABLE Output.
  6. Radio RX (optional, recommended) — set RX source to single process with BeyondATC.exe so ATC audio gets its own volume knob and triggers game-audio ducking. Leaving it on combined is fine too; ATC audio then arrives via the game-audio capture.
  7. Press ▶ Start.

Volumes, PTT bindings and VOX settings apply live. Device / station / source changes need an engine stop-start.

How it routes

Station mics ──(VOX / Intercom PTT)──▶ every other headset  + own sidetone
Station mics ──(Radio PTT, one at a time)──▶ CABLE Input ──▶ BeyondATC mic
System audio (minus PilotCommBox) ──▶ every headset (ducked while ATC talks)
BeyondATC audio ──▶ every headset (drives ducking)

Internally everything is mixed at 48 kHz float. Each physical device runs on its own WASAPI shared-mode stream; per-source ring buffers absorb clock drift between devices (bounded at 250 ms, trimmed back to 80 ms — you'll never accumulate runaway latency on long flights).

Troubleshooting

Delayed echo of your own voice (~0.5 s): the VB-Cable installer usually makes CABLE Input your Windows default output device (multimedia and communications). Change both back to your real headset/speakers (Settings → System → Sound, and the Communications default under Sound Control Panel → Playback). With the cable as default, anything that monitors your mic (Windows "Listen to this device", Razer Synapse mic monitoring) plays your voice into the cable, and the game-audio capture loops it into your headset ~250 ms later. PilotCommBox warns at engine start if it detects this. Genuine sidetone through the app is ~60–90 ms.

  • PilotCommBox.exe --smoketest writes smoketest.log next to the exe: device enumeration, process-loopback activation, a full engine start/stop, config round-trip.
  • Config lives at %APPDATA%\PilotCommBox\config.json.
  • If a headset is unplugged mid-flight the affected station errors but the rest keep running; restart the engine after reconnecting.
  • Joystick buttons not detected: another app may hold the device exclusively.

Building a release installer

dotnet publish PilotCommBox/PilotCommBox.csproj -c Release -r win-x64 --self-contained true -o publish
ISCC.exe installer/PilotCommBox.iss

Requires Inno Setup 6 (winget install JRSoftware.InnoSetup). Output: installer/Output/PilotCommBox-Setup-<version>.exe — self-contained, no .NET runtime needed on the target machine. Bump the version in both PilotCommBox.csproj and installer/PilotCommBox.iss.

License

PilotCommBox is free for personal, noncommercial use under the PolyForm Noncommercial License 1.0.0 — hobby flying, shared cockpits, streaming your own flights, and tinkering with the source are all fine. Commercial use (selling it, bundling it with a paid product, use inside a for-profit training operation, etc.) is not permitted without a separate license — contact the author.

Project layout

PilotCommBox/
  Audio/     engine, mixer graph, capture pipelines, process-loopback interop
  Input/     global keyboard hook, DirectInput joystick polling, PTT router
  Models/    JSON-persisted configuration
  Services/  config, device enumeration/hot-plug, smoke test
  UI/        MVVM view models
  MainWindow.xaml, App.xaml

About

Virtual audio panel & intercom for MSFS — crew headsets with VOX/PTT, joystick PTT to BeyondATC/vPilot, game-audio mixing and radio ducking. Free for personal use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages