| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Makes your keyboard's volume controls adjust your SteelSeries GameDAC or GameHub when the headset is in use—and Windows volume when it isn't.
Download · Build from source · Diagnostics
VolumeRelay is a tiny background utility for Windows 11. When a recognized SteelSeries GameDAC or GameHub is connected and its physical audio endpoint is the default output, your keyboard's Volume Up, Volume Down, and Mute controls adjust the hardware directly. In every other case, the keys keep their normal Windows behavior.
GameDAC connected + default output -> GameDAC hardware volume
GameDAC connected + another output -> Windows volume
GameDAC disconnected -> Windows volume
There is no window, tray icon, service, or bundled runtime. VolumeRelay uses native Windows APIs, starts with your user account, and stays idle until Windows or the hardware reports a change. SteelSeries GG is not required.
| Device | Product IDs | Status |
|---|---|---|
| SteelSeries Arctis Nova Pro Wireless GameDAC | 0x12e0, 0x12e5, 0x225d | Verified on real hardware (0x12e0) |
| SteelSeries GameDAC Gen 2 | 0x12cb, 0x12cd (Xbox) | Experimental; not hardware verified |
| SteelSeries Arctis Pro + original GameDAC | 0x1280 | Experimental; not hardware verified |
| SteelSeries Arctis Nova Elite GameHub (Input 1) | 0x2244 | Experimental; not hardware verified |
All entries use SteelSeries USB vendor ID 0x1038. The matching physical render endpoint must be the Windows default output. SteelSeries Sonar virtual endpoints are intentionally excluded.
The experimental entries are best-effort implementations based on public protocol data, not claims of confirmed compatibility. Their device IDs, interfaces, and report layouts have automated coverage, but they still need tests on the actual hardware. VolumeRelay labels them as unverified in --devices and --diagnostics output.
VolumeRelay works with keyboards, media keypads, and knobs that send the standard Windows Volume Up, Volume Down, and Mute keys. The AULA F75 Pro knob has been tested directly.
Other media controls are left untouched. Support for more hardware families can be added without changing the Windows audio, keyboard, or installer code.
You can also install from PowerShell:
.\VolumeRelay.exe --installVolumeRelay copies itself to:
%LOCALAPPDATA%\Programs\VolumeRelay\VolumeRelay.exe
It then registers per-user startup, launches the background process, and adds itself to Installed apps. No administrator rights are required.
An installation-success message confirms that VolumeRelay is running. For scripts or unattended setup, suppress dialogs with:
.\VolumeRelay.exe --install --quietDownload and run a newer VolumeRelay.exe. It stops the installed version, replaces the executable, preserves the last tracked hardware volume, and restarts automatically. A message confirms the installed version after the update.
Use Settings > Apps > Installed apps > VolumeRelay > Uninstall, or run:
& "$env:LOCALAPPDATA\Programs\VolumeRelay\VolumeRelay.exe" --uninstallThe uninstaller stops VolumeRelay and removes its executable, startup entry, Installed Apps registration, and saved state.
Run these commands from PowerShell or a terminal:
| Command | Purpose |
|---|---|
| .\VolumeRelay.exe --devices | List interfaces for supported hardware targets. |
| .\VolumeRelay.exe --monitor | Watch hardware reports while turning the GameDAC knob. |
| .\VolumeRelay.exe --status | Request the GameDAC status report. |
| .\VolumeRelay.exe --get-volume | Read the current volume when the firmware supplies it. |
| .\VolumeRelay.exe --set-volume 50 | Set GameDAC hardware volume to 50%. |
| .\VolumeRelay.exe --diagnostics | Show device, routing, installation, and startup state. |
Press Ctrl+C to stop --monitor. For protocol details, evidence, and verification status, see docs/steelseries-protocol.md.
You do not need the full Visual Studio IDE. Install only:
From PowerShell in the repository root:
cmake -S . -B build -A x64 -DBUILD_TESTING=ON
cmake --build build --config Release --parallel
ctest --test-dir build -C Release --output-on-failureThe finished application is:
build\Release\VolumeRelay.exe
Run it with --run to test the background process without installing it, or double-click it to test the normal installation flow.
Hardware support lives behind the small devices::Driver interface in src/device.h. Closely related SteelSeries devices are data-driven profiles in src/devices/steelseries_protocol.cpp; a different hardware family gets its own adapter under src/devices and one entry in the compile-time registry in src/device_manager.cpp.
Each adapter owns device discovery, output-name matching, volume commands, and optional diagnostics. The shared app code handles media keys, default-output changes, per-device saved volume, installation, and fallback to Windows. Add protocol and output-matching tests alongside the adapter before enabling it in the registry.
Pushing a version tag such as v0.1.0 builds and tests the project, creates a SHA-256 checksum and provenance attestation, and attaches the unsigned executable and checksum to the matching GitHub Release. No repository secrets or external services are required. See docs/releasing.md for release commands.
| Back | FazBrowse Home | New Git URL |