Skip to content

About

GameChatBalancer is an opensource Arduino based hardware audio balancer for Windows PCs.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Repository files navigation

GameChatBalancer (GCB)

GameChatBalancer is a Windows desktop tool that lets you control the game/chat volume balance with a physical Arduino-compatible knob or slider.

Instead of opening the Windows mixer mid-game, you can instantly shift volume between voice chat and game audio with dedicated hardware input. GCB maps selected processes to Game and Chat groups and applies volume changes in real time.


What GCB does

  • Reads input from Arduino-compatible hardware over serial.
  • Converts the hardware position to a Game/Chat balance value.
  • Applies the balance to configured Windows audio sessions.
  • Provides a systray-first UX with optional full WPF window.
  • Persists user settings and restores them automatically on startup.

The app remains event-driven (USB/connectivity state, UI state, audio updates), avoiding unnecessary polling where event-based flows are possible.


What improved since v1.0

Compared to the initial public version, GCB now includes major improvements in reliability, UX, and architecture:

  • Modern WPF UI direction with Fluent-inspired styling.
  • Improved systray workflow and clearer connected/disconnected states.
  • Software Control fallback when no Arduino is connected.
  • Event-based reconnect behavior for hardware attach/detach.
  • More robust icon pipeline (app icon, systray icon, in-app assets).
  • Single-file publish compatibility improvements (including tray icon fallback to embedded EXE icon).
  • Refactored host architecture to decouple legacy form dependencies.
  • Autostart state consistency fixes between UI toggle, settings persistence, and Run registry key.

Screenshots (add here)

The sections below are intentionally prepared as placeholders. Replace paths once screenshots are available.

1) Main Window (Home)

Main Window - Home

2) Systray Popup (Connected)

Systray Popup - Connected

3) Systray Popup (Disconnected / Software Control)

Systray Popup - Disconnected

4) Overlay in-game

Overlay

5) Windows Audio Mixer effect

Windows Audio Mixer result


Key Features

Hardware side

  • Serial values are sent only when the knob/slider value changes (no continuous data spam).
  • Runtime noise-reduction levels for analog input stability: Off, Low, Medium, High.

Desktop app side

  • Drag-and-drop app assignment into Game and Chat groups.
  • Multiple processes per group.
  • Auto-detect serial device and reconnect on device changes.
  • Automatic settings persistence.
  • Optional invert control for hardware wiring direction.
  • Start-with-Windows support.

Single-file build (self-contained)

dotnet publish "AudioControl/AudioControl.csproj" -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:PublishTrimmed=false

Output:

AudioControl/bin/Release/net10.0-windows/win-x64/publish/AudioControl.exe


Settings storage

  • User settings are saved by .NET user-scoped settings under %LOCALAPPDATA% (user.config, framework-managed path).
  • App assignment path cache:

%LOCALAPPDATA%/GameChatBalancer/app-paths.json


Hardware build

If you want to build your own physical controller, see:

  • Manual
  • Schematic and hardware assets in /assets

Quick note: use a linear potentiometer (not logarithmic).


Roadmap

  • Support additional physical controls.
  • Extend flexible multi-channel assignment scenarios.
  • Continue modernization toward the current .NET desktop stack.

License & attribution

Icon attributions and license details are retained from the original project and should stay in this repository.

If you add or replace assets, update the attribution section accordingly.


Feedback

Issues, bug reports, and focused PRs are welcome. Please include:

  • Reproduction steps
  • Expected vs actual behavior
  • Hardware details (board, potentiometer type, USB adapter)

About

GameChatBalancer is an opensource Arduino based hardware audio balancer for Windows PCs.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages