/* must compare double explicitly as Beats::operator< rounds to ppqn */
const bool outside = (note->time().to_double() < midi_reg->start_beats() ||
- note->time().to_double() > midi_reg->start_beats() + midi_reg->length_beats());
+ note->time().to_double() >= midi_reg->start_beats() + midi_reg->length_beats());
visible = (note->note() >= midi_stream_view()->lowest_note()) &&
(note->note() <= midi_stream_view()->highest_note());
const Evoral::Beats snapped_beats = snap_frame_to_grid_underneath (unsnapped_frame, divisions, shift_snap);
/* prevent Percussive mode from displaying a ghost hit at region end */
- if (!shift_snap && snapped_beats >= midi_region()->length_beats()) {
+ if (!shift_snap && snapped_beats >= midi_region()->start_beats() + midi_region()->length_beats()) {
_ghost_note->hide();
hide_verbose_cursor ();
return;