(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.
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.
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>
* Update the LMMS logo and mimetypes
* fix bmp for nsis installer
* Update window and About icons, rename icons, change the file association logic
* Fix NSIS
* Revert nsh patch
* Fix small icon
* Always write DefaultIcon in the registry
* Fix file permissions
* Fix nsis branding
* Fix nsis branding #2
* update the icon windows and linux
* Update apple icon, add windows visual manifest
* try to fix windows installation
* typo
* typo 2
* Set small logo to conform to 48x48 grid
Changed according to feedback from AudioBlast. The flag used to be set most of the time, now it is only set when playback starts/stops, looping is toggled, or playback jumps around.
This is a workaround for rare crashes when changing the tempo
while playing notes with stacking and/or arpeggio.
When playing the master note, _working_buffer is null.
Tempo change causes false positive in the check because
NotePlayHandle::resize changes m_totalFramesPlayed.
Thanks to 6fc4577f10, we can safely drop
the memset call.
Adjust Mixer::getPeakValues so client do not have to allocate the
variables that will store the peak values.
Adjust both existing clients: FxMixer and VisualizationWidget.
Make the oscilloscope colors available as properties so that they can be
changed via style sheets. Adjust the existing styles to use the colors
that have been hard coded previously.
Cleanup the paintEvent method of VisualizationWidget, e.g. by extracting
a method to determine the color to use for the line and by pulling
variables to the place where they are used. Fix some Clang warnings.
Add the option to show note values on notes in the Piano Roll. This
functionality is currently coupled with the option "Enable note labels
in piano roll" which can be found in the main menu.
The notes are rendered at about 80% of the notes height. They are only
rendered if they fit on the whole note and if the font does not become
too tiny.
Enable the configuration of the note value text's color via the
stylesheets and set the value to white for both shipped themes.
Other changes:
* Clean up some warnings about old school casts and implicit casts.