Mute button

The hardware is based upon the Digistump Digispark board, which is USB-based and arduino-compatible. So you can easily create USB HID devices with this board. This projects uses this ability to emulate a keyboard, which only sends the pre-programmed keystroke, which is used to mute/unmute (I am using CTRL+F12).

There is no back-channel, so initially the mute-button assumes the system is unmuted. In case the mute-button assumes the system is muted, an LED is switched on. The LED is switched off otherwise.

In muted state, you can keep the button pushed for min. 500ms to enter a "push-to-talk" mode. On pressing the button, the system is unmuted and on releasing it, it is muted again. The led blinks while this mode is active.

Files for 3d-printing the housing are provided alongside with the arduino-based source-code [1]. My build uses a arcade-style button, which you can hit really hard if necessary :-).

PC tools for muting

When it comes to using the mute button, you have mainly two options:

  1. Using the mute mechanism of your favorite phone conference tool. This of course means, that you might not be able to use the button for multiple tools and that it might only work, when the phone conference tool is in focus (the currently selected window).
  2. Using some kind of tooling, which is able of muting your microphone for the whole system.

In the following two sections i shortly explain how i accomplished the second option for Linux (I am using Linux Mint) and Windows.

Linux

In Linux you can simply mute the microphone, so all tools using it, simply get no sound. This of course means that the phone conference tools are not aware of your muted microphone and cannot display this status to other conference participants and also cannot alert you when you speak into a muted mic.

To do so, you can adapt and use a very simple script based upon amixer, which even displays a mute/unmute notification [2]. All you have to do now, is coupling the script to the shortcut mechanism of your linux distribution and give it the same shortcut as configured for your mute-button (I am using CTRL + F12).

Windows

In Windows such things are not that simple, so you need a more advanced tool to do your muting. This is where MicMute comes in [3]. This tool enables you to mute/unmute the microphone in a way that your phone conference tool is aware of the muting, which is very convenient. The tool supports definition of a custom shortcut for muting/unmuting, so you simply configure this to the same shortcut as configured for your mute-button (for me it is CTRL + F12).

Conclusion

With this stupidly simple tool, I am able to mute/unmute as simple as possible. I am able to use this on different operating systems on my work computer and my private computer and as i am using a USB switch, to which the mute button is attached, the button simply works in both environments without any change.

References:

[1] https://github.com/lrademacher/MuteButton
[2] https://nikhilwanpal.in/blog/mute-mic-with-keyboard-shortcut-on-ubuntu-or-linux-mint/
[3] https://sourceforge.net/projects/micmute/