[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