2015-01-20 1:33 GMT+01:00 Thomas Morley <thomasmorle...@gmail.com>: > 2015-01-20 0:43 GMT+01:00 Lars-Johan Liman <lilyp...@liman.net>: >> thomasmorle...@gmail.com: >>> Try: >>> \bar ".|:-||" >> >> Thanks a bunch! That does indeed work. If you ever need a trick or two >> from the advanced DNS trick book, I'll be happy to repay you ... :-) >> >>> It's in the NR ;) >> >> I did find that part, but that is, however, not how I understood it. :-P >> >> Can you also explain why it's needed? Why doesn't the >> >> \bar "||" \break >> \repeat 2 { ... } >> >> work? I _do_ realise that repeat marks at the beginning of the entire >> piece aren't supposed to be printed, but this is not the case. >> >> Does the \bar "||" (or \break?) signal something to LilyPond (which \bar >> "|" doesn't) like "end-of-phrase", that makes it treat the next line as >> the beginning of a (sub?-)piece? But that doesn't make sense either, >> because another hint in the NR describes how to actually put repeat >> marks at the very beginning, and that only works at the VERY beginning, >> _not_ after the "||". >> >> Happier, but still confused, and only at a slightly higher level ... :-) >> >> But I need sleep. Badly ... :-) >> >> Cheers, >> /Liman > > Well, _every_ BarLine has some settings in the definition how to > behave mid-line, line-begin, line-end and for the span-bar-type. > > \bar "||" doesn't print a bar-line at line-begin (see bar-line.scm) > > The \repeat construct uses the value from 'startRepeatType' (see > engraver-init.ly) as starting repeat-sign, default and fall-back is > ".|:" (see repeat-acknowledge-engraver.cc and look up how ".|:" is > defined in bar-line.scm) > > While inputting > \bar "||" \break \repeat volta ... > you have two _conflicting_ settings at the _same_ musical moment. > One will override the other. > Clean sollution is to define a BarLine which has the settings you > prefer. This is done already with the predefined ".|:-||" (again, see > bar-line-scm). > > Only thing I don't fully understand, why does "||" wins? > I'd expect the ".|:" to be printed.
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 Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user