Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: iugin am Freitag, 8. Mai 2015, 20:37
-
So, ich wieder :)
Wenn ich Mehrstimmigkeit in einem System habe, und die 2. Stimme unsichtbare Pausen hat, finde ich nicht schön, wenn in der erste Stimme Hälse und Bögen nach oben gerichtet sind.
So habe ich eine Funktion geschrieben, welche vorübergehend auf \oneVoice umschaltet (das ständigen Tippen von \oneVoice ... \voiceOne war ein bisschen mühsam).
Sie sieht so aus:
\version "2.18.2"
\language "deutsch"
tmpOneVoice = #(define-music-function (parser location d m)(integer? ly:music?)
;; Das erste Argument ist die urspüngliche Stimme
;; wenn ich von \voiceTwo komme, ist dann das Befehl
;; \tmpOneVoice #2 { ... }
#{
\oneVoice
$m
#(cond ((= d 1) #{ \voiceOne #})
((= d 1) #{ \voiceOne #})
((= d 2) #{ \voiceTwo #})
((= d 3) #{ \voiceThree #})
((= d 4) #{ \voiceFour #})
)
#}
)
\score {
\new Staff <<
\relative g'' {
g4 g4 \tmpOneVoice #1 { g4 g4 }
g4 g4 g4 g4
}
\\
\relative g' {
g4 g4 s2
g4 g4 g4 g4
}
>>
}Meine Frage: geht das Automatisch? Lilypond merkt, dass z.B. in einem Takt nur unsichtbare Pausen sind und schaltet auf \oneVoice?
Danke und einen Gruss an alle!
Eugenio
Ps: sorry, mein Deutsch ist heute Abend ziemlich akrobatisch... :)
-
Hallo Eugenio,
es mag mit einem engraver gehen.
Aber ehrlich gesagt, da hab ich im Moment zu wenig Zeit für.
Tut mir leid,
Harm
-
Lieber Harm
no problem :)
Du hast mir schon im anderen Post sehr geholfen.
Einen lieben Gruss
Eugenio