lilypond-user
[Top][All Lists]
Advanced

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

Re: Accidentals from note grob


From: Nils Nommensen
Subject: Re: Accidentals from note grob
Date: Fri, 2 Aug 2019 08:43:51 +0200

That's exactly the point, I actually need the glyph name. 
If I am noch mistaken, the alteration attribute also incorporates the information of the key signature. I need to know which accidental is directly in front of the notehead.
Therefore, the glyph name is probably what I need. However,  the line 

(write (ly:grob-property acc 'glyph-name)) 

is not a string, but something else and I'm not really sure how to extract the string part of it. Do you have a suggestion?

Am Fr., 2. Aug. 2019 um 00:16 Uhr schrieb Thomas Morley <address@hidden>:
Am Do., 1. Aug. 2019 um 15:23 Uhr schrieb Nils Nommensen
<address@hidden>:
>
> Sorry to bother you with this, but I'm really new to Lilypond and Scheme. I need a String representation of the name. If I use display on the return value, I get something like: "accidentals.natural"#<unspecified>".
> How can I extract the "natural" part?

Well, it's not clear what you want.
"accidentals.natural" _is_ the glyph-name in the Emmentaler-font.
Ofcourse you could do some string-operation on it to get the
"natural", but I have my doubts this would be helpfull.

Probably you don't want the glyph-name displayed, but rather see
whether there is some (which) alteration:

\version "2.19.83"

#(define get-accidental
  (lambda (note)
    (let*  ((acc (ly:grob-object note 'accidental-grob))
            (alt (ly:grob-property acc 'alteration)))

      (newline)
      (write
        (case alt
          ((-1) "double-flat")
          ((-1/2) "flat")
          ((0) "natural")
          ((1/2) "sharp")
          ((1) "double-sharp")
          (else (format #f "not yet kown alteration: ~a" alt)))
      ))))

{
    \override NoteHead.after-line-breaking = #get-accidental
    ceses'
    ces'
    c'
    cis'
    cisis'

    ceh'
}

HTH,
  Harm

reply via email to

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