Handle edits while playing precisely.
authorDavid Robillard <d@drobilla.net>
Sun, 1 Mar 2015 18:33:25 +0000 (13:33 -0500)
committerDavid Robillard <d@drobilla.net>
Thu, 5 Mar 2015 22:30:31 +0000 (17:30 -0500)
commita8aae56d92699e4545b5f8a69742f9a1c75ad238
treeae3c14f1b78fbfddf126b44e533692b137d93f28
parent09f1571fc0c9dd164601cfd3d12fac31a084b9f6
Handle edits while playing precisely.

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.
16 files changed:
gtk2_ardour/midi_region_view.cc
libs/ardour/ardour/midi_model.h
libs/ardour/ardour/midi_playlist.h
libs/ardour/ardour/midi_region.h
libs/ardour/ardour/midi_source.h
libs/ardour/ardour/note_fixer.h [new file with mode: 0644]
libs/ardour/midi_model.cc
libs/ardour/midi_playlist.cc
libs/ardour/midi_region.cc
libs/ardour/midi_source.cc
libs/ardour/note_fixer.cc [new file with mode: 0644]
libs/ardour/wscript
libs/evoral/evoral/Event.hpp
libs/evoral/evoral/Sequence.hpp
libs/evoral/src/Event.cpp
libs/evoral/src/Sequence.cpp