Commit Graph

531 Commits

Author SHA1 Message Date
Tobias Doerffel
cfe9c35f41 Sf2Player: allocate temporary buffer on stack if possible
When compiling with GCC always allocate a temporary buffer for
resampling on stack rather than doing an expensive heap allocation.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit d1353247d9)
2009-07-05 16:43:03 +02:00
Tobias Doerffel
fa21cf10a9 Do not build ZynAddSubFX on OS X
Do not build the ZynAddSubFX plugin on OS X until a proper replacement
for unnamed semaphores (which for whatever reason are not supported on
OS X) has been implemented. Using the win32 code (QSystemSemaphore)
could be an option but needs testing.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit fd9d2b0e61)
2009-06-28 23:43:50 +02:00
Tobias Doerffel
35eeb55704 Various fixes for properly building on OS X
There were various (trivial) problems with settings of the build system
which prevented LMMS from being built on OS X.

Thanks to Daniel Klaffenbach for providing his Mac for development
purposes.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit ed30985aa4)
2009-06-28 23:43:44 +02:00
Tobias Doerffel
cafb24fe9a NotePlayHandle: cleanups, header dependency reductions etc.
* do not include instrument_track.h in note_play_handle.h by making
  two functions non-inline
* renamed notePlayHandleVector / constNotePlayHandleVector to
  NotePlayHandleList / ConstNotePlayHandleList and changed typedef
  to QList (which has faster insert- and remove-operations).
* removed unused method willFinishThisPeriod()

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 08ea133aa2)
2009-06-15 16:40:22 +02:00
Tobias Doerffel
57c4a5abc5 MultimediaProject: splitted constructor for loading either file or data
The old constructor treated the string argument either as filename or
as raw XML data, depending on 2nd parameter. This is a mess and quickly
leads to confusion.

Now we have two constructors taking either a filename as string or a
QByteArray with XML data. Loading actual data has been separated into
MultimediaProject::loadData( const QByteArray & ).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 5a00ebd360)
2009-06-11 01:16:30 +02:00
Tobias Doerffel
5bb9af15ab RemoteVstPlugin: use SplittedThreading model for Proteus VX
Proteus VX requires SplittedThreading model in order to run properly.
Issues with actually working UI interaction still need to be worked
out although it rather looks like a bug in WINE.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit b3c5d498e2)
2009-06-02 00:51:29 +02:00
Tobias Doerffel
66147bebf0 ZynAddSubFX: fixed compilation failure of FLTK if glibc >= 2.10
Fixed compilation failure of FLTK on systems with glibc newer than
version 2.9 where the signature of scandir(...) has changed.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit dc539d88de)
2009-06-01 00:56:27 +02:00
Tobias Doerffel
6b71db0640 ZynAddSubFX: fixed compilation failure of FLTK
Fixed compilation failure of FLTK on broken systems where strchr()
takes a non-const char pointer.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 3003163e9b)
2009-06-01 00:56:20 +02:00
Tobias Doerffel
ca5ba2971b ZynAddSubFX: processed UI files with Fluid from FLTK 1.3 branch
Processed all Fluid UI files with Fluid from FLTK 1.3 branch so the
generated code is up to date.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 5b1900c4d0)
2009-05-31 18:56:01 +02:00
Tobias Doerffel
e0bb2cd043 ZynAddSubFX: integrated FLTK 1.3.0 branch from SVN
Integrated FLTK 1.3.0 branch from SVN which brings UTF8 support and
fully integrated Xft support (SVN rev. 6791).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 8affa66c61)
2009-05-31 18:55:49 +02:00
Frederik
03ecb86494 Allow compilation with -Werror=format-security
This commit fixes some calls to functions that are taking a format
string and an optional set of parameters as arguments. At some places
no format string was specified if only a simple C string was to be
sprintf()ed.  However for security reasons this is bad and was replaced
by code like

	sprintf( dest, "%s", str );
(cherry picked from commit af284e980f)
2009-05-05 23:25:35 +02:00
Andrew Kelley
1bc94beae6 fixed dependency on libfluidsynth which did not check LMMS_HAVE_FLUIDSYNTH in 0.4.4 2009-05-05 04:25:08 -07:00
Tobias Doerffel
8201a19d4c Added universal codebase for dragging plugin-specific presets
Added new stringPairDrag type "pluginpresetfile", allowing to drag
and drop any kind of plugin-specific preset files everywhere in the
program. Adopted changes in ZynAddSubFX plugin.
(cherry picked from commit ccb65f4b40)
2009-05-03 16:11:01 +02:00
Tobias Doerffel
9c4dc40de1 VstEffect: check whether VST effect has an editor
Depending on whether VST effect has an editor return 1 or 0 in
VstEffectControls::getControlCount(). This prevents the EffectView in
the effect rack from showing a "Controls" button and creating an empty
subwindow.
(cherry picked from commit 3a4ae3a434)
2009-05-03 15:16:59 +02:00
Tobias Doerffel
894ee9ea48 VstPlugin: added hasEditor() method
Added inline method hasEditor() with returns true or false depending on
whether the class received a window ID from the remote plugin.
(cherry picked from commit 044d671471)
2009-05-03 15:16:54 +02:00
Tobias Doerffel
c94d003683 ZynAddSubFX: added support for d'n'd XIZ files onto ZASF plugin
This commit allows the user to drag'n'drop DLL files onto ZynAddSubFX
instrument (inside LMMS).
(cherry picked from commit d38d437349)
2009-04-18 23:56:07 +02:00
Tobias Doerffel
8f735d4b06 ZynAddSubFX: do not lock up after rendering project
Do not lock up after rendering project by calling waitForInitDone()
on our own (instead of in RemotePlugin constructor) with busy waiting
disabled.
(cherry picked from commit 75382de976)
2009-04-18 18:18:00 +02:00
Tobias Doerffel
02149d66f5 ZynAddSubFX: do not subclass RemotePlugin
Create an own RemotePlugin object rather than inheriting from it.
This allows to restart ZASF RemotePlugin which for example is required
upon samplerate changes (closes #2626249).

Furthermore this commit cleans up some old unused stuff.
(cherry picked from commit dfab704100)
2009-04-18 18:17:44 +02:00
Tobias Doerffel
9009d745e9 ZynAddSubFX: made MIDI pitch bend work
Always send MIDI pitch bend events to MIDI channel 0 for the time being.
Makes MIDI pitch wheel work with ZynAddSubFX.
(cherry picked from commit 9873b880e2)
2009-04-18 14:17:42 +02:00
Tobias Doerffel
601b6c7c59 ZynAddSubFX: properly load/save instrument presets
When loading external XIZ presets, the embedded ZynAddSubFX plugin didn't
apply them completely so it did not save them properly later. This made
ZASF instruments play the default preset when loading the LMMS project
later. Now presets properly get applied to the selected instrument part.
(cherry picked from commit 7a176c8fbb)
2009-04-18 14:17:36 +02:00
Tobias Doerffel
e940acd3cb ZynAddSubFX: integrated into stable-0.4 series
Embedded ZynAddSubFX plugin now is considered to be mature enough to
be part of the stable-0.4 series. This eases builds for everyone as well
as cutting down maintainance work dramatically as we can easily
cherry-pick fixes from master branch now.
2009-04-18 01:02:05 +02:00
Tobias Doerffel
0d0288eabe VeSTige: added support for d'n'd DLL files onto VeSTige instrument
This commit allows the user to drag'n'drop DLL files onto VeSTige
instrument. Furthermore VeSTige now registers itself as handler for
loading DLL files.
(cherry picked from commit 1b77346ded)
2009-04-14 00:05:13 +02:00
Tobias Doerffel
b93d62124c VstBase/CMakeLists.txt: do not fail with broken wineg++
With newer versions of wineg++ (1.1) errorneously adds the suffix ".exe"
to the target binary. This causes "make install" to fail. Therefore
rename remote_vst_plugin.exe if it exists.
(cherry picked from commit 69ff06e1b9)
2009-04-12 00:11:34 +02:00
Tobias Doerffel
4ec030b518 RemoteVstPlugin: removed obsolete warning
Removed obsolete warning about setting realtime. It's neither important
nor will calling printf()/fprintf() in a RemotePlugin print anything in
LMMS' console output.
(cherry picked from commit 337afffbf1)
2009-04-10 00:08:13 +02:00
Tobias Doerffel
40627ffc53 RemoteVstPlugin: fix issues with uniqueID
Removed the newline character at the end of the uniqueID array, decreased
array size to 5 and initialize last element with 0 after sprintf() call.
(cherry picked from commit 7d1a357076)
2009-04-10 00:07:55 +02:00
Tobias Doerffel
315cd1936d RemoteVstPlugin: use std::vector rather than std::list
For some reason, building remote_vst_plugin.cpp with recent
wineg++/gcc-multilib on 64 bit platforms causes undefined symbols:

remote_vst_plugin-JzpHs6.o: In function `std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)':
remote_vst_plugin.cpp:(.text._ZNSt4listI12VstMidiEventSaIS0_EE9_M_insertESt14_List_iteratorIS0_ERKS0_[std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)]+0x35): undefined reference to `std::_List_node_base::hook(std::_List_node_base*)'

Replacing std::list with std::vector for queueing MIDI events seems to
fix this issue. Consider this as a workaround rather than constructive fix.
(cherry picked from commit c0ff1aa95c)
2009-04-07 12:41:15 +02:00
Tobias Doerffel
45a128512b LVSL: track samplerate/tempo changes in VstPlugin base class
Up to now changes of samplerate or tempo only have been tracked by the
VeSTige plugin while e.g. the VstEffect didn't forward such changes to the
RemotePlugin. Moving according code from VeSTige to VstPlugin base class
fixes this issue.
(cherry picked from commit 5dd68ea7f3)
2009-03-22 16:02:52 +01:00
Tobias Doerffel
0cb99b2d67 VstEffect: set displayName property at initialization
In VstEffect constructor set the displayName property in order to make
EffectView display actual plugin name rather than just "VST Effect".
(cherry picked from commit dce6ae9a7d)
2009-03-22 15:34:54 +01:00
Tobias Doerffel
4569b635d9 RemoteVstPlugin: use SplittedThreading model for MDA plugins
Most of the MDA VST plugins require the SplittedThreading model in order
to run properly. All plugins whose unique ID starts with "mda" will be
driven with the SplittedThreading model.
(cherry picked from commit 96fb6f5a38)
2009-03-22 14:53:54 +01:00
Tobias Doerffel
8ec501d6c6 LadspaEffect: fixed controller connections on samplerate changes
When global samplerate changes, settings of a LADSPA effect are stored in
a temporary object, the effect is reloaded and the settings are restored.
However, controller connections weren't restored properly as the connections
were not finalized. This commit fixes the issue.
(cherry picked from commit ee9e5680b7)
2009-03-19 00:30:10 +01:00
Tobias Doerffel
844aba46b0 MidiImport: fixed mistransposed notes
When importing MIDI files notes were always mistransposed by 9 semitones.
This commit fixes correction of notes' keys so imported MIDI files sound
just like they should.
(cherry picked from commit 617def002b)
2009-03-18 00:07:26 +01:00
Tobias Doerffel
bf03fa7eb2 Vibed: fixed legacy code in NineButtonSelector
In Qt3 we had to take care of drawing background properly if there were
semitransparent child widgets. This code had been ported to the Qt4 version
but is obsolete and causes a crash when for example dragging a Vibed preset
onto an existing instrument track. This commit removes this code.
(closes #2688270)
(cherry picked from commit d3cc908f43)
2009-03-16 18:25:56 +01:00
Tobias Doerffel
b46e711205 Sf2Player: truncated LOG440 constant
Having LOG440 as double with a mantissa of 51 digits doesn't help anything.
Truncated to float with 9 digits.
(cherry picked from commit 12fd3206b4)
2009-03-16 16:57:19 +01:00
Tobias Doerffel
345277d34f PeakControllerEffect: corrected calculation for RMS and moved loops out
of if-branches - results however should be nearly the same but more accurate
and not negative
(cherry picked from commit 3084b361ea)
2009-03-12 00:45:45 +01:00
Tobias Doerffel
95b0607745 MidiImport: per default use bank 0 instead of 128
Backported from 402a2d32f7 (master)
2009-03-04 18:46:39 +01:00
Tobias Doerffel
fc38ce4d96 MidiImport: show an information message if no default soundfont has been
set (closes #2660545)

Backported from e4a6fde320 (master)
2009-03-04 18:45:27 +01:00
Tobias Doerffel
9cf48736d9 Fixed file mode for files that were executable although they shouldn't be 2009-02-27 00:25:59 +01:00
Tobias Doerffel
fa6e5be636 update patch after loading settings (closes #2486372) (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2024 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-12 23:25:49 +00:00
Tobias Doerffel
d3e6f5a348 better workaround for optimizer bug in GCC >= 4.3 (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2006 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-05 13:19:18 +00:00
Tobias Doerffel
48fe96c9ac added missing header for compilation with GCC 4.4
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2004 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-05 13:17:50 +00:00
Tobias Doerffel
8b3d3f33a7 stable backport of various fixes from trunk
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1972 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-01-27 00:21:37 +00:00
Tobias Doerffel
e1403ee10b in FL_EffectChannel initialize isMuted member - fixes muted FX channels when importing older FLP files (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1965 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-22 16:44:36 +00:00
Tobias Doerffel
541d9d5ad6 fixed crash when adding VST effects
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1962 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-19 16:22:10 +00:00
Tobias Doerffel
dcb9f4dfb9 removed debugging messages (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1903 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-10 00:46:27 +00:00
Tobias Doerffel
46fe11b395 rewrote wide parts of LVSL backend, see ChangeLog for details (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1901 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-10 00:42:09 +00:00
Tobias Doerffel
56c5390888 win32-version: fixed crash when using VST plugins without GUI (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1890 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-08 20:46:35 +00:00
Tobias Doerffel
7de629794a added missing file
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1884 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-08 10:26:08 +00:00
Tobias Doerffel
b289c7a7a5 explicitely declare updateSampleRate() and updateBufferSize() as virtual (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1868 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-04 19:54:29 +00:00
Tobias Doerffel
364c837a62 per default play sub-octaves of first oscillator in osc 2 and 3 (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1862 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-12-01 22:55:51 +00:00
Tobias Doerffel
98371cb148 rewrote FLP import filter, various coding style fixes (stable backport)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1842 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-11-21 23:22:36 +00:00