mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
Set length of new percussive hits to 1 tick
This prevents overlap of successive hits. Ardour 7 added a new duration select drop-down menu, which defaults to "Auto" (musical grid) and removed the special case when drawing percussive notes. It was possible to accidentally create overlapping notes, without the user being aware of doing so.
This commit is contained in:
parent
7d95334c0d
commit
cf9f9db48b
2 changed files with 7 additions and 12 deletions
|
|
@ -6946,17 +6946,8 @@ HitCreateDrag::finished (GdkEvent* event, bool had_movement)
|
|||
|
||||
Beats const start = _region_view->region ()->absolute_time_to_region_beats (timepos_t (aligned_beats));
|
||||
|
||||
/* This code is like MidiRegionView::get_draw_length_beats() but
|
||||
* defaults to 1/64th note rather than a 1/4 note, since we're in
|
||||
* percussive mode.
|
||||
*/
|
||||
|
||||
bool success;
|
||||
Beats length = _editor->get_draw_length_as_beats (success, pos);
|
||||
|
||||
if (!success) {
|
||||
length = Beats::ticks (Beats::PPQN / 64);
|
||||
}
|
||||
/* Percussive hits are as short as possible */
|
||||
Beats length (0, 1);
|
||||
|
||||
/* create_note_at() implements UNDO for us */
|
||||
_region_view->create_note_at (timepos_t (start), _y, length, event->button.state, false);
|
||||
|
|
|
|||
|
|
@ -4697,6 +4697,10 @@ MidiRegionView::get_grid_beats (timepos_t const & pos) const
|
|||
Temporal::Beats
|
||||
MidiRegionView::get_draw_length_beats (timepos_t const & pos) const
|
||||
{
|
||||
if (midi_view()->note_mode() == Percussive) {
|
||||
return Temporal::Beats (0, 1);
|
||||
}
|
||||
|
||||
PublicEditor& editor = trackview.editor();
|
||||
bool success = false;
|
||||
Temporal::Beats beats = editor.get_draw_length_as_beats (success, pos);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue