The small plugins don't really fit into the project and should be moved somewhere
else instead. Unfortunately, I don't have enough time to do it myself, so if
anyone needs them, feel free to make a separate project out of them, or merge
them (if possible, it may be very hard) into some other small plugin library.
(cherry picked from commit e03505a778ac3b8edb7a389a11eae03cbacc79fe)
Make the result of plugin_registry::get_by_uri() const, as no external code
should modify metadata objects.
(cherry picked from commit 2f9ae953b30bc8702d302df58f0c7f1a589a15c3)
Constify metadata functions. Constify other functions that really needed
it. Make variables keeping old state mutable for now. Move filter composition
operations into biquad.h. Replace global function get_all_plugins with
a singleton class that returns the same list (as const) or a single plugin
by URI. Add a skeleton implementation of functions in lv2_external_ui
and skeleton UI related functions for external UI.
(cherry picked from commit ae7f7293961a3ea3b194b73ab35886f94e562cd7)
Probably I forgot to cherry pick one or two commits from CALF Git repo
resulting in a slight diverge of source codes. Resynced the concerned
header files. Fixes the missing Pulsator plugin.
In Base64::decode() we mess around with pointers so it's more type-safe
to realize everything as a template function. This also silences compiler
warning about dereferencing type-punned pointer in Vibed plugin.
As of Stk 4.4 all classes and types have been moved to the namespace "stk".
This breaks build of the Mallets plugin. This can be easily fixed by
using the namespace "stk". For compatibility reasons we have to declare
the namespace before, because it did not exist in previous versions.
Closes#2870878.
It's not a good idea to allocate the buffer for VST chunk data on the
stack as chunks might become quite big (several megabytes) and thus
could cause a stack overflow. Fix this by using new/delete.
Until now, Mixer not only was responsible for rendering audio buffers
but also managed writing them to audio backend (through a FIFO) and
handled various quality related parameters.
All this functionality has been moved into the new AudioOutputContext
class. It glues together AudioBackend (formerly called AudioDevice),
global quality settings and the Mixer.
The AudioOutputContext class creates a FifoWriter which calls
Mixer::renderNextBuffer() and writes the output into the BufferFifo of
the AudioOutputContext it belongs to. The BufferFifo is read by the
according AudioBackend which belongs to the AudioOutputContext as well.
The AudioOutputContext also handles resampling in case the AudioBackend
wants the buffers in a different samplerate.
During this rewrite the Mixer class and the according source files have
been renamed from "mixer" to "Mixer". This results in small changes
all over LMMS' code base.
Added #include <pthread.h> in PADnoteParameters.h to fix windows compile error
Patch by: Tobias Doerffel
(cherry picked from commit 14d2751bed1e6bb11805bb17e4a73e622c85a4ac)
VstPlugin creates a temporary file for exchanging data chunks of VST
plugins with the remote process. After calling QFile::write(...) data
has not neccessarily been written due to QFile's internal write buffer.
Therefore explicitely call QFile::flush() so all data is guaranteed
to be written.
Fixes problems with plugins which save small data chunks.
LMMS' ZynAddSubFX plugin creates a temporary file for exchanging XML
data with the remote process. After calling QFile::write(...) data
has not neccessarily been written due to QFile's internal write buffer.
Therefore explicitely call QFile::flush() so all data is guaranteed
to be written.
Closes#2877916.
Still QString::toAscii() & friends were used in several places causing
problems such as failed access to files with non-ASCII characters in
name.
Closes#2884115.
For some reason CMake constructs a strange linker command line when
building RemoteZynAddSubFx.exe (win32) resulting in tons of undefined
and duplicate symbols.
The issue can be fixed by explicitely adding -lZynAddSubFxCore to
the library list and add an according dependency.
I mistakenly updated FLTK in master branch too so everything's a mess
when merging in master. Reverting bbe967e3a0
allows easy merge of master branch later.