Easy Effects: a PipeWire effects host that mostly assembles other people's plugins
Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
At a glance
- What is it?
- A Qt and QML front end for PipeWire filters, where roughly half the effects on offer only exist because a separate plugin package happens to be installed.
- Who is it for?
- Easy Effects earns its place by being the host that puts PipeWire filters in a usable order, not by supplying the DSP. With no plugins installed you get level metering and a few built-ins; the compressor, equalizer and reverb that make people recommend it all come from LSP, Calf, Zita and the rest of the dependency list.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A PipeWire host, not a plugin vendor
The repository description lists the headline effects in order of prominence: limiter, compressor, convolver, equalizer and auto volume, plus many other plugins for PipeWire applications. Reading that as a feature list is misleading in a way that matters. The Effects available section makes clear that Easy Effects is a host for effects that mostly live in other projects.
Autogain, Autotune, Bass enhancer, Bass loudness, Compressor, Convolver, Crossfeed, Crosstalk canceller, Crusher, Crystalizer, De-esser, Delay, Deep noise remover, Echo canceller, Equalizer, Exciter, Expander, Filter, Gate, Level meter, Limiter, Loudness, Maximizer, Multiband compressor, Multiband gate, Noise reduction, Pitch shift, Reverberation, Speech processor, Stereo tools and Voice Suppressor. That is the full menu, and the dependency section immediately tells you which package each one needs.
Only Level meter and Limiter are safely described as available without help. Noise reduction needs RNNoise. Reverberation's Convolver needs Zita-convolver. Speech processor needs SpeexDSP. Maximizer needs ZamAudio plugins. Autotune needs x42-plugins. Deep noise remover needs DeepFilterNet. Bass loudness needs MDA. Autogain needs Libebur128.
So the accurate summary of this project is a well-built interface and routing layer for a plugin ecosystem it does not own. That is a legitimate and useful thing to be, but it changes what you evaluate. You are choosing a front end, and your feature set is really choosing plugin packages.
PulseEffects, GTK4, GStreamer and then Qt: four generations in one README
The history section compresses a whole migration history into two sentences, and it is the most informative paragraph in the README. The application was formerly known as PulseEffects. It was renamed to Easy Effects after it started to use GTK4. GStreamer usage was replaced by native PipeWire filters. And eventually the whole application was ported from GTK4 to a combination of Qt, QML and the KDE and Kirigami frameworks.
Each step is a real architectural decision. Moving from PulseAudio to PipeWire meant rewriting the audio path in terms of native filters instead of wrapping GStreamer. Porting the interface from GTK4 to Qt and QML meant a complete front-end rewrite on a different toolkit.
You can see the result in the repository metadata, and it does not agree cleanly with the README. GitHub reports the language as HTML, which reflects that documentation and translation files dominate the file count in the tree rather than that this is a web project. The topics list both `pipewire` and `pulseaudio`, which preserves the project's history in its tags.
The tree shows a C++ and Qt project with the expected supporting cast: a CMakeLists.txt, a PKGBUILD and PKGBUILD_AUR for Arch packaging, a debian/ directory, po/ for translations, po_news/ for release announcement translations, util/, and mkdocs.yaml for the help pages. There are separate configuration files for clang-format, clang-tidy, qmllint and qmlformat, which is a project that takes its own tooling seriously. The copyright and code style tooling spread across those files is a decent proxy for how the codebase is maintained.
Effect order is the feature the application actually owns
The README states one design principle directly: the user has full control over the effects order, using the up and down arrows next to the effect labels on the left side. That sounds trivial until you compare it with how audio processing chains usually work, where the plugin host picks the signal order for you based on internal dependency logic.
Signal order genuinely changes the result in audio. A compressor before an equalizer limits what the equalizer has to work with; an equalizer first shapes what the compressor hears. A gate before a reverb decides whether reverb tails get gated. Nobody's ordering is universally right, which is exactly why the ability to reorder matters more than the individual effects do.
This also explains why the app is built around PipeWire filters rather than being a plugin host for an existing framework. Native PipeWire filters can be inserted into an audio graph and reordered, because each one is a node in the graph. Wrapping GStreamer, as the previous generation did, put an extra abstraction between the user and the signal path.
Two warnings in the README are worth repeating because they are the kind of thing people discover by breaking their audio. The first: do not set Easy Effects virtual devices as your default audio input or output, because the application is designed assuming your hardware stays the default device. The second is about a different website, not the software: the author states plainly that they have nothing to do with easyeffects.org and that it is probably a scam.
Where to install it and what the dependencies cost you
Installation is presented as a choice between your distribution's package and a Flatpak, and the README's ordering tells you which it prefers. Most up-to-date Linux distributions have an easyeffects package, and the wiki has a full list of package repositories. If yours does not, there is a Flathub badge, and the README notes the Flatpak package supports most Linux distributions, is sandboxed, and includes all available plugins.
That last clause is the whole argument for Flatpak in one sentence. If you go through your distribution, you may find yourself hunting plugin packages one effect at a time. If you go through Flathub, the plugins come with the app.
The dependency list is long enough that reading it changes how you think about the project. On the plugin side there are eleven separate packages, each pinned to a minimum version: LSP at 1.1.24 or higher, Calf at 0.90.1 or higher, plus Libebur128, ZamAudio, Zita-convolver, MDA, SpeexDSP, SoundTouch, RNNoise, DeepFilterNet and x42-plugins. On the library side there are seven more: libsamplerate, libsndfile, libbs2b, libmysofa, fftw, nlohmann json and tbb.
fftw and tbb are not trivial dependencies. They are the FFT and threading libraries, and their presence says something about how the built-in effects are implemented. The minimum versions given for LSP and Calf are the actionable detail: if your distribution ships an older Calf, some menu entries will simply not appear.
Help pages ship inside the app, and one dependency gates them
A comprehensive set of help pages is included in the application itself, accessed via the hamburger menu in the top right. The latest version can also be read at wwmm.github.io/easyeffects, and the mkdocs.yaml in the tree is what builds that site.
There is a catch worth knowing before you go looking for them. If the help pages are inaccessible, the README says to ensure the yelp package is installed. That is a GNOME help viewer package, which sounds odd in a Qt and Kirigami application, and the reason is that the help content is built for yelp regardless of the toolkit the interface uses. A missing renderer therefore looks like a broken menu item rather than an obvious missing dependency.
For change history there is a changelog in the repository at src/contents/docs/community/CHANGELOG.md. For known problems there is a FAQ wiki page, and the README suggests it first for anyone facing a familiar issue. For presets there is a community presets wiki page, which also carries instructions for converting PulseEffects presets to Easy Effects format and links to guidelines for package maintainers who want to ship preset collections.
Command-line options are documented only on the wiki, at a page named Command Line Options. That is the one piece of the project's surface where the repository is genuinely uninformative, and for a tool that inserts itself into your audio path, being able to script it is the capability most worth checking for before committing to it.
Editorial conclusion
Easy Effects earns its place by being the host that puts PipeWire filters in a usable order, not by supplying the DSP. With no plugins installed you get level metering and a few built-ins; the compressor, equalizer and reverb that make people recommend it all come from LSP, Calf, Zita and the rest of the dependency list. It also refuses one thing firmly, that your hardware stay the default device, which is advice worth following. The honest summary is that this is a well-built shell around a plugin ecosystem, and your experience of it will be decided by which plugin packages your distribution ships. Install through Flatpak if the dependency list looks daunting, then read the command-line options wiki to see what the app can be asked to do.
Frequently asked questions
Is EasyEffects the same as PulseEffects?
PulseEffects was the former name of this application, renamed to Easy Effects after it began using GTK4. The name changed again in practice when the interface moved from GTK4 to Qt, QML and Kirigami, and the community presets wiki carries instructions for converting old PulseEffects presets.
How to install EasyEffects?
Most current Linux distributions package it, and the wiki lists the package repositories. Otherwise install the Flatpak from Flathub, which is sandboxed, works on most distributions, and ships with all available plugins included, which the distribution packages may not.
Can you provide me with an EasyEffects microphone preset?
The project does not ship one, but the community presets wiki collects user-contributed presets and explains how to convert PulseEffects presets. For a microphone chain specifically, the Autogain and Noise reduction effects are the ones intended for that job, and Autogain needs Libebur128 while Noise reduction needs RNNoise.
Is EasyEffect good?
It is well made for what it is, which is a PipeWire filter host rather than a plugin vendor. The parts it owns are done carefully: you control the effect order directly with the up and down arrows, the help pages ship inside the app, and it is a native PipeWire filter graph rather than a GStreamer wrapper. The catch is scope. Several menu entries only exist if a separate plugin package is installed, so a distribution package can look sparse. The Flatpak includes all of them.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/wwmm-easyeffects)