'Set input volume to zero' option is not working on the 'toggle mute microphone' action.

Describe the bug
I have a trigger which toggles the mute for my microphone because the trigger uses an Apple Script widget on the stream deck to show the current state of the microphone. I also check the "Set input volume to zero" checkbox on the actual as well. The widget on the button has the following Apple Script to get the input volume, since it doesn't seem to be possible to get the muted state of the microphone.

set micMuted to (input volume of ( get volume settings ))
if micMuted < 1 then
  set returnValue to "muted"
else
  set returnValue to "unmuted"
end if

This worked on Sunday, but yesterday and today this is now not working. What seems to be happening is the microphone is being muted. I can see the effects of the mute in audio apps, but the input volume isn't being set to zero. The script is returning 100 for the micMuted variable, no matter what status the microphone's in when I press that button.

I have tried updating to the latest alpha version 6.373, but this didn't help. For reference, my previous stable version was 6.365. I've also made sure I'm on the latest version of Mac OS 26.3.1. Additionally, I've tried this same setup on my other laptop, and I get the same result.

Below is the contents of the exported action in case that's helpful as well.

[
  {
    "BTTLastUpdatedAt" : 1776150439.9643879,
    "BTTTriggerType" : 725,
    "BTTTriggerTypeDescriptionReadOnly" : "Apple Script Widget",
    "BTTTriggerTypeDescription" : "Toggle Mic Mute",
    "BTTTriggerClass" : "BTTTriggerTypeStreamDeck",
    "BTTUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
    "BTTOrder" : 3,
    "BTTDisplayOrder" : 1,
    "BTTMergeIntoTouchBarGroups" : 1,
    "BTTActionCategoryTouchRelease" : [
      {
        "BTTLastUpdatedAt" : 1776149030.0679779,
        "BTTTriggerParentUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
        "BTTIsPureAction" : true,
        "BTTUUID" : "097D8560-9560-4DCC-8C47-2F442951DDA9",
        "BTTPredefinedActionType" : 585,
        "BTTPredefinedActionName" : "Toggle Mute Microphone (Audio Input)",
        "BTTAdditionalActionData" : {
          "BTTMicMuteAlsoSetVolume" : 1
        },
        "BTTOrder" : 0
      }
    ],
    "BTTActionCategoryLongPress" : [
      {
        "BTTLastUpdatedAt" : 1776149031.3943019,
        "BTTTriggerParentUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
        "BTTIsPureAction" : true,
        "BTTUUID" : "17B4A8AA-0439-412D-B51B-6B8A5CFA3734",
        "BTTPredefinedActionType" : 585,
        "BTTPredefinedActionName" : "Toggle Mute Microphone (Audio Input)",
        "BTTAdditionalActionData" : {
          "BTTMicMuteAlsoSetVolume" : 1
        },
        "BTTOrder" : 1
      }
    ],
    "BTTStreamDeckButtonName" : "Toggle Mic Mute",
    "BTTTriggerConfig" : {
      "BTTScriptRegex" : "^muted$",
      "BTTStreamDeckCornerRadius" : 12,
      "BTTStreamDeckDisplayOrder" : 1,
      "multiTrigger" : 0,
      "BTTStreamDeckSFSymbolName" : "microphone.circle.fill",
      "BTTStreamDeckAlternateAttributedTitle" : "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2868\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl}\n{\\colortbl;\\red255\\green255\\blue255;}\n{\\*\\expandedcolortbl;;}\n}",
      "BTTScriptAlwaysRunOnInit" : 1,
      "BTTStreamDeckAlternateIconColor1" : "210.000000, 64.000000, 64.000000, 127.500000",
      "BTTStreamDeckAlternateIconColor2" : "210.000000, 64.000000, 64.000000, 127.500000",
      "BTTStreamDeckIconColor3" : "56.000000, 178.000000, 110.000000, 255.000000",
      "BTTScriptSettings" : {
        "BTTScriptType" : 0,
        "BTTAppleScriptUsePath" : false,
        "BTTScriptLocation" : 0,
        "BTTAppleScriptString" : "set micMuted to (input volume of ( get volume settings ))\nif micMuted < 1 then\n  set returnValue to \"muted\"\nelse\n  set returnValue to "unmuted"\nend if",
        "changedFile" : "A02DCBC3-983B-4711-9EA1-16077F9DB331"
      },
      "BTTStreamDeckAlternateIconColor3" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckAlternateSFSymbolStyle" : 2,
      "BTTScriptNeverUpdateTitleBasedOnScriptOutput" : 1,Below is the full 
      "BTTStreamDeckIconColor1" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckMainTab" : 3,
      "BTTStreamDeckAlternateCornerRadius" : 12,
      "BTTStreamDeckUsesActionCategories" : true,
      "BTTStreamDeckAlternateBackgroundColor" : "28, 42, 74, 255",
      "BTTStreamDeckAppearanceTab" : 0,
      "BTTStreamDeckBackgroundColor" : "28, 42, 74, 255",
      "BTTScriptUpdateInterval" : 1,
      "BTTStreamDeckUseFixedRowCol" : 1,
      "BTTStreamDeckAlternateIconType" : 2,
      "BTTStreamDeckOnlyOnSpecificDevices" : 1,
      "BTTStreamDeckSN" : "a00na443329j4t",
      "BTTStreamDeckImageHeight" : 50,
      "BTTStreamDeckAlwaysShowButton" : 1,
      "BTTStreamDeckAttributedTitle" : "BAtzdHJlYW10eXBlZIHoA4QBQISEhA1OU1RleHRTdG9yYWdlAISEGU5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcAhIQSTlNBdHRyaWJ1dGVkU3RyaW5nAISECE5TT2JqZWN0AIWShISED05TTXV0YWJsZVN0cmluZwGEhAhOU1N0cmluZwGWhAErDEFwcGxlClNjcmlwdIaEAmlJAQyShISEDE5TRGljdGlvbmFyeQCWhAFpA5KEmZkHTlNDb2xvcoaShISEB05TQ29sb3IAloQBYwGEBGZmZmYBAQEBhpKEmZkQTlNQYXJhZ3JhcGhTdHlsZYaShISEF05TTXV0YWJsZVBhcmFncmFwaFN0eWxlAISEEE5TUGFyYWdyYXBoU3R5bGUAloQEQ0NAUwIAhQCGkoSZmQZOU0ZvbnSGkoSEhAZOU0ZvbnQelpwshAVbNDRjXQYAAAAkAAAA__5TAEYAQwBvAG0AcABhAGMAdAAtAFIAZQBnAHUAbABhAHIAhAFmGZ4AngGeAJ4AhoaG",
      "BTTStreamDeckAlternateImageHeight" : 50,
      "BTTStreamDeckIconColor2" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckIconType" : 2,
      "BTTStreamDeckSFSymbolStyle" : 2,
      "BTTStreamDeckFixedRow" : {
        "BTTStreamDeckFixedCol" : "1",
        "BTTStreamDeckFixedRow" : "4"
      },
      "BTTStreamDeckAlternateSFSymbolName" : "mic.slash.circle"
    }
  }
]

I'm not sure whether this is a bug that was introduced or whether I'm just missing something. I've changed a setting somewhere that's broken this, but I've tried for a few hours now and I haven't been able to find anything that I've changed that would have affected this. Wonder if anyone has any ideas on how I can debug this or any other context on what could be going on?


Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):


Screenshots
If applicable, add screenshots to help explain your problem. (You can just paste or drag them here)


Device information:

  • Type of Mac: MacBook Pro 13-inch M1 2020 (Also tried on a MacBook Pro 14-inch M5 2025)
  • macOS version: Tahoe 26.3.1
  • BetterTouchTool version: 6.365 (Also upgraded to Alpha Release 6.373 and reproduce the behaviour)

Additional information (e.g. crash logs, related issues, etc.):

your copied json seems to have some formatting issues, could you copy & paste it again? I think you accidentally typed some characters into it after pasting.

However I just checked and it seems to work fine here, I can see the input volume in System Settings => Sound => Input changing whenever I call the toggle mute microphone action.

Sorry about that. I've re-exported the JSON and pasted it below.

[
  {
    "BTTLastUpdatedAt" : 1776152883.148664,
    "BTTTriggerType" : 725,
    "BTTTriggerTypeDescriptionReadOnly" : "Apple Script Widget",
    "BTTTriggerTypeDescription" : "Toggle Mic Mute",
    "BTTTriggerClass" : "BTTTriggerTypeStreamDeck",
    "BTTUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
    "BTTOrder" : 3,
    "BTTDisplayOrder" : 1,
    "BTTMergeIntoTouchBarGroups" : 1,
    "BTTActionCategoryTouchRelease" : [
      {
        "BTTLastUpdatedAt" : 1776149030.0679779,
        "BTTTriggerParentUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
        "BTTIsPureAction" : true,
        "BTTUUID" : "097D8560-9560-4DCC-8C47-2F442951DDA9",
        "BTTPredefinedActionType" : 585,
        "BTTPredefinedActionName" : "Toggle Mute Microphone (Audio Input)",
        "BTTAdditionalActionData" : {
          "BTTMicMuteAlsoSetVolume" : 1
        },
        "BTTOrder" : 0
      }
    ],
    "BTTActionCategoryLongPress" : [
      {
        "BTTLastUpdatedAt" : 1776149031.3943019,
        "BTTTriggerParentUUID" : "5F248361-6BA4-4DFA-A6D4-E38033295A76",
        "BTTIsPureAction" : true,
        "BTTUUID" : "17B4A8AA-0439-412D-B51B-6B8A5CFA3734",
        "BTTPredefinedActionType" : 585,
        "BTTPredefinedActionName" : "Toggle Mute Microphone (Audio Input)",
        "BTTAdditionalActionData" : {
          "BTTMicMuteAlsoSetVolume" : 1
        },
        "BTTOrder" : 1
      }
    ],
    "BTTStreamDeckButtonName" : "Toggle Mic Mute",
    "BTTTriggerConfig" : {
      "BTTScriptRegex" : "^muted$",
      "BTTStreamDeckCornerRadius" : 12,
      "BTTStreamDeckDisplayOrder" : 1,
      "multiTrigger" : 0,
      "BTTStreamDeckSFSymbolName" : "microphone.circle.fill",
      "BTTStreamDeckAlternateAttributedTitle" : "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2868\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl}\n{\\colortbl;\\red255\\green255\\blue255;}\n{\\*\\expandedcolortbl;;}\n}",
      "BTTScriptAlwaysRunOnInit" : 1,
      "BTTStreamDeckAlternateIconColor1" : "210.000000, 64.000000, 64.000000, 127.500000",
      "BTTStreamDeckAlternateIconColor2" : "210.000000, 64.000000, 64.000000, 127.500000",
      "BTTStreamDeckIconColor3" : "56.000000, 178.000000, 110.000000, 255.000000",
      "BTTScriptSettings" : {
        "BTTScriptType" : 0,
        "BTTAppleScriptUsePath" : false,
        "BTTScriptLocation" : 0,
        "BTTAppleScriptString" : "set micMuted to (input volume of ( get volume settings ))\nif micMuted < 1 then\n  set returnValue to \"muted\"\nelse\n  set returnValue to \"unmuted\"\nend if",
        "changedFile" : "A02DCBC3-983B-4711-9EA1-16077F9DB331"
      },
      "BTTStreamDeckAlternateIconColor3" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckAlternateSFSymbolStyle" : 2,
      "BTTScriptNeverUpdateTitleBasedOnScriptOutput" : 1,
      "BTTStreamDeckIconColor1" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckMainTab" : 3,
      "BTTStreamDeckAlternateCornerRadius" : 12,
      "BTTStreamDeckUsesActionCategories" : true,
      "BTTStreamDeckAlternateBackgroundColor" : "28, 42, 74, 255",
      "BTTStreamDeckAppearanceTab" : 0,
      "BTTStreamDeckBackgroundColor" : "28, 42, 74, 255",
      "BTTScriptUpdateInterval" : 1,
      "BTTStreamDeckUseFixedRowCol" : 1,
      "BTTStreamDeckAlternateIconType" : 2,
      "BTTStreamDeckOnlyOnSpecificDevices" : 1,
      "BTTStreamDeckSN" : "a00na443329j4t",
      "BTTStreamDeckImageHeight" : 50,
      "BTTStreamDeckAlwaysShowButton" : 1,
      "BTTStreamDeckAttributedTitle" : "BAtzdHJlYW10eXBlZIHoA4QBQISEhA1OU1RleHRTdG9yYWdlAISEGU5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcAhIQSTlNBdHRyaWJ1dGVkU3RyaW5nAISECE5TT2JqZWN0AIWShISED05TTXV0YWJsZVN0cmluZwGEhAhOU1N0cmluZwGWhAErDEFwcGxlClNjcmlwdIaEAmlJAQyShISEDE5TRGljdGlvbmFyeQCWhAFpA5KEmZkHTlNDb2xvcoaShISEB05TQ29sb3IAloQBYwGEBGZmZmYBAQEBhpKEmZkQTlNQYXJhZ3JhcGhTdHlsZYaShISEF05TTXV0YWJsZVBhcmFncmFwaFN0eWxlAISEEE5TUGFyYWdyYXBoU3R5bGUAloQEQ0NAUwIAhQCGkoSZmQZOU0ZvbnSGkoSEhAZOU0ZvbnQelpwshAVbNDRjXQYAAAAkAAAA__5TAEYAQwBvAG0AcABhAGMAdAAtAFIAZQBnAHUAbABhAHIAhAFmGZ4AngGeAJ4AhoaG",
      "BTTStreamDeckAlternateImageHeight" : 50,
      "BTTStreamDeckIconColor2" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTStreamDeckIconType" : 2,
      "BTTStreamDeckSFSymbolStyle" : 2,
      "BTTStreamDeckFixedRow" : {
        "BTTStreamDeckFixedRow" : "4",
        "BTTStreamDeckFixedCol" : "1"
      },
      "BTTStreamDeckAlternateSFSymbolName" : "mic.slash.circle"
    }
  }
]

Though I think I may have just worked out what the problem is. I noticed that you were using the MacBook Pro's inbuilt microphone, whereas my setup uses the USB microphone. When I change to use the built-in microphone, the button works, but when I switch back to the USB microphone, it doesn't. It mutes, but it doesn't change the volume. Is the toggle mute microphone action intended only to work with the in-built microphone, or should it work with any Audio inputs?

it should not matter whether it is a usb connected device, however the volume change currently only applies to the selected default input device. If your built-in mic is the default, it will currently only apply to that.

I think I can add an option to apply to all input devices

Thanks for the quick replies this morning. I have done some more testing and it appears this is a hardware limitation with my USB microphone. I tried with a old cheap USB mic and the button works fine but just with my Blue Yeti microphone set up it appears that it doesn’t allow the action to change the volume to 0. It’s quite strange because I can manually change the volume in system settings and it respects it (icon changes and doesn’t capture sound), and the BTT “Toggle Mute Microphone” action does actually mute it. It just seems to be changing the volume specifically in the action that doesn’t work and only with that particular mic :thinking:

Even more weird, I can successfully set the volume to 0 with an applescript action with this script:

set volume input volume 0

So its something specific with how the Toggle Mute Microphone (and the Set Audio Input Volume) action works with this particular mic. The challenge I have with using that script is that I want the trigger to be a toggle button so I need the logic from the in-built action that remembers what to set it back to on unmute. How do you achieve that in the native action? Is it something I could recreate in the applescript or another script?