Skip to content

Instantly share code, notes, and snippets.

@mluisbrown
Last active June 8, 2023 19:02
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save mluisbrown/e5a89eeabd97c04083737b9261de5d75 to your computer and use it in GitHub Desktop.
Save mluisbrown/e5a89eeabd97c04083737b9261de5d75 to your computer and use it in GitHub Desktop.
AppleScript to set macOS audio input device to "Internal Microphone"
-- Sets your audio input source to "Internal Microphone"
-- Frequently needed if you use bluetooth headpohones and
-- run the Xcode iOS simulator, which will often set your
-- headphones to be the input device, resulting in a drastic
-- decrease in sound quality, and making it mono
tell application "System Preferences" to activate
tell application "System Preferences"
reveal anchor "input" of pane id "com.apple.preference.sound"
end tell
delay 0.5
tell application "System Events" to tell process "System Preferences"
tell table 1 of scroll area 1 of tab group 1 of window 1
select (row 1 where value of text field 2 is "Built-in")
end tell
end tell
quit application "System Preferences"
@lijiexi
Copy link

lijiexi commented Jun 14, 2022

Hi,
I run this script on my m1 pro chip mac with macos 12.2.1, and it appears a error. "System Events" encountered an error: Unable to get the value of the text field 1 of the process "System Preferences" for "Row 1's scroll area 1's tab group 1's window 1" = "Internal Microphone". Invalid index.
Any advice to fix this?
Best wish

@mluisbrown
Copy link
Author

mluisbrown commented Jun 14, 2022

Hi @lijiexi ,
This is because in macOS 12 the name changed from "Internal Microphone" to "MacBook Pro Microphone" (on my MacBook Pro). I guess this would change depending on what type of Mac you have (eg "MaBook Air Microphone"), so the solution is to change line 14 to:

        select (row 1 where value of text field 2 is "Built-in")

This selects based on the type, not the name of the input.

However, I never use this script any longer as for a while now the Xcode simulator allows you to default the simulator audio input to be the same as your Mac, so the problem doesn't occur any more.

@coolaj86
Copy link

Any ideas on how to update this for Ventura where there are no "panes" anymore?

~/bin/input-volume-set-max:98:166: execution error: System Settings got an error: AppleEvent handler failed. (-10000)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment