- Fixed a bug that makes the application crash when the option Linux Studio Plugins package is not installed.
- Updated translations
- Fixed a bug in the crystalizer plugin where the scale values were not being properly applied.
- Latency compensation can be applied to the spectrum plugin.It will delay its drawing so it matches the latency offset applied by the user on programs like Pavucontrol.
- The command line option that shows EasyEffects version should work properly now.
- Fixed a regression in the autoload preset code.
- The loudness plugin exposes the ISO 226:2023 standard that is now available in the LSP plugin.
- Updated translations
- Performance optmizations to the spectrum plugin and the LADSPA wrapper
- We were not locking PipeWire's thread main loop before setting a stream volume and mute controls. THis could cause these operations to fail in some situations
- Community Presets have been implemented. Users can install packages containing multiple Easy Effects presets to be imported and applied inside the application. These packages will be maintained and shipped by volunteers. You can search them on the repositories of your favorite distribution.
- Added the ability of collapsing the sidebar to hide the effects list and expand the area of the effects user interface.
- EasyEffects won't touch streams that define
PW_KEY_TARGET_OBJECT
to an output device that is different from the one EasyEffects is using. - Equalizer APO import feature can now apply Band-Pass filters.
- A change in GTK 4.14.1 prevented to apply the values inserted into the text field of our SpinButton widgets. This issue is now resolved.
- The latest Maximizer plugin releases do not have the ceiling control anymore. So we removed it from our user interface (you can use the plugin input gain to retrieve the same functionality).
- Equalizer APO import feature does not crash anymore on Flatpak when invalid values are provided.
- In order for Community Presets to be correctly shipped, packagers are invited to read and follow the guidelines linked inside the README of EasyEffects master branch.
- Presets with Convolver and/or Noise Reduction (RNNoise) effects created before
7.2.0
version are deprecated. Please reload the irs/model file inside the Convolver/RNNoise UI and resave the preset.
- Improved the pipeline management system. Non-limiter effects are placed before the limiter even if the last two plugins in the pipeline are a limiter followed by a level meter.
- Fixed a regression that prevented the level meters to be updated under certain conditions.
- We now set
monitor.passthrough = true
in our virtual devices. This will allow latency offset to be properly applied by video players when PipeWire > 1.0.3 is released. - Updated translations.
- EasyEffects will try to avoid moving to its virtual sources streams for which the user has set a custom
target.object
that is different from the mic EE is recording from. THe stream has to be started when EE is already running for this logic to take effect. - Updated translations
- The equalizer can export basic APO preset files
- Our players/recorders tab will show the audio client binary name in the cases were no app name is defined.
- EasyEffects version can be shown in the command line through the option
--version
- A workaround for a bug in gtk4 GtkLevelBar was implemented and will be kept in place until gtk developers fiz things on their side
- Updated translations
- Fixed a regression introduced in
7.1.2
that could cause EasyEffects to crash
- Updated translations
- The DeepFilterNet plugin can now be added to the preset file
- The spectrum has a new option that allows the dynamic vertical scale to be disabled.
- Improved compatibility with the latest LSP releases.
- Fixed an incorrect drawing of the impulse response file characteristics
- Fixed a small bug the prevented the noise reduction voice activity threshold from being properly initialized.
- Added a new control to the noise reduction plugin that allows the voice detection to be disabled.
- The Filter effect has been improved with new parameters since it has been ported from Calf Studio to Linux Studio Plugins.
- Noise reduction by RNNoise has been improved with the addition of Release and VAD Threshold controls.
- Noise reduction by RNNoise can now mix the original and denoised signals to avoid the output to sound too "dry".
- This release is intended to work with versions of Linux Studio Plugins equal or greater than "1.2.10".
- EasyEffects is now buildable also with libc++.
- The Expander from Linux Studio Plugins can be used in Easy Effects.
- The Equalizer bands now have an additional gain control that allows for more efficient input of values that are hard to set in the scale. More details at #1383.
- Added the ability to select and load multiple files in the opening dialogs for presets, Convolver impulse responses and RNNoise models.
- Fixed the Solo button in the Equalizer band settings.
- Easy Effects folders under
/etc
have been deprecated and presets located there won't be loaded anymore. At the moment only local presets under~/.config/easyeffects
are automatically loaded in the Presets Menu. In the future we will implement a new system to install, manage and import Community Presets.
- An "Experimental Features" section was added to our preferences window.
- The native window of the LSP plugins can be used. This is an experimental feature intended only for advanced users. So expect some bugs.
- Fractional semitone values can now be used in the Pitch Shift effect.
- The input/output device dropdown in our PipeWire tab is updated when the system default device changes and
Use Default
is enabled. This fixes issue #1989.
- A new
Level Meter
plugin based onlibebur128
has been added. - The Pitch plugin now uses the library SoundTouch instead of Rubberband. Hopefully some of the mysterious crashes that were happening with Rubbernand are not going to happen anymore.
- Improved compatibility with recent PipeWire versions. More information at https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3196
- Active Equalizer filters are not set to
Bell
type anymore when the number of bands changes.
- Rabberband is not a dependency anymore since it has been replaced by SoundTouch.
- The presets menu now asks for confirmation before saving/deleting a preset file.
- The plugin reset should not make its controls innefective anymore.
- Speex is no longer incorrectly listed as a build dependency (speexdsp is still a build dependency)
- RNNoise is no longer an autodependency. It is now required by default, if not available it must be explicitly disabled with -Denable-rnnoise=false
- Updated translations.
- A small mistake was done in the last release. Making a new one to make sure people have the right branch in the package
- The Equalizer "sort bands" feature is now ordering bands on GSettings, so the result can be saved into presets.
- Improved performance when resetting keys.
- Fixed the "Large Empty Hall" preset selection in the Reverberation effect.
- Fixed some misuses of PipeWire's API that can potentially fix some random bugs some users are facing.
- As we are removing code deprecated by
GTK 4.10
the minimum GTK version has been increased.
- The spectrum plugin update rate was improved. Different sampling rates should lead to similar update frequencies visually.
- The update interval used by level meters and the spectrum can be customized by the user.
- The equalizer band gain slider value can be updated in larger steps. Fine grain control is still possible through the keyboard up/down keys.
- Small improvements to the echo canceller.
- The echo canceller probes were not being linked to the soundcard after the move to multiple filters intances. This should be fixed now.
- It is now possible to add more than one filter instance to the effects pipeline.
- A new
Speech Processor
plugin based on the Speex library was added. Besides providing noise suppression it also can detect voice activity. It is a decent alternative to the cases whre the rnnoise library does not work well. - Improved compatibility with Linux Studio Plugins
1.2.3
. - GraphicEQ presets can be imported into the Equalizer effect.
- The application name has been changed to
Easy Effects
to adhere to the naming conventions of GNOME Human Interface Guidelines. - The documentation has been updated.
- Improved presets autoloading.
- The Autogain silence threshold can now be configured by the user.
- Dry and wet controls added to the Stereo Tools effect.
- The echo canceller now has a residual noise suppression control also based on the Speex library.
- When the mouse was hovering over a chart the wrong value for the x axis coordinate was being shown. This regression is fixed.
- Because of the new multiple instances feature, the preset format has changed, but the old one is still compatible to be loaded. Anyway take in consideration that saving the current preset will always write it in the new format.
- Multiband Gate implementation has been migrated from CALF to Linux Studio Plugins.
- The preset autoloading code compatibility with bluez5 devices has been improved.
- Wet/dry controls were added for some plugins
- Effect interface is no longer loaded when the related lv2 plugin is not installed on the system. In its place a status message to the user is shown.
- The documentation has been updated
- Improved debug messages
- Updated translations
- Improved translations
- Fixed a bug where EasyEffects could crash when closing its window while effects were being applied.
- The bypass state can be saved to the preset file. The reasons why this was done can be seen at #1039
- The preset autoloading code compatibility with usb devices has been improved.
- A dialog is shown to the user when a preset fails to load or a preset/impulse file fails to be imported.
- The SideChain Gate plugin from
Linux Studio Plugins
is now used instead of the one from Calf Studio.
- EasyEffects should not crash anymore when the user locale is not properly configured.
- A workaround was implemented in our icon to deal with the lack of proper SVG support in QT.
- When effects are disable to an application we now set its target metadata to null. This will allow the media session manager (wireplumber) to properly move the stream to a new device.
- A new configuration option was added. It allows EasyEffects to ignore streams whose purpose is to monitor sink devices. This will help to fix some of problems our users were having when using OBS.
- The code that shows the stream sample format has been improved
- The rnnoise library is now optional. This should help package maintainers to build a Debian package. See #1000 for more information.
- Our logs now show the source code line where the messages are being printed
- The "enable effects" checkbox in our window was not being updated when third party programs like pavucontrol moved the stream away from our virtual devices. This should be fixed now.
- Fixed a crash that could happen when the maximum autogain history was changed.
- Avoid crashes when pw-mididump is running
- The interface of the pitch plugin was improved
- Our application icon is now compatible with desktops that uses QT
- Our blocklist code will use the
application.id
tag if the stream sets it - In order to avoid problems with the mouse scroll the entries in the applications list shown in our
Players/Recorders
tab do not show a volume scale anymore. More details about the problem and the solution for it can be found on #1211 and #1427 - When no application is available for display in the
Players/Recorders
a message will be shown to the user - Many translation updates
- Fixed a bug where EasyEffects crashed when the number of points displayed in the spectrum was changed while our pipeline was active and the spectrum widget was visible
- The pipeline latency value displayed in our window could be wrong in some situations. This was fixed.
- There is a new setting allowing the user to select an inactivity timeout for the pipeline. When no client is playing to or recording from our devices the filters will be unlinked after the timeout is reached. This is done to make sure we do not waste CPU power processing silence.
- The autogain plugin now allows the user to select which of the three loudness are used to calculate the geometric mean.
- The autogain plugin now allows the maximum history to be set and does not use
libebur128
histogram mode anymore. This should avoid the cases where theIntegrated
loudness gets stuck forever in the same value. - EasyEffects icon has been updated in a way that should make it visible in QT desktops.
- The command line option that returns the global bypass state is working again.
- The crossfeed filter should deal better with PipeWire's dynamic latency switches. Jumps in volume level should not happen anymore in these situations.
- Fixed a bug that prevented mono microphones from properly working with EasyEffects
- Support for the next PipeWire release
0.3.44
- The autogain filter should deal better with PipeWire's dynamic latency switches. Jumps in volume level should not happen anymore in these situations.
- We added an option that allows the volume and mute state of our virtual devices to be reset when EasyEffects starts. It should help with the cases were our devices are muted by the audio server for unknown reasons.
- Better support for computer suspending.
- Updated translations
- Fixed a bug where trying to create an autoloading profile without having presets caused the application to crash.
- Fixed a bug where setting a equalizer band
quality
tozero
would lead to an application crash.
- LibAdwaita is used to create some parts of our window and for handling the switching between dark and light themes.
- The settings menu has been redesigned using LibAdwaita widgets.
- Equalizer APO preset import feature has been improved to apply not only the Bell filter, but also other supported ones (at the moment only the Bandpass filter is not available in LSP plugin).
- The
Reset All Settings
function in our menu should work in Flatpak now. - We have a new option that allows the user to disable our menus
autohide
. This may help to workaround some bugs Popover menus currently have on gtk4.
- More robust parsing to import APO presets saved with comma as thousands separator in central frequency band.
- The fmt library is a new dependency https://github.com/fmtlib/fmt. At least while the c++ compilers do not implement its features. This is expected to happen in the next years.
- GTKMM and GLIBMM are not a dependency anymore. We now use gtk4 directly.
- It is now possible to combine impulse responses in the Convolver interface. A new impulse file is generated and it should be visible in the impulse list.
- Improved
x axis
drawings in our plots. Now the number of labels is adjusted dynamically depending on our window width. - The documentation has been updated reflecting the new EasyEffects features. Old references about PulseEffects have been removed. The documentation button has been added in the menu section.
- When a spinbutton is filled with an out of range value, now it is updated with the lowest/highest value rather than resetting to the previous one.
- The application window now remembers the maximized state and restores it on the next opening event.
- The
tbb
library is a new dependency https://www.threadingbuildingblocks.org
- The Limiter and the Multiband Compressor plugins can now use an optional external sidechain.
- The Autogain plugin now allows the user to select which Loudness is used as reference for the volume correction.
- The APO Profile Import feature of Equalizer plugin now parses the "Pre Amplification" parameter.
- Optional Cubic Volume can be enabled in General Settings.
- The Spectrum plugin was supposed to enter passthrough whenever it was not visible, but this was happening only when our window was closed.
- Improved support for Assistive Technology.
- The probes used in some filters like the Compressor and the Limiter were not being relinked after changing the order of the plugins in the pipeline. It should be working now.
- PipeWire monitor streams are now excluded and removed from the applications list.
- Hopefully crashes like the one reported at #1172 are fixed.
- Prevented a case in which Spectrum was crashing.
- Pavucontrol is not added anymore to input applications list on systems with localization different than English.
- Improved compatibility with WirePlumber. This is needed to run on systems that decided to use it instead of the built-in PipeWire session manager. More information at #1144.
- When trying to add an autoloading profile for a device already in the list its target preset will be updated. This way we can change the profile preset without having to remove and recreating it.
- The preset autoloading support implementation was redesigned again. It should work on more hardware now. For more information see #1051.
- If the Limiter or the Maximizer are set in the last position of the plugin stack, new plugins are added at the second to last position in order to prevent hardware damage on eventually high output level.
- Removing an application from the blocklist, its previous enabled state is restored.
- Sometimes when removing imported models from the noise reduction plugin the current used model was not properly updated. This should be fixed now.
- When editing presets files in an external editor, duplicated entries won't be shown in our presets menu.
- Now the blocklist is correctly set when switching presets.
- Now the status of the global bypass button is correctly updated when changing plugin stack.
- Missing icons on the system should not be shown inside the application info UI (if an application icon could not be shown even if you're sure it's correctly installed, please open an issue).
- Some icons not showing in Plasma DE with Breeze icon theme should appear now.
- Updated Chinese translation.
- Updated Italian translation.
- Added support for the compressor parameter
Boost Amount
- The multiband compressor plugin now uses the stereo multiband compressor plugin from Linux Studio Plugins instead of the one from Calf Studio.
- The limiter plugin now uses the stereo limiter plugin from Linux Studio Plugins instead of the one from Calf Studio.
- LV2 filters now are spawned in PipeWire graph only when loaded the first time. Once loaded, they remain connected until EasyEffects shutdown.
- The echo canceller sampling rate is now properly set.
- The threshold parameter from the deesser plugin is now saved to the preset file.
- Improved band splitting for crystalizer with new default intensity values.
- Depending on the input gain or output gain values the corresponding level bars could not be aligned.
- When adding more equalizer bands they are set to
Bell
instead ofOff
. - Equalizer APO presets loading is now working properly on locales different than C.
- Improved linking management between port filter nodes in PipeWire.
- The crystalizer plugin signal amplification was too high before. It should be within more reasonable levels now.
- Improved the resampler used in the plugins that require one(like the rnnoise plugin)
- Updated translations
- Setting multiple autoloading presets should be fine now
- Transient windows are now properly set for some plugins dialogs
- The convolver impulse response menu was improved to workaround an issue where the impulse files was not loaded when only one was available in the menu, see #1011
- Fixed a bug that could make the pitch plugin to not be properly initialized
- The saturation warning should not displace its neighbor widgets anymore
- Fixed the locale in a few widgets
- Fixed wrong alignment in a few widgets
- The Loudness plugin is being used again for the reasons described at #820. This means that http://drobilla.net/plugins/mda/Loudness is an optional dependency again.
- Fixed a segmentation fault that happened when optional dependencies were not installed
- Improved equalizer interface.
- Now we use a sidechain LSP compressor that allows the user to select and external source as the sidechain input.
- We now support the LSP compressor
Boosting
mode. - When
split-channels
is enabled in the equalizer the imported APO preset will be applied only to the channel being visualized in the window. This will allow to import different presets for each channel instead of just settings the same values to both.
- Fixed some segmentation faults that could happen when creating a preset autoloading profile or removing presets
- This is one of the biggest releases that I have ever made. The amount of changes is so big that it is hard to talk about everything here.
- The following are just the most import ones. People interested on the journey that got us here can take a look at #904 and #874.
- The application and its repository have been renamed from PulseEffects to
EasyEffects
- gtkmm3 was replaced by gtkmm4
- Gstreamer was replaced by native PipeWire filters.
- Many features were reimplemented from scratch. The preset autoloading is one example. Another remarkable change will be seen in the plugins selection menu. Now the user can show in the window only the plugins that he/she wants to use.
- Boost is no longer a dependency. The price paid for that was a little change in our presets structures. With some patience it is possible to edit PulseEffects presets in a text editor and make them work in EasyEffects. Hopefully someone will come up with a script for this in the feature.
- New libraries are being used and some of the librarires that were optional before are now required