Keep the voice. Lose the music.

nomus takes the music out and keeps the voices, on your device. One line installs it on macOS or Linux.

curl -fsSL https://agrohi.com/nomus/install | sh
Try the demo

The real engine, running in this page

idle

Press play, then switch the music off.

Why take the music out

60%

Hear what people are saying

Background music is one of the most common reasons viewers struggle to follow speech, and it is hardest on people with hearing loss.

BBC TV audibility survey, 2011. RNID survey of members with hearing loss, 1998.

Focus on the lesson

Adding music to a lesson made people remember less of it. Lectures and tutorials work better without it.

Moreno and Mayer, Journal of Educational Psychology, 2000.

For those who choose to avoid music

Some people keep away from instrumental music for faith, a period of mourning or grief. nomus lets them keep the words.

Watch it without the mood music

Music makes what you see feel stronger, and sounds help short videos spread. Turn it off and judge what is being said.

Baumgartner et al., International Journal of Psychophysiology, 2006. TikTok, 2020.

Fewer music claims on stream

Twitch reports that over 99% of its music takedowns were for background tracks. nomus removes most of that track. It does not grant rights to anyone's video.

Twitch, Music-related copyright claims, 2020.

Easier on sensitive ears

Many autistic people find everyday sound too loud. Less music also means fewer songs stuck in your head at night.

Williams et al., Ear and Hearing, 2021. Scullin et al., Psychological Science, 2021.

A Rust engine in your browser's audio thread

A small neural network listens to 10 ms of sound at a time and decides, for every frequency, how much of it is a voice. Speech and singing pass. Instruments fade out. In Chrome it runs as WebAssembly; the macOS, Linux and Android apps run the same engine and weights natively.

  1. The tab's sound

    Chrome hands nomus the audio of the tab you chose, and nothing else.

  2. An AudioWorklet

    A real-time audio thread feeds the engine in 480-sample frames.

  3. nomus.wasm

    Rust, compiled to WebAssembly with no imports: it cannot reach the network or disk.

  4. Your speakers

    The voices, 20 ms later.

crates/nomus-core/src/voice_mask.rs
// One GRU layer, one 10 ms frame. PyTorch gate order: r, z, n.
matvec(&g.w_ih, &self.x, &g.b_ih, &mut self.gates_i);
matvec(&g.w_hh, hid, &g.b_hh, &mut self.gates_h);
for j in 0..h {
    let r = sigmoid(self.gates_i[j] + self.gates_h[j]);
    let z = sigmoid(self.gates_i[h + j] + self.gates_h[h + j]);
    let n = (self.gates_i[2 * h + j]
        + r * self.gates_h[2 * h + j]).tanh();
    self.h_new[j] = (1.0 - z) * n + z * hid[j];
}
Delay
20 ms
Engine
0.8 MB
Weights
1.04 M
CPU
~2%
of one core
Audio sent anywhere
0 bytes
on every platform

Clean your microphone too Beta

nomus can also sit between your microphone and your call app. It turns down keyboard clatter, fans, music and other people talking in the background, and keeps the voice at the mic. It runs on your computer. Nothing you say is recorded or sent anywhere.

Added by the filter
20 ms
Mic to call app, Mac
~35-40 ms
Mic to call app, Linux
~52 ms
PipeWire, 512-frame cycle
CPU
~2%
of one core
Mic audio sent anywhere
0 bytes

This is an early-access beta. In our tests it is clearly cleaner than no filter at all, but it is not yet as clean as the best noise-cancelling tools, and your own singing may be turned down too. It does not reach every call: there is nothing for Android or iPhone, and Microsoft Teams in a browser is not supported. All the limits.

Your audio never leaves your device.

No server

Filtering happens on your computer or phone, and so does cleaning your microphone. There is no nomus server for sound to go to.

No tracking

No account, no analytics, no cookies. nomus does not count you, the sites you visit or what you play.

Enforced, not promised

The extension and this site declare a connect-src policy, so the browser blocks requests to any other server. The Android app asks for network access only for its one-time setup, which talks to the phone itself.

The one request nomus makes: the macOS and Linux apps check for updates when they start. The request names the system and processor type and nothing else, not even the app's version. You can turn it off in the app.

Check it yourself: open DevTools, pick the Network tab, and play something. Read the privacy page or the extension's source

What to expect

Works well

  • Talks, lectures, podcasts and news with a music bed under them
  • Short videos with a trending track over someone speaking
  • Songs, when you want the vocals and not the band

Still hard

  • Music much louder than the voice: some of it comes through
  • Instruments that sound like a voice, such as a solo violin
  • On Android, apps that block audio capture, such as Spotify and Netflix: they play unfiltered
  • Microphone (beta): loud music or several people talking close to you can still come through, and your own singing may be turned down

Get nomus

Free, with no account. Pick where you listen.

Your whole Mac or Linux PC

Every app: browsers, Spotify, video calls, games. Paste the line in Terminal. macOS 14.2 or newer, or a Debian-family Linux with PipeWire.

curl -fsSL https://agrohi.com/nomus/install | sh

Read the script first: curl -fsSL https://agrohi.com/nomus/install | less, or open the raw file.

What it does on a Mac

  1. Downloads nomus 0.11.3 and checks its sha256 and its Apple code signature.
  2. Copies nomus into Applications and opens it. No password.
  3. Nothing passes through a browser, so macOS shows no "Not Opened" warning.

The microphone driver comes later: nomus installs it the first time you turn on Microphone, with one password prompt. macOS 14.2 or newer, Apple silicon or Intel.

Upgrade and remove

nomus updates itself. Running the same line again also upgrades it.

To remove nomus (it asks before removing the microphone driver):

curl -fsSL https://agrohi.com/nomus/install | sh -s -- uninstall

What it does on Linux

  1. Picks the .deb for your PC (amd64 or arm64), downloads nomus 0.11.3 and checks its sha256.
  2. Installs it with sudo apt-get install, which asks for your password for that step only.

For Debian-family systems with PipeWire 0.3.49 or newer: Ubuntu 24.04, Debian 12, Linux Mint 22. The microphone needs no driver on Linux.

Upgrade and remove

Run the same line again to upgrade. nomus also checks for updates when it starts.

To remove nomus (it runs sudo apt-get remove nomus):

curl -fsSL https://agrohi.com/nomus/install | sh -s -- uninstall
  • Any Chrome tab

    The Chrome extension, for Chrome 116+ on Windows, Mac, Linux and ChromeOS. Press ⌘Shift Y (Ctrl on Windows) on a tab to filter it.

    Add to Chrome
  • Your Android phone

    Apps that allow audio capture, such as YouTube and most podcast apps. Android 10 or newer, with a one-time setup.

    Download for Android
  • Rather install by hand?

    The macOS .dmg and the Linux .deb files, with their checksums, are on the download page.

Windows: the Chrome extension works there. A Windows app is not planned: Windows can copy what apps play but cannot silence the original, so filtering the whole system would need a signed kernel audio driver.