Adding extra fingering with Scheme

Revision as of 08:28, 28 December 2025 by Lemzwerg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

You can add additional elements to notes using map-some-music. In this example, an extra script is attached to a note (or a chord).

In general, you should first apply \displayMusic to music similar to what you want to create so that you can see its structure. This can be then used as template for your Scheme code.

\version "2.24"

addScript =
#(define-music-function (script music) (ly:event? ly:music?)
   (map-some-music
    (lambda (mus)
      (define (append-script-at! prop)
        (set! (ly:music-property mus prop)
              (append (ly:music-property mus prop)
                      (list (ly:music-deep-copy script))))
        mus)

      (case (ly:music-property mus 'name)
        ((EventChord)
         (append-script-at! 'elements))
        ((NoteEvent)
         (append-script-at! 'articulations))
        (else #f)))
    music))

{
  \addScript _6 { c'4-3 <c' e' g'> }
}