NoiseTorch built with CI
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
lawl 6ea788a0c0 Refactor: Remove old method of removing rlimit for pulseaudio
Previously we had the capability to remove the rlimit on pulseaudio
by calling ourselves via pkexec to elevate privileges.
A while ago we switched to fully using capabilities.
We now remove the old legacy codepath.
3 years ago
assets Make patreon call to action look nicer 3 years ago
c Use -O2 for LADSPA module 3 years ago
scripts Use go:embed instead of scripts/embedbinary.go 3 years ago
vendor Implement output filtering 3 years ago
.gitignore Use go:embed instead of scripts/embedbinary.go 3 years ago
.gitmodules Replace noise-suppression-for-voice with own implementation 3 years ago
LICENSE Update License 3 years ago
Makefile Replace noise-suppression-for-voice with own implementation 3 years ago
README.md make troubleshooting section more visible 3 years ago
capability.go Convert fmt print to log print 3 years ago
config.go Implement output filtering 3 years ago
go.mod Use go:embed instead of scripts/embedbinary.go 3 years ago
go.sum Implement output filtering 3 years ago
main.go Refactor: Remove old method of removing rlimit for pulseaudio 3 years ago
module.go Refactor: Remove old method of removing rlimit for pulseaudio 3 years ago
rlimit.go Refactor: Remove old method of removing rlimit for pulseaudio 3 years ago
ui.go Refactor UI: Rename "screen" to "view" 3 years ago
untar.go Add updater 4 years ago
update.go Add build flag to enable the update 4 years ago
update_noop.go fix noop updater 3 years ago
views.go Refactor UI: Use a stack of views to handle what to display 3 years ago

README.md

NoiseTorch

License: GPL v3 Last Release

NoiseTorch is an easy to use open source application for Linux with PulseAudio. It creates a virtual microphone that suppresses noise, in any application. Use whichever conferencing or VOIP application you like and simply select the NoiseTorch Virtual Microphone as input to torch the sound of your mechanical keyboard, computer fans, trains and the likes.

Don't forget to like, comment and subscribe leave a star if this sounds useful to you!

Screenshot

Then simply select NoiseTorch as your microphone in any application. OBS, Mumble, Discord, anywhere.

Features

  • Two click setup of your virtual denoising microphone
  • A single, small, statically linked, self-contained binary

Download & Install

Download the latest release from GitHub.

Unpack the tgz file, into your home directory.

tar -C $HOME -xzf NoiseTorch_x64.tgz

This will unpack the application, icon and desktop entry to the correct place.
Depending on your desktop environment you may need to wait for it to rescan for applications, or tell it to do a refresh now.

With gnome this can be done with:

gtk-update-icon-cache

You now have a noisetorch binary and desktop entry on your system.

Give it the required permissions with setcap:

sudo setcap 'CAP_SYS_RESOURCE=+ep' ~/.local/bin/noisetorch

If noisetorch doesn't start after installation, you may also have to make sure that ~/.local/bin is in your PATH. On most distributions e.g. Ubuntu, this should be the case by default. If it's not, make sure to append

if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

to your ~/.profile. If you do already have that, you may have to log in and out for it to actually apply if this is the first time you're using ~/.local/bin.

Uninstall

rm ~/.local/bin/noisetorch
rm ~/.local/share/applications/noisetorch.desktop
rm ~/.local/share/icons/hicolor/256x256/apps/noisetorch.png 

Troubleshooting

Please see the Troubleshooting section in the wiki.

Third party packages (like AUR)

Please do not use them. Some are known to mess with configuration files and will break things even if you did install a NoiseTorch package from an official source later on. If you had ever installed NoiseTorch from a non-official source, make sure to completely remove every trace, including deleting your ~/.config/noisetorch directory, before reporting an issue.

If you have been maintaining a third party package for a while and would like it to be blessed as supported, please send me an e-mail.

Usage

Select the microphone you want to denoise, and click "Load NoiseTorch", NoiseTorch will create a virtual microphone called "NoiseTorch Microphone" that you can select in any application. Output filtering works the same way, simply output the applications you want to filter to "NoiseTorch Headphones".

When you're done using it, simply click "Unload NoiseTorch" to remove it again, until you need it next time.

The slider "Voice Activation Threshold" under settings, allows you to choose how strict NoiseTorch should be in only allowing your microphone to send sounds when it detects voice.. Generally you want this up as high as possible. With a decent microphone, you can turn this to the maximum of 95%. If you cut out during talking, slowly lower this strictness until you find a value that works for you.

If you set this to 0%, NoiseTorch will still dampen noise, but not deactivate your microphone if it doesn't detect voice.

Please keep in mind that you will need to reload NoiseTorch for these changes to apply.

Once NoiseTorch has been loaded, feel free to close the window, the virtual microphone will continue working until you explicitly unload it. The NoiseTorch process is not required anymore once it has been loaded.

Latency

NoiseTorch may introduce a small amount of latency for microphone filtering. The amount of inherent latency introduced by noise supression is 10ms, this is very low and should not be a problem. Additionally PulseAudio currently introduces a variable amount of latency that depends on your system. Lowering this latency requires a change in PulseAudio.

Output filtering currently introduces something on the order of ~100ms with pulseaudio. This should still be fine for regular conferences, VOIPing and gaming. Maybe not for competitive gaming teams.

Building from source

Install the Go compiler from golang.org. And make sure you have a working C++ compiler.

 git clone https://github.com/lawl/NoiseTorch # Clone the repository
 cd NoiseTorch # cd into the cloned repository
 make # build it

Special thanks to