Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Freitag, 23. Dezember 2016, 18:21

Titel: Fingersatz bei Akkorden, der eine Sekund enthält (gelöst, geht viel einfacher ;)
Beitrag von: Manuela am Freitag, 23. Dezember 2016, 18:21
Wie kriege ich Lilypond dazu, die Fingersätze übereinander zu schreiben und nicht nebeneinander?

Im Beispiel stehen die Ziffern nebeneinander:

\version "2.19.52"

\relative c'' {
   \set fingeringOrientations = #'(up)
  < g-1 f-2 >
}
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält
Beitrag von: harm6 am Freitag, 23. Dezember 2016, 20:28
Möglicherweise geht es auch besser, aber der Code unten setzt das Eltern-grob zu NoteColumn, et voilà.

\version "2.19.52"

\relative c'' {
   \set fingeringOrientations = #'(up)
   
   \once \override Fingering.before-line-breaking =
   #(lambda (grob)
     (ly:grob-set-parent! grob X (ly:grob-parent (ly:grob-parent grob X) X)))
  < g-1 f-2 >
}

HTH,
  Harm
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält
Beitrag von: Manuela am Freitag, 23. Dezember 2016, 23:37
Danke, Harm, das klappt hervorragend. Ich habe mir gleich eine Funktion gebastelt, weil ich das mehrmals brauche:

\version "2.19.52"

fingershift =
#(define-music-function () ()
   #{
     \once \override Fingering.before-line-breaking =
     #(lambda (grob)
        (ly:grob-set-parent! grob X (ly:grob-parent (ly:grob-parent grob X) X)))
   #}
   )

\relative c''
{
  \set fingeringOrientations = #'(up)
  \fingershift < g-1 f-2 >
}
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält
Beitrag von: harm6 am Samstag, 24. Dezember 2016, 00:51
Warum eine Funktion?

fingershift =
     \once \override Fingering.before-line-breaking =
     #(lambda (grob)
        (ly:grob-set-parent! grob X (ly:grob-parent (ly:grob-parent grob X) X)))

Ist völlig hinreichend.

Gruß,
  Harm
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält
Beitrag von: Manuela am Samstag, 24. Dezember 2016, 09:28
Warum eine Funktion?
Ist völlig hinreichend.

Warum einfach, wenn es umständlich auch geht?  ;)

Danke für den Hinweis, werde ich in meinen Code einbauen.
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält (gelöst, geht viel einfacher ;)
Beitrag von: Manuela am Sonntag, 8. Januar 2017, 11:46
Manchmal bin ich wirklich vernagelt.

Die einfachste Lösung: den Fingersatz einfach außerhalb des Akkords schreiben.

\version "2.19.52"

\relative c'' {
  < d e >-2-3
}
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält (gelöst, geht viel einfacher ;)
Beitrag von: harm6 am Sonntag, 8. Januar 2017, 12:51
Die Fingersätze stehen allerdings an anderer Position und sprechen nicht mehr auf fingeringOrientations an (stattdessen müßte man einen override für Fingering.direction verwenden).

Siehe:
\relative c' {
   \set fingeringOrientations = #'(up)
   
   \once \override Fingering.before-line-breaking =
   #(lambda (grob)
     (ly:grob-set-parent! grob X (ly:grob-parent (ly:grob-parent grob X) X)))
  < d-2 e-3 >
 
  < d e >-2-3
}

\relative c' {
   \set fingeringOrientations = #'(down)
   
   \once \override Fingering.before-line-breaking =
   #(lambda (grob)
     (ly:grob-set-parent! grob X (ly:grob-parent (ly:grob-parent grob X) X)))
  < d-2 e-3 >
 
  %\once \override Fingering.direction = #-1
  < d e >-2-3
}

Gruß,
  Harm
Titel: Re: Fingersatz bei Akkorden, der eine Sekund enthält (gelöst, geht viel einfacher ;)
Beitrag von: Manuela am Montag, 9. Januar 2017, 09:32
Die Fingersätze stehen allerdings an anderer Position und sprechen nicht mehr auf fingeringOrientations an (stattdessen müßte man einen override für Fingering.direction verwenden).

Danke für den Hinweis Harm. Die Fingersätze außerhalb der Akkordklammer werden behandelt wie Fingersätze von Einzelnoten, sehe ich das richtig?