MIDI commands All Notes Off, All Sound Off and Omni/Mono/Poly mode will
now silence all playing notes, as they should.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
When using the multitrack export feature the output files always had
the extension ".wav", even if exported as OGG. This patch fixes this
issue.
Closes#3595157.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
In automation patterns there always had to be a value at position zero
which also had a special semantic concerning the initial values of
connected objects. However that logic was buggy and confusing.
I therefore completely removed the neccessity for a value at position
zero (automated value will be 0 until the first set point).
Up to now there was no possibility to remove song-global automation from
a control once created. Overcome this issue by adding an according action
in the context menu of all AutomatableModelView instances.
Window title for VSTi parameter controlling window should be set according to
actual track name, not from VST plugin name as its now, it is hard to get to know
which window belongs to where when same plugin is e.g. opened several times, so
with the same name. Now this is handled in paint event, but TBD whenever is
that track name changed. tbd, temporary solution.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
When you double-click on some knob to change its VST parameter value
manually, new dialog window now has same title as what was that knobs
name. (instead of "lmms" title string)
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Filter to display only automated / all knobs (new button) on LMMS VST parametr control window.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
After project save/load unsaved VST control parameters in LMMS VST control wrapper are not set to zero now, but reloaded according plugins saved state.
No need to sync values manualy again, after project save, load.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Only not automated values are synced from VST plugin, no need to sync already automated values.
Synced values are now not trackable with undo / redo, before all changes were tracked individualy,
but user could lose ability to undo easily changes before sync buton was pressed.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Fixed destuctors for various types of VST automation panel removal.
Automated signals correct disconection on panel removal.
When you load new VST plugin in the place of old one, while automation
is already connected and active there, this should not result in LMMS crash
or reuse of that old automation connections and automation window destructor
should not leave zombie VST plugins on application exit.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
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.