Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: fairsein am Sonntag, 23. September 2012, 12:12

Titel: Fragen zu Fingersatznummer
Beitrag von: fairsein am Sonntag, 23. September 2012, 12:12
Hallo ihr Lieben,

Ich habe mal wieder ein Problem. Ich gebe folgende Code ein:
\relative c''
{\key d \major
\time 6/8 
a8-5([   g)]  fis  e4.
d4-1  d8  a'4-3  a8
d4-5  d8  cis4.
b4  d8  a4.
g4-4  a8  fis4  d8
}
Dabei werden die Fingersatzangaben immer in Abhängigkeit der Note und nicht in einer Reihe, so wie ich ich gerne hätte angezeigt. Wie kann ich so etwas erzeugen?

Gruß fairsein 
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: harm6 am Sonntag, 23. September 2012, 12:51
Hallo,

ich persönlich finde, daß die Fingersätze nahe an den jeweiligen Noten platziert werden sollten und sehe deshalb überhaupt kein Problem mit dem Erscheinumgsbild so wie es ist.

Falls Du die Fingersätze aber wirklich "in einer Reihe" haben möchtest so probier mal:

\layout {
        \context {
        \Voice
        \override Fingering #'staff-padding = #3
        }
}

Den Wert #3 mußt Du eventuell noch anpassen.


Gruß,
  Harm
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: fairsein am Sonntag, 23. September 2012, 13:16
Super hat geklappt. Danke.

Gruß fairsein
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: fairsein am Dienstag, 20. November 2012, 15:36
So. Ich habe das Problem so super schon öfter angewendet.

Wie bekommt man aber nun die ^\markup { \finger "3 - 1" }- Ausdrücke auf die gleiche Höhe?

Gruß fairsein
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: Be-3 am Dienstag, 20. November 2012, 17:56
Wie bekommt man aber nun die ^\markup { \finger "3 - 1" }- Ausdrücke auf die gleiche Höhe?

Bei \markup { \finger "3 - 1" } handelt es nicht um einen regulären Fingersatz, sondern ein ganz "normales" Text-Markup. Du mußt dessen padding-Wert genauso einstellen wie das Fingersatz-Padding, dann kommt es auf die gleiche Höhe.
Harms Beispiel um das hier zuständige Layout-Objekt "TextScript" erweitert sähe dann folgendermaßen aus:

\layout {
        \context {
        \Voice
        \override Fingering #'staff-padding = #3
        \override TextScript #'staff-padding = #3
        }
}

... und schon stehen Fingersätze und \markup auf gleicher Höhe.

Viele Grüße
Torsten
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: harm6 am Mittwoch, 21. November 2012, 13:41
Hallo fairsein,

Zitat von: fairsein
Wie bekommt man aber nun die ^\markup { \finger "3 - 1" }- Ausdrücke auf die gleiche Höhe?

Der Ausdruck "3-1" bedeutet doch einen "stummen" Wechsel vom dritten auf den ersten Finger!?
Wenn es gelingt, diesen Ausdruck als Fingersatz und nicht als TextScript zu kodieren, so kann man die sich auf Fingersätze beziehenden Befehle anwenden ohne zwischen `Fingering´ und `TextScript´ differenzieren zu müssen.

Mit 2.14.2 kann man folgenden Code benutzen:

\version "2.14.2"

switchFinger =
#(define-music-function (parser location arg)(markup?)
(let ((finger-a (car (string-split arg #\- )))
      (finger-b (cadr (string-split arg #\- )))
      (dash (markup  #:normal-text #:fontsize 3 "-"))
      (finger (make-music 'FingeringEvent)))
   (set! (ly:music-property finger 'tweaks)
         (acons 'text (markup #:concat (finger-a dash #:hspace 0.1 finger-b))
                (ly:music-property finger 'tweaks)))
   finger))

\relative c'' {
        c-1
        d-\switchFinger "1-3"
%        \set fingeringOrientations = #'(right)
        <e-\switchFinger "1-2" g-\switchFinger "2-3" b-\switchFinger "3-4">
        f-4

}

In 2.16.0 funktioniert das zwar auch, aber mit der neuen stable kann man sehr viel einfacher Kodieren und es besteht danach auch keine Notwendigkeit mehr für das "-" vor \switchFinger.

\version "2.16.0"
 
switchFinger =
#(define-event-function (parser location arg)(markup?)
(let ((finger-a (car (string-split arg #\- )))
      (finger-b (cadr (string-split arg #\- )))
      (dash #{ \markup { \normal-text \fontsize #3 "-" } #}))
#{
        \tweak #'text \markup
                  \concat {
                    #finger-a
                    #dash
                    \hspace #0.1
                    #finger-b
                  }
                  -0
#}))
 

\relative c'' {
        c-1
        d\switchFinger "1-3"
%        \set fingeringOrientations = #'(right)
        <e\switchFinger "1-2" g\switchFinger "2-3" b\switchFinger "3-4">
        f-4

}

Anmerkung: In beide Definitionen habe ich `hspace´ eingefügt, da mir der output damit mehr zusagte. Falls es jemanden stört, kann man es einfach rauslöschen.


HTH,
  Harm
Titel: Re: Fingersatznummer stehen nicht in einer Reihe
Beitrag von: fairsein am Mittwoch, 21. November 2012, 13:51
Danke harm6,

das ist die Lösung die ich gesucht habe.
Titel: Re: Fragen zu Fingersatznummer
Beitrag von: fairsein am Dienstag, 1. Januar 2013, 17:37
Ich habe noch mal eine Frage zu den Fingersatznummern. Wie kann man diese in die Schriftgröße verändern?

Gruß fairsein
Titel: Re: Fragen zu Fingersatznummer
Beitrag von: eluze am Dienstag, 1. Januar 2013, 18:41
wie bei allen grobs:
\override Fingering #'font-size = #-8viel erfolg 8)
Eluze
Titel: Re: Fragen zu Fingersatznummer
Beitrag von: fairsein am Dienstag, 1. Januar 2013, 20:27
Danke