Your Mac is not malfunctioning. macOS has a genuine setting that controls automatic output switching, and turning it off stops the system-level version of the behaviour. But it will not stop every app from grabbing the output the moment it wants to, and it will not stop a Bluetooth device from reclaiming the default the instant it reconnects.
This is one of the most widely reported audio complaints on macOS: music playing through the built-in speakers suddenly comes out of a pair of AirPods across the room, or a call yanks the output away from a set of studio monitors mid-sentence. There is a real fix for the most common cause of it, a real reason two other causes survive that fix, and a real distinction between wanting no automatic switching at all and wanting switching that only ever goes where you actually want it to.
Where is the setting that stops macOS switching audio output automatically?
Open the Apple menu, choose System Settings, click Sound, then Output. Look for a toggle called "Automatically switch audio output" (on some macOS versions the same control is labelled "Automatically switch to and from Bluetooth devices"). Switch it off.
That single toggle is what tells macOS to move your default output to whichever device most recently became active, a Bluetooth speaker powering on, a pair of headphones reconnecting, a new device appearing on the network. Turn it off and macOS stops making that call for you: whatever output you have selected stays selected until you change it yourself. For the largest share of people who search for "why does my Mac keep changing speakers", this one setting is the entire, correct answer, and there is no need to install anything to get it.
Why do Zoom, Teams or FaceTime still take over your speakers?
Because that switch is not coming from the setting you just turned off. When a call starts, apps like Zoom, Microsoft Teams and FaceTime can ask macOS directly for a specific audio output, usually whichever microphone and speaker pairing the app considers its default for calls. That request goes straight to the audio system the moment the call begins, entirely separately from the "switch when a device becomes active" behaviour the Sound settings toggle governs.
There is no system setting, and no third-party app sitting above macOS's audio layer, that can stop another app from asking for a device when it opens its own audio session. It is app-level behaviour, decided by whoever wrote the app, and it sits outside anything Chorus, or any other utility, can reach into and override. If a call keeps grabbing the wrong output, the fix has to happen inside that app's own audio settings, not in System Settings.
Every feature free for 30 days. No account, no card details.
Download for MacWhy does my Bluetooth speaker still become the default after I turn the toggle off?
Because reconnecting is a different code path from the one that toggle switches off. The setting above governs whether macOS reassigns the default output while your Mac is already awake and a new device becomes active. Reconnection is separate: when a Bluetooth device comes back after your Mac wakes from sleep, or after the device walks back into range, macOS can still set it as the default the moment the link re-establishes, because that happens as part of bringing the device back at all, not as part of the "switch during active audio" behaviour the toggle controls.
This is why the same toggle can look like it works for weeks, then appear to fail the first time your Mac wakes up with a paired speaker already back in range. It has not failed. It was never the mechanism handling that particular case.
No switching at all, or smart switching to devices you choose?
These are two different problems, and it is worth being clear about which one you actually have. If you want no automatic switching, ever, under any circumstance, the free System Settings toggle above is the complete, correct answer. You choose the output every time, macOS never overrides it, and there is nothing further to buy or install.
If instead you want predictable switching, only between specific devices you actually use, in an order you choose, macOS's built-in toggle cannot do that. It is all-or-nothing: on, and it reacts to any device becoming active; off, and it reacts to none. There is no built-in way to say "switch to my desk speakers when they power on, but never to a stranger's Bluetooth headphones that happen to be nearby."
That second problem is what Chorus's Auto-Switch feature solves. Rather than reacting to whatever device most recently made noise, it follows only the specific outputs, inputs and groups you have chosen, connecting and disconnecting exactly as you set it up. It sits alongside Chorus's other controls: grouping several outputs to play as one with a real shared volume, setting a separate output and volume per app, and binding a keyboard shortcut to jump straight to any device or group. None of it needs a driver or a kernel extension; Chorus groups outputs using the same mechanism already built into macOS, the one behind Audio MIDI Setup's Multi-Output Device, so there is nothing lower-level to install.
Chorus is a one-time purchase, $4.99, covering up to three Macs, with a 30-day free trial that includes every feature and needs no account or card details to start. It runs on macOS 13 or later on both Intel and Apple Silicon.
For every option available on a Mac, see Apple's own guide to sound output settings.
Frequently asked questions
How do I stop my Mac from automatically switching audio output?
Go to System Settings, then Sound, then Output, and turn off the "Automatically switch audio output" toggle (labelled "Automatically switch to and from Bluetooth devices" on some macOS versions). This stops macOS from silently moving your output whenever a new device becomes active, and for most people reporting this problem, it is the complete fix.
Why does Zoom, Teams or FaceTime still change my speakers even with the toggle off?
Because that is separate, app-level behaviour. When a call starts, these apps can request a specific audio output directly from macOS, which happens outside the "switch on system audio activity" behaviour the toggle controls. No system setting, and no app sitting above macOS, can stop another app from asking for a device the moment it starts a call.
Why does my Bluetooth speaker still become the default even with automatic switching turned off?
Reconnecting runs through a different code path to the one the toggle governs. When a Bluetooth device reconnects, whether your Mac has just woken from sleep or the device has come back into range, macOS can still set it as the default output, because that happens as part of the reconnection itself rather than the ongoing-audio switching the toggle turns off.
What is the difference between turning off automatic switching and using Chorus's Auto-Switch?
Turning off the system toggle stops all automatic switching, so you choose the output yourself every time. Chorus's Auto-Switch is a different, opt-in kind of switching: it follows only the specific devices or groups you choose, in the order you set, rather than macOS's blunt all-or-nothing behaviour.
Does Chorus stop apps like Zoom from grabbing the output?
No. That is app-level behaviour outside any system-level or third-party control, and Chorus does not override it. What Chorus does control is which of your own chosen devices gets used and when, through its own Auto-Switch and per-app audio routing.