Instead of flipping to next page when the play position marker reaches
the right edge, scroll to next page smoothly using the QTimeLine class.
Closes#3144318.
There were many changes in the CALF repository. Cherry picking all of
them individually would be lot's of work, that's why I just applied
a diff made up from the following commits:
* Add ChangeLog entries of the remaining bugfix 0.0.18 releases.
* First attempt to update ChangeLog with the changes from last 2 years.
* Fluidsynth: set sample rate on a synth instance.
* Monosynth: allow modulation matrix when configure is available.
* Improve LADISH level 1 integration. Doxygenize host_session a little bit.
* Avoid starting LASH just to display the help text.
* Reuse instance IDs of removed plugins.
* Don't crash on failure of the save operation.
* Remove by pointer, not by position - better for rearranged lists.
* Mark the reorder function as experimental. Print new plugin order to stdout.
* Add channel number to internal MIDI API. Fix stack overflow in Calf Organ.
* Ignore data type for now, to help diagnosing restore issue with Ardour.
(cherry picked from commit a6c6e18508)
When packaging the ZynAddSubFxCore library (Windows builds), there's no
need for including the DLL import library, so skip it. Furthermore make
sure to strip the ZynAddSubFxCore library which decreases its size from
8 MB to about 1 MB.
(cherry picked from commit 4616a53eb2)
I updated the MinGW cross compiling packages to come alogn with
Qt 4.7 and a revised build architecture. Qt's devel tools such as
qmake, moc & friends are now built natively and allow using them like
native Qt installations. This means there's less to hardcode in the
MinGWCrossCompile file.
The PortAudio backend lay down broken for quite a while. However as it
offers much better realtime capabilities on Windows compared to SDL, I
started to resurrect it, removed support for PortAudio < 1.9 and fixed
various bugs and crashes.
When changing an InstrumentTrack's base note while NotePlayHandles are
active, they will send a wrong MidiNoteOff event due to the masterKey()
translation in InstrumentTrack::processOutEvent().
Therefore in NotePlayHandle remember the original base note value and
add the difference between original and current base note to the value
returned by NotePlayHandle::key(). Fixes hanging notes in MIDI-based
instruments such as ZynAddSubFX.
Furthermore some coding style improvements.
Closes#3146975.
* win64-vst:
VST support layer: fixed non-working 64 bit VST plugins
VST support layer: added 32 bit VST plugin support for Win64
Win64Toolchain: added 32 bit compiler configuration
ZynAddSubFX: use new RemotePlugin::init() method
RemotePlugin: added support for running remote process multiple times
(cherry picked from commit 65c073ec63)
When instantiating the SpectrumAnalyzer plugin more than once the
processed data somehow got invalid and caused all but the first
SpectrumAnalyzer instance not to work at all. This can be fixed easily
by clearing m_buffer in SpectrumAnalyzer's constructor.
Closes#3137877.
(cherry picked from commit ab814c03a7)
Use "LMMS ${VERSION}" for the CPACK_NSIS_DISPLAY_NAME variable. This
affects the start menu entries on Windows where we want the user to be
able to distinct between various installed versions of LMMS easily.
* calf-updates:
Reimplement modulation matrix (and tables in general) using configure variables. Slow and most likely incomplete, but a good start.
Add extra checks to detect when param_count != param array size - 1.
Fix another install-related crash, this time due to invalid params in fluidsynth. (cherry picked from commit 034e3a47cd40eb6bb7d221274fda2a5c1c79f42f)
Fix the infamous crash on install. (cherry picked from commit f0568e2f8a4c7d0003cc5a15e300aa2ebb3f93cb)
The range given in the comment wasn't really correct. (cherry picked from commit 292cdaa81dab7e7d948f597041cb86d70dc5ff92)
Use symmetric dB range for EQ plugins.
Fix a few bugs in compilation of limited versions (DSSI without GUI, no JACK host).
Initialise the vintage delay properly... hopefully this time. (cherry picked from commit c96ff1d680148cc877fab3b641d666068eea06aa)
Unbreak Monosynth by changing listview to use a 'key' attribute instead of 'param'.
(cherry picked from commit c562952800)
* calf-updates:
Make meters in compressor/EQ/distortion modules sample-rate-dependent. (cherry picked from commit 47a87c696223625d31cf106e12ed08cd3293be14)
(cherry picked from commit 6581a11a45)
There's no need to implement an own (buggy) window activation history
for InstrumentTrackWindows. Use QMdiArea::subWindowList(...) instead.
Fixes buggy keyboard focus when switching between InstrumentTrackWindows.
(cherry picked from commit c05965117c)
Added a one-window-mode which allows to have only one instrument track
window open at a time. The content of this window is replaced each time
you open a different track.
Furthermore added global reception and forwarding of key events to the
piano widget of the top-most instrument track window. This for example
enables the user to play test sounds while tweaking some effects in a
different subwindow.
(cherry picked from commit 93681760d2)
With Qt 4.7 the alternating row color in the Sf2 patch selector dialog
somehow was messed up. Fixed this by explicitely setting the alternating
row color in the style's CSS files.
(cherry picked from commit fd40743772)
Whenever closing the sample track effects window using its own close
button and trying to open it again there was only a really small window
without functionality. Fixed this by explicitely also showing subwindow
content in showEffects().
Closes#3075205.
(cherry picked from commit 830c2cb975)
* calf-updates:
LADSPA/CALF: removed unused file
One table_edit_iface per table; start implementing a bridge class. (cherry picked from commit 2019ae2d8f9636b7d5cdb0c1fdd5f0d6f2b47e3d)
Move the table_edit_iface out of plugin_metadata_iface, where it should have never been in first place. (cherry picked from commit 6907dc9670eae2313707b142c552a8d9e8b477b5)
Fix organ crash in calfjackhost. (cherry picked from commit b2853103199b3f5f3a5d22271c5d89122514dd53)
Remove the forgotten leftover references to the old extensions. (cherry picked from commit deb8b77bdb1e1648a38589b3be3d4d66175b4934)
Replace string port/message context using persist extension. (cherry picked from commit b8e69ceb2ff7aca549efd939d04447e2f08ad5a8)
Comment out the barfage when passing configure variables via message_run. (cherry picked from commit 1e767ff88578011c2f65466d5516953271e2cafd)
Add a crude incomplete implementation of persist extension support. (cherry picked from commit 3ec11c04799fc08fd408c4ef2350df65f88ccfde)
Add LV2 persist extension by paniq. (cherry picked from commit 1965282a28c6940164ffff7ebd106b27cafd7f2a)
More refactoring of the VUs. The goal: to be able to add peak meters without major hassle. (cherry picked from commit 00ee132cc2ebe3b664c7d5760260d76dda37bf26)
Fix handling of very short notes in Monosynth. (cherry picked from commit 5965d9922a0753e2dce4f743a23b9512be01a7ac)
(cherry picked from commit 01c91b6ce3)
For some reaons with recent versions of Qt we can't embed the VST FX
GUI into an existing EffectControlDialog anymore. As a workaround, embed
it into a new subwindow and added an additional show/hide button.
Closes#3028717.
(cherry picked from commit fa9e0f762c)
We must not only restore the controller knobs but also send updates
to ZynAddSubFX. However this only applies to knobs that were modified.
Therefore save and remember which knobs this applies for.
(cherry picked from commit b2cc802528)
The filter resonance controller erroneously was labeled with something
like "cutoff" which is definitely wrong. Use "resonance" instead.
(cherry picked from commit 1546b7cec0)
Commit 491910357b was a first try to fix
bug #3052228 but it broke InstrumentPlayHandle-driven instruments.
When losing focus now simply send NoteOff MIDI events for all keys
regardless of the state indicated by Piano::m_pressedKeys.
Closes#3052228.
(cherry picked from commit f8e73c5293)
The first version of mikobuntu's logo had a white semitransparent
background. This has been fixed. Additionally the background artwork
of the SID plugin has been changed as well to include the new logo.
Thanks to pgib for preparing this.
(cherry picked from commit eb673c0ad5)
If we lose focus, call InstrumentTrack::silenceAllNotes() after
explicitely sending NoteOff MIDI events for all keys for which presses
were recorded. In case the arpeggiator is enabled this is not
sufficient. Fixes hanging notes when switching active subwindow while
pressing keys in an instrument track window with arpeggiator enabled.
Closes#3052228.
(cherry picked from commit 2f921303eb)
Commit 534c4debb5 introduced a regression.
If knobs have a song-global automation or controllers attached, they
save these settings in a sub XML node which confused the ZASF preset
loader which assumed the first child node would always be the ZASF
preset data. Fix this by explicitely searching for an XML element named
"ZynAddSubFX-data".
Closes#3057275.
(cherry picked from commit 4e695a4ea8)
This is an attempt to improve commit c17bb3ba18. The logo has
been mirrored using ImageMagick which doesn't seem to mess up the 8 bit
alpha channel.
(cherry picked from commit 4763da4daa)
On Linux and OS X search for pthread library and link against it
explicitely. This fixes link problems on recent Linux distributions
where indirect linking (by dependencies) is disabled. Thanks to thm
for pointing out this issue.
(cherry picked from commit 1b84b360f4)
After introducing the control knobs it's not always desired to forward
all MIDI Control Change events to ZynAddSubFX. Therefore added an LED
checkbox which allows to disable forwarding of such events.
Closes#3055332.
(cherry picked from commit 0b7e37ca6a)
There's no reason for not forwarding MIDI events such as NoteOff,
ControlChange etc. when muted. Therefore only do not forward NoteOn
when muted.
(cherry picked from commit 39918f8835)
* calf-updates:
Use generic single VU meter in some dynamics plugins as well. (cherry picked from commit 50505a2d304555bb3b766c43af5cd1a27de331e2)
Refactor metering code out of distortion plugins. (cherry picked from commit 84d873861da7b4ad205061b00fcc9f73c47140b6)
More variable initialisation. (cherry picked from commit 40bbe048f27fc7190001383f93097127119ee667)
Initialise old-state variables to prevent "stuck" graphs. (cherry picked from commit 2a795084ee9e73712a4b690b84158cc745ff1d30)
(cherry picked from commit cb52114261)
Notes are always drawn on-top of each other starting from the left
to the right. However the behaviour when clicking notes was reverse,
which made it quite hard to edit notes sometimes. Now the top most
note is edited/selected/moved/resized if notes overlay.
Closes#2808603.
(cherry picked from comit 28eb7e00bf)