The problem comes from AutomatableModel::m_initValue wich is not fitted
either in constructor or in setter. Idem for m_value in constructor, imo
this is not enough consistent.
I propose to:
- call fittedValue() in init value setter.
- always call setter to initialize current & init values.
Upstream commit 460642bfae534679b4094e6887714828c90d8172 removes LADSPA
support from CALF which definitely is not desired for LMMS. Therefore
simply revert it in our sources.
When building LMMS with recent stable versions of GCC it generates
wrong code for the implicit REALTYPE specialization of the template
method stringFrom<T>() (problem in std::stringstream implementation).
By writing a custom template specialization which uses sprintf() the
bug can be circumvented.
The RemoteVstPlugin process crashed for plugins with lots of presets
as there was an overflow of the presName buffer. Chosing a bigger buffer
size fixes the problem.
Additionally initialize len variable in loadChunkFromPresetFile().
Added an option to shrink the track buttons horizontally, mainly by
moving the track name into a tooltip.
Closes#3459241.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
By Mikobuntu:
I have created a patch ( tested on stable) that adds a metadata entry
"Software" with the value "LMMS (libsndfile-1.0.21)" I'm not quite sure
what calls in the libsndfile entry as my only field entered was LMMS,
but i guess it does no harm anyway to know ;)
Closes#3374272.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
If the settings for an AutomationPattern contain just one value at
position 0, this value was not loaded properly. Thanks to raine for
pointing out this issue and providing a patch.
Closes#3448562.
When freezing patterns the freezer hung forever as it checked for any
running play handles in order to render echoes etc. after the last note.
However if there are MIDI-based instruments such as LB302, ZASF,
Sf2Player etc. there will always be play handles (InstrumentPlayHandles)
in the mixer's play handle array. Therefore explicitely check for
remaining NotePlayHandles when freezing pattern. Furthermore added a
counter variable for safety reasons so rendering note tails will never
exceed 2000 buffer periods.
Thanks to Mikobuntu for reporting this issue!
Closes#3109262.
Note detuning did not work properly for patterns starting after the
first bar in the song editor. This has been fixed by introducing
additional information about parent's song-global offset to
NotePlayHandle objects.
Closes#3462555.
LMMS failed to build with recent versions of CMake if CMAKE_RC_COMPILER
was not set in MinGWCrossCompile.cmake. Furthermore PKG_CONFIG_FOUND
manually needs to be set to TRUE.
LMMS VST Support Layer has been greatly advanced as it now features
(automatable) VST controls as well as support for VST presets. This
still needs some work as it crashes with various plugins (e.g. z3ta+).
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
As ZynAddSubFX still uses the horrible approach of storing global
settings (such as the currently used samplerate) in global static
variables the Echo effect will crash when the samplerate is changed
for a previously loaded ZynAddSubFX instance.
As a quick fix the original samplerate used for instantiating and
accessing internal arrays (whose size depends on global samplerate
variable) is saved for each instance and used everywhere instead of
SAMPLE_RATE.
Fixes crash when exporting e.g. Saber-FinalStep.mmpz at a higher
samplerate than LMMS normally runs with.
Catch the case the model is empty in ComboBoxModel::currentText() and
return an empty string instead of crashing. Fixes crash with settings
dialog if no sound devices are accessible via PortAudio.