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
}