{"id":46649492,"url":"https://github.com/artiswar/leqcontrolpanel","last_synced_at":"2026-03-08T06:01:11.794Z","repository":{"id":342391807,"uuid":"1162022675","full_name":"ArtIsWar/LEQControlPanel","owner":"ArtIsWar","description":"Free Windows tool to control Loudness Equalization (LEQ). Toggle, adjust release time, and install LEQ on any audio device.","archived":false,"fork":false,"pushed_at":"2026-03-05T19:49:57.000Z","size":439,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T22:48:33.829Z","etag":null,"topics":["audio","csharp","dotnet","eq","equalizer-apo","loudness","loudness-eq","loudness-equalization","windows","wpf"],"latest_commit_sha":null,"homepage":"https://artiswar.io","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArtIsWar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-19T19:35:05.000Z","updated_at":"2026-03-05T19:50:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ArtIsWar/LEQControlPanel","commit_stats":null,"previous_names":["artiswar/leqcontrolpanel"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ArtIsWar/LEQControlPanel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtIsWar%2FLEQControlPanel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtIsWar%2FLEQControlPanel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtIsWar%2FLEQControlPanel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtIsWar%2FLEQControlPanel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArtIsWar","download_url":"https://codeload.github.com/ArtIsWar/LEQControlPanel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtIsWar%2FLEQControlPanel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30246872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["audio","csharp","dotnet","eq","equalizer-apo","loudness","loudness-eq","loudness-equalization","windows","wpf"],"created_at":"2026-03-08T06:00:26.521Z","updated_at":"2026-03-08T06:01:11.763Z","avatar_url":"https://github.com/ArtIsWar.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg width=\"150\" height=\"150\" alt=\"AIW's LEQ Control Panel\" src=\"https://github.com/user-attachments/assets/0d625a9c-447c-462b-8775-a37b95ea5774\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-GPL--3.0-blue.svg\" alt=\"License: GPL v3\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%2010%2F11-0078D6.svg\" alt=\"Platform: Windows 10/11\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/.NET-8.0-512BD4.svg\" alt=\".NET 8\" /\u003e\n\u003c/p\u003e\n\n# ArtIsWar's LEQ Control Panel\n\nA standalone Windows application for registry-level **Loudness Equalization (LEQ)** control and installation. Toggle LEQ on/off instantly with no audio service restart required.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/leq-1.png\" alt=\"LEQ Control Panel screenshot\" width=\"560\" /\u003e\n\u003c/p\u003e\n\n## Features\n\n- **LEQ Toggle:** Enable/disable Loudness Equalization with immediate effect\n- **Release Time Control:** Adjust LEQ release time (2-7) with real-time Windows UI sync\n- **LEQ Installation:** Install LEQ on devices without native enhancement support, with clean install and uninstall options\n- **Device Management:** Switch between audio devices with automatic state detection and device change monitoring\n- **E-APO Awareness:** Detects Equalizer APO and adjusts behavior — gates LEQ installation on E-APO device configuration, offers chain repair when conflicts are detected, and shows a neutral \"Get E-APO\" button that links directly to the download when E-APO is not installed\n- **System Tray:** Minimize to tray with quick toggle, device info, and settings access\n- **Headless Mode:** CLI flags for hotkey and shortcut integration (see below)\n- **ArtTuneKit Integration:** Detects ArtTuneKit and defers device management when installed; shows an overlay on Art Tune devices with a button to launch ArtTuneKit directly\n- **Auto-Update:** Checks GitHub releases for new versions on startup, with manual check available from the Settings menu\n- **Update Integrity:** SHA256 hash verification for downloaded updates\n- **Settings:** Run at startup, start minimized, always-on-top, configurable close behavior (minimize to tray / exit / ask), desktop shortcut management\n- **Registry Health Checks:** Detects broken COM CLSID registrations and per-device CompositeFX keys blocking LEQ; the Install button turns red with a one-click fix that rewrites the affected registry entries\n- **Post-Install Verification:** After installing LEQ, a guided dialog opens alongside Windows Sound Panel to walk you through confirming LEQ is active, with a Spatial Audio compatibility warning (Windows Sonic / Dolby Atmos / DTS:X will silently block LEQ)\n- **Audio Format Display:** Shows the selected device's speaker layout (Stereo, 5.1, 7.1, etc.) and format details (bit depth, sample rate) in the device info strip\n- **Activity Log:** A collapsible console panel logs all actions in real time with timestamps: device detection, installs, toggles, registry repairs, and color-coded warnings/errors\n- **Smart Device Reset:** Adapts to device type. Voicemeeter devices are excluded (button disabled); VB-Audio and Hi-Fi virtual cables warn of full driver removal; physical devices with shared hardware endpoints list all affected sibling endpoints before proceeding\n- **Utilities:** Open Windows Sound settings and restart Windows Audio service from within the app\n\n## Requirements\n\n- Windows 10 or 11 (x64)\n- Administrator privileges (required for registry access)\n\nThe application is distributed as a self-contained single-file executable. No .NET runtime installation required.\n\n## Usage\n\nLaunch `LEQControlPanel.exe` normally for the full GUI, or use command-line flags for headless operation:\n\n| Flag | Description |\n|------|-------------|\n| *(none)* | Launch the GUI |\n| `-silent` | Toggle LEQ on the preferred device and exit (no window) |\n| `-toggle` | Same as `-silent` |\n\n### Headless mode details\n\nWhen launched with `-silent` or `-toggle`, the application:\n\n1. Enumerates all audio render devices\n2. Selects the device last chosen in the GUI (saved in the registry). Falls back to the first device with LEQ configured, then the first available device.\n3. Toggles LEQ on/off on that device\n4. Exits immediately\n\nNo window, splash screen, or tray icon is shown. If no devices are found or the toggle fails, the process exits silently. Headless mode skips the single-instance check, so it can run while the GUI is already open.\n\n### Setting up a global hotkey\n\nWindows does not natively support binding a global hotkey to an arbitrary executable, but you can use a shortcut:\n\n1. Right-click your desktop and select **New \u003e Shortcut**\n2. Set the target to the full path of the executable with the `-toggle` flag:\n   ```\n   \"C:\\path\\to\\LEQControlPanel.exe\" -toggle\n   ```\n3. Name the shortcut (e.g. \"Toggle LEQ\")\n4. Right-click the new shortcut, open **Properties**\n5. Click the **Shortcut key** field and press your desired key combination (e.g. `Ctrl+Alt+L`)\n6. Under **Run**, select **Minimized**\n7. Click **OK**\n\nThe hotkey will work globally as long as the shortcut remains on the desktop or in the Start Menu.\n\n## Building from Source\n\n**Prerequisites:** [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) (Windows x64)\n\n```bash\ngit clone https://github.com/ArtIsWar/LEQControlPanel.git\ncd LEQControlPanel\ndotnet build src/LEQControlPanel/LEQControlPanel.csproj -c Release\n```\n\nTo publish a self-contained executable:\n\n```bash\ndotnet publish src/LEQControlPanel/LEQControlPanel.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false\n```\n\n\u003e **Note:** The application requires administrator privileges to modify Windows audio registry settings. When debugging in VS Code or Visual Studio, run the IDE as administrator.\n\n## Project Structure\n\n```\nLEQControlPanel.sln\nsrc/\n  LEQControlPanel/\n    Program.cs                        # Entry point\n    App.xaml(.cs)                     # Startup, single-instance, headless mode\n    MainWindow.xaml(.cs)              # Primary UI and device management\n    Dialogs/\n      ConfirmationDialog.xaml(.cs)    # Close-behavior preference (tray vs exit)\n      EapoWarningDialog.xaml(.cs)     # Pre-install E-APO conflict warning\n      EapoChainFixDialog.xaml(.cs)    # E-APO chain repair prompt\n      LeqVerifyDialog.xaml(.cs)       # Post-install LEQ verification wizard\n      ResetDeviceWarningDialog.xaml(.cs)  # Smart device reset warnings\n      StyledMessageBox.cs             # MessageBox API wrapper\n      StyledMessageBoxWindow.xaml(.cs)  # Themed message box UI\n    Windows/\n      AboutWindow.xaml(.cs)           # Version, credits, embedded license viewer\n      SplashWindow.xaml(.cs)          # Animated startup splash\n      UpdateProgressWindow.xaml(.cs)  # Download progress with cancel support\n    Utilities/\n      DarkTrayMenuRenderer.cs         # Dark-themed system tray context menu\n    Services/\n      AudioService.cs                 # Registry-level LEQ operations via PowerShell\n      DeviceChangeNotifier.cs         # Real-time device add/remove/state via COM\n      SoundPanelHelper.cs             # Opens mmsys.cpl with clean device view\n      UpdateChecker.cs                # GitHub release version check\n      UpdateService.cs                # In-place update with SHA256 verification\n    Models/\n      AudioDevice.cs                  # Device model\n  scripts/Modules/\n    LEQ-Engine.ps1                    # PowerShell engine (embedded resource)\n```\n\n## Credits\n\n- Original concept: [Falcosc/enable-loudness-equalisation](https://github.com/Falcosc/enable-loudness-equalisation)\n- Extended implementation: [ArtIsWar](https://github.com/ArtIsWar)\n\n## Third-Party Software \u0026 Acknowledgments\n\nLEQ Control Panel does not bundle or redistribute third-party software.\nIt configures Windows audio system components and interacts with Equalizer APO if installed.\n\n| Software / Technique | Role | License | Link |\n|----------------------|------|---------|------|\n| [Equalizer APO](https://sourceforge.net/projects/equalizerapo/) | Audio processing engine (LEQ installed as child APO) | GPL-2.0+ | [SourceForge](https://sourceforge.net/projects/equalizerapo/) |\n| Microsoft WMALFXGFXDSP.dll | Windows system DLL providing loudness equalization APO | Microsoft (system component) | - |\n| [Microsoft.PowerShell.SDK](https://www.nuget.org/packages/Microsoft.PowerShell.SDK) | In-process PowerShell engine for registry operations | MIT | [NuGet](https://www.nuget.org/packages/Microsoft.PowerShell.SDK) |\n\n## License\n\nThis project is licensed under the **GNU General Public License v3.0**. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartiswar%2Fleqcontrolpanel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartiswar%2Fleqcontrolpanel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartiswar%2Fleqcontrolpanel/lists"}