NoSilence
Plays music on a secondary audio output — a television, a spare speaker — but only while your PC is otherwise quiet. Start a game, a video or a call and it fades out; stop, and it fades back in.
It lives in the system tray. Windows 10 and 11, free, source on GitHub.
What happens when something else makes a sound
default timings, all adjustableHow it decides to go quiet
It enumerates Windows audio sessions per process, so it knows which application is making sound rather than merely that something is.
Its own output is excluded
NoSilence excludes its own playback by process ID, so the music output can be the same device you listen on without the app silencing itself.
Sound has to be sustained
A source must stay above about −50 dBFS for two seconds before the music fades out, and everything must stay quiet for five seconds before it comes back. Notification chimes are around a second long; without the sustain requirement a single Discord ping would silence the music.
Tuned against a recording
--diagnose writes a session to a file and --replay re-runs
it through the current settings, so thresholds can be adjusted against real data
rather than by guessing.
Per-application rules
The sustain requirement varies by application. Right-click any row in What's playing to change how an application is treated.
Setup
This is all of it. Everything else has defaults.
-
Download and run it.
There is no installer. It appears in the system tray.
- Right-click the icon → Settings…
- Library — add a folder of music.
-
Output — pick the device to play on.
Play a test tone confirms you have the right one; if the target is a television, it also tells you whether the set is on the right input.
Televisions come back muted. Every device carries its own Windows volume, and a TV's habitually returns muted after the set has been switched off, which makes the app report Playing into a silent room. So a mute — or a volume below 2% — is cleared as NoSilence opens the device. Muting it while the music is playing still means what you meant by it.
SmartScreen will warn on first run. The binaries are not code-signed, so Windows objects: More info → Run anyway.
Turning the television on
Optional, and off by default. A PC graphics card cannot send HDMI-CEC, so this happens over the network instead: Wake-on-LAN, the Samsung remote protocol, or a shell command you configure yourself.
It fires shortly after startup
Once a television is configured, NoSilence turns it on a few seconds after it starts, so logging on is enough. If you switched the set off by hand within the last hour it leaves it alone.
Endpoint presence is not a power sensor
A standby that leaves the HDMI link asserted keeps the Windows endpoint active while the screen is dark, so the endpoint being present does not mean the set is on. NoSilence asks the television instead.
Two executables
A Windows program is either GUI or console, never both. The tray app must be the former or a console window flashes at every logon — so the diagnostic commands get their own binary.
NoSilence.Console.exe --list-devices list audio outputs with their endpoint IDs NoSilence.Console.exe --diagnose watch what every application is playing, live NoSilence.Console.exe --replay FILE re-run a recording through the current settings NoSilence.Console.exe --discover-tv find Samsung televisions on the network NoSilence.Console.exe --wake-tv turn the configured television on NoSilence.exe --quit stop a running instance cleanly NoSilence.exe --help everything else
Settings, state and logs live in %APPDATA%\NoSilence\. Put a file named
nosilence.portable beside the executable and it keeps everything in
NoSilenceData\ next to itself instead.
Download
Every release ships two zips. The self-contained one needs nothing installed; the other is a few megabytes instead of a hundred and needs the .NET 9 desktop runtime. Each contains both executables, and SHA-256 checksums are published alongside them.