Reviewers: md5i, Message: This looks good overall. I will test out my own suggestions, because if we can make a smaller change, it will be easier to follow through this complicated stretch of history in the MIDI-output code.
http://codereview.appspot.com/4520050/diff/1/flower/include/pqueue.hh File flower/include/pqueue.hh (right): http://codereview.appspot.com/4520050/diff/1/flower/include/pqueue.hh#newcode121 flower/include/pqueue.hh:121: vsize next = i / 2; On 2011/05/11 13:41:04, md5i wrote:
This should really be tgt / 2, for consistency.
Done http://codereview.appspot.com/4520050/diff/9001/flower/include/pqueue.hh#newcode110 flower/include/pqueue.hh:110: void del (vsize i) Rather than change the 'flower' library to support deletion from the heap, I suggest we continue to use the ignore_ flag on items we would delete. The formerly-used "lazy deletion" technique seems appropriate for the note-of queue, because deletions are rare. http://codereview.appspot.com/4520050/diff/9001/lily/midi-walker.cc File lily/midi-walker.cc (right): http://codereview.appspot.com/4520050/diff/9001/lily/midi-walker.cc#newcode94 lily/midi-walker.cc:94: if (now_ticks == stop_note_queue[i].val.first The use of the .first field to cache the note-on-time was difficult for me to understand. I suggest following pointers as was done to find now_ticks: int queued_ticks = stop_note_queue[i].val.second->audio_->audio_column_->ticks () Description: MIDI: intelligently combine overlapping notes. Fix issue 1647 A patch from Micheal Duggan Please review this at http://codereview.appspot.com/4520050/ Affected files: M flower/include/pqueue.hh A input/regression/midi-unisons.ly M lily/audio-staff.cc M lily/include/audio-staff.hh M lily/include/midi-walker.hh M lily/midi-walker.cc M lily/staff-performer.cc M scm/define-context-properties.scm _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel