Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: rgree am Freitag, 26. Dezember 2014, 12:34
-
Hallo,
ich benutze Lilypond hauptsächlich, um eine einzelne Violinstimme mit Fingersätzen, Artikulation etc. zu versehen.
Dabei war es immer wieder nötig, dass ich gerne vor bestimmten Noten einfach nur leere Abstände haben wollte,
weil das bei schnellem Spiel gelegentlich bei der Lesbarkeit hilft.
Das Ergebnis meiner langwierigen Bemühungen ist folgende Musik-Funktion:
space =
#(define-music-function
(parser location anzahl)
(number?)
#{
\grace {\repeat unfold #anzahl s}
#})
da kann ich an (fast) beliebiger Stelle sagen z.B. "space 3", und dann entsteht in der Ausgabe dort der gewünschte Leerraum.
Da Lilypond je nach Kontext solche Leerräume schon mal komprimiert, muss man ggf. mit der Zahl experimentieren.
Ich hoffe, es ist kein alter Hut und nützlich für andere.
Gutes Neues Jahr,
rgree
-
Hallo rgree,
willkommen im Forum.
Vielen Dank für Deinen Code, ich selbst habe schon mal folgendes benutzt:
space =
#(define-music-function
(parser location amount music)
(number? ly:music?)
#{
\once \textLengthOn
#(set! (ly:music-property music 'articulations)
(append
(list (make-music
'TextScriptEvent
'direction 1
'text (markup #:scale (cons amount 1) " ")))
(ly:music-property music 'articulations)))
$music
#})
\relative c'' {
\space #10
b4--^"xy" e,
}
Beide Möglichkeien haben ihre Vor- und Nachteile ...
Gruß,
Harm