Control your microphone using keyboard and mouse hotkeys.
# Add the extras bucket
scoop bucket add extras
# Install MicMute
scoop install micmute
You can update MicMute using scoop update micmute
, your config file will be saved between updates.
You can download MicMute and use it standalone.
The first time you launch MicMute, a configuration window will open
Feedback
tab and select the feedback options you want. see feedback options.AFK timeout
.PTT delay
option.You can change a profile's name by right clicking it.
*
will appear before the microphone's name
Option | Description |
---|---|
Passthrough | Hotkey presses will passthrough to the system (They won't be exclusive to MicMute). |
Wildcard | Trigger the hotkey even if it's pressed with extra modifiers/keys. |
Neutral modifiers | MicMute won't differentiate between Left and Right modifiers (i.e Left/Right shift will both be Shift). This option should be set before recording the hotkey. |
Hybrid PTT | Turns a PTT hotkey into a Hybrid PTT/Toggle hotkey (Long press -> PTT, short press -> toggle). |
Play a sound when muting/unmuting the microphones.
You can select which output device to play the sound on.
You can use custom sounds:
mp3
,wav
) are in the same folder as MicMute.exe
Rename them as:
Mute sound: mute
Unmute sound: unmute
PTT on: ptt_on
PTT off: ptt_off
Show an OSD when muting/unmuting the microphones.
Show the microphone's state in an always-on-top overlay.
Windowed fullscreen
or Borderless
for the overlay to show up on topico
/png
/jpeg
) in the same folder as MicMute.exe
and rename them as:
overlay_mute
overlay_unmute
Link a profile to an app/game, when the app becomes visible (not minimized or hidden), MicMute will automatically switch to that profile, when the app is minimized/hidden/closed, MicMute will switch back to the default profile.
Foreground only option (Enabled by default) can be disabled so background apps (minimized or hidden) can also trigger the profile switch. v1.2.8+
Locks the microphone's volume to a specific value and prevents other apps from changing it.
v1.2.8+
Run programs and powershell scripts when muting/unmuting the microphone(s).
Run any program (with optional arguments) when muting/unmuting the microphone(s).
You can also use the following variables in the arguments, which will be replaced with the actual values for the microphone:
Variable | Description |
---|---|
${microphone.name} |
The microphone's name (example: Headset Microphone ). When using All Microphones, this will only contain the word Microphones |
${microphone.fullName} |
The microphone's full name, including the controller's name (example: Headset Microphone (Razer Barracuda X) ). When using All Microphones, this will contain the full name of every microphone seperated by , |
${microphone.state} |
The current state of the microphone (Muted or Online ) |
${microphone.isMuted} |
Whether the microphone is muted or not (true or false ) |
${microphone.hotkeyTriggered} |
Whether the hotkey was triggered or not (true or false ). if this is false , the microphone was muted/umuted externally (by windows or another app) |
Run a powershell script when muting/unmuting the microphone(s), This can be used for anything, for example, you could send an http request to turn on/off a connected light with Home Assistant or send a notification to your phone with ntfy.
You can use the same variables as the program action (and you can insert the 'Microphone Data' snippet in the editor to use them).
This action works by encoding the script using base64 (UTF-16LE) and then passing it to powershell using the -EncodedCommand
parameter, this avoids the need to create a temp file to run the script and even avoids any issues related to escaping special characters.
v1.2.8+
Syncs the microphone's state with ASUS Aura Sync compatible devices.
Due to how slow the Aura Sync API is, this action requires a seperate MicMute process that controls the RGB by listening for messages from the main MicMute process, this ensures that the action does not affect the responsiveness of the hotkeys.
These options are shared between all profiles.
Mute the microphone(s) when starting up or switching profiles.
Show an OSD with the profile's name when switching to it.
UI Theme can be set to System Theme
, Dark
or Light
This does not affect the tray icon color, which is always based on the system theme
Prevent other apps from changing the microphone's state (i.e mute/unmute the microphone).
You can control Voicemeeter's inputs and outputs using MicMute, after turning on the option, refresh the microphones list and you should see voicemeeter's inputs (strips) and outputs (buses) in the microphone dropdown.
By default, MicMute will use the bus/strip's mute
property, in the case of a strip, it can be set to any other property (A1
, A3
, B3
, etc..) by changing the VMRStripProperty
value in the config file.
You can have multiple active hotkeys to control different microphones simultaneously.
To do this, turn on the Multiple
option then select another microphone from the list and setup hotkeys for it.
When using this feature, the following applies:
All Microphones
from the microphones list.When using this feature, the following applies:
Multiple
option will be disabledForce Microphone State
option will be enabled
When running AutoHotkey alongside Microsoft Powertoys, they might conflict with each other, which may result in the hotkeys not working at all. microsoft/PowerToys#2132
Albion Online detects MicMute as a botting tool, the games blacklists anything written in autohotkey and marks it as a botting tool. #23
Windows defender might falsely detect MicMute as a trojen/malware (Zpevdo.B
or Wacatac.B!ml
). I always submit new releases to microsoft to remove the false detections and they usually do in a couple of days, but sometimes when they release a new definition update the detection occurs again. #25
Hold Shift when clicking Edit configuration in the tray menu, and the config file will open in the default JSON editor
Hold Shift when clicking Help in the tray menu, and the logs window will open.
Argument | Description |
---|---|
/profile=<profile name> |
Startup with a specific profile. |
/noUI |
Disable the configuration UI completely. This decreases memory usage by almost 60%. |
/debug |
Add shortcuts to ListVars , ListHotkeys and View Log in the tray menu. Enables logging for Aura Sync action (v1.2.8+ ) |
/logFile=<file_to_log_to> |
Outputs the log to a file (it's written to stdout by default ) |
Example: MicMute.exe "/profile=profile 1" /noUI /debug /logFile=MicMute.log
Note: Run the following commands in powershell, not command prompt.
You'll need AutoHotkey (Ahk2Exe), git and ahkpm in your path.
You can install them using scoop:
Install scoop
# This allows running powershell scripts.
Set-ExecutionPolicy RemoteSigned -scope CurrentUser;
# This runs the scoop installer script.
irm get.scoop.sh | iex
scoop install git;
scoop bucket add extras;
scoop install autohotkey ahkpm;
git clone https://github.com/SaifAqqad/AHK_MicMute.git;
cd .\AHK_MicMute\;
ahkpm install;
Invoke-WebRequest "www.un4seen.com/files/bass24.zip" -OutFile ".\bass24.zip";
Expand-Archive ".\bass24.zip" -DestinationPath ".\base24\";
Copy-Item ".\base24\x64\bass.dll" -Destination ".\src\Lib\bass.dll";
ahk2exe.exe /in ".\src\MicMute.ahk" /out ".\src\MicMute.exe";
This project would not exist without these people: