lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Double thin bar lines and repeats?


From: Lars-Johan Liman
Subject: Re: Double thin bar lines and repeats?
Date: Tue, 20 Jan 2015 12:16:17 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin)

address@hidden:
>> Well, _every_ BarLine has some settings in the definition how to
>> behave mid-line, line-begin, line-end and for the span-bar-type.

Ah. That does make sense. I'm discovering stuff by the minute. :-)

>> \bar "||" doesn't print a bar-line at line-begin (see bar-line.scm)

Ack!

>> 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)

Umm ... "indeed." :-)

>> 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

A warm thanks for sharing your expertise! This is really appreciated,
even if I don't penetrate all the details ... yet. :-)

Now future googlers have something to chew on, and I have working code!
:-)

                                Cheers,
                                  /Liman



reply via email to

[Prev in Thread] Current Thread [Next in Thread]