Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet 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
-
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
-
Super hat geklappt. Danke.
Gruß fairsein
-
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
-
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
-
Hallo 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
-
Danke harm6,
das ist die Lösung die ich gesucht habe.
-
Ich habe noch mal eine Frage zu den Fingersatznummern. Wie kann man diese in die Schriftgröße verändern?
Gruß fairsein
-
wie bei allen grobs:
\override Fingering #'font-size = #-8viel erfolg 8)
Eluze
-
Danke