Sound balance keeps changing on High Sierra and Mojave
i have a problem that every time when i reconnected my Bose QC35 II the sound balance was to the right instead of balanced in the middle.
Solution 1:
So i found a solution on Reddit with the AppleScript but this did not work completely form me because it was throwing errors sometime:
"System Events got an error: Can’t get tab group 1 of window 1 of process \"System Preferences\". Invalid index." number -1719 from tab group 1 of window 1 of process "System Preferences"
original source of the code: https://www.reddit.com/r/apple/comments/34qmn0/is_there_a_shortcut_or_command_to_switch_the_lr/
Original code:
tell application "System Preferences"
activate
reveal anchor "output" of pane id "com.apple.preference.sound"
end tell
tell application "System Events"
tell slider 1 of group 1 of tab group 1 of window 1 of process "System Preferences"
set value to 0.5
end tell
end tell
tell application "System Preferences"
quit
end tell
Working code
I made some changes to the code:
tell application "System Preferences"
activate
reveal anchor "output" of pane id "com.apple.preference.sound"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until exists tab group 1 of window "Sound"
end repeat
tell slider 1 of group 1 of tab group 1 of window "Sound"
set value to 0.5
end tell
end tell
end tell
tell application "System Preferences"
quit
end tell
i saved my code in ~/Applications/FixSoundBalance.applescript
Cronjob way
And made a crontab crontab -e
with the value:
*/5 * * * * /usr/bin/osascript ~/Applications/FixSoundBalance.applescript >/dev/null 2>&1
And on Mojave, you need to give the first time permissions to Cron to access Accessibility (under Security & Privacy, tab privacy), after that, it works fine.
Alfred way
When you use the alfredapp https://www.alfredapp.com/, you can set the under Features -> Default Results -> Extras
the checkbox AppleScripts
then when you search for Fix... you get the script as result and you can run it directly. Then you do not need to set a cronjob.
Solution 2:
This free app also solves the problem:
https://www.tunabellysoftware.com/balance_lock/
Headphones a little off? Noticing your audio isn't quite centred? Enter Balance Lock - it will keep your audio centred and prevent left/right drift.
It's the perfect utility for making sure when plugging and unplugging headphones that the audio stays centred. It was designed out of frustration of the long standing OS X bug where the audio balance can randomly move away from the center.
It's simple to use and runs in the background un-intrusively.
Download it now, completely for free to enjoy perfect audio that is no longer slightly off balance!