Handle edits while playing precisely

Multimedia / Ardour - David Robillard [drobilla.net] - 5 March 2015 16:30 UTC

This avoids stuck notes if active notes are edited, but without stopping all active notes in the region on any edit as before.

This implementation injects note ons in places that aren't actually note starts. Depending on how percussive the instrument is, this may not be desired. In the future, an option for this would be an improvement, but there are other places where "start notes in the middle" is a reasonable option. I think that should be handled universally if we're to do it at all, so not considering it a part of this fix for now.

a8aae56 Handle edits while playing precisely.
gtk2_ardour/midi_region_view.cc | 5 +-
libs/ardour/ardour/midi_model.h | 21 ++++--
libs/ardour/ardour/midi_playlist.h | 36 +++++++--
libs/ardour/ardour/midi_region.h | 6 --
libs/ardour/ardour/midi_source.h | 8 +-
libs/ardour/ardour/note_fixer.h | 102 +++++++++++++++++++++++++
libs/ardour/midi_model.cc | 28 +++----
libs/ardour/midi_playlist.cc | 101 +++++++++++++------------
libs/ardour/midi_region.cc | 33 +++-----
libs/ardour/midi_source.cc | 13 +++-
libs/ardour/note_fixer.cc | 145 ++++++++++++++++++++++++++++++++++++
libs/ardour/wscript | 1 +
libs/evoral/evoral/Event.hpp | 2 +
libs/evoral/evoral/Sequence.hpp | 30 ++++----
libs/evoral/src/Event.cpp | 16 ++++
libs/evoral/src/Sequence.cpp | 30 ++++++--
16 files changed, 439 insertions(+), 138 deletions(-)

  • Share