The output looks very nice, even with half-sharps, reverse flats, etc. The patch makes compilation take 6% longer (depending on accidental density).
The reverse flats don't get any extra space around their stems, but I haven't find a case where they need it, because they are placed in the same order as regular flats so they do not nest. Maybe it would be cleaner to have a blanket rule that the skylines always enclose the 'spine' of the glyph, assuming the spine has x-coordinate zero, by merging a box of dimensions 0.4* X-extent() by Y-extent () into the skylines. http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc File lily/accidental.cc (right): http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode86 lily/accidental.cc:86: * suicide, so it is not pure. Is this the book of Leviticus ? The completion of the concept is "..., but we use this function /before/ line-breaking" http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode101 lily/accidental.cc:101: if (glyph_name == "accidentals.flat" Since this is such a special case, it would be nicer to encode the extra space around a flat's stem as a non-printing the glyph outline --- if we can interest anyone with sufficient MetaFont competence. http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode110 lily/accidental.cc:110: Real left = (*sky)[LEFT].max_height (); Doesn't matter much for the current flat symbol, but in general you don't want to merge in a box that goes this far left. http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode111 lily/accidental.cc:111: Real right = (*sky)[RIGHT].average_height () * 0.75; A fraction of max_height() is easier to visualize than average_height. http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode113 lily/accidental.cc:113: Real up = (*sky)[RIGHT].right (); Maybe just use extent(Y_AXIS)? http://codereview.appspot.com/6489086/diff/12001/lily/accidental.cc#newcode116 lily/accidental.cc:116: Skyline_pair merge_with_me (boxes, Y_AXIS); Is it feasible to just merge with the right-hand skyline of the pair? http://codereview.appspot.com/6489086/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel