If a note is played via MIDI (e.g. with infinite frame count) and arpeggio
is enabled the NotePlayHandle never got deleted as framesLeft() always
returned a big value even after release.
Closes#169.
We must not record notes when receiving external MidiNoteOff events
as e.g. the sustain pedal still might be pressed. State tracking for
features like these is done inside NotePlayHandle so move the recording-
related signal emission from InstrumentTrack to NotePlayHandle.
Closes#168.
We should not need compat code for project files < 0.4.x anymore.
Anybody who wants to load project files made before 2008 is advised to
open them in LMMS 0.4.x first and save them so they get upgraded.
Even though ZynAddSubFX does not support pitch wheel sensitivity RPN
events and thus we can't update the pitch range from LMMS automatically,
at least default to 100 semitones pitch wheel bend range so behaviour
is consistent with default pitch range in LMMS.
When changing the pitch range all we can do for MIDI is to update the
MIDI pitch bend sensitivity RPN even though this is only supported by
some MIDI instruments.
Closes#129.
As undo/redo are not working properly at the moment, do not expose
according menu items to the user. This will be fixed in upcoming releases.
Closes#152.
If we receive MidiNoteOn, MidiNoteOff or MidiKeyPressure events we always
kind of handle them in processInEvent() so do not forward them to the
instrument.
This fixes a freeze when loading VST plugins as PianoView::focusOutEvent()
tried to send MIDI events to the not yet completely loaded and thus locked
VST plugin.
Closes#160.
Newer versions of GCC seem to assume an array size of 0 for arrays whose
size is not specified explicitely. This causes a warning about an
out-of-bounds array access.
There are situations where processOutEvent() is being called while
loading instrument track settings e.g. when loading the pitch model
whose dataChanged() signal is connected to InstrumentTrack::updatePitch()
which in turn calls processOutEvent(). At this time we do not have an
instrument instance and therefore have to skip processing.
Closes#164.
For some reason executing git shortlog in Qt Creator cmake project
import hangs. This is a workaround so that it is still possible to
use Qt Creator without changing the normal build, in which git shortlog
will certainly complete in 1 second.