Thanks David!

I adapted the colors and this key-sig-color-by-pitch.ly did exactly the
trick I was looking after!

That different color by octave is not actually needed, at least by me. I
included that in the example, in order to repeat the different color in
different octave found in your example :)

Best regards,
Heikki


2015-08-19 1:34 GMT+03:00 David Nalesnik <david.nales...@gmail.com>:

> Hi,
>
> On Tue, Aug 18, 2015 at 3:43 PM, Heikki Junes <heikki.ju...@gmail.com>
> wrote:
>
>> Thanks David!
>>
>> Yes, it provides the exactly the desired result!
>>
>
> Glad I could help!  See the attached for a completed adaptation.
>
> I wonder if this function would better be defined in Scheme than C++.  If
> someone wanted to do something like you're doing, it wouldn't be a trivial
> matter to first redo the function in Scheme to make the necessary changes.
>
>
>>
>> With this kind of approach, where the note height in the staff is being
>> used instead of
>> the pitch of the note, the Staff.keySignature.stencil needs to be
>> redefined on each clef change:
>>
>>     \override Staff.KeySignature.stencil =
>>     #(key-signature::special-print *treble-key-signature-colors*)
>>     \override Staff.KeyCancellation.stencil =
>>     #(key-signature::special-print *treble-key-signature-colors*)
>>     \clef *treble*
>>
>>     \override Staff.KeySignature.stencil =
>>     #(key-signature::special-print *bass-key-signature-colors*)
>>     \override Staff.KeyCancellation.stencil =
>>     #(key-signature::special-print *bass-key-signature-colors*)
>>     \clef *bass*
>>
>> Would there be any idea in developing the idea even a bit further, and to
>> connect the accidentals in the signature to
>> their pitch in stead of their vertical position?
>>
>> So instead of
>>
>>   \override Staff.KeySignature.stencil =
>>   #(key-signature::special-print `((4 . ,green) (-3 . ,red) (1 . ,blue)))
>>
>>   \override Staff.KeyCancellation.stencil =
>>   #(key-signature::special-print `((-3 . ,magenta) (1 . ,cyan)))
>>
>> One could have something more explicit which would work with all clefs,
>> like
>>
>> #(define key-signature-colors `(
>>    (ly:make-pitch 2 3 SHARP) . ,green)
>>    (ly:make-pitch 1 3 SHARP) . ,green)
>>    (ly:make-pitch 0 3 SHARP) . ,green)
>>    (ly:make-pitch -1 3 SHARP) . ,green)
>>    (ly:make-pitch 2 3 FLAT) . ,red)
>>    (ly:make-pitch 1 3 FLAT) . ,red)
>>    (ly:make-pitch 0 3 FLAT) . ,red)
>>    (ly:make-pitch -1 3 FLAT) . ,red)
>>    (ly:make-pitch 2 0 SHARP) . ,blue)
>>    (ly:make-pitch 1 0 SHARP) . ,blue)
>>    (ly:make-pitch 0 0 SHARP) . ,blue)
>>    (ly:make-pitch -1 0 SHARP) . ,blue)
>>    (ly:make-pitch 2 0 FLAT) . ,blue)
>>    (ly:make-pitch 1 0 FLAT) . ,blue)
>>    (ly:make-pitch 0 0 FLAT) . ,blue)
>>    (ly:make-pitch -1 0 FLAT) . ,blue)
>>    (ly:make-pitch 2 3 NATURAL) . ,magenta)
>>    (ly:make-pitch 1 3 NATURAL) . ,magenta)
>>    (ly:make-pitch 0 3 NATURAL) . ,magenta)
>>    (ly:make-pitch -1 3 NATURAL) . ,magenta)
>>    (ly:make-pitch 2 0 NATURAL) . ,cyan)
>>    (ly:make-pitch 1 0 NATURAL) . ,cyan)
>>    (ly:make-pitch 0 0 NATURAL) . ,cyan)
>>    (ly:make-pitch -1 0 NATURAL) . ,cyan)
>>   ))
>>
>>   \override Staff.KeySignature.stencil =
>>   #(key-signature::special-print key-signature-colors)
>>
>>   \override Staff.KeyCancellation.stencil =
>>   #(key-signature::special-print key-signature-colors )
>>
>> ?
>>
>>
> Yes, this should be possible.
>
> In the attached key-sig-color-by-pitch.ly, I've done something like
> this.  You'll notice that I modified your key-signature-colors list.  It
> might be nice to be able to specify the octave--for example, color an
> F-sharp in a certain octave blue, ired in another--but I couldn't make that
> work.
>
> A strange thing: the F-sharp in the last key-signature should be colored
> red.  It isn't.  Yet in the other file--key-sig-color-by-position.ly--it
> works.  Don't know why this is.  Of course, this is a bit of a corner case
> :)
>
> Something else I can't explain: the spacing appears to be slightly
> different between the default and modified stencils in both files. This
> only affects the positioning of naturals: Padding should only be added in
> case of an overlap.  The rewrite finds overlaps in m. 2 where the original
> function doesn't apparently.  Any ideas what causes this?
>
> Best,
> David
>
>
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to