Hi,
in diesem Thread erhielt ich eine Lösung, wie ich Vorschlagsbögen horizontal (https://lilypondforum.de/index.php/topic,109.0.html) gestalten kann.
Jetzt möchte ich das ganze gerne in einer Musikfunktion verpacken, schaffe es jedoch nicht.
So soll das Ergebnis ausschauen
\version "2.19.62"
myGrace = #(define-music-function (mus)(ly:pitch?)
#{
\slashedGrace $mus \laissezVibrer
#}
)
{ s8 \myGrace f'' c'''4 }
allerdings stört das s8 vorher bzw. weiß ich nicht, wie ich die Dauer der Vorschlagnote einstellen kann.
Diese Version
\version "2.19.62"
myGrace = #(define-music-function (mus)(ly:music?)
#{
\slashedGrace $mus _ \laissezVibrer
#}
)
{ \myGrace f''8 c''' }
ergibt diese Fehlermeldung
Starte lilypond-windows.exe 2.19.62 [myGrace2.ly]...
Processing `myGrace2.ly'
Parsing...
myGrace2.ly:5:35: error: syntax error, unexpected '_'
\slashedGrace $mus
_ \laissezVibrer
myGrace2.ly:9:3: error: error in #{ ... #}
{
\myGrace f''8 c''' }
myGrace2.ly:9:3: error: music function cannot return ##<unspecified>
{
\myGrace f''8 c''' }
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `./tmp-lilypond-XAYJ19'...
Converting to `myGrace2.pdf'...
Deleting `./tmp-lilypond-XAYJ19'...
fatal error: failed files: "/myGrace2.ly"
Wurde mit dem Return-Code 1 beendet.
Dieser Code
\version "2.19.62"
myGrace = #(define-music-function (mus dauer)(ly:pitch? number?)
#{
\slashedGrace $mus $dauer \laissezVibrer
#}
)
{ \myGrace f'' #8 c'''4 }
ergibt die Fehlermeldung
Starte lilypond-windows.exe 2.19.62 [myGrace4.ly]...
Processing `myGrace4.ly'
Parsing...
G:/Lilypond/_Klavierheft/forlum/myGrace4.ly:5:35: error: syntax error, unexpected NUMBER_IDENTIFIER
\slashedGrace $mus
$dauer \laissezVibrer
myGrace4.ly:9:3: error: error in #{ ... #}
{
\myGrace f'' #8 c'''4 }
myGrace4.ly:9:3: error: music function cannot return ##<unspecified>
{
\myGrace f'' #8 c'''4 }
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `./tmp-lilypond-eIUUCV'...
Converting to `myGrace4.pdf'...
Deleting `./tmp-lilypond-eIUUCV'...
fatal error: failed files: "myGrace4.ly"
Wurde mit dem Return-Code 1 beendet.
Du brauchst für Dauern nicht number?, sondern ly:duration?. Es geht ja bei Dauern um viel mehr, z. B. ist \breve..*2/3 (eine doppelpunktierte Doppelganze um Faktor 2/3 skaliert) auch eine gültige Dauer, aber sicher keine number? ;)\version "2.19.62"
myGrace =
#(define-music-function (ton dauer) (ly:pitch? ly:duration?)
#{
\slashedGrace $ton $dauer \laissezVibrer
#})
{ \myGrace f''8 c'''4 }
Das hat aber den Nachteil, daß du immer eine Dauer angeben mußt. Besser ist vermutlich harms Variante, per def-grace-function eine eigene, nunja, grace-function zu bauen:\version "2.19.62"
startMyGrace = {
\startSlashedGraceMusic
<>-#(make-music 'LaissezVibrerEvent)
}
stopMyGrace = {
\stopSlashedGraceMusic
}
myGrace =
#(def-grace-function startMyGrace stopMyGrace
(_i "Create an acciaccatura with horizontal slur from the following music expression"))
{ \myGrace f''8 c''' }
Danke Malte.
Zitat von: Malte am Sonntag, 6. August 2017, 10:24
Das hat aber den Nachteil, daß du immer eine Dauer angeben mußt. Besser ist vermutlich harms Variante, per def-grace-function eine eigene, nunja, grace-function zu bauen:\version "2.19.62"
startMyGrace = {
\startSlashedGraceMusic
<>-#(make-music 'LaissezVibrerEvent)
}
stopMyGrace = {
\stopSlashedGraceMusic
}
myGrace =
#(def-grace-function startMyGrace stopMyGrace
(_i "Create an acciaccatura with horizontal slur from the following music expression"))
{ \myGrace f''8 c''' }
Diese Lösung muss ich jetzt irgendwie überlesen haben, so ist es natürlich perfekt :)
Update: kann ich
stopMyGrace nicht sparen und durch die eingebaute Funktion
stopSlashedGraceMusic ersetzen?
Zitat von: Manuela am Sonntag, 6. August 2017, 10:40
Diese Lösung muss ich jetzt irgendwie überlesen haben, so ist es natürlich perfekt :)
Naja, in der Form stand sie noch nicht da (per LaissezVibrerEvent den in die grace-function mit einzubauen), nur hab ich halt im anderen Thread (https://lilypondforum.de/index.php/topic,109.msg698.html#msg698) gesehn, daß harm da was mit def-grace-function gemacht hat und hab das fortgeführt ;)
Zitat von: Malte am Sonntag, 6. August 2017, 10:44
Naja, in der Form stand sie noch nicht da (per LaissezVibrerEvent den in die grace-function mit einzubauen),
Dann hab' ich's doch nicht überlesen. :)