Fix it
How to route audio per app on Windows
Windows gives you one default output and a volume mixer that only sets levels, so sending each app somewhere different takes a workaround. Here is why it is hard, and how to actually do it.
Why Windows makes this hard
By default, Windows has one job when it comes to output: pick a single default device and send everything to it. Your game, your browser, your music, and your voice call all pour into the same stream and out the same headphones. That is fine until you want two apps to go to two different places at once, and then Windows quietly fights you.
The usual thing people reach for is the built-in Volume Mixer (right click the speaker icon, open Volume mixer). It looks promising because it lists your apps one by one. But look closer: all it does is set a level for each app. It cannot send one app to your headphones and another to a recorder. Newer Windows builds added a per-app output picker in Sound settings, and that is a real step forward, yet it only lets you point an app at a physical device you already own. There is no way to build a fresh, separate destination for a single app, which is exactly what you need the moment you want to record one program cleanly or feed one app into a stream.
What routing per app actually means
Routing is not the same as volume. Volume answers how loud. Routing answers where does this sound go. Real per-app routing means you can take one program, say a music player, and send it to your speakers and your stream, while a private call goes only to your headphones and never touches the recording. If you want the deeper background, we wrote a plain-English explainer on what audio routing is.
The manual workaround: a virtual cable per app
Before dedicated tools existed, the classic fix was the virtual audio cable: a fake sound device that carries audio between programs instead of to a speaker. The recipe goes like this. Install a virtual cable so a new playback device appears. In the app you want to isolate, set that cable as its output. Now that one app plays into the cable instead of your speakers. Then open something that can listen to the cable, a recorder or broadcast tool, and point it at the cable as an input.
It works, but the pain adds up fast. Each app you want to separate needs its own cable, so you end up installing several and trying to remember which is which. The instant an app plays into a cable, you stop hearing it yourself, so you have to build a second path just to monitor your own audio. There are no levels, no effects, and no picture of the whole setup. One wrong device selection and something goes silent with no obvious reason why. It is a workaround, not a workflow.
The clean way: pull each app onto its own strip
patchd is a virtual audio mixer built around this exact problem. Instead of juggling loose cables and hidden device menus, every source lives on its own strip, and you route it by clicking a colored pill. Two strips are always present, Desktop (all your system audio) and Communications (your chat apps), and the rest you add: your mic, plus virtual cables that each pull one app onto its own strip. Every destination owns one fixed color, so the routing is something you can see rather than something you have to remember.
Two clicks, two lit pills: the app plays in your ears and feeds a stream bus at the same time. Every destination owns one fixed color, so the whole split reads at a glance.
Here is the flow, concretely. Add a virtual cable strip for the app you want to separate, then set that patchd cable as the app's output device in Windows so its sound lands on that strip and nowhere else. Now that program has a dedicated row with its own fader, its own meter, and its own effects. Under the HW header on that strip (HW is short for hardware, meaning your real headphones or speakers), click the green pill to send it to your headphones so you can still hear it. Under the BUS header, click the cyan pill (Bus 1) to also send it to a bus, a virtual output that other apps can pick up as a microphone. You just split one app two ways with two clicks, and both routes are lit in their colors.
Send a bus into Discord or OBS as a microphone
The part that makes this genuinely useful: because a bus shows up as a microphone inside another app, once you have a source routed to Bus 1 you can open your voice chat or broadcast software and select the patchd bus as your microphone. Whatever you route to that bus, one app, a blend of apps, your voice, becomes the input that program hears. Route your game and your mic to the bus and your stream carries both; leave a private call off the bus and it stays out of the broadcast entirely.
Hardware outputs: your real devices, the headphones and speakers you actually hear.
Buses: virtual outputs. Another app, like OBS or Discord, picks a bus up as your microphone.
Because each route is a single colored click, changing your mind is easy. Want the music out of the recording but still in your ears? Turn off its cyan bus pill and keep the green one lit. Nothing gets reinstalled, nothing goes mysteriously silent, and you can read the whole picture the entire time.
What you get for free
The free tier of patchd is the full mixer, not a demo. You get your mic plus one virtual cable (on top of Desktop and Communications), three hardware outputs, three buses, color-coded routing, per-app volume, and a real effects rack on every channel. That is enough to separate an app, monitor it yourself, and feed a clean bus into a chat or capture tool. If you route more apps than a single cable allows, the Studio tier adds four virtual cables and six buses.
Per-app routing on Windows is not really a setting you flip; it is a pipeline you build. patchd just makes that pipeline visible and quick. If you are wiring up a broadcast from scratch, the full walkthrough lives in our streaming audio setup guide, and if noise is your real problem, see how to clean up your mic first.
Get early access
patchd is in development now. Join the waitlist and we will let you know the moment it is ready to install, so you can stop fighting the default output and send every app exactly where it belongs.