Commit Graph

1969 Commits

Author SHA1 Message Date
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
dc050296ae Fix issue with knobs in 3xOsc and AudioFilePro.
The knobs were broken because the classnames of these instruments was
changed without properly changing the selectors in the style.css
(cherry picked from commit 2622edd140)

Conflicts:

	data/themes/cusis/style.css
2009-09-28 22:53:43 +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
8f258e0f5e Moved ChangeLog file to ChangeLog.old
As it's not maintained anymore but should be kept for archival reasons
I moved ChangeLog to ChangeLog.old.
(cherry picked from commit c896488e13)
2009-09-28 22:52:43 +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
75a93a0e83 CMakeLists.txt: also search for UI files in src/gui/Forms
As location of UI files has changed in master and we cherry-picked
some related commits we have to look for UI files to process in
src/gui/Forms as well.
2009-09-16 00:06:26 +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
Paul Giblock
cc1cdfa664 Fix bug 2819817: main window scrollbars
Fix problem with main-window scrollbars not adjusting when toggling
off-screen children.  Seems like Qt bug #260116.
(cherry picked from commit 669b4e7198)
2009-09-15 23:13:43 +02:00
Tobias Doerffel
18a8ffc674 RemotePlugin: do not skip audio processing when debugging
If DEBUG_REMOTE_PLUGIN was set, RemotePlugin::process() always returned
as RemotePlugin::isRunning() returned false. Fix this by always
returning true when debugging.
(cherry picked from commit ee63a13f2d)
2009-08-29 00:09:57 +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
fc72b1a6a4 EffectSelectDialog: rewritten using Designer
All of the GUI code of EffectSelectDialog has been replaced by an
according UI file. Also merged EffectListWidget class into
EffectSelectDialog to further simplify logic.
(cherry picked from commit cb85bfc906)
2009-08-29 00:02:20 +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
62f40dafec Build system: pass -nw as option for MOC to QT4_WRAP_CPP macro
Passing -nw as option for MOC to QT4_WRAP_CPP macro silences warnings
about non-MOCable headers (which confused a lots of users).
(cherry picked from commit f7af62eab4)
2009-08-24 23:39:41 +02:00
Tobias Doerffel
6a8b285932 AutomatableModel: do not return an out of range value in fittedValue()
If a certain step was set for a model, the fitted value (i.e. value
divided by step, rounded and multiplied with step again) could become
smaller than minValue or greater than maxValue. Therefore explicitely
check those cases after performing the described calculation.

Closes #2840202.
(cherry picked from commit b5d9fab944)
2009-08-23 23:43:37 +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
58f2aefece AudioAlsa/AudioOss: set FD_CLOEXEC flag for file descriptors
Per default child processes inherit all file descriptors of their
parent process. This applied for file descriptors pointing to sound
devices as well. Reopening sound devices while e.g. a ZynAddSubFX
process was running always failed due to this "feature".

By manually setting the FD_CLOEXEC flag for the sound device file
descriptors they do not get inherited by child processes anymore.
(cherry picked from commit 80f101cec6)
2009-08-18 23:24:42 +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
Tobias Doerffel
c355d71716 MidiAlsaSeq: print error message if snd_seq_event_input() failed
Evaluate return value of snd_seq_event_input() and print an error
message if it failed.
(cherry picked from commit dfae570700)
2009-08-14 15:38:12 +02:00
Tobias Doerffel
0503f5353f ControllerConnectionDialog: improved auto detect feature for controllers
When opening up the ControllerConnectionDialog by default auto detect
is enabled and all MIDI input devices are selected. Upon the first
event all devices but the one the event came from get unchecked. This
eases the process of assigning MIDI controls to software controls.
(cherry picked from commit 27f5d20e05)
2009-08-14 15:38:05 +02:00
Tobias Doerffel
e2b1b5de60 MidiEvent: allow querying name of port which it came from
Added functionality to query the name of the source port of a MidiEvent
by calling MidiClient::sourcePortName( const MidiEvent & ).
(cherry picked from commit 5ec96a9483)
2009-08-14 15:37:57 +02:00
Tobias Doerffel
14930d0446 RemotePlugin: added missing include + coding style fixes
The header cstdlib is required for NULL pointer definition. Additionally
some minor coding style fixes.
(cherry picked from commit 2475cf982b)
2009-08-14 15:37:48 +02:00
Tobias Doerffel
a77688ee65 MidiWinMM: fixed typo that caused writablePorts() not being overloaded
The MidiClient::writablePorts() method was not overloaded properly in
MidiWinMM implementation due to a typo. This should fix list of output
devices being empty on win32.
(cherry picked from commit 40c56de898)
2009-08-14 15:37:36 +02:00
Tobias Doerffel
bf68a565da MidiAlsaSeq: construction of port name in separate function
A port name is constructed from snd_seq_* structures at various places,
therefore separate it into a static helper function. This avoids
redundancy and eases maintainability.
(cherry picked from commit bfe90a8ade)
2009-08-14 15:37:29 +02:00
Tobias Doerffel
d8f9b685b2 MidiAlsaSeq: improved MIDI event polling loop
Use poll() with a finite timeout so we can quit the thread properly
without manually writing stuff into the pipe.

Check for pending events at the beginning of the loop so we can't end up
in an endless loop.

Furthermore check return value of snd_seq_event_input() and get out of
loop if it indicates an error.
(cherry picked from commit 9d811bf080)
2009-08-14 15:37:23 +02:00
Tobias Doerffel
b31a63fd00 MidiAlsaSeq: QString related fixups
Use QString::isEmpty() rather than comparing against an empty string.
Furthermore use QStrin::toUtf8() instead of QString::toAscii() for
retrieving name of a MidiPort.
(cherry picked from commit 295b332650)
2009-08-14 15:37:13 +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
Andrew Kelley
629c076be5 BuildPlugin.cmake: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building plugins would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
(cherry picked from commit a86ca968b7)
2009-08-14 15:35:15 +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
Peter Nelson
ff7b296db8 AudioJACK: removed incorret JACK transport code
The audio_jack driver currently treats the jack transport status as a
flag for whether or not to output audio. This is incorrect and
unintended usage of jack transport. The attached patch simply removes
all references to jack transport from the driver, so that LMMS will
always be able to produce audio.

Closes #2816029.
(cherry picked from commit 1fe0c689b0)
2009-08-12 11:54:47 +02:00
Tobias Doerffel
427e0d6727 Made 0.4.5 release
Bumped version number to 0.4.5 in CMakeLists.txt and README.
v0.4.5
2009-08-11 18:21:56 +02:00
Tobias Doerffel
d9490f9203 TODO list: moved over items from master branch TODO list
Moved over all items that concern 0.4.x series from TODO list in
master branch and removed deprecated items.
2009-08-11 14:49:13 +02:00
Tobias Doerffel
57c79759c8 MidiWinMM: added missing break directive after case-block
A break directive was missing in MidiWinMM::handleInputEvent(), leading
to inappropriate calls to qWarning() on pitch bend.
(cherry picked from commit 58023cf2cf)
2009-08-10 13:53:54 +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
Tobias Doerffel
e714a68fe5 Updated German localization files
There have been some changes to strings in the program which weren't
translated to German lately. Furthermore improved existing
translations and fixed mis-spellings.
2009-08-09 00:37:55 +02:00