Bidirectional sync between the Elgato Wave hardware mute button and OS-level mute (via a keyboard shortcut)
Requirements
- Elgato Wave Link
- Keyboard Maestro
- Import the macros in the
macros
directory
- Import the macros in the
- nvm
- Zoom (optional)
- Ensure the Mute/Unmute My Audio keyboard shortcut is set to its default (⇧⌘A) and is enabled globally
Install packages
nvm use
corepack enable
pnpm install
Ensure the Wave Link application is running and the microphone is connected, then run
pnpm start
Assumes the microphone is unmuted when launched, however, you can override
this with the --muted
flag
When active, use ⌃⇧⌘A or the hardware mute button on the Elgato Wave to toggle mute and they'll stay in sync (and keep Zoom in sync, too)
Many actions that manipulate the Wave hardware are indistinguishable from legitimately toggling the hardware mute button, e.g.,
- Pressing the dial button to cycle between gain/monitoring volume/monitoring balance adjustment
- Updating some settings in the Wave Link application, e.g., Wave gain lock
- Saving settings to hardware in the Wave Link application
As a workaround, you can ⌃C the ts-node
process and restart it to match
the actual hardware mute status by optionally passing the --muted
flag
Muting via the Zoom UI itself isn't registered by the application nor hardware: Zoom will be muted at the software level, but the hardware will remain unmuted
Simply toggle mute via ⌃⇧⌘A or the hardware mute button a couple of times to put everything back in sync
Thanks to
- Stephen Millard (@techflare) — Mute Your Microphone with Keyboard Maestro (2018)
- Matt Aitchison — https://github.com/mattatcha/touchportal_elgato-wave (2020)