When I'm on a Microsoft Teams call, the in-built microphone input volume level always automatically adjusts to 100%, which is way too loud for other people. There doesn't seem to be any setting I can change to prevent this within Microsoft Teams, so I'm looking for a way to set the microphone input volume level to 50% automatically when a change in input volume level is detected.

Right now, every time the input volume adjusts, I manually type in osascript -e "set volume input volume 50" into terminal, so is there a way to trigger this command when input volume changes? (Preferably without third-party software)

1 Answer 1


You can bind both output volume & input volume in one script that can be accessed via Script Editor.app > preferences > show app icon in menu bar.

tell application "System Events"
    set volume 2 -- this can be from 0-7
    set volume input volume 50
end tell
  • The problem is this method still requires manual input. I'm trying to find a way to detect when there is a change in internal microphone input volume level, and then activate the terminal command. Apr 22, 2020 at 7:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .