Mute Apps During Teams Calls Automatically: Teams Audio Ducking

G’day! This one is a bit different from my usual Intune and AVD content: a personal side quest. I wanted something to mute apps during Teams calls automatically, because I kept getting caught out by the same daft scenario. A call comes in, Spotify is playing, and a YouTube video is going in one of the 50 Edge tabs I have open. By the time I have found the right tab to mute, I have either missed the call or answered it flustered.

Not a big problem, just annoying. And it happened often enough that I went looking for a fix.

Why I wanted to mute apps during Teams calls

Joining a meeting has the same worry in reverse. You think everything is quiet, then a paused video autoplays, or a forgotten tab pipes up mid-sentence. You end up doing a nervous sweep of the volume mixer before every call, and still missing something.

Windows does have a built-in answer of sorts: the Communications tab in Sound settings can reduce other audio “when Windows detects communications activity”. In my experience the new Teams client triggers it inconsistently, it lowers rather than mutes, and there is no control over what gets caught. Close, but not it.

So I went looking for a proper tool. I genuinely expected this to be a solved problem, and I could not find anything that did what I wanted: mute everything except Teams when a call starts, then put every app back exactly as it was afterwards. The “exactly” part matters. If Spotify was at 35%, I want it back at 35%, not blasted to full. If an app was already muted before the call, it should stay muted after.

So I vibe coded it

I am not a C# developer. My day job is EUC: Intune, AVD, Azure, the usual suspects. But this felt like a well-bounded problem, so I described exactly what I wanted to Claude Code and vibe coded it over a couple of evenings: what to mute, what never to touch, how call detection should work, and every edge case I could think of (apps opened mid-call, Teams crashing, my own tool being killed mid-call).

I will be honest about what vibe coding meant here: I reviewed the approach at each step, tested every behaviour on my own machine, and pushed back where the first idea was not good enough. The ringing detection below went through a proper design discussion before any code existed. It is my spec, tested by me, with the heavy lifting done by the AI.

The result is Teams Audio Ducking, free and open source (MIT).

What Teams Audio Ducking does

It sits in the system tray and watches for Teams calls. That is the whole job:

  • The moment a Teams call starts ringing or connects, every other app is muted: every tab, every player, on every audio device, including apps you open mid-call.
  • When the call ends, each app comes back exactly as it was. Volumes and mute states are recorded per app before touching anything, and restored precisely afterwards.
  • Teams itself is never muted, and your microphone, master volume and default device are never touched.
  • Optionally, it can raise Teams’ own volume to a set level during calls (only ever raises it, and puts it back afterwards).
Teams Audio Ducking tray menu showing an active Teams call and muted applications
The tray menu mid-call: it tells you exactly what it has muted.
Windows volume mixer during a Teams call with background apps muted by Teams Audio Ducking.
Mid-call: everything muted except Teams, without touching the master volume.

It also survives the ugly cases. If an app restarts mid-call it gets re-muted with its original state remembered. If the utility itself is killed mid-call, state is persisted to disk and restored on the next start. If you close an app while it is muted, it is fixed up when it reappears (Windows remembers per-app mute, which would otherwise leave apps silently muted forever).

How it knows you are in a call (and why it is not listening to you)

There is no public local API for the new Teams client’s call state, so the tool uses two signals Windows already tracks:

  1. Microphone in use. Teams holds the mic open for the whole call, even when you are muted in Teams. Windows records which apps have the mic open (the same bookkeeping behind the taskbar mic icon and the privacy settings list), and the tool watches that for changes.
  2. Ringing. Before a call connects there is no mic activity, so it watches the active/inactive state of Teams’ own audio sessions instead, via the Windows Core Audio APIs. Teams playing sound continuously for 1.5 seconds or more is the fingerprint of a ringtone or ringback tone, so muting starts while it is still ringing. Notification chimes are far shorter and get ignored.

Everything is event-driven rather than polled, so it sits at effectively zero CPU while idle.

Getting it

Grab the latest setup from the releases page and run it. It installs per-user (no admin prompt), adds a Start-menu shortcut, and offers a start-at-sign-in tick. There is also a portable zip on the same page if you would rather just run the exe.

Upgrading is just running the newer setup over the top; settings are kept. Uninstalling is the normal Settings > Apps route.

Settings worth knowing

Double-click the tray icon and you get a small settings window:

Teams Audio Ducking settings window with options to mute apps during Teams calls
The settings window: exclusions, ringing detection, and the optional Teams volume boost. 
  • A never-mute list, for anything that should play through calls (one process name per line, e.g. spotify).
  • An always-mute list that overrides it.
  • “Start muting while a Teams call is ringing”, on by default.
  • “Raise Teams’ own volume during calls to X%”, off by default. Handy if Teams is always that bit quieter than everything else. It works on Teams’ app volume, not the master volume, and only ever raises it.

One behaviour I made deliberate: if you click “Restore audio now” during a call, it stays restored. The tool will not re-mute behind your back until the next call.

Limitations

  • A mic test in Teams settings, or recording a video clip in chat, looks identical to a call: other apps mute until you finish.
  • Joining with “Don’t use audio”, and view-only webinars or live events, never open the mic, so nothing is detected.
  • Long Teams voice messages count as sustained playback, so they trigger muting until they stop (untick the ringing option if that bothers you).
  • If Windows privacy settings block Teams’ microphone access, detection cannot work at all.

FAQ

Does Teams Audio Ducking listen to my calls or my microphone? No. It reads two yes/no state flags Windows already tracks: which apps have the mic open, and whether Teams’ audio session is active. No audio ever passes through the tool, and it never opens the microphone.

Can it mute Spotify during Teams calls? Yes, that is the main use case: it will mute Spotify during Teams calls along with every other non-Teams app, then restore its exact volume afterwards. If you want Spotify left alone instead, add it to the never-mute list.

Can it increase Teams volume during calls? Yes, optionally. Set a target percentage and Teams’ own app volume is raised to it during calls, then put back afterwards. It never touches the master volume.

Does it work with Teams in the browser? No. Browser calls cannot be distinguished from the browser’s other mic usage. It covers the new Teams desktop client and classic Teams.

Why does Windows SmartScreen warn me when installing it? Because the installer is not code-signed (certificates cost real money, and this is a free tool). The warning is expected; More info, then Run anyway. Or build from source if you prefer.

More tools I have built

This is not my first “scratch my own itch” tool, though it is the first one aimed at my ears rather than a tenant:

Wrapping up

A personal side quest rather than proper EUC content, but it has quietly become one of the most-used things on my machine: every call just starts quiet now. And it was a good test of what vibe coding is actually like when you hold it to a spec: I would not ship what an AI writes unreviewed, but for a bounded personal tool with me testing every behaviour, it turned a “one day I should…” into a working utility in a couple of evenings.

If you try it and something misbehaves, the GitHub issues page is open. The log file it keeps locally will usually tell us exactly what happened.

Happy ducking! 👌

Alex

Leave a Reply...

Scroll to Top