# NoiseTorch [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Last Release](https://img.shields.io/github/v/release/lawl/NoiseTorch?label=latest&style=flat-square)](https://github.com/lawl/NoiseTorch/releases) 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 ![](https://i.imgur.com/uyLdB9P.png) ## Features * Two click setup of your virtual denoising microphone * A single, small, statically linked, self-contained binary ## Download NoiseTorch offers the following installation methods: #### Snap Coming soon™. #### Flatpak Coming soon™. #### Manual (no automatic updates) [Download the latest release from GitHub](https://github.com/lawl/NoiseTorch/releases). Unpack the `tgz` file, and double click the executable. ## 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. When you're done using it, simply click "Unload NoiseTorch" to remove it again, until you need it next time. The slider "Filter strictness" under settings, allows you to choose how strict NoiseTorch should be. 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. Please keep in mind that you will need to reload NoiseTorch for these changes to apply. ## Troubleshooting Unfortunately, sometimes TorchNoise may display a "Working..." screen forever when loading the virtual microphone. This is usually due to PulseAudio crashing. If that happens, close NoiseTorch and try again, that usually works. I am working to improve this situation. If you have a different problem with NoiseTorch, you can find a log file in `/tmp/noisetorch.log`. Please make sure to attach this when reporting an issue. ## Latency TorchNoise may introduce a small amount of latency. Lowering this latency [requires a change in PulseAudio](https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/120). ## Building from source Install the Go compiler from [golang.org](https://golang.org/). And make sure you have a working C++ compiler. ```shell git clone https://github.com/lawl/NoiseTorch # Clone the repository cd NoiseTorch # cd into the cloned repository git submodule init # Tell git to look at submodules git submodule update # Update submodules make # build it ``` ## Special thanks to * [xipgh.org](https://xiph.org)/[Mozilla's](https://mozilla.org) excellent [RNNoise](https://jmvalin.ca/demo/rnnoise/). * [@werman](https://github.com/werman/)'s [LADSPA/VST wrapper](https://github.com/werman/noise-suppression-for-voice/) allowing us to load RNNoise into PulseAudio. * [@aarzilli](https://github.com/aarzilli/)'s [nucular](https://github.com/aarzilli/nucular) GUI toolkit for Go.