lilypond-user
[Top][All Lists]
Advanced

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

Re: Overwrite key signature with numbers


From: Valentin Petzel
Subject: Re: Overwrite key signature with numbers
Date: Mon, 02 Oct 2023 14:59:05 +0200

Hi Robert,

you could do it like this:

\version "2.23.6"

\layout {
  \context {
    \Staff
    \override KeySignature.text =
    #(lambda (grob)
       (let* ((alt (ly:grob-property grob 'alteration-alist))
              (alts (map cdr alt))
              (tot (* 2 (apply + alts)))
              (acc (cond ((= tot 0) (markup #:musicglyph 
"accidentals.natural"))
                         ((> tot 0) (markup #:musicglyph "accidentals.sharp"))
                         (else (markup #:vcenter #:musicglyph 
"accidentals.flat")))))
         (markup #:vcenter #:number (number->string (abs tot)) acc)))
    \override KeySignature.stencil = #ly:text-interface::print
    printKeyCancellation = ##f
  }
}

expt = { \key c \major c d e f }

{
  \clef bass
  \expt
  \transpose c cis \expt
  \transpose c des \expt
  \transpose c d \expt
  \transpose c dis \expt
  \transpose c es \expt
  \transpose c e \expt
  \transpose c f \expt
  \transpose c fis \expt
  \transpose c ges \expt
  \transpose c g \expt
  \transpose c gis \expt
  \transpose c as \expt
  \transpose c a \expt
  \transpose c ais \expt
  \transpose c bes \expt
  \transpose c b \expt
}

Cheers,
Valentin

Am Montag, 2. Oktober 2023, 14:21:37 CEST schrieb Robert Mengual:
> Hi, I am trying to overwrite the key signature for my custom music notation
> so that instead of displaying the sharp and flat icons, it shows a given
> number and the alteration. So, for example, E Major would show 4# instead
> of ####.
> 
> I have been able to get the desired output by hardcodeing it using the
> markup function. However, I am not finding a way to conditionally render
> the number and alteration depending on the key. Could somebody help me?
> 
> Here is my tiny hardcoded example, with a screenshot:
> 
> [image: image.png]
> 
> \version "2.23.6"
> 
> \layout {
> \context {
> \Staff
> \override KeySignature.stencil = #ly:text-interface::print
> \override KeySignature.text = \markup {
> \combine
> \halign #-1 \lower #1 \musicglyph "four"
> \halign #-5 \musicglyph "accidentals.sharp"
> }
> }
> }
> 
> \relative {
> \clef bass
> \key e \major
> cis dis e
> }

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

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