lilypond-user
[Top][All Lists]
Advanced

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

Re: Key change with clef after the bar line?


From: Jean Abou Samra
Subject: Re: Key change with clef after the bar line?
Date: Sun, 27 Feb 2022 09:32:25 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0



Le 27/02/2022 à 09:31, Jean Abou Samra a écrit :
Le 27/02/2022 à 08:09, Alasdair McAndrew a écrit :
In my current project, I'm trying as far as possible to replicate the spirit of the original 18th century publication, in which a key change has a clef printed, and both after the bar line.  In one piece, there's a segno in the middle of a bar, with such a key change.  In standard Lilypond, this micro-example shows that the printed clef comes before the bar line (I've left out the segno marker and all other markers outside the score):

    global = {
      \language english

      \clef treble
      \time 4/4
    }

    \relative c' {\key c \major c4 d e fs | g a \bar "||" \set
    Staff.forceClef = ##t \key c \minor bf c | bf af g f | ef d c2 }


But modern practice is to put the clef before the double bar, and the key change afterwards. I want the clef to come after that double bar.  According to the documentation, this can be changed with "break-alignment", in particular with:

    \override Score.BreakAlignment #'break-align-orders =
    #(make-vector 3 '(span-bar
       breathing-sign
       staff-bar
       key
       clef

     time-signature))


However, in the mini example just given above, adding that override in the global declaration has no effect.  I tried changing the order of "key" and "clef" in the override, again with no effect.  (When I tried his in a larger piece, the key change was printed on the bar-line!)

Is there any way I can notate a key change, at a segno with an extra bar line, in order: bar line, clef, key ?


Well, the \global is unused in your example, so it's not
surprising that the override has no effect. With that
oversight corrected, the problem is that the break align symbol
for a KeySignature is not 'key but 'key-signature. You
will find this at
http://lilypond.org/doc/v2.23/Documentation/internals/keysignature
(the break-align-symbol property). So this works:

\version "2.22.1"

\language english

global = {
  \clef treble
  \time 4/4
  \override Score.BreakAlignment.break-align-orders =
  #(make-vector 3 '(span-bar
                    breathing-sign
                    staff-bar
                    clef
                    key-signature
                    time-signature))
}

\relative c' {
  \global
  \key c \majorhttps://lilypond.org/doc/v2.23/Documentation/notation/adjusting-horizontal-spacing-for-specific-layout-objects



Obviously that was a copy-paste problem …


\version "2.22.1"

\language english

global = {
  \clef treble
  \time 4/4
  \override Score.BreakAlignment.break-align-orders =
  #(make-vector 3 '(span-bar
                    breathing-sign
                    staff-bar
                    clef
                    key-signature
                    time-signature))
}

\relative c' {
  \global
  \key c \major
  c4 d e fs |
  g a
  \bar "||"
  \set Staff.forceClef = ##t
  \key c \minor
  bf c |
  bf af g f |
  ef d c2
}





reply via email to

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