lilypond-user
[Top][All Lists]
Advanced

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

Re: Overriding Score.SystemStartBar once at the beginning


From: Thomas Morley
Subject: Re: Overriding Score.SystemStartBar once at the beginning
Date: Sat, 19 May 2018 19:41:17 +0200

2018-05-19 12:06 GMT+02:00 jasonflatley <address@hidden>:
> I am trying to make a jazz lead sheet template. One requirement is that the
> treble clef and key signature should only appear in the first system, and
> the subsequent systems should begin with a bar line. This picture shows what
> I have so far (generated by the lilypond code at the end of this message).
>
> <http://lilypond.1069038.n5.nabble.com/file/t5643/first_system_bar_line_example_%28Small%29.png>
>
> I don't want the bar line at the very beginning, to the left of the treble
> clef.
>
> So I tried to override Score.SystemStartBar for just the first system. I
> tried various permutations of \override and \once in either the layout block
> or near the %%% in the melody section, using statements like the following:
> --\override Score.SystemStartBar #'collapse-height = #30
> --\override Score.SystemStartBar #'X-offset = -10
> --\override Score.SystemStartBar.break-visibility = #'#(#f #f #f)
>
> I can't seem to override anything once, and then set it back.
>
> Any suggestions?

SystemStartBar is usually a multi-line (and thus broken) spanner.
To affect only a certain part of it you need to use the technics explained here:
http://lilypond.org/doc/v2.19/Documentation/extending-big-page#difficult-tweaks

Leading to the argument of the 'after-line-breaking-override below.

I post the whole reformated layout. Please obtain not to exceed 80
characters per line in code.
Otherwise comments, broken by an email-client will mess all up.

\layout {
  \context {
    \Score
    \remove "Bar_number_engraver"
    % make only the first clef visible
    \override Clef #'break-visibility = #'#(#f #f #f)
    % make only the first time signature visible
    \override KeySignature #'break-visibility = #'#(#f #f #f)
    \override SystemStartBar #'after-line-breaking =
      #(lambda (grob)
        (let* ((orig (ly:grob-original grob))
               (siblings (if (ly:grob? orig)
                             (ly:spanner-broken-into orig) '())))

            (ly:grob-set-property! grob 'collapse-height
              (if (and (pair? siblings) (equal? grob (car siblings)))
                  10
                  1))))
  }
}

HTH,
  Harm



reply via email to

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