lilypond-user
[Top][All Lists]
Advanced

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

Re: Key signature and key cancellation need to be aligned


From: Thomas Morley
Subject: Re: Key signature and key cancellation need to be aligned
Date: Thu, 29 Jan 2015 11:21:15 +0100

2015-01-28 19:00 GMT+01:00 David Sumbler <address@hidden>:
>> 2015-01-27 12:56 GMT+01:00 David Sumbler <address@hidden>:
>> > I use Staff.printKeyCancellation = ##f in my score.
>> >
>> > At one point the key changes from C major (concert) to C minor.  As the
>> > piece is for a standard saxophone quartet, this means that 2 of the
>> > instruments change from D major (notated) to D minor, and the other 2
>> > change from A major to A minor.
>> >
>> > A minor, of course, is the "open" key with no sharps or flats, and,
>> > notwithstanding the negation of printKeyCancellation, Lilypond correctly
>> > prints a key cancellation at this point on the 2 staves that require it.
>> >
>> > The other 2 parts, in which the key changes from 2 sharps to 1 flat,
>> > correctly do not get a key cancellation.
>> >
>> > So far, so good.
>> >
>> > The problem is that the actual key signatures on the 2 staves that have
>> > them are not vertically aligned with the key cancellations on the other
>> > 2 staves.  Instead, they are printed after the key cancellations.  In
>> > other words, each of the 2 key signatures is printed as if there were an
>> > invisible key cancellation preceding it on the stave.  This looks wrong,
>> > and I should like them to appear above and below the actual key
>> > cancellations on the other 2 staves.
>> >
>> > I have experimented with changing KeySignature.X-offset (which had no
>> > effect) and KeySignature.extra-offset.  The latter works, but
>> > unfortunately the position of the time signature and music which follow
>> > remain unchanged, so that there is now an unnecessary gap after the key
>> > signatures/cancellations.
>> >
>> > How can I get the effect I want, and get Lilypond to take account of the
>> > change in the position of the key signatures?
>> >
>> > David
>>
>>
>> Hi David,
>>
>> how about a minimal example?
>>
>> -Harm
>
> Here we are, then: the following illustrates the problem.
>
> \version "2.18.0"
> \language "english"
>
> \new StaffGroup <<
>     \new Staff \relative c'' {
>         \transposition bf
>         \time 3/4
>         \key d \major
>         a2 r4 |
>         \key d \minor
>         \time 2/4
>         R2 |
>     }
>     \new Staff \relative c'' {
>         \transposition ef
>         \time 3/4
>         \key a \major
>         gs2 r4 |
>         \key a \minor
>         \time 2/4
>         R2 |
>     }
>>>
>
> \layout {
>     \context {
>         \Staff printKeyCancellation = ##f
>     }
> }
>
> I have had 2 very interesting responses to my query, one from Thomas
> Morley and one (off-list) from Kevin Barry.  Both had slight problems
> with them, and experimenting with them has once again helped
> considerably in improving my understanding of the workings of Lilypond.
>
> Thomas suggested adding
>
>     \once \override Score.KeyCancellation.space-alist.key-signature = 
> #'(extra-space . -2.4)
>     \once \override Score.KeySignature.space-alist.time-signature = 
> #'(extra-space . 2.6)
>
> The only problem was this was that, although it solved the problem in the 
> score,
> it introduced a problem in the parts for the instruments with an actual
> key signature.  I could get around this by using tags, of course.
>
> Kevin's suggestion, which, after modification, was the one I ultimately
> used, was to omit '\key a \minor' and to add:
>
>     \override Staff.KeyCancellation.stencil = ##f
>     \set Staff.keySignature = #`((10 . ,NATURAL) (7 . ,NATURAL) (11 . 
> ,NATURAL))
>
> This worked well, except that the dummy key signature with natural
> signs then appeared on every subsequent line.  My final solution is:
>
>     \override Staff.KeyCancellation.stencil = ##f
>     \override Staff.KeySignature.break-visibility = #all-invisible
>     \set Staff.keySignature = #`((10 . ,NATURAL) (7 . ,NATURAL) (11 . 
> ,NATURAL))
>
> Then, immediately before the next key change:
>
>     \revert Staff.KeySignature.break-visibility
>
> Thank you both for your help.
>
> David
>

Did you notice Keith reply?
The mentioned workaround is in comment #2
http://code.google.com/p/lilypond/issues/detail?id=448#c2

Cheers,
  Harm



reply via email to

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