Commit Graph

607 Commits

Author SHA1 Message Date
Tobias Doerffel
463d73ea48 Merge branch 'calf-updates'
* calf-updates:
  Simplify Multiband Compressor code and fix several bugs.
  Remove zombie small plugin code.
  Remove small plugins together with all the supporting infrastructure.
  Add Doxygen documentation for plugin_registry class.
  More refactoring.
  General refactoring. Start implementing external GUI.
  + LV2: add external UI header (not used for anything yet)
(cherry picked from commit ceacb484a1)
2010-04-03 13:10:54 +02:00
Tobias Doerffel
7c16094811 Fixed spelling errors
Fixed some spelling errors found by Lintian while checking the Debian
package of LMMS. Thanks to Patrick Winnertz for pointing out this issue.
(cherry picked from commit 9fd3dacb67)
2010-01-25 23:27:43 +01:00
Tobias Doerffel
1ad1c99e35 Merge branch 'calf-updates'
* calf-updates:
  CALF: resync source files due to forgotten commits
  + JACK host: implemented Save/Save as...; Open not implemented yet - who could possibly want THAT?
  + EQ: Fix adding EQ plugin using menu in calfjackhost
  Some changes in style, smaller h/v-scale added
  + LADSPA: make plugin IDs unique across Calf plugins, add an install-time check
  + EQ-5: refactoring to eliminate code duplication, side effect: stereo meters
  + EQ-n: shorter names for calfjackhost and others
  + Equalizers: convert lists of per-band parameters using macros (ugly, but effective)
  + EQ-8, EQ-12: reduce copypasta by using a class template
  + Compatibility: workaround for GStreamer crash bug in Ubuntu 9.10 (thanks to Stefan Kost for diagnosing the problem and suggesting the workaround)
  + Compressor simplification, added optional audio ports
(cherry picked from commit c8a444d026)
2010-01-04 00:46:49 +01:00
Tobias Doerffel
be2b6ec9b0 Merge branch 'calf-updates'
* calf-updates:
  + Deesser: use correct threshold
  + Equalizer: remove unused variables
  + Gain reduction module: clearer authorship information
  + Framework: placeholder for waveshaper class (need it to merge further changes from Markus)
(cherry picked from commit 774bd74c77)
2010-01-04 00:46:44 +01:00
Tobias Doerffel
595d50fc20 Merge branch 'calf-updates'
* calf-updates:
  New widget: Tube with light and falloff
  New Deesser, some minor bugs in sc-comp
  Sidechain compressor bugs/settings, 3 equalizer
  Minor bugs, sidechain frequency display
  New FX: Sidechain compressor
  New button (big mama), VU-meters with falloff and hold, bug in delay (value)
  In the middle of nowhere
  Fully redesigned
  Sidebars, GUI layouts, black buttons again, input knob for compressor
  Added 6 new LED's and peak hold function for VU-meters
  meter_gain in gain_reduction module with falloff
(cherry picked from commit 083c2e1b0b)
2010-01-04 00:46:37 +01:00
Tobias Doerffel
3348a4378f Base64: realize decode() as template function
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.
(cherry picked from commit 81cea79c38)
2009-12-26 01:09:56 +01:00
Tobias Doerffel
092c288a33 VeSTige: set VeSTige logo as window icon for plugin GUI subwindow
Up to now the MainWindow's icon was used for VST plugin GUI subwindows.
Improve this a little bit by using the VeSTige logo now.
(cherry picked from commit 5e711875f5)
2009-12-22 00:51:51 +01:00
Tobias Doerffel
f82a25c3a2 Mallets: build properly with Stk 4.4
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.
(cherry picked from commit bf0f0151d2)
2009-12-06 23:23:33 +01:00
Tobias Doerffel
206715d82b RemoteVstPlugin: allocate buffer for chunk on heap rather than stack
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.
(cherry picked from commit 5f241e6374)
2009-12-06 01:04:11 +01:00
Nikos Chantziaras
4849c9a11b ZynAddSubFX: link fftw3f after ZASF core libs
Commit 3c18e436cd makes it impossible to
build LMMS with embedded ZynAddSubFX if "-Wl,--as-needed" is used in
LINKER_FLAGS during the link step of RemoteZynAddSubFx:

  Linking CXX executable RemoteZynAddSubFx
  libZynAddSubFxCore.so: undefined reference to `fftwf_plan_r2r_1d'
  libZynAddSubFxCore.so: undefined reference to `fftwf_execute'
  libZynAddSubFxCore.so: undefined reference to `fftwf_destroy_plan'

This happens because fftw3f, which is a system lib, is linked to before
the ZASF core libs when linking RemoteZynAddSubFx. With "--as-needed",
correct library order matters.
(cherry picked from commit 0f28295ac7)
2009-10-31 13:38:12 +01:00
fundamental
40331b0cdd Params: added pthread.h include to fix compile
Added #include <pthread.h> in PADnoteParameters.h to fix windows compile error
Patch by: Tobias Doerffel
(cherry picked from commit 14d2751bed1e6bb11805bb17e4a73e622c85a4ac)
(cherry picked from commit 415a966d25)
2009-10-29 23:36:06 +01:00
Tobias Doerffel
337e6f3389 VstPlugin: flush temporary data exchange file
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.
(cherry picked from commit 4b8ddcc14f)
2009-10-29 23:14:56 +01:00
Tobias Doerffel
7f75793995 ZynAddSubFX: flush temporary data exchange file
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.
(cherry picked from commit 17b388d482)
2009-10-29 23:14:50 +01:00
Tobias Doerffel
db89dfa181 Removed usage of ASCII C strings in several places
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.
(cherry picked from commit 1633cf2593)
2009-10-27 17:59:06 +01:00
Tobias Doerffel
89fc626533 ZynAddSubFX/FLTK: updated to SVN revision 6921
Updated FLTK to SVN revision 6921 of branch-1.3:

  - Managing all Widget flags in a single location now (STR #2161)
  - Fixed all color related call to Fl_Color type (STR #2208)
  - File chooser preview now recognizes utf8 encoded
    text files (STR #2218)
  - Empty functions in Fluid no longer create an
    implementation (STR #2259)
  - Fixed Fluid dependency on X11 (STR #2261)
  - Updated the bundled libpng to v1.2.40 (released Sep. 10, 2009)
  - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219)
  - Fixed X server "lock", if a modal dialog window is opened
    while a menu is active (STR #1986)
  - Updated mirror sites in documentation (STR #2220)
  - Setting a default font for Xft (STR #2216)
  - Temporarily limited builds to 32-bit on OX S to stay
    compatible to Snow Leopard
  - Fixed Windows compile bug with "#define USE_COLORMAP 0"
    (STR #2241)
(cherry picked from commit c734023be2)
2009-10-27 10:25:58 +01:00
Tobias Doerffel
722c6b0dd1 Merge branch 'zynaddsubfx-master'
* zynaddsubfx-master: (28 commits)
  ZynAddSubFX: explicitely link RemoteZynAddSubFx.exe against Core library
  Revert "ZynAddSubFX/FLTK: updated to SVN revision 6909"
  Style: Restylized entire codebase
  SUBnote: integrated memcpy/memset
  ADnote: started to use memset/memcpy
  ADnote: Documented/added const usage
  OSS: Added failsafe based upon Jrmie Andri patch
  Unison improvements
  Bandwidth effect on Reverb
  Started to rewrite the Reverb's Bandwidth effect (based on a better idea)
  ZynAddSubFX/FLTK: updated to SVN revision 6909
  Merge branch 'master' into newXML
  ZynAddSubFX: rebuilt UI files with non-buggy Fluid
  ZynAddSubFX: rebuilt source files from UI files
  Merge branch 'master' of ssh://zynaddsubfx.git.sourceforge.net/gitroot/zynaddsubfx/zynaddsubfx
  Started to implement Bandwidth to the Reverb effect.
  Small enhancements and bugfixes to Unison
  Made unison vibratto LFO smoother
  Other improvements and bugfixes on Unison.
  Bugfixes
  ...
(cherry picked from commit fbacebca65)
2009-10-27 10:24:29 +01:00
Tobias Doerffel
39f87898c4 ZynAddSubFX: resynced with their Git repo
ZynAddSubFX has gained some new developer power so development has been
going on well for quite a while now in their Git repo. It's time for
the first big resync so future changes can be integrated easily.
(cherry picked from commit 3c18e436cd)
2009-10-27 10:24:24 +01:00
Tobias Doerffel
55daaef0f3 Build system: another stupid compiler flag fix for OS X
All versions of OS X except Snow Leopard ship GCC 4.0 which does not
understand the "-finline-functions-called-once" flag. Therefore do not
use this flag when building for OS X.
(cherry picked from commit 01ae99d6aa)
2009-10-17 23:55:37 +02:00
Tobias Doerffel
ed23c82c23 Merge branch 'calf-updates'
* calf-updates:
  + DSP primitives: fix a rather stupid bug in clamping functions
  + Monosynth: fix type bug that made it impossible to compile with g++ 4.2
  + AutoHell: update AUTHORS file
  + GUI, Multiband Compressor, Toggle button: apply more fixes and additions by Markus Schmidt
  + Multiband Compressor: better metadata
  + Multiband Compressor: new module (first version, by Markus Schmidt, based on code by me and Thor) plus associated refactoring and graph colour scheme update
(cherry picked from commit 65f6bb7135)
2009-10-17 23:35:38 +02:00
Krzysztof Foltman
dd055b210b + Organ, Framework: use std::vector::front() instead of std::vector::data() (may possibly fix the MacOS X compilation problem reported by Daniel Klaffenbach and Tobias Doerffel)
(cherry picked from commit 628eb1543591f5137e6001abad439d01942ffd4a)
(cherry picked from commit 1294ff62ee)
2009-10-05 23:48:21 +02:00
Tobias Doerffel
a1c720d728 Revert "CALF: removed usage of non-standard std::vector::data()"
This reverts commit dd260245ec.

The commit fixed the compilation problem but according to upstream
causes new problems because of the huge data structures on the stack.

Upstream provided a better patch which will be applied next.
(cherry picked from commit 68bd237061)
2009-10-05 23:48:17 +02:00
Tobias Doerffel
bbe796b496 CALF: removed usage of non-standard std::vector::data()
The std::vector::data() method is a special feature of GCC and
therefore not portable. This causes a compile failure of CALF plugin
on OS X. Therefore I replaced the code with standard arrays
allocated on stack.

Upstream needs to be informed about this patch.

Thanks to Daniel Klaffenbach for pointing out this issue.
(cherry picked from commit dd260245ec)
2009-10-03 01:21:32 +02:00
Krzysztof Foltman
b9c4451d09 + Monosynth: code cleanup (move more things to .cpp file, ignore the negligible performance hit)
(cherry picked from commit 24f4661a73fe39e70db8e74b9a5c1279859b6fb3)
(cherry picked from commit 66a5ae5066)
2009-10-03 01:21:05 +02:00
Tobias Doerffel
2fa6c6ee29 CALF: moved some files to allow easy cherry-picking from CALF Git
Source directory structure of the CALF plugin shipped with LMMS was
not equal with original one which makes cherry-picking commits from
CALF Git impossible.
(cherry picked from commit b8d339e196)
2009-10-03 01:20:52 +02:00
Tobias Doerffel
132b7c7df4 RemoteVstPlugin: removed plugin dispatching in hostCallback
There's no need to call plugin dispatcher in hostCallback. It makes
plugins like Garritan Personal Orchestra 4 lock up. After removing
these calls the affected plugins work.
(cherry picked from commit 44e25a6ad5)
2009-09-28 22:52:48 +02:00
Tobias Doerffel
18a677cec3 ZynAddSubFX: fixed compilation failure due to 0.4.x specific code
After cherry-picking massive changes to ZynAddSubFX (and not resolving
conflicts properly) some 0.4.x specific code did not compile anymore.
This commit fixes those issues.
2009-09-16 00:07:36 +02:00
Tobias Doerffel
6e93dd1feb ZynAddSubFX: eliminate global data in favour of per-synth data
OscilGen::tmpsmps and OscilGen::outoscilFFTfreqs were static member
variables initialized once in LocalZynAddSubFx class. However having
this data global is not a good idea because it gets modified by each
synth (possibly in parallel), causing heavy distortion under various
circumstances. Now that this data is allocated and used per-synth
everything works fine.
(cherry picked from commit b73474ca73)
2009-09-15 23:51:10 +02:00
Tobias Doerffel
f7da4a0f7e InstrumentPlayHandle: do not process if InstrumentTrack is muted
While regular instruments were excluded from processing when muted
this did not happen for InstrumentPlayHandle-based instruments. Muting
for exampling tracks with VSTi's inside did not decrease CPU usage.
Checking whether related InstrumentTrack is muted before calling
Instrument::play() fixes this issue.

Closes #2857426.
(cherry picked from commit 6940d19969)
2009-09-15 23:51:00 +02:00
Tobias Doerffel
3c9dd294dc ZynAddSubFX: fix plugin descriptor name
While fixing the name of the plugin library in commit
883836aa8a the plugin descriptor
structure has not been updated.
(cherry picked from commit 5c96adbd6d)
2009-09-15 23:50:50 +02:00
Tobias Doerffel
146f75b90a ZynAddSubFX: keep plugin filename lower case
If we'd rename all plugins like I did with ZynAddSubFX, we'd run into
serious troubles, therefore keep plugin names lower case.
(cherry picked from commit 883836aa8a)
2009-09-15 23:50:41 +02:00
Tobias Doerffel
abe411cd26 ZynAddSubFX: added GUI-less mode
Added a new GUI-less mode to ZynAddSubFX instrument plugin which allows
to let ZynAddSubFX audio processing happen within LMMS, giving a much
better realtime behaviour.

As soon as showing up the GUI settings of GUI-less ZynAddSubFX instance
are saved and a traditional RemoteZynAddSubFx process is being launched
and the settings are applied there.
(cherry picked from commit f1d383d04d)
2009-09-15 23:49:45 +02:00
Tobias Doerffel
ccc9f7ed73 ZynAddSubFX: lots of cleanups in RemotePlugin implementation
Moved all ZynAddSubFX instance related functions and variables into
RemoteZynAddSubFX class so there're no globals anymore. Also removed
some unused headers and ZynAddSubFX' main.c.

Additionally make use of full 80 chars/line with ts=4.
(cherry picked from commit d2eea754bc)
2009-09-15 23:47:06 +02:00
Tobias Doerffel
7c6577bf23 ZynAddSubFX: fixed win32 compilation of FLTK and MXML
Some platform-specific constants got renamed during sed-mass-replace.
Fix this by reverting concerning constant names.
(cherry picked from commit 78536d9065)
2009-08-29 00:09:43 +02:00
Tobias Doerffel
5ba1340ed0 Plugin: typedef DescriptorList + more const improvements
Instead of writing QVector<Plugin::Descriptor> everywhere, mix up
iterators etc. centrally define Plugin::DescriptorList and use it
everywhere.

Additionally made pointers to Plugin::Descriptor and
Plugin::Descriptor::SubPluginFeatures::Key const in various places
so we can use ConstIterator everywhere when iterating through
Plugin::DescriptorList.
(cherry picked from commit 2287eca802)
2009-08-29 00:07:05 +02:00
Tobias Doerffel
ba4296136b Plugin::Descriptor::SubPluginFeatures: made some methods const
We can safely make fillDescriptionWidget() and listSubPluginKeys()
const methods. Furthermore descriptor pointer to listSubPluginKeys()
can be const as well. Might allow more optimizations by the compiler.
(cherry picked from commit 1c76c77d22)
2009-08-29 00:02:55 +02:00
Tobias Doerffel
c2f9fcd14f Plugin::Descriptor: renamed sub_plugin_features to subPluginFeatures
Renamed field sub_plugin_features to subPluginFeatures in
Plugin::Descriptor struct.
(cherry picked from commit e8c3c21f7f)
2009-08-29 00:02:47 +02:00
Tobias Doerffel
c32567ce2f Fixed mistakes made by sed-mass-replaces
Some variables got renamed the way the shouldn't. Doesn't have any
functional impact but fix it for the sake of cosmetics.
(cherry picked from commit d7365e4cf3)
2009-08-29 00:01:24 +02:00
Tobias Doerffel
f4dbb2ff5c sed: s/( void )/(), s/FALSE/false/, s/TRUE/true
Replaced remaining occurences of old constants and superfluous "void"
on empty argument list of functions.
(cherry picked from commit 166701f9f3)
2009-08-25 01:42:20 +02:00
Tobias Doerffel
1d5cb23385 File and class renames part 1
Most files and most of the core classes and their methods have been
renamed to match new coding style conventions:

391 files changed, 25400 insertions(+), 25598 deletions(-)

Furthermore splitted some files where model and view classes were
declared or implemented together in the same file.

Should be tested thoroughly as I might have missed renaming some virtual
methods or SIGNAL/SLOT parameters.
(cherry picked from commit 8c9a9dd14c)
2009-08-25 01:30:41 +02:00
Tobias Doerffel
2f8b9c5a61 TAP LADSPA plugins: updated to version 0.7.1
After (exactly) 5 years of silence, there's a new relase of TAP LADSPA
plugins. It fixes issues on 64 bit machines, uninitialised variables
and denormal issues.
(cherry picked from commit 6a9e45f733)
2009-08-19 14:33:25 +02:00
Tobias Doerffel
cbd2dcbfda ZynAddSubFX: restructured initialization and shutdown code
Most of the stuff that was in main(...) function before directly is
related to creating a new instance of ZynAddSubFX master class,
therefore moved initialization and shutdown code into constructor
and destructor of RemoteZynAddSubFX class. Should have no functional
impact.

The shutdown code was extended to properly destroy the ZynAddSubFX
instance.
(cherry picked from commit 9c5e04ba73)
2009-08-18 23:26:28 +02:00
Tobias Doerffel
c46c4ff3d1 ZynAddSubFX: forward MidiControlChange events to ZynAddSubFX core
So far we ignored all events other than MidiNoteOn, MidiNoteOff and
MidiPitchBend. By also processing MidiControlChange events one can
control some basic parameters of ZynAddSubFX via MIDI now.
(cherry picked from commit 49ebb835af)
2009-08-18 01:31:53 +02:00
Andrew Kelley
be91af0cb8 RemoteVstPlugin: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building vst_remote would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
(cherry picked from commit 7d0c1ef6c2)
2009-08-14 15:35:26 +02:00
Tobias Doerffel
b8ebfbd06a Renamed MIDI and audio related classes/files to match new style
Renamed all MIDI and audio related classes/files to match new style.
Additionally various cleanups.
2009-08-13 00:52:21 +02:00
Paul Giblock
edc2cae4c2 Add Korean translation
(cherry picked from commit 2a69917d51)
2009-08-12 11:58:55 +02:00
Tobias Doerffel
ad1124cde9 Added CALF LADSPA plugins
As per popular demand I added CALF LADSPA plugins to be shipped with
LMMS. After some minor modifications the plugins compile and work on
win32 platform too.
(cherry picked from commit 35ca0aab69)
2009-08-10 13:50:20 +02:00
Tobias Doerffel
3e62853de5 FlpImport: fixed crash on invalid notes
Added a range check for channel parameter when adding notes. This fixes
a crash when for example importing the project posted on lmms-devel
by Andew Kelley lately.
(cherry picked from commit ee9d88e2d4)
2009-08-09 11:23:26 +02:00
Tobias Doerffel
9a4cfedf67 FlpImport: changed most printf()s to qDebug()s and qWarning()s
This improves structure of messages when importing FLP files.
(cherry picked from commit 20eda9a756)
2009-08-09 11:21:57 +02:00
Paul Giblock
5138ed6722 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
(cherry picked from commit f1d60958f0)
2009-08-09 00:29:16 +02:00
Tobias Doerffel
8485cf3157 ZynAddSubFX/FLTK: updated to SVN revision 6826
Updated FLTK to SVN revision 6841 of branch-1.3:

- Fixed glibc 2.10 compiler problems (Fedora 11 and others)
  with scandir() and strchr() (STR #2222)
- Fl_Scroll mods for global scrollbar size control
- various other minor stuff (see SVN log)
(cherry picked from commit 803fd68a56)
2009-08-05 19:11:30 +02:00