On Tue, Jan 20, 2015 at 01:40:11AM +0100, Thomas Morley wrote: > > To answer my own question: > In repeat-acknowledge-engraver.cc is a comment and code: > > /* > We only set the barline if we wouldn't overwrite a previously set > barline. > */ > SCM wb = get_property ("whichBar"); > SCM db = get_property ("defaultBarType"); > if (!scm_is_string (wb) || ly_is_equal (db, wb)) > { > if (s != "" || (volta_found && !scm_is_string (wb))) > context ()->set_property ("whichBar", ly_string2scm (s)); > } > } > > Although I don't know C++, it seems to be pretty clear what happens
One other consideration in this very specific example (a double barline followed by an open-volta repeat) is an obscure bit of musical notation practice which took me by surprise a couple years ago when I first learned of it. Many folks no doubt know that, when a volta begins at the beginning of a piece, the opening volta barline is often omitted. The reader is expected to know that when the closing volta barline is found, it repeats to the beginning of the piece, by default. What I didn't know until somewhat recently, is that a double barline is handled the same as the beginning of a piece. That is, a closing volta barline which has no matching opening volta barline repeats either to the beginning of the piece, or to the nearest double barline, whichever is closer. That's another reason why "||" wins out. Jim _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user