Real-time network voice radio with real-time physics simulation for Falcon BMS.

- Seamless integration into Falcon BMS - no extra configuration required
- Realistic radio propagation: signal strength, line-of-sight, Doppler and more (via OpenFreqAudio)
- Frequency-based voice channels with per-channel PTT and hotkeys (keyboard or joystick)
- Squelch simulation
- Hot-swappable audio devices
- Dedicated GCI (Ground Controlled Intercept) client mode with unlimited positions & channels
- Full 3D audio effects enabled in GCI mode — identical physics simulation as BMS mode
- GCI Position sources: static via map UI picker & address search or live Tacview/ACMI feed
- Transmitter / Receiver performance presets and SFX
- Opus audio compression and modern RTP stack
- Peer list
- Experimental: sidetone (microphone monitoring)
- Server: Native Windows & Linux support
- Client: Native Windows & Linux support (GCI mode only), BMS mode tested in WINE (see the Handbook for detailed WINE info)
- Make sure IVC is not running
- Launch BMS and OpenFreq in any order
- Check that OpenFreq is set to BMS mode
- Connect via BMS UI and enter OpenFreq server address in the BMS IVC field. Make sure the IVC checkbox is selected in BMS.
Note: BMS is not required for GCI Mode
- Launch OpenFreq Client, set it to GCI Mode
- Select Theater. Linux: specify Theater heightmap file
- Enter connection data and Display name, Connect
- Don't forget to switch to "Game" mode when clients move to 3D
- Verify ports 9987 (TCP), 9988 (UDP) are open (default configuration)
- Launch OpenFreq Server (sensible defaults preconfigured)
- The configuration file is automatically created (
OpenFreq.Server.json) - adapt and restart if necessary
See the Handbook for in-depth usage and configuration.
- Self-contained builds — no dependencies, runs as-is
- Framework-dependent builds — requires .NET 10.0 Runtime
- Building from source — requires .NET 10.0 SDK
| Component | Role |
|---|---|
OpenFreq.Server |
Central relay — signaling (WebSocket) + audio (UDP) |
OpenFreq.Client |
Avalonia desktop GUI for end users |
OpenFreq.Common |
Shared protocol, RTP pipeline, jitter buffer |
OpenFreq.Testclient |
Minimal CLI client for testing |
# Build all
dotnet build OpenFreq.sln
# Run server
dotnet run --project OpenFreq.Server/OpenFreq.Server.csproj
# Run client
dotnet run --project OpenFreq.Client/OpenFreq.Client.csprojPull requests are welcome. Due to the complexity of the project, please keep them small. For bugfixes, please specify clear testing/repro cases.

