{"id":29125883,"url":"https://github.com/ibelow/hd2_sound","last_synced_at":"2026-04-30T02:31:39.748Z","repository":{"id":301536290,"uuid":"1009499416","full_name":"iBelow/hd2_sound","owner":"iBelow","description":"This service was specifically created to solve an annoying bug in the game Helldivers 2. ","archived":false,"fork":false,"pushed_at":"2025-06-27T10:51:38.000Z","size":2079,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T11:41:23.903Z","etag":null,"topics":["helldivers","helldivers2","microphone","sound","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iBelow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-27T08:27:26.000Z","updated_at":"2025-06-27T10:51:42.000Z","dependencies_parsed_at":"2025-06-27T11:51:42.982Z","dependency_job_id":null,"html_url":"https://github.com/iBelow/hd2_sound","commit_stats":null,"previous_names":["ibelow/hd2_sound"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/iBelow/hd2_sound","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iBelow%2Fhd2_sound","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iBelow%2Fhd2_sound/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iBelow%2Fhd2_sound/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iBelow%2Fhd2_sound/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iBelow","download_url":"https://codeload.github.com/iBelow/hd2_sound/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iBelow%2Fhd2_sound/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262674943,"owners_count":23346741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["helldivers","helldivers2","microphone","sound","windows"],"created_at":"2025-06-29T22:04:28.398Z","updated_at":"2026-04-30T02:31:39.717Z","avatar_url":"https://github.com/iBelow.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microphone Volume Control Service\n\n![Version](https://img.shields.io/badge/version-1.0.2-blue)\n![Platform](https://img.shields.io/badge/platform-Windows-lightgrey)\n![License](https://img.shields.io/badge/license-MIT-green)\n![Language](https://img.shields.io/badge/language-C++-blue)\n![Build Status](https://img.shields.io/badge/build-passing-brightgreen)\n![Downloads](https://img.shields.io/badge/downloads-releases-blue)\n\n![Microphone Volume Control Service](assets/img_1.png)\n\nWindows service for automatic microphone volume management.\n\n## What is this software for?\n\nThis service was specifically created to solve an annoying bug in the game **Helldivers 2**. The game has a problematic behavior where it automatically changes the microphone volume (sensitivity) settings in Windows, which causes issues with voice communication in Discord and other applications - your teammates can no longer hear you properly.\n\nThis mini-application continuously monitors and resets your microphone volume to 100% at regular intervals, ensuring that Helldivers 2 (or any other application) cannot permanently change your microphone settings. This way, your voice communication remains consistent and reliable during gaming sessions.\n\n## Description\n\nThis service automatically sets the microphone volume level to 100% at specified time intervals. Uses Windows Core Audio API for audio device management.\n\n## Features\n\n- Automatic microphone volume setting to 100%\n- Configurable check interval (default 2 seconds)\n- Filter by specific microphone or work with all microphones\n- Operation logging\n- Runs as Windows system service\n\n## Quick Start (Pre-built Release)\n\nIf you don't want to build from source, you can download a ready-to-use version:\n\n1. **Download**: Go to [Releases](../../releases) and download the latest release package\n   - `MicrophoneVolumeService-vX.X.X-x64.zip` (complete package with docs)\n   - OR `MicrophoneVolumeService.exe` (standalone executable)\n\n2. **Install**: Extract and run as administrator:\n   ```cmd\n   MicrophoneVolumeService.exe -install\n   ```\n3. **Verify**: The service starts automatically. To check status:\n   ```cmd\n   sc query MicrophoneVolumeService\n   ```\n\n🤖 **Auto-built releases**: Every version is automatically built and tested using GitHub Actions.\n\nFor troubleshooting, check logs at: `C:\\Windows\\Temp\\MicrophoneVolumeService.log`\n\n**Note**: Administrator privileges are required for service installation and management.\n\n## Build\n\n1. Open `MicrophoneVolumeService.sln` in Visual Studio 2019/2022\n2. Select Release configuration and x64 platform\n3. Build the project (Build -\u003e Build Solution)\n\nOr use MSBuild from command line:\n\n```cmd\nmsbuild MicrophoneVolumeService.sln /p:Configuration=Release /p:Platform=x64\n```\n\n## Usage\n\n### Service Installation\n\n```cmd\n# Install with default parameters (2 sec interval, all microphones)\nMicrophoneVolumeService.exe -install\n\n# Install with interval setting (5 seconds)\nMicrophoneVolumeService.exe -install -t 5\n\n# Install with specific microphone filter\nMicrophoneVolumeService.exe -install -t 3 -m \"USB Microphone\"\n\n# Use Windows Event Log instead of file logging\nMicrophoneVolumeService.exe -install -t 2 -eventlog\n```\n\n⚠️ **Note**: Service is configured for auto-start and starts immediately after installation.\n\n### Service Status Check\n\n```cmd\n# Check if service is running and properly configured\ncheck_service.bat\n```\n\n### Service Uninstallation\n\n```cmd\nMicrophoneVolumeService.exe -uninstall\n```\n\n### Testing (without service installation)\n\n```cmd\n# Test run with default parameters\nMicrophoneVolumeService.exe -test\n\n# Test run with interval setting\nMicrophoneVolumeService.exe -test -t 1\n\n# Test run with microphone filter\nMicrophoneVolumeService.exe -test -t 2 -m \"Realtek\"\n```\n\n### Service Management\n\nAfter installation, the service can be managed through:\n\n1. **Windows Services Manager (services.msc)**:\n\n   - Find \"Microphone Volume Control Service\"\n   - Use Start/Stop/Restart buttons\n\n2. **Command Line**:\n\n   ```cmd\n   # Start service\n   net start \"MicrophoneVolumeService\"\n\n   # Stop service\n   net stop \"MicrophoneVolumeService\"\n\n   # Or via sc\n   sc start MicrophoneVolumeService\n   sc stop MicrophoneVolumeService\n   ```\n\n## Command Line Parameters\n\n- `-install` - Install service\n- `-uninstall` - Uninstall service\n- `-test` - Run in test mode (without service installation)\n- `-version` - Show version information\n- `-t \u003cseconds\u003e` - Check interval in seconds (default 2)\n- `-m \"\u003cname\u003e\"` - Microphone name filter (default all microphones)\n\n## Operation Log\n\nThe service maintains an operation log in the file:\n\n```\nC:\\Windows\\Temp\\MicrophoneVolumeService.log\n```\n\nThe log records:\n\n- Service start and stop events\n- Successful volume setting operations\n- Audio device errors\n- Information about found microphones\n\n## Usage Examples\n\n```cmd\n# Install service to check every 5 seconds for all microphones\nMicrophoneVolumeService.exe -install -t 5\n\n# Install service only for USB microphone with 3-second checks\nMicrophoneVolumeService.exe -install -t 3 -m \"USB\"\n\n# Test with Realtek microphone every second\nMicrophoneVolumeService.exe -test -t 1 -m \"Realtek\"\n```\n\n## Requirements\n\n- Windows 10/11 or Windows Server 2016+\n- Administrator privileges for service installation/uninstallation\n- Visual Studio 2019/2022 with Windows SDK for building\n\n## Troubleshooting\n\n1. **Service won't start**: Check Windows Event Log (Event Viewer) and service log\n2. **Can't find microphones**: Ensure microphones are active and properly configured in Windows\n3. **Access errors**: Ensure service runs with necessary privileges\n\n## Security\n\n- Service runs under system account\n- Uses only standard Windows APIs\n- No network access required\n- Log contains only audio device operation information\n\n## 🤖 GitHub Actions \u0026 Automated Releases\n\nThis project uses GitHub Actions for automated building and releasing:\n\n- **Automatic builds** on every commit\n- **Automated releases** when creating version tags\n- **Professional release packages** with documentation\n\n📖 **For developers**: See [.github/GITHUB_ACTIONS.md](.github/GITHUB_ACTIONS.md) for detailed CI/CD setup information.\n\n🚀 **To create a release**: See [RELEASE_GUIDE.md](RELEASE_GUIDE.md) for step-by-step instructions.\n\n## 🧪 Testing\n\nThis project includes comprehensive tests to ensure reliability and maintainability:\n\n### Running Tests\n\n```cmd\n# Build and run all tests\nrun_tests.bat\n\n# Or manually run tests after building\ntests\\x64\\Release\\SimpleTests\\SimpleTests.exe\n```\n\n### Test Coverage\n\nThe test suite includes:\n\n- **Command Line Parsing Tests**: Validate argument parsing and default values\n- **Logging System Tests**: Test file logging, error handling, and log formatting\n- **Volume Control Tests**: Test volume state tracking and change detection\n- **Service Utility Tests**: Test service installation/management functions\n- **Helper Function Tests**: Test file operations and utility functions\n\n### Test Framework\n\nTests use a custom lightweight testing framework that provides:\n- Simple assertion macros (`EXPECT_TRUE`, `EXPECT_EQ`, etc.)\n- Automatic test discovery and execution\n- Clear test result reporting\n- No external dependencies (Google Test optional)\n\n### For Developers\n\n```cmd\n# Build tests only\nmsbuild tests\\SimpleTests.vcxproj /p:Configuration=Release /p:Platform=x64\n\n# Add new tests by following the existing pattern:\nTEST_FUNCTION(MyNewTest) {\n    // Your test code here\n    EXPECT_TRUE(someCondition);\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibelow%2Fhd2_sound","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibelow%2Fhd2_sound","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibelow%2Fhd2_sound/lists"}