Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Castor am Mittwoch, 12. Februar 2014, 20:19

Titel: tweak-Befehl abkürzen
Beitrag von: Castor am Mittwoch, 12. Februar 2014, 20:19
Hallo liebe Lily-Leute,

leider muss ich schonwieder mit ner Befehlsabkürzung nerven, da ich keine Ahnugn davon hab wie man das macht; das was in der Notationsreferenz steht nicht verstehe und mir das aus den funktionierenden Funktionen nicht ableiten kann. Dieser code (Bild im Anhang "test.png"):

\version "2.18.0"

\relative c' {
 
  \override Fingering #'staff-padding = #'()
 
  c4-3 d-0 e-2 f-3 }

soll bezüglich Fingersatz folgendermaßen geändert werden:

\version "2.18.0"

\relative c' {
 
  \override Fingering #'staff-padding = #'()
 
  c4-\tweak #'X-offset #-.2 -3 d-\tweak #'X-offset #-.2 -0
  e-\tweak #'X-offset #-.2 -2 f-\tweak #'X-offset #-.2 -3 }

Um (in größeren Werken) nicht immer -\tweak #'X-offset #-.2 schreiben zu müssen, dachte ich an eine Funktion wie z.b. yl = ... oder so, die einfach nur besagte "tweak"-Zeile ersetzt und ich dann c4\yl d\yl usw. schreiben kann.

Alternative und bessere Lösung sind nicht notwendig, aber ich bin offen für bessere Ideen :)

lg Castor
Titel: Re: tweak-Befehl abkürzen
Beitrag von: harm6 am Donnerstag, 13. Februar 2014, 02:50
Hallo,

drei Vorschläge/Möglichkeiten

1. genereller \override
\version "2.18.0"

\relative c' {
 
  \override Fingering #'staff-padding = #'()
  \override Fingering #'self-alignment-X = #1
 
  c4-3 d-0 e-2 f-3
}

2. Funktion mit Variable
und
3. Funktion mit statischem Wert
(Ich habe hier 'X-offset genommen, 'self-alignment-X wird wohl auch gehen, aber nicht getestet)

\version "2.18.0"

yl¹ =
#(define-event-function (parser location x-off evt)(number? ly:event?)
#{
  \tweak #'X-offset #x-off
  $evt
#})

yl² =
#(define-event-function (parser location evt)(ly:event?)
#{
  \tweak #'X-offset #-0.2
  $evt
#})

\relative c' {
 
  \override Fingering #'staff-padding = #'()
 
  c4\yl¹ #-0.2 -3
  d\yl² -0
  e-\tweak #'X-offset #-.2 -2
  f-\tweak #'X-offset #-.2 -3
}

HTH,
  Harm
Titel: Re: tweak-Befehl abkürzen
Beitrag von: trulli am Donnerstag, 13. Februar 2014, 20:08
Hi Castor,

warum schreibst du nicht (wie üblich) den Fingersatz der linken Hand links neben die Note? Da kommt man gewöhnlich ohne /tweak aus. Besonders dann, wenn die Noten etwas auseinander gerückt sind (das macht im folgenden Code der SpacingSpanner-Befehl).

\version "2.18.0"

\score {

\relative c' {
 
  \set fingeringOrientations = #'(left)

  <c-3>4 <d-0> <e-2> <f-3> }


\layout {
    \context {
      \Score
      \override SpacingSpanner
                #'base-shortest-duration = #(ly:make-moment 1 16)
                   }
             }
        }

Grüße
Titel: Re: tweak-Befehl abkürzen
Beitrag von: Castor am Freitag, 14. Februar 2014, 11:39
@ harm:

Suuuper vielen Dank, ich bin begeistert :D

@ trulli:

ja mach ich für gewöhnlich auch, nur in dem Stück, was ich gerade mit verbessertem Fingersatz abschreibe, sieht es an vielen Stellen einfach besser aus. Außerdem gibt es viele Glissandos und ich müsste dort genauso die Zahlen aus dem Weg tweaken. Aber ja, du hast recht, normalerweise landet bei mir alles an Fingersatz immer links. :)