Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: harm6 am Dienstag, 5. April 2011, 00:49
-
Hallo,
ich versuche den tweak-Befehl aus
\version "2.12.3"
#(define pi 3.141592654)
\relative c'' {
\set fingeringOrientations = #'(left)
\displayMusic
<c-5
-\tweak #'text #(markup #:line (" "
#:raise -1.8
#:pad-x 0.5
#:draw-line (cons 1.5 (* 1.5 (tan (* (* 2 pi) (/ 24 360)))))))
-5>
}
in einen scheme-Ausdruck zu übersetzen.
(Der car-Wert in draw-line ist die übliche horizontale Ausdehnung hier: 1.5
Als cdr-Wert möchte ich den Winkel zw. X-Achse und Hypotenuse haben hier: 24°. Deshalb die aufwendige Umrechnung erst ins Bogenmaß und dann die Bestimmung des y-Wert mittels der umgeformten tangens-Gleichung.)
Mit Anleitung durch http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Using-Scheme-code-instead-of-_005ctweak#Using-Scheme-code-instead-of-_005ctweak (http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Using-Scheme-code-instead-of-_005ctweak#Using-Scheme-code-instead-of-_005ctweak) habe ich
\version "2.12.3"
#(define pi 3.141592654)
E = #(let ((m (make-music 'FingeringEvent
'digit 5 )))
(set! (ly:music-property m 'tweaks)
(acons list (list 'text
line-markup
(list (markup #:line
(#:simple " "
#:raise -1.8
(#:pad-x 0.5
(#:draw-line (cons 1.5 (* 1.5 (tan (* (* 2 pi) (/ 24 360)))))))))))
(ly:music-property m 'tweaks)))
m)
\relative c'' {
\set fingeringOrientations = #'(left)
\displayMusic
<c-5-\E>
}
erstellt, was fast richtig ist wie \displayMusic zeigt, aber noch ohne die gewünschte Linie.
Nun komme ich nicht weiter.
Weiß jemand Rat?
Gruß,
Harm
-
Nach einem längeren Lernprozeß habe ich es hinbekommen.
Richtig ist:
\version "2.12.3"
#(define pi 3.141592654)
E = #(let ((m (make-music 'FingeringEvent
'digit 5 )))
(set! (ly:music-property m 'tweaks)
(list (list 'text
line-markup
(list (markup
#:line
(#:simple
" "
#:raise
-1.8
(#:pad-x
0.5
(#:draw-line (cons 1.5 (* 1.5 (tan (* (* 2 pi) (/ 24 360)))))))))))))
m)
\relative c'' {
\set fingeringOrientations = #'(left)
<c-5-\E>
}