(Addresses #1421)
**Behaviour description:**
* Toggle step-recording mode using the dedicated icon.
* This mode is mutually exclusive with other recoding modes (record/record
accompany).
* Step-Recording while song is playing is allowed (and fun! :) ).
* When start recording, the start recording-position will be set where the
timeline curser points (quantized backwards using PianoRoll's current
quantization). If step-recording is started while the pattern is playing the
start recording-position is set to the beginning of the pattern.
* Step length is determined by the Piano Roll's current note-length (can be
changed dynamically during step-recording).
* The record-position can be moved forward/backward using the right/left keys.
* When notes are pressed on keyboard/midi-device, they will be added
temporarily ("recorded") with a length of a step. while still pressed, user
can adjust the length by steps resolution using the arrow keys (e.g. moving
right once will make the note's length 2-steps, another right press will make
the length 3-steps etc.).
* When all pressed-keys are released, the actual recording happen and the
notes are added.
* If the user press multiple notes, and release some of them for some time
which indicates it is intentional i.e. he didn't want to do a full release
to record the step but rather just change what will be recorded (I set the
"intentional release threshold" to 70 milliseconds) - these note will be
removed from current step-recording. e.g.
* Added notes are not quantized, making the addition simpler and WYSIWYG
* Similiarly to adding notes using mouse clicks, an undo-checkpoint is added
per added step and not for the whole recording as in other record modes.
* If we find NaN/inf, we declare the whole buffer bad and set it to 0.0f. This
is because the noise leading up to, or coming from, an infinite or NaN value
is often very large and will create problems later in the sound chain. Especially
if it hits a delay based fx with feedback.
* We bump the clipping level to +/-10.0f.
Lets you set a melody pattern as visible in the background of the Piano Roll
as support when building a new pattern. The pattern is visible throughout
the session or until cleared via the provided button.
Really short notes doesn't work well with delay based effects with the default
decay settings of the FX autoquit system where the effect can cut out. Set
autoquit as disabled by default.
Decay and Gate knobs are now also disabled when autoquit is disabled.
Switches some signal-slot connections to Qt::DirectConnection.
Now LMMS can handle loop points correctly and export samples without glitches.
Also tweaks some Mixer-related code to avoid related deadlocks on export.
Previously BBTrackContainerView::dropEvent always deleted
the TCOs of dropped tracks. It made dropped tracks unusable.
As of this commit, the function checks for correct TCOs.
If incorrect TCOs exist, the function remove them and add empty ones.
Due to the wrong condition for GUI handling, empty patterns longer than 1 bar
was treated as BB patterns though they don't really look like.
This commit drops the erroneous check and fixes related GUI issues.
* Save `AutomatableModel` nodename in attribute if it must be quoted
* Loading an `AutomatableModel` with name <name> now means it
- either <name> must be `QDomElement::nodeName()` (as before)
*and* must not have a `nodename` attribute (new)
- or must have a `nodename` attribute with value <name>