User:Lilipond/Lilypond/Tuplet Number formatieren

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Problem

[edit]

In vielen älteren Noten sind die Triolenziffern mit Bogen unterstrichen, wie sie durch \undertie erzeugt werden.

Natürlich kann man diese Beschriftung individuell erzeugen, je nach Richtung und Tuplet-Wert. Die dazugehörige Eigenschaft ist TupletNumber.text, mit

\override TupletNumber.text ="2"

wird jede Tupletzahl auf 2 gesetzt, unabhängig vom Notenwert des Tuplet, ob Triole, Sextole etc.

Soll sich die Beschriftung des Tuplet in Abhängigkeit von der Notendauer ändern, muss eine Funktion definiert werden.

Lösung

[edit]

Hier eine Anwendung mit zwei Funktionen. Die eine beschriftet das Tuplet mit dem Zähler des Bruches, die andere mit dem kompletten Bruch.

\version "2.19.80"

tupletU = {
  \tupletUp
  \override TupletNumber.direction = #UP
}

tupletD = {
  \tupletDown
  \override TupletNumber.direction = #DOWN
}

tupletN = {
  \revert TupletBracket.direction
  \revert TupletNumber.direction
}

%% nur der Zähler als Beschriftung
#(define (my-tuplet-number::calc-denominator-text grob)
   (let (;; let 'direction evaluate to use the generic tie-markup-command
          (dir (ly:grob-property grob 'direction)))
     (make-tie-markup
      (string-append  " " (tuplet-number::calc-denominator-text grob) " "))))

%% der komplette Bruch als Beschriftung
#(define (my-tuplet-number::calc-fraction-text grob)
   (let (;; let 'direction evaluate to use the generic tie-markup-command
          (dir (ly:grob-property grob 'direction)))
     (make-tie-markup
      (string-append  " " (tuplet-number::calc-fraction-text grob) " "))))

\relative c'' {
  \override TupletNumber.text = #my-tuplet-number::calc-fraction-text
  \tuplet 3/4 { g8 e f }
  \tupletD
  \tuplet 5/4 { g8 e f e d }
  \tupletN
  \override TupletNumber.text = #my-tuplet-number::calc-denominator-text
  \tuplet 7/4 { g4 e f g a f g }
  \tupletD
  \tuplet 6/4 { g8[ e f f g a] } }

Ausgabe

[edit]