src/core/RemotePlugin.cpp @ RemotePlugin::process
Above function should be now more thread safe, but functionality remains.
This prevent lmms locks, when automation is connected to lmms VST plugin wrappers controler / knob on Linux.
On win32 build whenever is lmms wrapper parameter controler / knob amended.
plugins/vst_base/VstPlugin.cpp @ VstPlugin::setParam
plugins/vst_base/RemoteVstPlugin.cpp @ RemoteVstPlugin::processMessage
In above functions we dont wait for message confirmation when parameter setter function finish, and dont send such confirmations.
This workaround prevent locks on Linux, whenever there is automation connected and if you try to move with VST plugin
(not via lmms plugins wrapper, but with VSTs internal window) than it freezes, on win32 build it will freeze whenever you connect
automation and than if you move your mouse above this VST plugin window.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Thanks to Tres Finocchiaro for pointing out this issue and many thanks
to Mike Choi for providing a helper script for automatically fixing
the preset files.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
As reported by Mikobuntu on 2012-12-06 there's a problem when minimizing
the FX mixer window. The problem disappears when not setting a size
constraint on the mixer's MDI window.
The previous behaviour was very annoying because starting to drag the
knob almost always resulted in a value change. This has been changed
by a rewritten logic for mouse click and move behaviour.
Closes#3588157.
Use GCC's builtin atomic add/subtract operation for incrementing/
decrementing the recursive lock variable. This is needed to avoid race
conditions and is much faster than using mutexes etc.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Not all plugins save current program in their chunk (or do not restore
it properly). We therefore have to save and restore the current program
manually.
Closes#3581879.
The code for managing programs/presets of RemotePlugin instances was
very confusing, mainly within the VstPlugin and RemoteVstPlugin class.
I therefore started to reorganize and rewrite functions.
This patch adds the option to remove the extra silence at the end,
so that the exported song can be seamlessly looped.
This is a backport of commit 8f1657164a.
Closes#3588890.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
We have to use the new semantics of the ProjectRenderer management when
exporting the whole project as one track as well. Otherwise the program
crashed as it tried to utilize the ProjectRenderer instance twice.
Due to various bug reports, I think we should turn off auto save per
default. Users who want this feature can turn it on explicitely (and
live with problems when they have big projects).
We have too many components in LMMS relying on FFTW3. Building LMMS
without them cripples LMMS' functionality substantially, so simply
make fftw3 a requirement.
Closes#3495736.
It came to me that having LMMS output one fixed note from a track could
be useful for controlling drum machines or something like that, so here's
a new spinbox for the MIDI tab.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>