Ein erster Ansatz wäre, den Text der Tupelnummer zu ändern und einen kleinen Bogen anzuhängen:
bow-up = \ markup {\ with-dimensions # '(0. 3) # '(0. 0) \ override #' (gefüllt. #T) \ Pfad # .1 # '((Bewegung zu 0 0) (Kurve zu 1 1,2 2 1,2 3 0) (Kurve zu 2 0,9 1 0,9 0 0) (enger Pfad ))} bow-down = \ markup {\ with-dimensions # '(0. 3) #' (0. 0) \ override # '(gefüllt. #t) \ path # .1 #' ((moveto 0 0) ) (curveto 1 -1,2 2 -1,2 3 0) (curveto 2 -0,9 1 -0,9 0 0) (closepath))} # (Befehl zum Definieren des Markups (Befehl zum Aufstellen des Tupelbogens) tuplet-Nummer) (Markup? ) (Interpret-Markup Layout Requisiten (Markup #: mittlere Spalte (#: vspace -.2 Bow-up #: vspace -.6 #: Zeile (Tuplet-Nummer))))) # (define-Markup-Befehl ( Tuplet-Bow-Down-Layout-Requisiten Tuplet-Nummer) (Markup?) (Interpret-Markup-Layout-Requisiten (Markup-Nr.: mittlere Spalte (#: vspace .2 Tuplet-Nummer #: vspace -1 #: Linie (Bow-Down)) )))) tupletBowUp = # (definiere-Schema-Funktion on (Tuplet-Nummer des Parser-Speicherorts) (Zeichenfolge?) # {\ override TupletNumber.text = \ markup \ tuplet-bow-up # Tuplet-Nummer #}) ) (string?) # {\ override TupletNumber.text = \ markup \ tuplet-bow-down # tuplet-number #}) \ score {{\ clef bass \ time 3/4 \ tupletBowUp "3" \ tuplet 3/2 {c8 b, c} \ tupletBowDown "3" \ tuplet 3/2 {e8 ge} \ tuplet 3/2 {e8 ge} c'4} \ layout {}}
With \ tupletBowUp "3"
Sie setzen die Anzahl aller folgenden Tuplets auf eine 3 mit einem kleinen Bogen darüber. Mit \ tupletBowDown "3"
setzen Sie eine 3 mit einem kleinen Bogen darunter. Sie können andere Zahlen eingeben, wie Sie möchten.
Ergebnis:
Aber ich bin sicher, dass dies auch viel ausgefeilter erreicht werden kann. Allerdings kenne ich die Interna von LilyPond nicht so gut. Zum Beispiel wäre es großartig, wenn der kleine Bogen je nach Position automatisch über oder unter die Zahl wechselt.
Bearbeiten: Eine andere Möglichkeit wäre, die zu ändern Tupelklammern wie dieser Vorschlag und ein Kommentar schlagen vor (Entschuldigung, ich habe den Kommentar erst gesehen, nachdem ich meine Antwort bearbeitet habe). Ich habe den Code aus dem verknüpften Vorschlag ein wenig geändert, um ihn zu vereinfachen und die Bögen zu verkleinern:
printTupletBow = {\ override TupletBracket # 'stencil = #ly: slur :: print \ override TupletBracket # 'Dicke = # 1.2 \ TupletBracket überschreiben #' Kontrollpunkte = # (Lambda (grob) (let * ((x-pos (ly: grob-Eigenschaft grob 'X-Positionen))) (pos (ly: grob-Eigenschaft) grob 'Positionen)) (x-ln (Intervalllänge x-pos)) (dir (ly: grob-Eigenschaft grob' Richtung)) (Höhe (- (cdr pos) (Auto pos))) (Höhe-korr () * 0,3 dir Höhe)) (Kantenhöhe (ly: grob-Eigenschaft grob 'Kantenhöhe' (0,7, 0,7)))) (Liste (Nachteile (+ (Auto x-pos)) (* x-ln 1/4 )) (+ (Fahrzeugposition) (* 1 Richtung (Fahrzeugkantenhöhe)))) (Nachteile (+ (Fahrzeug x-Position) (* x-ln 3/8)) (+ (Fahrzeugposition) (* Richtung) (+ 1,5 height-corr)))) (Nachteile (+ (Auto x-pos) (* x-ln 5/8)) (+ (cdr pos) (* dir (- 1,5 Höhe) -corr)))) (Nachteile (+ (Auto x-pos) (* x-ln 3/4)) (+ (cdr pos) (* 1 dir (cdr Kantenhöhe))))))} \ Partitur {{\ Schlüsselbass \ Zeit 3/4 \ Tupel 3/2 {c8 b, c} \ Tupel 3/2 {e8 ge} \ Tupel 3/2 {e8 ge} c'4}} \ layout {\ printTupletBow }
Ergebnis:
Wenn Sie die Bögen vorübergehend weglassen möchten, können Sie verwenden \ einmal \ überschreiben TupletBracket.stencil = ## f
kurz vor dem entsprechenden Tuplet.
Ein Problem bei diesem Ansatz besteht darin, dass der Bogen ziemlich stark geneigt ist, wenn die Noten größere Intervalle umfassen. Aber es könnte eine gute Lösung sein, wenn Ihr Stück hauptsächlich Tuplets mit Balken enthält.