Do not add empty subwindows for effects that do not have a control
dialog at all (i.e. Effect::getControlCount() == 0). Also check whether
creation of control dialog was successful. Fixes possible crashes if
something went wrong with the effect (e.g. loading VST effect failed).
Allows you to record automation by arming an automatable model
and then recording with the RecordAndPlay button.
Known bugs:
* when you record and there is already an auto clip, it repeats it
* it freezes when you try to do it with the Volume or Panning slider
* crashes when you try to do it with a solo/mute button
When closing an InstrumentTrackWindow make sure it doesn't still have
keyboard focus (looks like a bug in Qt) and set focus on
trackLabelButton instead (closes#2780590).
When closing a InstrumentTrackWindow save its position so it can be
restored later when showing it. Fixes windows always popping up
somewhere else when toggling instrument track button repeatedly.
When starting LMMS, loading an existing project and opening a pattern
with notes inside in piano roll, moving single notes showed unexpected
behaviour, i.e. the according note has been moved somewhere unreachable.
I tracked this down to a missing initialization of m_moveBoundary*
variables. Adding a few lines fixes the issue (closes#2632909).
This patch enables the usage of PC keyboard for playing instrument piano
or piano roll on OS X by evaluating nativeVirtualKey rather than
nativeScanCode.
Try to load all shared libraries before resolving any symbols. Fixes
problems with plugins that are linked against other shared libraries
located in LMMS' plugin directory.
Do not add download ID returned by QHttp::get() to array and remove it
in the finishDownload() slot rather than adding the ID to the array as
soon as the download has finished.
Global master pitch wasn't taken into account correctly when calculating
master key of a given key. Made MIDI based instruments behave in the
opposite direction regarding pitch when changing global master pitch.
Thanks to Skiessi for pointing out this issue.
This commit fixes lockup of the whole audio engine as soon as LMMS'
JACK backend got zombified due to longer delays (e.g. when audio engine
is blocked while loading a project). Restart JACK backend in such cases
and show an according message to the user.
Furthermore this commit includes various cleanups and improvements.
There's been a missing evaluation of _os.depth in the 2nd ternary
operator which caused depth of filetype always be 24 bit even if 16 bit
was selected.
Due to optimizations in the graphics subsystem of Qt 4.5
songEditor::paintEvent() didn't get called regularly anymore and thus
the range of the horizontal scrollbar didn't get updated at all.
This commit makes the GUI track all changes related to the length of
the song.
The slot LocalResourcesProvider::reloadDirectory() contained various bugs
so it did not record changes in filesystem properly. This also fixes lots
of QFileSystemWatcher messages in console window when saving a new project
inside LMMS.
Updated 3rdparty libsamplerate to version 0.1.7 and bumped requirement
to system's libsamplerate to version 0.1.7.
Besides minor stuff, version 0.1.7 has one important fix:
* src/src_sinc.c
Fix a segfault which occurs when memcpy is passed a bad length parameter.
This bug has zero security implications beyond the ability to cause a
program hitting this bug to exit immediately with a segfault.
When doing FM/PM, the value of sub-oscillator is globally/locally added to
phase. However when doing this, a ratio between fixed default samplerate and
actual samplerate needs to be taken into account in the phase calculation.
This commit fixes missounding render output when rendering projects with
FM/PM inside at higher samplerates. (Thanks to Skiessi for his ladspa2.mmpz
which clearly brought up this bug)
Calling alignedMemClear() when getNextBuffer() returns 0 is superfluous and
causes crashes in some situations. Simply get out of the outer loop as soon
as quit==true.
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
check for nodeName being "connection" - do not try to load an instrument
called "connection" if one of the basic parameters of the InstrumentTrack
is automated
directory items and fixed usage of ResourcesItem::fullName() - makes
format of XML cache file more consistent and also speeds up string
comparisonswhen filtering