Commit Graph

1832 Commits

Author SHA1 Message Date
Tobias Doerffel
4995b3a87c InstrumentTrackView: save and restore last position of window
When closing a InstrumentTrackWindow save its position so it can be
restored later when showing it. Fixes windows always popping up
somewhere else when toggling instrument track button repeatedly.
(cherry picked from commit 232c1de404)
2009-04-18 18:29:14 +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
1f99455e67 RemotePlugin: allow waitForInitDone() without busy waiting
An additional parameter to waitForInitDone() allows to disable busy
waiting which could be desired in various places to avoid deadlocks.
(cherry picked from commit 1802b91e55)
2009-04-18 18:17:54 +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
c16d1be0a8 RemotePlugin: made lock() and unlock() methods public
Made RemotePlugin::lock() and RemotePlugin::unlock() public allowing
to use RemotePlugin class without subclassing it.
(cherry picked from commit 7200eb8158)
2009-04-18 18:17:38 +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
e0a26a35fc PianoRoll: do not make notes disappear under certain circumstances
When starting LMMS, loading an existing project and opening a pattern
with notes inside in piano roll, moving single notes showed unexpected
behaviour, i.e. the according note has been moved somewhere unreachable.

I tracked this down to a missing initialization of m_moveBoundary*
variables. Adding a few lines fixes the issue (closes #2632909).
(cherry picked from commit efb335cea7)
2009-04-17 15:13:44 +02:00
Tobias Doerffel
0edc0db7bd PianoView/PianoRoll: fixed keycodes for OS X
This patch enables the usage of PC keyboard for playing instrument piano
or piano roll on OS X by evaluating nativeVirtualKey rather than
nativeScanCode.
(cherry picked from commit 6f0388be7c)
2009-04-16 10:46:54 +02:00
Tobias Doerffel
52bab63548 RemotePlugin: never lock up if remote plugin died
Up to now there were insufficient checks whether the remote plugin
has died and so the result usually has been a complete lock-up of LMMS
(especially when using buggy VST plugins or similiar). By adding
according checks to remotePlugin::lock() and remotePlugin::unlock()
as well as remotePluginBase::waitForMessage() those lock-ups are gone.
(cherry picked from commit 656b195cfd)
2009-04-14 00:40:17 +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
833610ea1c FileBrowser: added file type VstPluginFile
Added file type VstPluginFile in order to allow loading DLL files by
an according plugin directly from file browser.
(cherry picked from commit e0d352dc2c)
2009-04-14 00:05:07 +02:00
Tobias Doerffel
9dee41c017 Plugin: try to load all shared libraries first
Try to load all shared libraries before resolving any symbols. Fixes
problems with plugins that are linked against other shared libraries
located in LMMS' plugin directory.
(cherry picked from commit 9a4b4f3cfe)
2009-04-14 00:05:00 +02:00
Tobias Doerffel
1ed140eec4 InstrumentTrack: fixed calculation in midiPitch()
InstrumentTrack::midiPitch() returned 16384 instead of 16383 if pitch
was set to +100 cents. This commit fixes the calculation.
(cherry picked from commit 76662a3a51)
2009-04-13 16:15:38 +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
a680dd413d German localization: fixed typo
Fixed typo in German localization file.
(cherry picked from commit f38ccba04a)
2009-04-09 00:28:10 +02:00
Tobias Doerffel
e7b2cfc9f8 InstrumentTrack::masterKey(): fixed miscalculation
Global master pitch wasn't taken into account correctly when calculating
master key of a given key. Made MIDI based instruments behave in the
opposite direction regarding pitch when changing global master pitch.

Thanks to Skiessi for pointing out this issue.
(cherry picked from commit 6e30ae3369)
2009-04-09 00:20:44 +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
2e1c7ce8a2 AudioJack: fixed lockup when getting zombified
This commit fixes lockup of the whole audio engine as soon as LMMS'
JACK backend got zombified due to longer delays (e.g. when audio engine
is blocked while loading a project). Restart JACK backend in such cases
and show an according message to the user.

Furthermore this commit includes various cleanups and improvements.
(cherry picked from commit b4e38e3978)
2009-04-07 00:16:12 +02:00
Tobias Doerffel
99807eeb98 SongEditor: fixed horizontal scrollbar with Qt 4.5
Due to optimizations in the graphics subsystem of Qt 4.5
songEditor::paintEvent() didn't get called regularly anymore and thus
the range of the horizontal scrollbar didn't get updated at all.

This commit makes the GUI track all changes related to the length of
the song.
(cherry picked from commit ff010da5ee)
2009-04-06 00:10:39 +02:00
Tobias Doerffel
af8862fd2a 3rdparty/libsamplerate: updated to version 0.1.7
Updated 3rdparty libsamplerate to version 0.1.7 and bumped requirement
to system's libsamplerate to version 0.1.7.

Besides minor stuff, version 0.1.7 has one important fix:

  * src/src_sinc.c
  Fix a segfault which occurs when memcpy is passed a bad length parameter.
  This bug has zero security implications beyond the ability to cause a
  program hitting this bug to exit immediately with a segfault.
(cherry picked from commit ca5588f747)
2009-03-27 01:40:15 +01:00
Tobias Doerffel
45eaf1439b panning.h: fixed compiler warning
Fixed compiler warning about converting float to Sint16.
(cherry picked from commit 34bbde53e7)
2009-03-26 09:30:17 +01: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
1046c7afb8 Oscillator: reverted recent fix for PM
As of acaaea8204 a samplerate dependent
ratio has been added into calculation of the local phase. This however is
wrong for PM.
(cherry picked from commit 2547bf8d57)
2009-03-22 15:18:55 +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
2828262459 ControllerConnection: export symbols for win32 build
As of ee9e5680b7, LADSPA effect plugins access
ControllerConnection class. We therefore need to export its symbols.
(cherry picked from commit dc7cc064ce)
2009-03-22 01:05:23 +01:00
Tobias Doerffel
a850c1dd43 Oscillator: fixed samplerate dependence of FM/PM
When doing FM/PM, the value of sub-oscillator is globally/locally added to
phase. However when doing this, a ratio between fixed default samplerate and
actual samplerate needs to be taken into account in the phase calculation.

This commit fixes missounding render output when rendering projects with
FM/PM inside at higher samplerates. (Thanks to Skiessi for his ladspa2.mmpz
which clearly brought up this bug)
(cherry picked from commit acaaea8204)
2009-03-21 10:34:58 +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
7931d65a89 AutomationPatternView: fixed painting of automation data
At low pixels/tact ratio automation was not drawn properly due to miscalculation
of x2 variable. This patch fixes this by adding 1 to x2.
(cherry picked from commit 9ea3c6660d)
2009-03-16 17:50:00 +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
ec07aef5ac Fixed various types to be suffixed with "_t".
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
(cherry picked from commit 7449c4f731)
2009-03-15 21:50:38 +01:00
Tobias Doerffel
49ffdcd5bc MidiPort: subscribe writable rather than readable port when settings
When loading MidiPort settings, erroneously readable port was subscribed rather
than writable port. This commit fixes the issue.
(cherry picked from commit d981b32480)
2009-03-14 19:13:48 +01:00
Tobias Doerffel
8bfcadfcaf MidiAlsaSeq: fixed typo which made output ports not work at all
As of 94d13e84ca, MidiClients::writablePorts()
was not overloaded properly anymore and thus no output ports appeared anymore.
(cherry picked from commit fdc065b8b8)
2009-03-14 19:13:32 +01:00
Tobias Doerffel
c0c729412b MidiPortMenu: minor coding style fixes
(cherry picked from commit bd9be061a0)
2009-03-14 19:13:23 +01:00
Tobias Doerffel
4dbb6a20bd FX-Fader: added accessibleName property for FX faders for not displaying
an empty titlebar in context-menu
(cherry picked from commit c24b923b78)

Conflicts:

	src/gui/fx_mixer_view.cpp
2009-03-14 16:10:13 +01:00
Tobias Doerffel
efbe9c94c0 Various fixes for better OpenBSD compatibility (thanks to Jacob Meuser)
(cherry picked from commit 46097b72d7)

Conflicts:

	src/core/main.cpp
2009-03-12 19:35:49 +01:00
Tobias Doerffel
ab35c12552 AutomationPattern: save and restore length of AutomationPattern to avoid
confusions with the previous auto-resize behaviour
(cherry picked from commit 03bf853a4d)
2009-03-12 19:06:07 +01:00
Tobias Doerffel
2b033627e6 MIDI subsystem: fixed misspelled "writeable" into "writable", minor
coding style fixes
(cherry picked from commit 94d13e84ca)
2009-03-12 01:11:55 +01:00
Tobias Doerffel
76252b461b MidiPort: properly emit portChanged signals when loading settings - fixes
MidiPortMenu showing devices not checked although actually connected
(cherry picked from commit 782156cf70)
2009-03-12 01:11:48 +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
0f40a68e75 TrackContainerView: when dragging a preset file into TrackContainerView
load complete track settings rather than just track specific settings -
fixes an issue where the track name was not loaded from the dragged preset
(cherry picked from commit 5976ab5ce2)
2009-03-09 22:48:15 +01:00
Tobias Doerffel
a6fbb8bb2d PatternView: if volume of a step is 95 it was not possible to increase
it to 100 by scrolling up (closes #2656024)

Backported from fa3d004f42 (master)
2009-03-04 19:02:18 +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