Frage:
LilyPond - Tupelhalterung in einen kleinen Bogen verwandeln
nath
2019-11-30 06:56:28 UTC
view on stackexchange narkive permalink

Ich habe ein Cellostück von Sebastian Lee, das ziemlich viele Tuplets verwendet.

Mein Snippet mit dem Standard LilyPond Die Einstellung sieht folgendermaßen aus:

enter image description here

Das sieht ziemlich gut aus. Das Problem ist, dass ein Anfänger leicht glauben kann, dass dies die richtige ist Fingersatz, insbesondere in diesem Beispiel, in dem b tatsächlich mit einem dritten Finger auf der G-Saite gespielt wird.

Also habe ich \ override TupletBracket.bracket-sichtbarkeit verwendet = ## t , um den Tupelschlüssel / die Klammer zu drucken, die zu einem sehr hässlichen Druck führt:

enter image description here

Eine Ausgabe, Das ist auf IMSLP verfügbar sieht folgendermaßen aus:

enter image description here

was ich persönlich etwas schöner finde (nicht zu sein) missverstanden, ich spreche nur über den Tupelschlüssel, nicht über den gesamten Druck)

Weiß hier jemand nach einer möglichen Änderung des Schlüssels, damit er eher wie dieser kleine Bogen im dritten aussieht? Beispiel?

Sebastian Lee, Op.70 im LilyPond-Format auf GitH ub

Siehe: http://lilypond.1069038.n5.nabble.com/Tuplets-curved-brackets-td207326.html
Einer antworten:
Jasper Habicht
2019-11-30 09:06:37 UTC
view on stackexchange narkive permalink

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:

enter image description here

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:

enter image description here

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.

Ich werde Ihren Link in [LilyPonds offiziellem IRC auf Freenode] (https://webchat.freenode.net/#lilypond) veröffentlichen, vielleicht sind sie inspiriert ... :-) wie ich bin! (sieht nicht viel schöner aus als die Klammer!)
Das ist nicht nötig, denn ich habe mich auch von dort inspirieren lassen. Möglicherweise ist auch der Basiscode bereits vorhanden.
Gibt es eine Möglichkeit, die Bögen weiter unten im Stück wegzulassen, wie Sie es mit `\ omup TupletNumber` tun?
Für das zweite Beispiel können Sie "\ einmal \ überschreiben TupletBracket.stencil = ## f" verwenden.
Sie sollten dies unbedingt zum [LSR - Snippet Repository] hinzufügen (http://lsr.di.unimi.it/).


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...