As libogg, libsndfile & friends do not seem to have an UTF8-compatible
implementation on Windows we have to pass the filename as local 8 bit
encoding in order to make the file being read properly.
Closes#2952858.
We must not use "recover.mmp" as regular filename after we recovered
the sesion from it as this causes following save cycles to go into
the recovery file. Instead load the recovery file via
song::createNewProjectFromTemplate() so the used will be asked for
a filename when saving the recovered project the first time.
Closes#3294122.
There has been a problem UTF-8 characters in the configuration file
since 2006 (!), as the length of the data to be written was mis-
calculated. We can omit the specification of the data length at all
when just passing a QByteArray object to QFile::write().
Fixes setup dialog appearing each start if one of the configured paths
in the setup dialog contains non-ASCII characters.
Closes#3348920, #3017409, #2812054.
Once I added the SWH LADSPA plugins I just added a small selection of
them in order to improve clarity. However lots of projects use SWH
LADSPA plugins that are not shipped with LMMS and thus can't be
played properly e.g. on Windows. Fix this by adding missing plugins
(except the analog and FM oscillators).
Most of the projects represented LMMS and it's capabilities from a few
years ago. Therefore removed most old projects and added fresh ones from
the sharing platform.
Also started to add licensing information about these files in each
project directory.
As the interface for the "AccessibleName" property might not be available
when Qt was built without accessibility support, use the "WindowTitle"
property instead where appropriate.
Closes#3300101.
We must not process the FX mixer if we notice that currently a pattern
is frozen. Furthermore renamed some state-reading messages of the
pattern class.
Closes#3316495.
Based on the patch by Thorsten Müller provided at #3307037, I continued
the work to display nice indicators for the peak value of the last 1500
ms.
Closes#3307037.
Added tooltips to show the actual value when moving the fader handle.
This works mostly like the same feature we already have for the volume
knobs. Depending on settings the value is shown in a range between
0% to 200% or -inf/-34dBV to 6.02 dBV. Again that's the same as for the
volume knob. Value range could be adjusted easily if necessary.
Closes#3305914.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Testing the last two characters of the filename against "so" is
insufficient as this might cover e.g. ISO files as well. Therefore
explicitely check for ".so".
Thanks to Mikobuntu for the contribution.
Closes#3289932.
It's a very bad idea to autosave while playing as this causes severe
underrun problems. Therefore instead of autosaving, trigger a re-try
timer for 10 seconds.
Closes#3317776.
Now that we updated FLTK we also need to regenerate ZynAddSubFX'
UI source code files using recent Fluid tool. Indentation seems to
have been fixed.
(cherry picked from commit 13d1e38f4b)
Instead of always loading the last auto-saved session (which might end
up in an endless cycle if recover.mmp is faulty or causes a crash) ask
the user whether to do so.
Updated CAPS plugins to version 0.4.5 - changes:
* Narrower plugin added
* fixed 'configure.py' to work with python3
* fixed Sin, Roessler and Lorenz gain smoothing on activation
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Instead of passing an initialized pa_cvolume structure, pass NULL as
recommended by the documentation for pa_stream_connect_playback(). This
fixes the volume erroneously being set to 100% at startup.
Thanks to Thomas Moschny for forwarding the bug report.
* Simplify exciter code. No functional change... I hope!
* Work in progress on rotary speaker. May contain bugs.
* Replace allpass vibrato in Calf Organ with a simulation of scanner vibrato.
* Implement switchable vibrato type.
* Initialise delta members in ramp classes.
The settings for the new attack and decay controls weren't saved and
loaded at all while just the values of all other knobs were saved
(instead automation data, controllers etc.).
Per default do not append the version to the installation directory
anymore as this causes unneccessary problems when not properly
uninstalling an older version. Instead files should be overwritten by
recent ones from now on.
Partially closes#3149779.
There were some issues with the ControllerRackView when closing it
with recent Qt versions. Issue seems to be fixed by not setting a
size constraint policy for the QMdiSubWindow.
Partially closes#3149779.
When creating a new Sf2Player plugin instance, load the default
soundfont. Might decrease performance a little bit when loading projects
which make use of many other soundfonts but for the sake of improved
usability we should accept this.
Partially closes#3149779.
When there's no BB track but a track is added to the BB editor,
automatically create a BB track so that the user doesn't get confused
by new empty track (not even showing clickable beats).
Partially closes#3149779.
The decay knob didn't actually do anything before. Now it's useful
together with newly introduced attack knob. One can do much better
sidechaining now without disturbing artifacts due to too responsive
volume changes.
(cherry picked from commit 9615ceabd5)
Using the -nostartfiles linker flag makes the CMT LADSPA plugin
library not being linked against neccessary libraries on recent Linux
systems. Therefore remove it.
every time auto-save ran, it would change the current project to
"recover.mmp". Now it doesn't do this because Song has
guiSaveProject(), guiSaveProjectAs(), and saveProjectFile().
(the latter is used for auto-save)
(cherry picked from commit 953522f34a)
auto-save time is not configurable yet. saves "recover.mmp" to
WORKING_DIR every 60 seconds. Deletes recover.mmp on successful
close of LMMS. If recover.mmp is found upon start, it loads that
project.
(cherry picked from comit f73ccadc17)
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.