* implements drag and drop samples to sampletracks
* clean up / take care of timeLineWidget heigth in songeditor
* unused memeber removed
* clean up
* Update include/TrackContainerView.h
Co-Authored-By: Spekular <Spekular@users.noreply.github.com>
* Update src/gui/TrackContainerView.cpp
Co-Authored-By: Spekular <Spekular@users.noreply.github.com>
* Update src/gui/TrackContainerView.cpp
Co-Authored-By: Spekular <Spekular@users.noreply.github.com>
* Update src/gui/editors/SongEditor.cpp
Co-Authored-By: Spekular <Spekular@users.noreply.github.com>
* load AFP if we don't drop on a sample track
* take care of timeLineWidget size changes
* clean up
* consolidate some code
* requested changes by code review
* move logic to SampleTrackView
* clean up
* clean up
* clean up
* Song: add isSavingProject.
* VersionedSaveDialog: Add support for a custom option dialog.
* AutomatableModel: Support the discardMIDIConnections save option.
* InstrumentTrack: Support the discardMIDIConnections save option.
* SaveOptions: Show the save option dialog on "save as".
right place when it not played from the begining.
That has created a difference between the ticks and the metronome and
the sample track.
The cause of the problem was that the calculation of the frame to play
was wrong: we had calculated `framesPerTick` according to the current
engine's sample rate instead of the SampleBuffer's sample rate.
Fix some assumptions that source and target of a drag actions are the same
track container. Instead of looking up necessary information (track name,
type and container id) by track index, add it to the metadata.
Refactor canPasteSelection to take QDropEvent instead of the drop event's
QMimeData. Coincidentally, this fixes the method to be consistent with its
documentation.
Fixes#4844
When deciding to polyfill glibc features, check if the standard library claims to be glibc, instead of enumerating platforms in the condition. Unlike master branch which in de3b344 changes math function calls to standard, stable-1.2 keeps their glibc names and fails to build on Linux with another libc such as musl.
(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.