Depending on whether VST effect has an editor return 1 or 0 in
VstEffectControls::getControlCount(). This prevents the EffectView in
the effect rack from showing a "Controls" button and creating an empty
subwindow.
(cherry picked from commit 3a4ae3a434)
Added inline method hasEditor() with returns true or false depending on
whether the class received a window ID from the remote plugin.
(cherry picked from commit 044d671471)
Do not lock up after rendering project by calling waitForInitDone()
on our own (instead of in RemotePlugin constructor) with busy waiting
disabled.
(cherry picked from commit 75382de976)
Create an own RemotePlugin object rather than inheriting from it.
This allows to restart ZASF RemotePlugin which for example is required
upon samplerate changes (closes#2626249).
Furthermore this commit cleans up some old unused stuff.
(cherry picked from commit dfab704100)
Always send MIDI pitch bend events to MIDI channel 0 for the time being.
Makes MIDI pitch wheel work with ZynAddSubFX.
(cherry picked from commit 9873b880e2)
When loading external XIZ presets, the embedded ZynAddSubFX plugin didn't
apply them completely so it did not save them properly later. This made
ZASF instruments play the default preset when loading the LMMS project
later. Now presets properly get applied to the selected instrument part.
(cherry picked from commit 7a176c8fbb)
Embedded ZynAddSubFX plugin now is considered to be mature enough to
be part of the stable-0.4 series. This eases builds for everyone as well
as cutting down maintainance work dramatically as we can easily
cherry-pick fixes from master branch now.
This commit allows the user to drag'n'drop DLL files onto VeSTige
instrument. Furthermore VeSTige now registers itself as handler for
loading DLL files.
(cherry picked from commit 1b77346ded)
With newer versions of wineg++ (1.1) errorneously adds the suffix ".exe"
to the target binary. This causes "make install" to fail. Therefore
rename remote_vst_plugin.exe if it exists.
(cherry picked from commit 69ff06e1b9)
Removed obsolete warning about setting realtime. It's neither important
nor will calling printf()/fprintf() in a RemotePlugin print anything in
LMMS' console output.
(cherry picked from commit 337afffbf1)
Removed the newline character at the end of the uniqueID array, decreased
array size to 5 and initialize last element with 0 after sprintf() call.
(cherry picked from commit 7d1a357076)
For some reason, building remote_vst_plugin.cpp with recent
wineg++/gcc-multilib on 64 bit platforms causes undefined symbols:
remote_vst_plugin-JzpHs6.o: In function `std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)':
remote_vst_plugin.cpp:(.text._ZNSt4listI12VstMidiEventSaIS0_EE9_M_insertESt14_List_iteratorIS0_ERKS0_[std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)]+0x35): undefined reference to `std::_List_node_base::hook(std::_List_node_base*)'
Replacing std::list with std::vector for queueing MIDI events seems to
fix this issue. Consider this as a workaround rather than constructive fix.
(cherry picked from commit c0ff1aa95c)
Up to now changes of samplerate or tempo only have been tracked by the
VeSTige plugin while e.g. the VstEffect didn't forward such changes to the
RemotePlugin. Moving according code from VeSTige to VstPlugin base class
fixes this issue.
(cherry picked from commit 5dd68ea7f3)
In VstEffect constructor set the displayName property in order to make
EffectView display actual plugin name rather than just "VST Effect".
(cherry picked from commit dce6ae9a7d)
Most of the MDA VST plugins require the SplittedThreading model in order
to run properly. All plugins whose unique ID starts with "mda" will be
driven with the SplittedThreading model.
(cherry picked from commit 96fb6f5a38)
When global samplerate changes, settings of a LADSPA effect are stored in
a temporary object, the effect is reloaded and the settings are restored.
However, controller connections weren't restored properly as the connections
were not finalized. This commit fixes the issue.
(cherry picked from commit ee9e5680b7)
When importing MIDI files notes were always mistransposed by 9 semitones.
This commit fixes correction of notes' keys so imported MIDI files sound
just like they should.
(cherry picked from commit 617def002b)
In Qt3 we had to take care of drawing background properly if there were
semitransparent child widgets. This code had been ported to the Qt4 version
but is obsolete and causes a crash when for example dragging a Vibed preset
onto an existing instrument track. This commit removes this code.
(closes#2688270)
(cherry picked from commit d3cc908f43)