Congratulations on finding the cause of the problem, through the maze of objects implementing MIDI output.
https://codereview.appspot.com/7108043/diff/1/input/regression/midi-grace-after-tie.ly File input/regression/midi-grace-after-tie.ly (right): https://codereview.appspot.com/7108043/diff/1/input/regression/midi-grace-after-tie.ly#newcode3 input/regression/midi-grace-after-tie.ly:3: texidoc = "Grace notes don't break ties which immediately precede them." Tied notes sound as one note in MIDI. Grace notes following a tied note shorten the resulting single note in MIDI. https://codereview.appspot.com/7108043/diff/1/lily/include/audio-item.hh File lily/include/audio-item.hh (right): https://codereview.appspot.com/7108043/diff/1/lily/include/audio-item.hh#newcode90 lily/include/audio-item.hh:90: virtual string to_string () const; It seems fine to have the debug-output helper to_string(), but why make it a virtual member function? Unless the compiler is a lot smarter than me, that would seem to require a pointer to the actual function be stored in every Audio_note object. Then every user would need extra memory for every note, but would get no benefit. https://codereview.appspot.com/7108043/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel