Commit Graph

639 Commits

Author SHA1 Message Date
Krzysztof Foltman
f8c6833e9f + Monosynth: fix type bug that made it impossible to compile with g++ 4.2
(cherry picked from commit f2cd6987deba9f82a9824529bad6de2ab89e0bc6)
2009-10-13 09:36:26 +02:00
Krzysztof Foltman
9b29e3a2a6 + AutoHell: update AUTHORS file
(cherry picked from commit 3897c98a85401ee3a99b0adde4a2428adb6e9b53)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman
b89707c6da + GUI, Multiband Compressor, Toggle button: apply more fixes and additions by Markus Schmidt
(cherry picked from commit 6717c99440d6bef04a16447145d8beb2b0b3f16e)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman
86212e2691 + Multiband Compressor: better metadata
(cherry picked from commit 5763a3ca62a1c6de51b4ed1a886cb85fa99694f2)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman
5fd28cb5f3 + 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 9912931955299424aac7f32685d1a04003765995)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman
1294ff62ee + 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)
2009-10-05 23:47:38 +02:00
Tobias Doerffel
68bd237061 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.
2009-10-05 23:44:53 +02:00
Tobias Doerffel
dd260245ec 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.
2009-10-03 01:16:05 +02:00
Krzysztof Foltman
66a5ae5066 + Monosynth: code cleanup (move more things to .cpp file, ignore the negligible performance hit)
(cherry picked from commit 24f4661a73fe39e70db8e74b9a5c1279859b6fb3)
2009-10-03 00:27:57 +02:00
Tobias Doerffel
b8d339e196 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.
2009-10-03 00:23:18 +02:00
Andrew Kelley
f6507b52ee fixes segfault when importing a midi file
pitanga's patch - fixes a segfault when trying
to import a midi file without a default soundfont set.
2009-09-30 07:49:01 -07:00
Tobias Doerffel
44e25a6ad5 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.
2009-09-28 13:45:58 +02:00
Nikos Chantziaras
0f28295ac7 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.
2009-09-23 14:38:45 +02:00
Tobias Doerffel
3c18e436cd 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.
2009-09-17 23:29:09 +02:00
Tobias Doerffel
b73474ca73 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.
2009-09-15 23:40:36 +02:00
Tobias Doerffel
6940d19969 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.
2009-09-15 10:10:02 +02:00
Tobias Doerffel
5c96adbd6d ZynAddSubFX: fix plugin descriptor name
While fixing the name of the plugin library in commit
883836aa8a the plugin descriptor
structure has not been updated.
2009-09-02 22:32:21 +02:00
Tobias Doerffel
883836aa8a 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.
2009-09-01 00:14:21 +02:00
Tobias Doerffel
78536d9065 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.
2009-08-28 23:53:02 +02:00
Tobias Doerffel
f1d383d04d 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.
2009-08-28 23:52:38 +02:00
Tobias Doerffel
d2eea754bc 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.
2009-08-27 11:34:59 +02:00
Tobias Doerffel
2287eca802 Plugin: typedef DescriptorList + more const improvements
Instead of writing QVector<Plugin::Descriptor> everywhere, mit 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.
2009-08-26 01:46:27 +02:00
Tobias Doerffel
1c76c77d22 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.
2009-08-26 01:36:00 +02:00
Tobias Doerffel
e8c3c21f7f Plugin::Descriptor: renamed sub_plugin_features to subPluginFeatures
Renamed field sub_plugin_features to subPluginFeatures in
Plugin::Descriptor struct.
2009-08-26 01:01:35 +02:00
Tobias Doerffel
d7365e4cf3 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.
2009-08-26 00:50:41 +02:00
Tobias Doerffel
166701f9f3 sed: s/( void )/(), s/FALSE/false/, s/TRUE/true
Replaced remaining occurences of old constants and superfluous "void"
on empty argument list of functions.
2009-08-24 23:25:26 +02:00
Tobias Doerffel
8c9a9dd14c 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.
2009-08-24 17:59:28 +02:00
Tobias Doerffel
9615ceabd5 PeakController: initial work on attack- and decay-support
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.
2009-08-23 19:14:19 +02:00
Tobias Doerffel
7bea6d0e07 MainWindow: renamed class to match new style
Renamed mainWindow to MainWindow and engine::getMainWindow() to
engine::mainWindow(). Additionally reduced some header dependencies.
2009-08-21 12:09:39 +02:00
Tobias Doerffel
6a9e45f733 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.
2009-08-19 14:28:05 +02:00
Tobias Doerffel
9c5e04ba73 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 as extended to properly destroy the ZynAddSubFX
instance.
2009-08-18 23:19:54 +02:00
Tobias Doerffel
49ebb835af 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.
2009-08-18 01:29:10 +02:00
Andrew Kelley
7d0c1ef6c2 vst_remote_plugin: 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.
2009-08-13 05:30:25 -07:00
Tobias Doerffel
55337ad2be 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.
(cherry picked from commit b8ebfbd06a)
2009-08-13 01:46:49 +02:00
Tobias Doerffel
35ca0aab69 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.
2009-08-10 13:42:09 +02:00
Tobias Doerffel
ee9d88e2d4 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.
2009-08-09 11:10:10 +02:00
Tobias Doerffel
20eda9a756 FlpImport: changed most printf()s to qDebug()s and qWarning()s
This improves structure of messages when importing FLP files.
2009-08-09 11:09:12 +02:00
Paul Giblock
f1d60958f0 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
2009-08-08 13:05:22 -04:00
Tobias Doerffel
803fd68a56 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)
2009-08-05 19:03:19 +02:00
Tobias Doerffel
964c6532f2 Sf2Player: removed trailing spaces in code
There were some unsolicited trailing spaces in the code. Removed them.
2009-08-05 18:04:39 +02:00
Tobias Doerffel
144f0c6c80 Sf2Player: fixed crash and race conditions
Do not crash if no fluid_voice could be determined in
sf2Instrument::playNote() (which for example happens if no soundfont
is loaded). Furthermore protect the FluidSynth API calls in the
envelope and panning code with global synth mutex.
2009-08-05 18:00:04 +02:00
Tobias Doerffel
4baf459da2 Sf2Player: added panning and volume envelope support
Finally there's proper support for panning and volume envelopes. This
is achieved by changing parameters of individual voices (one voice is
being created for each note). The new code also replaces the old
panning hacks which played notes on different channels and changed
panning of individual channels.

Closes #2010818.
2009-08-05 12:37:02 +02:00
Tobias Doerffel
0bb54199b0 Whole code base: various cleanups, removed SINGLE_SOURCE_COMPILE relicts
* cleaned up code and improved coding style
* removed old SINGLE_SOURCE_COMPILE macro relicts
* use QString::toUtf8() instead of QString::toAscii() wherever possible
2009-08-05 11:41:59 +02:00
Tobias Doerffel
e0df82056c CAPS: updated to version 0.4.3
Updated CAPS plugins to version 0.4.3 - changes:

  * basics.h cleanup / comments
  * minor Makefile cleanup
  * comment cosmetics
  * Eq and Eq2x2 per-band Q changed to 1.414 (= 1 octave)
  * Eq lowest band default value fixed to read 0
  * Niclas' fix for the bessel function implemented
  * uninitialised plugin states eliminated thanks to Damon
  * linker options for OSX added to the Makefile

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:55:57 +02:00
Tobias Doerffel
89fa5c99e9 CPU: new framework for optimized CPU-specific routines
The new CPU framework replaces the old BasicOps framework. It is more
flexible and the build process isn't such a mess anymore (pre-compiled
assembler files etc.). It will hopefully see some improvements and
extensions soon.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:14:16 +02:00
Tobias Doerffel
27d9c17e3f ZynAddSubFX: fixed compilation error
Fixed compilation error introduced by commit
f3e13c4427.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-02 14:17:54 +02:00
Tobias Doerffel
f3e13c4427 RemotePlugin: added QSTR_TO_STDSTR macro and use it in LVSL/ZASF
QString::toStdString() is not aware of locale specific characters (it
just converts to ASCII). Therefore added new macro QSTR_TO_STDSTR which
converts a QString to std::string with UTF8 characters.

Use this new macro in LMMS VST Support Layer and ZynAddSubFX plugin.
This fixes for example VST plugins not being loaded when the path to
the DLL contains non-ASCII (e.g. cyrillic) characters.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-07-29 17:05:57 +02:00
Andrew Kelley
2aae228af4 Refactor supportedFileExts from AudioFileProcessor
Refactor supported file extensions from AudioFileProcessor to
sampleBuffer, where the magic really happens. Change the hard-
coded MessageBox explaining supported formats to the real deal.
Also added modelines and switched spaces to tabs in the files
affected.
2009-07-16 04:34:11 -07:00
Andrew Kelley
2009d71015 AudioFileProcessor - add mp3 to supported exts
AudioFileProcessor is aware that it can play
MP3 files now. Thus MP3 files work in the
resources browser.
2009-07-15 15:16:07 -07:00
Andrew Kelley
4877f93583 Minor syntax formatting change for readability 2009-07-15 07:44:36 -07:00