Autor Thema: Fingersatz bei Akkorden, der eine Sekund enthält (gelöst, geht viel einfacher ;)  (Gelesen 2594 mal)

Manuela

  • Hero Member
  • *****
  • Beiträge: 571
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 >
}
« Letzte Änderung: Sonntag, 8. Januar 2017, 11:45 von Manuela »

harm6

  • Hero Member
  • *****
  • Beiträge: 1.705
Re: Fingersatz bei Akkorden, der eine Sekund enthält
« Antwort #1 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

Manuela

  • Hero Member
  • *****
  • Beiträge: 571
Re: Fingersatz bei Akkorden, der eine Sekund enthält
« Antwort #2 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 >
}

harm6

  • Hero Member
  • *****
  • Beiträge: 1.705
Re: Fingersatz bei Akkorden, der eine Sekund enthält
« Antwort #3 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

Manuela

  • Hero Member
  • *****
  • Beiträge: 571
Re: Fingersatz bei Akkorden, der eine Sekund enthält
« Antwort #4 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.

Manuela

  • Hero Member
  • *****
  • Beiträge: 571
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
}

harm6

  • Hero Member
  • *****
  • Beiträge: 1.705
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

Manuela

  • Hero Member
  • *****
  • Beiträge: 571
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?