June 25, 2020

582 words 3 mins read



A GUI frontend for @werman's Pulse Audio real-time noise suppression plugin

repo name josh-richardson/cadmus
repo link https://github.com/josh-richardson/cadmus
language Python
size (curr.) 993 kB
stars (curr.) 554
created 2020-06-28
license GNU General Public License v3.0


License: GPL v3

Cadmus is a graphical application which allows you to remove background noise from audio in real-time in any communication app. Cadmus adds a notification icon to your shell which allows you to easily select a microphone as a source, and subsequently creates a PulseAudio output which removes all recorded background noise (typing, ambient noise, etc). If you find the application useful, leave a :star: — it helps!

About & Usage

Whilst software exists on Windows & MacOS (Krisp, RTX Voice, etc) to remove background noise from recorded audio in real-time, no user-friendly solution seemed to exist on Linux. Cadmus was written to address this shortcoming, allowing users to remove background noise from audio in Discord/Zoom/Skype/Slack/etc calls without having to use the commandline. It is primarily a GUI frontend for @werman’s PulseAudio Noise Suppression Plugin.

When you run Cadmus, you’ll see a new notification icon showing a microphone in your chosen shell. On click, you’ll be able to select the microphone whose noise you wish to suppress. Cadmus will then set the default PulseAudio microphone to use the virtual denoised output of the chosen microphone. Note that if you’re currently recording audio, you’ll have to stop recording and start again in order for changes to occur - streams which are currently being recorded will not be hot-swapped to the new input.

Installation from pre-built releases (currently only for x86_64 Linux)

For Debian-based distributions:

  • Download the latest cadmus.deb file on the releases page
  • Once downloaded, open the file in your chosen file explorer to install it, or run sudo dpkg -i cadmus.deb in a terminal

For non-Debian distributions:

  • Download the latest cadmus.AppImage file on the releases page
  • Once downloaded, open the file in your chosen file explorer to run it (requires AppImage Launcher), or run chmod +x cadmus.AppImage && ./cadmus.AppImage in a terminal

To run from an archive:

  • Download the latest cadmus.zip file on the releases page
  • Once downloaded, run unzip cadmus.zip && cd cadmus && ./cadmus in a terminal


The Tray Icon Does Not Appear

If you’re using GNOME, you may need to use an extension such as TopIcons Plus Git to view the Tray Icon. See this issue 7.

Do I Need To Install The PulseAudio Noise Suppression Plugin?

For now, if you are using the pre-built releases, the plugin is included, so you don’t need to install it. See this issue 2.

Output Is Still Noisy

See these issues: 10, 11.


Cadmus has been tested on Arch Linux, Debian 10 and Ubuntu 20.04. It should work with all flavors of Linux with PulseAudio installed - but if you find a bug, please do report it on the GitHub issue tracker. It’s still relatively early in development & hasn’t been tested extensively.


To get the project up and running, first clone the repository. Next create a virtualenv, and run pip install -r requirements.txt. Cadmus is written in Python making use of PyQt5 and the Fman Build System. You can invoke fbs run to run Cadmus from source.


  • Add some tests
  • Gracefully start up & shut down, removing loaded modules on exit
  • Run on startup & use a default microphone?
  • Deploy on AUR

Various people have asked me how they can donate to this project. As a consequence, I’ve created a Patreon

comments powered by Disqus