Game audio and voice chat share a speaker because macOS only has one system default output, and both apps follow it unless something points one of them elsewhere. The fix is not app-specific: send whichever app has its own output setting to one device, and send whatever does not to another, using a tool that sits between the app and macOS.
This applies whether your teammates are on Discord, TeamSpeak, a game's own built-in voice chat, FaceTime, or a walkie-talkie app nobody else has heard of. The specific menu changes from app to app. The underlying problem, and the fix, does not.
Why this is worth doing at all
Explosions, gunfire, and music all sit in roughly the same frequency range as speech, which is exactly why a loud game moment can bury a teammate's callout even when both are playing at a sensible volume. Turning the whole game down to hear people talk means missing quieter game audio cues in return. Splitting the two onto separate outputs sidesteps the trade-off entirely: voice stays clear on its own device no matter how loud the game gets on its own, because they are no longer mixed into the same signal before it reaches your ears.
The other common reason is comfort rather than clarity. Wearing a full headset just to hear one person talk while the rest of a session is on desk speakers gets old fast, and running two sets of headphones at once is not something anyone actually wants to do. Once voice and game audio are on separate outputs, you can pick whichever combination of hardware suits you, one lightweight earbud for voice and speakers for everything else, or the reverse, without wearing more gear than the moment calls for.
The one thing that actually matters: does the app have its own output setting?
Every app you might route falls into one of two groups, and which group it is in decides how you route it.
Apps with their own output setting. Discord, TeamSpeak, Zoom, FaceTime, and a handful of others let you pick a specific output device from inside the app itself, usually tucked into an audio or voice settings screen. Point that setting at whichever device you want voice on, and the app keeps using it every time it opens, independent of whatever the rest of the Mac is doing.
Apps with no output setting at all. Most games have none. Neither do most launchers, and neither does a game's own built-in voice chat if it has no audio menu of its own beyond a volume slider. These apps simply take whatever macOS currently has set as the system default, with no way from inside the app to point them anywhere else.
The setting decides the method, not the app's name. A game with its own output picker behaves like the first group. A voice app with none behaves like the second. Work out which bucket each of your two apps falls into before deciding how to split them.
Every feature free for 30 days. No account, no card details.
Download for MacHow the routing actually works
For an app with its own setting, the work is entirely inside that app: find its audio or voice preferences and choose your device from the dropdown. Nothing outside the app is involved, and nothing outside the app needs to change.
For an app with no setting, that dropdown does not exist to find. What it needs instead is something that sits between the app and Core Audio, the system macOS uses to move sound around, and redirects that one app's stream to a specific device regardless of the system default. That is what Chorus does: open it from the menu bar, find the app in the list, and set its output. The app itself is never touched and never knows the redirect happened. From then on, that app keeps using the device you chose every time it launches, the same way an app with a built-in setting remembers its own choice.
Combine the two and both halves of the split hold on their own: whichever app has a setting keeps using it, and whichever app does not gets the same result from outside. Neither one has to be reconfigured once it is set, and setting one does not disturb the other.
A worked example with the pieces swapped
Say your teammates use a game's built-in voice chat rather than a separate app, and that voice chat has no output picker of its own, only a volume slider buried in the game's audio menu. The game's other sound effects and music come from the exact same process, so you cannot split the two by routing the game normally, they are the same app.
This is the one case the general pattern cannot solve, and it is worth naming rather than glossing over: routing works per app, and if voice and game sound both come from one process, there is nothing to split them by. The workaround is to move voice chat somewhere it can be routed independently, an external app like Discord or TeamSpeak instead of the game's own channel, at which point the pattern above applies exactly as normal: the voice app follows its own setting or Chorus, and the game follows Chorus on its own. For the concrete Discord version of this setup, including exactly where its device dropdowns live, see Discord to your headset, game audio to your speakers.
For every option available on a Mac, see Apple's own guide to sound output settings.
Frequently asked questions
Why do game audio and voice chat keep coming out of the same speaker?
Because macOS plays all sound through one system default output unless something tells an individual app otherwise. A voice chat app and a game both follow that same default, so unless one of them has been pointed somewhere else, they always end up on the same device.
Does this work for any voice chat app, not just Discord?
Yes. The mechanism is the same whether your teammates are on Discord, TeamSpeak, a game's built-in voice chat, FaceTime, or anything else. What matters is which of the two apps, the game or the voice app, has its own output setting and which one does not, not which specific app either one is.
Do I need separate headphones and speakers for this to work?
No. It works with any two outputs your Mac already has: a headset and desk speakers, a headset and a TV, or even two different pairs of headphones connected at once. The point is having two distinct outputs available, not any particular hardware.
What if my voice chat app has no output setting of its own?
Then it behaves exactly like a game with no output picker, and needs the same fix: an app like Chorus that assigns its output at the macOS level instead of inside the app. The routing works the same way regardless of which of the two apps is missing the setting.
Does Chorus change any settings inside the apps themselves?
No. Chorus routes audio between an app and macOS, underneath any settings the app has of its own. If an app already has its own output dropdown, that keeps working exactly as before. Chorus only fills the gap for apps that have no such setting to begin with.