- Introduced JACK connection status indication for JACK plugin format.
- Improved keyboard event handling for VST2 plugin format in the case the host prevents plugins from directly receiving X11 events.
- Updated serialization format of the KVT (Key-Value Tree) for the LV2 plugin format.
- Updated parameter mapping LV2 URI for KVT.
- Updated build (some resources were unnecessary added to builtin resources).
- Updated version handling in the UI wrapper that allows to control multiple bundle versions in one global configuration file.
- Updated grammar in several text comments (contributed by Dennis Braun).
- Fixed typo in Wavefront Object File Format name.
- Fixed bugs related to usage of custom installation prefix in build scripts.
- Fixed the XDG data installation script that forced to use '/usr/local/share' location for shared icons.
- Fixed problem with the UI visibility status update for JACK plugin format that could cause problems of missing of some graphical content in the UI.
- Fixed invalid pointer dereference when exporting configuration file that could cause crashes.
- Fixed bug that caused plugins working in headless mode to crash.
- Fixed regression related to saving state of some plugin controls using lv2:State interface.
- Fixed missing serialization for high-precision parameters in the configuration file.
- Fixed bug related to improper parsing of port name aliases in the UI.
- Fixed typo in Wavefront Object File Format name.
- Fixed bug that could cause improper window sizing in several cases.
- Decomposition of core modules into submodules.
- Implemented multiple visual themes for the plugins.
- Added possibility to change visual themes in runtime.
- Added headless support for JACK plugins.
- Fixed delay compensation issue for Dry/Wet balance for single-banded dynamic plugin series (Compressor/Gate/Expander/Dynamic Processor).
- Add support of LV2UI:scaleFactor extension - https://github.com/drobilla/lv2/pull/38/commits
- Implemented 'Reset to default' button.
- Added support of building under LoongArch32 and LoongArch64 architectures.
- Added support of building under 32-bit and 64-bit RISC-V architectures.
This is traditional release up to the anniversary of LSP Plugins.
There are no huge differences in the source code tree and the release consists mostly of user contributions.
But the primary goal is that the 1.1.x development branch becomes frozen until the upcoming 1.2.0 release will be ready.
The set of changes is the following:
- Fixed X11 error handling routine that could crash under certain conditions.
- Better support for musl libc (contributed by Artur Sinila).
- Added support of VERBOSE parameter for build system (contributed by Artur Sinila).
- Fixed possible system crash in profiler plugin.
- Updated LV2 TTL generator, now instrument plugins are better compatible with Ardour DAW.
- Updated french translation (contributed by wargreen at Github and Olivier Humbert).
- Migrated hyperlinks from HTTP to HTTPS protocol (contributed by Bruno Vernay).
- Added support of build for 32-bit and 64-bit RISC-V architecture (contributed by Xeonacid at GitHub).
- Fixed window issue for the Fluxbox window manager.
- Fixed build for ARMv8 architecture (contributed by Marek Szuba).
LSP Plugins 1.1.30 released!
- Implemented Oscilloscope plugin series: x1, x2 and x4. UX design by Boris Gotsulenko.
- Added data streaming port support to plugin framework.
- Added strobe feature to mesh primitives that allows to draw multiple streamed meshes together.
- Implemented 4-lobe Lanczos oversampling DSP functions for i586 architecture.
- Implemented 4-lobe Lanczos oversampling DSP functions for x86_64 architecture.
- Implemented 4-lobe Lanczos oversampling DSP functions for 32-bit ARM architecture.
- Implemented 4-lobe Lanczos oversampling DSP functions for 64-bit ARM architecture.
- Minor bugfixes in the core library.
- Fixed bug with character set encoding for several systems with limited iconv.
- Fixed latency compensation issue that happened for the 'Bypass' switch/automation.
- Implemented additional 'Boosting' mode for the single-band compressor plugin series.
- Implemented additional 'Boosting' mode for the multiband-band compressor plugin series.
- Updated french translations (contributed by Olivier Humbert).
- Updated italian translations by Stefano Tronci.
- Desktop icon installation moved to a separate 'install_xdg' icon to prevent LSP icon flooding for several systems which don't support XDG standard.
LSP Plugins 1.1.29 released!
- Fixed latency computation error for FIR and FFT modes of the filter.
- Optimize FIR and FFT equalizers to use fastconv_ routines instead of FFT.
- Implemented SPM mode for Parameteric and Graphic Equalizer plugin series.
- Fixed improper VST call handling for several calls.
- Several typo fixes in documentation (contributed by Olivier Humbert).
- Fixed improper output MIDI event sorting for all plugins.
- Channels of spectrum analyzer are now synchronized.
- Fixed regression related to loading built-in file resources.
- Added extra button to hide/show equalizer section for Impulse Responses and Impulse Reverb plugin series.
- Updated OBJ file parsing for support less strict file format.
- Fixed improper behaviour of File Open Dialog widget related to file name input.
- Art Delay plugin settings changed: by default multipliers are now set to 1, BPM multiplier allows now to step with 0.5 values allowing to set dotted notes.
LSP Plugins 1.1.28 available!
Today we celebrate 5 year since the 1.0.0 release. That's hard to imagine but the huge amount of work has been done.
For these 5 years LSP Plugins became one of the top audio plugins used in Linux music production. Among this period new requirements came to the project and we tried to fulfill them all while caring for the quality, stability and performance of the software.
Anyway, there are some requirements that don't fit into the project and require th codebase to be rewritten. This year was dedicated for refactoring and decomposition of core modules but, sadly, the refactoring process did not end up to the end of this year. Hope we'll finally end up with the 1.2.0 release in the next year which will refresh the internal plugin architecture and change user and developer experience.
Merry Christmas and Happy New Year!
The overall list of changes
- Implemented Artistic Delay plugin.
- Added delay time and phase inversion for each band of the crossover plugin.
- MIDI octave numbering now starts with "-1", previously it started with "-2".
- Added automatic scanning of installed Hydrogen drumkits to the Multisampler plugin series and possibility to load them by single click in the main menu.
- Added sample reversal feature to the Sampler/Multisampler/Trigger plugin series.
- Added possibility to change the note number in Sampler/Multisampler/Trigger plugin series by scrolling mouse wheel over the note number indicator or performing mouse double click on it.
- Added possibility to use relative paths in file configurations.
- Added 'Plugin Manual' menu item to show the documentation to plugin in the browser.
- Added 'UI Manual' menu item to show the documentation to UI in the browser.
- Added tutorial of using hydrogen drumkits in the Multisampler plugin series - contributed by chrisanthropic @ github.
- Updated french translations - contributed by Olivier Humbert.
- Plugins now can be built with Clang C++ compiler version 10+.
- Refactored ipc::Process for better work with vfork() system call.
- Fixed bug in improper RGB -> HSL conversion for UI.
- Fixed regression in led indication for the Compensation Delay plugin series.
- Fixed drag&drop regression after code refactoring.
- Fixed bug in Fraction widget related to nominator drop-down list values.
New version of LSP Plugins 1.1.26 available!
- Implemented Crossover Plugin series.
- Fixed phase mismatch between channels in the oversampling mode of limiter (contributed by Hector Martin).
- Fixed bug in convolver module which could perform improper tail convolution (reported by Robin Gareus). Affected plugins: Impulse Responses, Impulse Reverb, Room Builder.
- Fixed small memory leakage in multiband plugins (Compressor, Gate, Expander) related to usage of Inline Display feature.
- Added support of pg:mainInput and pg:mainOutput LV2 properties in TTL files for all plugins.
- Updated all C++ heades and source files to match the LGPL3+ license headers.
LSP Plugins 1.1.24 released!
New release of LSP Plugins is available with the following changes:
- Implemented Loudness Compensator plugin series (Mono and Stereo).
- Implemented Surge Filter plugin series (Mono and Stereo) for protecting audio chain from possible pops on playback start/stop events.
- Significant changes the Limiter Plugin series, may be partially incompatible with hosts/wrappers:
- Removed 'Classic' and 'Mixed' modes since these modes do not give effective results.
- Introduced Automatic Level Regulation (ALR) feature enabled by default.
- Added possibility to dump internal state of plugin to file.
- Several plugins now support dumping of internal state.
- Added support of loading Hydrogen drumkits by the Multisampler plugin series.
- Added 'Squared Cosine' and 'Cubic Hermite Spline' windows to Spectrum Analyzer.
- Fixed bug that caused Spectrum Analyzer to ignore window selection.
- Fixed bug in AVX-optimized sidechaining funcion that could cause invalid behaviour of plugins that use external/internal sidechain for processing.
- Implemented back-buffering of the window surface, all UI controls now don't glitch on edit.
- Refactored and simplified LV2 parameter transport between UI and plugin code.
- VST plugins now provide possibility to save and load presets and do not crash Host.
- Added support of lv2:StateChanged extension which properly works with Ardour 6.0.145 and higher.
- Fixed improper behaviour of VST controls under REAPER host (and possible other VST hosts).
- Updated metadata for dynamic processors to better match the UI.
- Now all lv2:Atom ports that do not provide MIDI message transfer are marked as lv2:connectionOptional.
- Exported plugin configuration now contains information about original package version.
LSP Plugins 1.1.22 released!
- Implemented Multiband Gate plugin series.
- Added sidechain low-pass and high-pass filters for Compressor plugin series.
- Added sidechain low-pass and high-pass filters for Expander plugin series.
- Added sidechain low-pass and high-pass filters for Gate plugin series.
- Added sidechain low-pass and high-pass filters for Dynamic Processor plugin series.
- Added sidechain low-pass and high-pass filters for Trigger plugin series.
- Fixed VST2 identifiers for Multiband Expander plugin series.
- Fixed graph issues related to dot editing.
- Added spanish translation of the UI (contributed by Ignotus - ignotus666 at github.com).
- Compressor, Expander, Gate and Dynamic Processor plugins now report latency for the lookahead knob.
- Fixed mapping of some numpad keys that could cause problems when entering manual value in the UI.
- VERSION build variable replaced with LSP_VERSION build variable (contributed by Bruno Vernay).
LSP Plugins are currently moving towards 1.2.0 release but that requires huge core updates which are now in progress. This is basically set of minor fixes to the current source tree.
- Fixed UI synchronization issue on plugin state restore for VST plugin format.
- Fixed improper work of default Attack and Release time parameters for Dynamic Processor plugin series.
- Fixed build broken by recent LV2 header updates.
- Some french translation fixes (contributed by Olivier Humbert).
This is mainly the patch set to the latest 1.1.17 release.
List of changes:
- Updated XDG desktop application integration.
- Refactoring of sse::fft functions for better portability between different compilation options.
- Fixed bug in asimd::hdotp functions for AArch64 that caused invalid result output.
- LV2 UI and standalone JACK plugins are now resizable.
- Fixed plugin sizing issues on certain new Linux distributions.
- Refactoring and several fixes of decoding and encoding of MIDI protocol messages.
- Fixed silent MIDI output for JACK plugins.
- Profile binaries are now excluded from release build.
LSP Plugins 1.1.17 - set of fixes.
This release solves some additional problems found since 1.1.14 and 1.1.15 release. The full list of changes:
- Desktop integration icons are now more properly following the XDG standard.
- Fixed Lanczos resampling kernel formula for oversampling operations.
- Fixed improper display of units in the UI.
- Added French translation of the UI (contributed by Olivier Humbert).
- Added Italian translation of the UI (contributed by Stefano Tronci).
- Fixed non-working right sidechain channel for stereo version of Compressor, Dynamic Processor, Expander and Gate plugins.
- Added WM_NAME, WM_CLASS and WM_WINDOW_NAME support for the X11 protocol.
LSP Plugins 1.1.15 is out!
This release mostly fixes problems found in the 1.1.14 release.
The overall list of changes:
- Fixed improper TTL file generation for several plugins.
- Restored missing SVG files, implemented proper icon installation.
- Added better desktop entry categorization (contributed by Dennis Braun).
- Added protection from NaNs, Inf's and denormal floating point values passed to plugins' audio inputs, all considered to be invalid values are replaced with zeros.
- Added '-fvisibility=hidden' compilation option to avoid conflict between builtin resources of shared objects that contain implementation of different plugin formats.
LSP Plugins 1.1.14 is out!
- Implemented Multiband expander plugin series.
- Additional DSP optimizations of code with AVX, AVX2 and FMA3 instruction set or i586 and x86_64 architectures.
- Additional DSP optimizations for AArch64 architecture.
- Reworked and additionally optimized structure of all filter chains.
- Refactored and optimized dynamic filter processing.
- Updated behaviour of limiter in classic mode.
- Implemented multilingual interface support.
- Implemented workaround for Drag&Drop support initiated by GTK-based applications.
- Added russian translations of the user interface.
- Added desktop menu for standalone JACK plugins (contributed by David Runge).
- Added scalable vector graphics (SVG) logo (contributed by Sergey Tkach).
- Added 4.5 dB/octave envelope compensation for spectrum analyzer, renamed purple noise to violet noise in UI.
- Bypass button now supports LV2:enabled designation, that makes plugin to work more smooth with the host.
- Bypass button now handles effSetBypass VST event, that makes plugin to work more smooth with the host.
- Now LV2 and VST plugins can be compiled without the UI support.
- Removed strict requirement to build UI for LADSPA version of plugins.
- Implemented support of LV2 state:mapPath extension.
- Denied use of -ffast-math compiler option since it may provide incorrect behaviour of standard C library functions like isnan() and isinf().
- Fixed upward compressor behaviour: now upward compressor has additional compensation knee that prevents from infinite gain boost on low-level input signals.
- Fixed bug in trigger that caused notes to be immediately cancelled.
- Fixed bug in Profiler plugin that caused crash on saving files to WAV format.
- Fixed bug with producing NaNs by dynamic processors in some cases when knee has zero length.
- Fixed stack corruption bug when working with UI styles and colors.
- Fixed problem with matched Z transform caused by filter characteristics optimizations.
- Fixed bug with pop-up menus in parameter's editing popup window that caused user interface to lock.
- Added SIGPIPE signal blocking for JACK plugin format at startup.
LSP Plugins 1.1.13 - hotfix release.
This is mostly hotfix release aimed to fix problems on processors that provide AVX instruction set but do not provide AVX2 instruction set. Short list of changes:
- Fixed improper utilization of AVX2 instruction when the CPU provides only AVX instruction set.
- Fixed some unit tests.
- Removed strict RPATH dependency in build scripts.
LSP Plugins 1.1.11 is ready!
This release is published exactly 4 years after the 1.0.0 release of LSP Plugins and is aimed to close many core and UI technical debts. All these changes make LSP Project much better in the UI experience and much faster from the DSP perspective.
That's because support of additional features like drag&drop, bookmarks and some other neat features were added to the graphical toolkit.
From the other side, low-level DSP code is additionally optimized with AVX and AVX2 instruction sets which allow to gain additional performance benefits on processors which have fast AVX implementation (All Intel Core 6 generation processors and above, AMD Zen generation processors and above). There was improved support of AArch64 architecture, and some part of DSP code already has been ported to this architecture. The DSP code for ARMv7 architecture also has been additionally refactored and optimized.
Also, the project became more portable because introduced it's own support of XML document parsing mechanism and does not require the expat library more.
The overall list of changes is the following:
- Source code now compiles for the ARMv6A architecture.
- Implemented incoming drag & drop events support for sample loading and file loading widgets.
- Added possibility to double-click the parameter's value and enter it manually with keyboard.
- Added bookmark support by file opening/saving dialogs. Bookmarks are also automatically imported from GNOME/KDE desktop environments' configuration files.
- Refactored UI of the Parameteric Equalizer plugin series.
- Added allpass filters to Parametric Equalizer plugin.
- Added knobs that allow to simultaneously shift frequency for all active filters in the Parametric Equalizer plugin series.
- Added support of RoomEQ Wizard configuration file format import by Parametric Equalizer plugin series.
- Refactored UI of the Graphic Equalizer plugin series.
- Updated UI of the Multiband Compressor plugin series.
- Implemented allpass filters that add phase compensation for the classic mode of the Multiband compressor and allow to achieve flat frequency response.
- Changed reverb simulation algorithm for the Room Builder plugin: the algorithm now handles capture objects as opaque objects, not part of the 3D scene. So the number and location of the captures does not impact the audio simulations. This allows to render the impulse response in more accurate way. However, even after some set of additional optimizations has been made, this yields to some performance degradation because there are much more ray groups required to be processed.
- Added possibility to export state to clipboard and import state from clipboard from the UI of any plugin.
- Added possibility to freeze all graphs in the Spectrum Analyzer simultaneously.
- Added MIDI groups to Multisampler plugin series.
- Added possibility to control how panning and gain controls affect the signal passed to the direct output tracks of the Multisampler plugin.
- Implemented JSON and JSON5 parsing and serializing mechanisms.
- Implemented XML parsing mechanism without built-in DOCTYPE definition support.
- Removed EXPAT library from build dependencies since LSP Plugins have their own XML parser.
- Implemented more advanced expression language for UIs.
- Implemented styling system and basic styling mechanism for UIs.
- Additionally optimized DSP biquad filters for 32-bit ARM NEON instruction set.
- Additional DSP optimizations for AArch64 architecture.
- Additional DSP optimizations of code with AVX, AVX2 and FMA3 instruction set for i586 and x86_64 architectures.
- Refactored clipboard mechanism for X11 protocol, addes support of INCR selection transfer protocol.
- Refactoring of the UI widgets, eliminated old UI code and some deprecated facilities from all widgets.
- Implemented basic styling mechanism for UI widgets.
- Implemented ipc::Process class that allows to run nested processes with I/O redirection.
- Code now prefers vfork() system call agains fork().
- Fixed memory corruption bug in Analyzer core module that could crash the system on non-power-of-two buffer sizes. Affected plugins: Parametric Equalizer, Graphic Equalizer, Spectrum Analyzer, Multiband Compressor.
- Fixed GLX context synchronization issues that could lead to crashes on several systems.
- Fixed bug with improper mouse pointer coordinates for nested menus.
- Fixed bug with improper latency value reported by Limiter plugin series.
- Fixed corrupted LADSPA binaries due to lack of objects that contain non-required built-in resources. Replaced objects with empty stubs.
- Fixed problem of improper loading of 3D Wavefont OBJ files that was caused by improper texture coordinate handling.
- Build fixes for AArch64 architecture related to CPU feature detection.
- Updated VST state serialization mechanism to version 3: now plugin properly handle state if there
- is no chunk header in the chunk data passed from the host.
LSP Plugins release 1.1.10 is ready!
The development of 1.1.10 version took the longest cycle in contrast to previous releases.
All the changes were planned since January 2019 but many supplementary problems should be solved first.
This release contains a lot of internal plugin framework changes, implementation of new UI widgets and, probably, a killer toy: LSP Room Builder plugin series. This plugin allows to simulate impulse response of ANY room (and not only room). You just need to model it first in a 3D editor/designer and export as a Wavefont (OBJ) file.
The overall changelist is the following:
- Implemented 3D reverb simulator plugin series - Room Builder Mono and Room Builder Stereo.
- Fixed improper InlineDisplay feature support in LV2 TTL files.
- Plugin names now have 'LSP' prefix for the LV2 format.
- Each plugin can now provide it's custom UI class which is derived from common plugin's UI class.
- Code now compiles for the PPC64 architecture.
- Code now compiles for the IBM s390x architecture.
- Added command-line option to pass configuration file name for standalone JACK plugins.
- The settings stored in configuration file will be automatically loaded at startup.
- Updated function signatures for libraries which now support '-fvisibility=hidden' compilation flag.
- Added support of nested menus in the UI toolkit.
- Added 3D scene rendering support in the UI by using different rendering backends.
- Implemented GLX backend based on openGL 2.x for rendering 3D scenes.
- Implemented key-value tree storage (KVTStorage) for storing and managing dynamic parameters.
- Implemented key-value tree storage (KVTStorage) UI<->DSP synchronization mechanisms.
- Implemented key-value tree storage (KVTStorage) serialization/deserialization in parameters.
- Implemented key-value tree storage (KVTStorage) serialization/deserialization for the plugin state.
- Implemented mechanism for UI<->DSP OSC message interchange.
- Added support of OSC protocol messages serialization, deserialization and pattern matching.
- Optimized complex number functions for AArch64 architecture.
- Changed installation path for jack core library from <lib-path> to <lib-path>/lsp-plugins.
- Added more careful file type analysis for non-EXT file systems.
- Added support of Hygon Dhyana x86 family CPU optimizations and detection of some other CPU vendors.
- Now both release and test binaries are available to build into separate subdirectories independently.
- Improved built-in resource generation tool.
- Embedded resources are now alphabetically sorted to make the build more deterministic.
- Added support of built-in presets for plugin's UI.
This is mostly a hot-fix release for regressions occurred in a 1.1.7 release. Anyway, there are also some couple of new changes:
- Added experimental support of AArch64 architecture (DSP code is not optimized yet).
- Fixed regression in VST and Standalone plugin formats that caused offline tasks to not to be launched.
- Improved build system to make source code possible to build for KXStudio repository. Distribution builders should ensure that the GNU C++ compiler is selected at the build stage.
- Additional I/O improvements for better WindowsNT support.
Also, you may now observe LSP Plugins in KXStudio repositories as a lsp-plugins package.
We care about the quality of provided plugin bundle and release new bug-fix release that contains the following changes:
- Implemented fully compatible with EqualizerAPO software digital filters that are now part of the Parametric Equalizer plugin series.
- Fixed issue that caused VST plugins not to load from cusom user-defined path.
- Some code parts rewritten for better compatibility with WindowsNT platform.
- Fixed file listing in the file dialog that caused improper reading of remote directories mounted on the local file system.
- Changed implementation of LV2 MIDI transport so now plugins utilize only one LV2:Atom input port and one LV2:Atom output port.
- Fixed bug in host<->UI time and position synchronization for VST plugin format.
- Fixed AVX+FMA3 implementation of dynamic biquadratic filters that caused improper behaviour of the Multi-band compressor plugin on machines that support AVX and FMA3 instruction set.
- Multiband compressor now properly handles the 'Bypass' button.
- Fixed return of improper extension pointers when requested extension is different to the ui:idleInterface.
- Fixed bug in dynamic processor plugin that could issue invalid metering values.
- Fixed UI size issue for VST plugins in Cockos Reaper.
- Fixed numerous memory leakage issues in UI components.
- Fixed spontaneous crashes when destroying the Profiler Mono/Stereo plugin.
- Fixed embedded resource generation tool that had invalid behaviour for several file systems.
- Reimplemented I/O subsystem.
We publish new 1.1.5 release with many improvements exactly three years after the 1.0.0 release!
Merry Christmas and Happy new Year!
- Implemented stereo version of Profiler plugin.
- Added 'Spectralizer' and 'Mastering' modes to the Spectrum Analyzer plugin series.
- All SIMD-optimized DSP code now ported to ARMv7A architecture and optimized using ARM NEON instruction set.
- Added Frame Buffer primitive support by plugins and widgets.
- Implemented RGBA and HSLA color manipulation routines for point array rendering optimizations.
- Extended unit and performance test coverage.
- Enabled RELRO and PIE option for binaries, simplified build system.
- Implemented optimized DSP functions for minimum and maximum search.
- Implemented optimized DSP functions for static biquad processing, dynamic biquad processing, dynamic bilinear transformation.
- Extended DSP code with different set of software rendering functions that enhance visual effects.
- Added support of FreeBSD operating system (plugins are available for building in FreeBSD ports).
- Improved build process, added possibility to specify PREFIX variable for installing into specified path instead of /usr/local.
- Fixed building issues under Ubuntu Linux related to compiler and linker flags reordering.
- Fixed system character set detection on certain systems that caused disappearing of text labels in the UI.
- Fixed window decorating issue under the i3 window manager.
- Fixed biquad filter processing routines that could cause memory corruption and/or invalid behaviour in certain circumstances.
- Fixed serious memory corruption in SSE implementation of fast convolution routines that could cause spontaneous crashes of convolvers.
- Fixed buffer underflow in Convolver module that could cause memory corruption and spontaneous crashes of host.
Release 1.1.4 is coming out with a lot of new changes!
First of all, LSP Plugins became completely open source and are licensed under terms of GNU LGPL v3 license!
Additionally, experimental support of ARMv7-A architecture added, basically for Raspberry Pi 3B/3B+ devices.
The overall list of changes is listed below:
- Changed licensing to GNU Lesser General Public License version 3 (GNU LGPL v3).
- Moved code repository to GitHub while keeping release history.
- Implemented linear impulse response profiler plugin.
- Added basic Raspberry Pi 3B/3B+ (ARMv7A) support (experimental).
- Implemented unit testing subsystem.
- Implemented performance testing subsystem.
- Implemented manual testing subsystem.
- Fixed and optimized convolution algorithm for convolver module that produced invalid output.
- Added LSPC file format implementation.
- Added LSPC file format support to convolver plugins.
- Huge refactoring: DSP code moved from core to separate subtree.
- Partially implemented NEON SIMD instruction support for some DSP assembly functions for ARMv7A architecture.
- Fixed bugs in some DSP oversampling routines.
- Optimized complex multiplication functions.
- Implemented additional complex number routines.
- Implemented additional functions to DSP core.
- Fixed compilation warnings and errors emitted by the GCC 8 compiler.
- Updated development documentation.
New release with many improvements is ready!
- Updated File saving widget to support different kinds of file types.
- Added support of latency report by JACK version of plugins.
- Added support of playback position report (BPM, etc) by JACK transport for JACK plugin format.
- Added support of playback position report (BPM, etc) by host for LV2 plugin format.
- Added support of playback position report (BPM, etc) by host for VST plugin format.
- Added emulation of playback position report for LADSPA wrapper.
- Implemented Fraction widget for editing time signature.
- Implemented Tempo tap widget for manually adjusting tempo.
- Added possibility to configure Slap-Back delay plugin series using BPM-related time units.
- All grid lines are made more 'darken' in the UI.
- Added delay ramping (interpolation) option for Compensation Delay plugin series. This feature allows to apply soft delay change when applying automation in DAW.
- Added delay ramping (interpolation) option for Slap-Back Delay plugin series. This feature allows to apply soft delay change when applying automation in DAW.
- Added modules for reading text files.
- Re-implemented parameter serializing and deserializing interface for more flexible and safe usage.
- Added possibility to copy samples and impulse response files between different AudioFile widgets.
- Fixed GUI crash when pasting data from clipboard.
- Added ability to move the split bars on the Multiband Compressor's graph with the mouse.
After hard work, new release of LSP Plugins, version 1.1.2, is ready!
The main list of changes is following:
- Implemented Muliband Compressor plugin series.
- Added possibility to mute playback by triggering the 'note off' MIDI event in sampler plugin series.
- Implemented ComboGroup wiget for dynamically switching internal contents of the group.
- Fixed error in filter processing algorithms that could yield to invalid results when source and destination buffers differ.
- Additionally tuned SSE code of static filters.
- Refactored CPU identification routines and optimized assembly routines selection.
- Small fixes in UI grid cell allocation and rendering.
- Improved design of markers: added gradient highliting.
- Fixed some UI issues related to switched port values.
- Removed support of some plugins by LADSPA that can not be supported by LADSPA.
- Optimized calculations related to logarithmic axis.
- Fixed bug in UI expression language that incorrectly interpreted 'not' operation.
- Added power mathematical operator to UI expression language.
LSP Plugins release 1.1.1 available. Some bugs related to the new UI were fixed.
Also some improvements of already existing plugins were done. Here is the complete list of changes:
- Plugins have been tested under QTractor 0.9.5 and it seems that they are working well.
- Fixed UI resize issue in Carla host.
- Fixed UI redraw issue that didn't show widgets for several cases.
- Optimized spectrum analysis modules by changing code so it now uses more cache-friendly FFT routines.
- Added graph amplitude scaling to Graphic and Parametric equalizers.
- Added graph amplitude scaling to Spectrum Analyzer plugin.
- Fixed possible memory corruption while redrawing the inline display image of parametric equalizer.
- Fixed possible memory corruption in the Dynamic Processor plugin.
- Fixed latency report for equalizer plugins.
- Updated wrapper to make plugins properly supported by Bitwig Studio that doesn't know anything about kVstParameterUsesIntStep and kVstParameterUsesIntegerMinMax flags.
- Refactored event handling mechanism for widgets: added 'sender' parameter to indicate the widget that initiated slot execution.
- UI now stores last used path when loading samples, impulse response files and configuration files in the global configuration file.
- Fixed problem with UI update in cases when window size does not change. Now works properly.
- Added Mid/Side adjustment knobs for Mid/Side versions of equalizer plugins.
- Reorganized core modules into more comfortable source code tree.
- Added support of UI:updateRate parameter reported by the LV2 host to the UI.
- Added multiple-channel (up to 8 channels) audio file support to Impulse Reverb plugin.
- Updated documentation related to the Limiter plugin.
- Added possibility to equalize the processed signal in convolution plugins.
- JACK version of plugins now automatically handles JACK startup/shutdown and does not require to restart plugin.
Happy New 2018 Year!
Accurately to this date we've gathered donations for new Source Code Release - SCR 1.0.4!
The changelog is, as usual, simple:
- Published source code for the LSP Spektrumanalysator - Spectrum analyzer plugin.
After a long delay, the new 1.1.0 release hase been made!
Today we also celebrate the second year of project lifetime since the 1.0.0 release!
The release slogan can be pronounced as: "Farewall to GTK!", that's why this release includes a lot of HUGE UI changes, so please try it carefully before using on your projects!
The overall changelist is the following:
- Ported all widgets from GTK+ 2.x to raw X11 + cairo
- Ardour DAW is supported by the UI as before
- Mixbus DAW is supported by the UI as before
- JUCE-based hosts are now supported by UI
- Tracktion DAWs are now supported by UI
- Renoise DAW is now supported by UI
- Bitwig Studio DAW is now supported by UI
- REAPER native linux version is now supported by UI
- Updated JACK plugin wrapper to support new UIs
- Updated VST pluign wrapper to support new UIs
- Updated LV2 plugin wrapper to support new UIs
- Implemented LV2:Instance support feature for optimizing LV2 DSP <-> UI transfers
- Official Steinberg VST 2.4 SDK is not required more for building VST plugins
- Added version check for JACK core libraries to prevent multiple installations conflict
- Requirements of naming JACK core library were reduced to only contain 'lsp-plugins' substring
- Added version check for VST core libraries to prevent multiple installations conflict
- Requirements of naming VST core library were reduced to only contain 'lsp-plugins' substring
- Ported Gtk2Box widget to X11UI widgets
- Ported Gtk2Button widget to X11UI widgets
- Ported Gtk2Cell widget to X11UI widgets
- Ported Gtk2Grid widget to X11UI widgets
- Ported Gtk2Indicator widget to X11UI widgets
- Ported Gtk2Label widget to X11UI widgets
- Ported Gtk2Led widget to X11UI widgets
- Ported Gtk2Separator widget to X11UI widgets
- Ported Gtk2Switch widget to X11UI widgets
- Ported Gtk2Knob widget to X11UI widgets
- Ported Gtk2Meter widget to X11UI widgets
- Ported Gtk2Group widget to X11UI widgets
- Ported Gtk2Align widget to X11UI widgets
- Ported Center widget to X11UI widgets
- Ported Axis widget to X11UI widgets
- Ported Marker widget to X11UI widgets
- Ported Basis widget to X11UI widgets
- Ported PortAlias widget to X11UI widgets
- Ported Text widget to X11UI widgets
- Ported Mesh widget to X11UI widgets
- Ported Dot widget to X11UI widgets
- Ported IGraph widget to X11UI widgets
- Ported Gtk2Graph widget to X11UI widgets
- Ported Gtk2ComboBox widget to X11UI widgets
- Ported Gtk2Window widget to X11UI widgets
- Ported Gtk2File widget to X11UI widgets
- Ported Gtk2Body widget to X11UI widgets
- Ported Gtk2MountStud widget to X11UI widgets
- Implemented ScrollBar widget
- Implemented Edit widget
- Implemented ListBox widget
- Implemented Menu widget
- Implemented File Save/Open dialog
- Implemented Hyperlink widget
- Implemented Fader widget
- Implemented File saving widget
- Implemented basic clipboard support
- Code clean up and project tree refactoring
- Fixed inline display drawing issue related to GCC 6 optimization specifics (thanks to Robin Gareus)
- Changed maximum sample length of the Schlagzeug plugin up to 64 seconds
- Changed maximum sample length of the Triggersensor plugin up to 64 seconds
New release 1.0.26 available.
- Implemented Latenzmessgerät - Latency Meter plugin.
- Fixed horizontal meter widget rendering.
Source Code Release (SCR) Version 1.0.2 of plugins now available!
The donation goal of $300 for the Phase Detector plugin has been reached some days ago thanks to your donations.
- Published source code for the LSP Phasendetektor - Phase detector plugin.
- Updated core modules up to 1.0.24 version.
Source code release 1.0.2 is accessible from SVN repository at SourceForge.net
You may help the source code of other plugins to become released by donating the project.
More information about donation and policy of source code publishing may be obtained here.
The new release of LSP Plugins is available! This release does not contain huge impreovements but we have another good news: Stefano Tronci aka Crocoduck has joined to LSP Project team and provided his first plugin!
The complete set of changes:
- Implemented Oszillator - Oscillator utility plugin.
- Fixed CPUID bug that caused Segfault on 32-bit systems.
- Added version to the name of the VST core library to prevent possible conflicts with previous installations.
- Added version to the name of the JACK core library to prevent possible conflicts with previous installations.
- Updated debugging engine that allows to write trace file into /tmp.
- Fixed UI hangup when showing plugin's UI related to gtk_dialog_run() issue.
New release 1.0.23 available. Mostly it's a bug-fix release.
- Fixed buffer overflow in Slap-back Delay plugin series happening with frame size larger than 512 samples.
- Updated expression language for the UI: added literal expressions that are more friendly with XML syntax.
- DSP core functions re-engineering and DSP core interface refactoring.
- Covered many of SSE DSP functions with unit tests.
The new 1.0.22 release of LSP Plugins is available. Many optimization work was done relative to realtime convolution algorithms. Also, as usual, new plugins are implemented. Detailed changelog:
- Implemented slap-back delay plugin series.
- Implemented Impulsnachhall (Impulse Reverb) plugin series as advanced version of Impulsantworten.
- Implemented FFT routines that work with packed complex numbers. Overall SSE performance is 1.4 times higher on AMD processors and about 1.1 higher on Intel processors.
- Implemented FFT-based fast convolution routines (Native and SSE) that work with real data input and real data output and allow to avoid bit-reversal shuffle of the signal data. Also there are serious fixes relative to AMD cache penalties. Overall performance bonus is about 1.5 times to the previous convolution implementation.
- Added Full-oversampling modes to Limiter plugin.
- Updated LV2 atom transport primitives.
- Fixed problem in resampler that didn't allow to set oversampling more than 4x.
- Fixed filter core that didn't properly update settings of filter in the specific case and broke behaviour of oversampler.
- Minor UI updates.
LSP Plugins package version 1.0.20 is out! There are many changes since previous release.
- Implemented Impulsantworten (Impulse responses) zero-latency high-performance convolution plugin series.
- Added Mixed Herm, Mixed Exp and Mixed Thin modes to Limiter.
- Updated Classic mode of Limiter that caused a lot of unpleasant distortion.
- Added dithering support to Limiter plugin.
- Added 6x and 8x oversampling support to Limiter plugin.
- Added lookahead delay line to all dynamic processing plugins (Dynamikprozessor, Kompressor, Gate, Expander).
- Updated UI of all Spektrumanalysator plugin series. Now it takes less place while keeping the same functionality.
- Added notification dialog that asks for donations on each version update.
- Implemented zero-latency convolver core module.
- Implemented dither core module.
- Updated delay core module to become more safe while processing passed data to the input.
- Optimized native implementation of FFT: sine and cosine calculation replaced by complex vector rotating, fixed performance penalties relative to CPU caching issues.
- Optimized SSE implementation of FFT: sine and cosine calculation replaced by complex vector rotating, fixed performance penalties relative to CPU caching issues. Overall performance was raised about 4x times.
- All atom ports for LV2 plugins now have twice greater rsz:minimumSize property.
- Added workaround for VST plugins that crashed because Ardour didn't properly report sample rate to multiple instances.
- VST plugins can now be installed as directory with .so files into VST_PATH.
- Some minor code refactoring.
LSP Plugins celebrate one year since first 1.0.0 release! This day, new release of version 1.0.18 has been published.
- Implemented Begrenzer Mono, Stereo, Sidechain Mono, Sidechain Stereo (Limiter) plugin series.
- Added KVRDC16 entry - Dynamikprozessor Mono, Stereo, LeftRight, MidSide plugin series.
- Added 2x/3x/4x oversampling support by DSP modules.
- Small code refactoring.
LSP Plugins have joined KVR Audio Developers Challenge 2016!
The official page of competition bundle is available at this link
This is special release of bundles and does not contain regular plugin bundles. But this release may be independently set up on your system
We need your votes! Please support bundles by your votes and reviews! All competitors are available here
- Implemented Dynamikprozessor Mono, Stereo, LeftRight, MidSide plugin series with and without additional sidechain inputs.
Release 1.0.16 continues the extension of the set of dynamic processors. This release adds two additional bundles - Gate and Expander. Also there are couple of changes to the UI engine. More information below:
- Implemented Expander Mono, Stereo, LeftRight, MidSide plugin series.
- Implemented Gate Mono, Stereo, LeftRight, MidSide plugin series.
- Added expression language to XML documents that allows to evaluate floating-point values.
- Added feature to meter widget: now middle point-relative output is supported.
- Added possibility to display two values for one metering widget simultaneously.
- Some metadata corrections.
- Updated naming of LinuxVST .so files: all underscore characters are replaced by minuses.
- Added 'TROUBLESHOOTING' section to README.txt and documentation that describes how to
- pefrorm detailed bug/crash report.
- Fixed bug of sidechain triggered when it's working in mid-side mode.
- Updated UI design of the trigger relative to metering.
LSP Plugins bugfix release 1.0.15.
- Updated metadata to place english names first for all plugins, and german names afterwards.
- Updated Triggersensor, Parametrischer Entzerrer, Grafischer Entzerrer, Kompressor plugin series UI: changed input and output level meters that now display both peak and RMS values.
- Removed JUCE workaround to prevent crashes of Renoise DAW.
New release from Linux Studio Plugins Project, version 1.0.14.
- Implemented Kompressor Mono, Stereo, LeftRight, MidSide (Compressor) plugin series
- Implemented Seitenkette Kompressor (Sidechain Compressor) Mono, Stereo, LeftRight, MidSide plugin series
- Moved sidechain processing functions into independent separate DSP module.
- Fixed issue related to LV2 bug that disallows to save preset of plugin if it has square brackets in the name.
- Fixed build issue triggering on GCC 6: default C++ standard in GCC was changed to C++11, added strict C++98 usage into makefiles.
- Fixed time drifting between Middle and Side channels in FIR/FFT mode for Graphic Equalizer and Parametric Equalizer.
- Fixed and updated metadata of Graphic Equalizer plugin: now filters have individual pre-defined frequencies, Graphic Equalizer's tranlation is corrected to 'Graphic Equalizer'.
- Re-worked LSP Parametrischer Equalizer plugin series: added filter mode parameter.
- A bit improved support of LinuxVST for Tracktion DAW and other JUCE'd plugins. Great thanks to Nick Dowell, the developer of amsynth. Still, there are problems with UI redraw.
- Implemented biquad x8 filter bank using SSE, SSE3, AVX and FMA instructions, overall performance goal is about 1.8x on x86_64 architecture, i586 architecture has no performance regressions when switching from two x4 banks to one x8 bank.
- Fixed issues with peak value transfer from DSP to UI for VST and JACK versions of plugin.
LSP Plugins version 1.0.12 released!
Many optimization work was done that highly increase performance. Additional features are now provided for most plugins. Here is the following list of changes:
- Implemented LSP Grafischer Entzerrer (Graphic Equalizer) x16 Mono/Stereo/LeftRight/MidSide plugin series.
- Implemented LSP Grafischer Entzerrer (Graphic Equalizer) x32 Mono/Stereo/LeftRight/MidSide plugin series.
- Additional package with HTML documentation is now provided.
- Fixed behaviour of trigger-type button when right mouse click occurs.
- Added output balance knob to LSP Parametrischer Entzerrer Stereo/LeftRight/MidSide plugin series.
- Implemented multiband crossover processor in DSP core for future use.
- Added Inline Display LV2 extension support provided by Ardour to all LV2 plugin series that use interactive graphic output.
- Standalone versions of plugins now draw their state on window icons similarly to Inline Display extension.
- Optmized processing speed of IIR filters, overall acceleration is about 1.5x for filters with low number of poles and zeros, about 5x for filters with high amount of poles and zeros.
- Optimized equalizer structure by using filter banks. Low-pole filters in equalizer are combined into 4x biquad filter banks. Overall performance improvement is about 4x.
- Floating-point calculations are more accurate now for FIR filters.
- Added output signal metering to LSP Parametrischer Entzerrer plugin series.
- Moved spectrum analysis into separate core module for making re-usable.
- Fixed bugs of floating-point number formatting by the 'indicator' widget.
- Added possibility to minimize visual space used by plugin by reducing size of rack mount studs in the UI.
- Plugin UIs now store global configuration in ~/.config/lsp-plugins/lsp-plugins.cfg file.
- Fixed MIDI output for JACK wrapper.
- Added avoiding of denormal floating point values that may cause extra CPU performance penalty by modifying MXCSR register value before audio processing stage and restoring it's value after audio processing stage.
Version 1.0.11 of plugins has been released.
- Optimized graph widget relative to axis objects, logarithmic scaling is now implemented in SSE2 and is about 6 times faster than native implementation.
- Refactored widget rendering subsystem: FPS is lowered and stabilized around 20 FPS.
- Implemented additional compression of built-in XML resources for the UI, now XML resources obtain about 3 times lower space in binaries.
- Highly optimized rendering of Gtk2Graph and Gtk2File widgets that caused excessive CPU load: the CPU utilization is now about 7 times lower.
Source Code Release (SCR) Version 1.0.0 of plugins now available!
The first donation goal of $100 has been reached some days ago thanks to your donations.
- Published source code for the LSP Verzögerungsausgleicher - Delay compensator plugin series.
Source code is accessible from SVN repository at SourceForge.net
You may help the source code of other plugins to become released by donating the project.
More information about donation and policy of source code publishing may be obtained here.
Version 1.0.10 of plugins has been released.
- Implemented Parametrischer Entzerrer (Parametric Equalizer) x16 Mono/Stereo/LeftRight/MidSide plugin series.
- Implemented Parametrischer Entzerrer (Parametric Equalizer) x32 Mono/Stereo/LeftRight/MidSide plugin series.
- Profiling release now available for standalone version of plugins. Requires JACK server.
- Updated formulas for noise envelopes of Spektrumanalysator plugin series.
- Fixed convolution function in DSP that returned zero on small convolutions.
- Fixed bugs in some functions.
- Implemented SSE routines for operations on small vectors of 4 elements.
- Implemented SSE routines for bulk biquad filter processing.
- Updated license text relative to project developers and project maintainers.
- Implemented filter core.
- Implemented equalizer core that supports IIR, FIR and FFT filtering.
Version 1.0.8 of plugins has been introduced.
- Implemented Triggersensor Mono/Stereo plugin series.
- Implemented Triggersensor MIDI Mono/Stereo plugin series.
- Implemented JACK wrapper, all plugins now have their standalone implementations.
- Updated LV2 transport: now plugins do not transport primitives when there is no UI connected.
- Updated LADSPA wrapper: added latency reporting ports for the plugins.
- Implemented peak transfer protocol for peak values.
- Implemented metering widget for UI.
An update 1.0.7 that fixes some problems has been released.
- Fixed the broken UI for Spektrumanalysator x4, x8, x16.
- Added test that displays all UI and can be launched before the build.
- Minimized the size of the Schlagzeug plugin series UI.
Version 1.0.6 has been released!
- Reorganized source tree. Splitted plugin metadata into separate files and moved from core to the new directory.
- Fixed errors in formulas of noise envelopes for Spektrumanalysator.
- Fixed some bugs in DSP SSE module functions caused to possible crash plugins on some conditions.
- Implemented audio resampling algorithm for audio files using N-period Lanczos kernel convolution.
- Implemented some core primitives like Toggle, Blink etc.
- Added support of MIDI events for LV2.
- Added support of MIDI events for VST.
- Added support of plugin state serialization for VST.
- Implemented port sets for reducing plugin's port overhead.
- Implemented indexed proxy ports for the UI.
- Re-engineered LV2 Atom transport subsystem.
- Re-engineered LinuxVST transport subsystem.
- Additional feature ('quick tune') implemented for knob control (available when clicking on the knob's scale).
- Implemented serialization/deserialization of plugin state to plain text files (available in UI when clicking on logo or model acronym).
- Optimized the size of XML data (implemented 'ui:for' tag for cycles in XML documents).
- Optimized LV2 TTL generator for more compact RDF output, fixed some problems in RDF format.
- Changed the color of 'Bypass' swtich to red.
- Implemented Klangerzeuger (Sampler) plugin Mono/Stereo series.
- Implemented Schlagzeug (Multi-Sampler) plugin x12, x24, x48 Stereo/Direktausgabe (DirectOut) series.
Version 1.0.4 has been released!
- Reduced size of mesh to 192 points for Phasendetektor.
- Reduced mesh refresh rate to 20 Hz.
- Fixed metadata for Phasendetektor (ID of 'best value' meter was mistyped).
- Added LV2 Units support for the plugins.
- Optimized some of bulk data operations with SSE.
- SSE-based DSP module now is built-in for all releases and dynamically turns on when possible.
- Implemented FFT algorithm with SSE-specific optimizations.
- Implemented support of ports containing file names for LV2 (LV2 Paths).
- Implemented support of plugin state serialization for LV2 (LV2 State).
- Implemented support of LV2 worker interface (LV2 Worker).
- Implemented support of native worker interface (based on pthreads).
- Implemented Spektrumanalysator (Spectrum Analyser) plugin series (x1, x2, x4, x8, x12 and x16).
Version 1.0.3 has been released!
Many refactoring and some bugfixes have been done:
- Reduced mesh primitive synchronization rate to 25 Hz for LV2 Atoms.
- Simplified core plugin class.
- Simplified plugin UI class.
- Optimized DSP for SSE instruction set.
- Optimized Phasendetektor for DSP usage.
- Changed name of LinuxVST distribution from 'vst' to 'lxvst'.
- Removed dynamic_cast from C++ code and RTTI from linkage.
- XML documents now are built-in resources, expat library is required only for building binaries.
New release 1.0.2 available! Now plugins are fully compatible with LinuxVST plugin format!
- Implemented plugin wrapping layer for more flexible plugin control.
- Added GUI wrapper for LinuxVST plugins.
Happy new year! The version 1.0.1 was released! The most significant changes:
- Fixed bugs in SSE assembly code discovered at 44100 Hz sample rate.
- Optimized SSE DSP processor: now it doesn't need to be an instance of the class.
- Fixed assertion issues with GTK+ support on UI close and destroy for LV2.
- Implemented generic LinuxVST support for plugins. Currently UI is not supported.
- Updated plugin metadata to become more compatible with VST.
Project officially announced, the first demo video is available on the video page.
The version 1.0.0 of the binary plugin package has been released.
You may get the release files from the download page.
The project becomes it's own domain name and site.
The project has been started. The first commit with initial import was made to the code repository.