Hallo,
ich habe mal folgenden code untersucht:
(png im Anhang)
\version "2.16.2"
\paper { indent = 20 }
\layout {
\context {
\Staff
\override VerticalAxisGroup #'default-staff-staff-spacing =
#'((padding . 6))
}
}
Ia = \relative c'' {
c2\( a |
gis1\) |
a\!~( |
a2 c) |
b2( c) |
c1( |
b)\! |
}
Ib = \relative c'' {
c2\p\<\( a |
gis1\>\) |
a\!~( |
a2 c) |
b2\<( c) |
c1\>( |
b)\! |
}
II = \relative c'' {
c2\p\<\( a |
gis1\>\) |
a\!~( |
a2 c) |
b2\<( c) |
d,1\>( |
g)\!
}
<<
\new Staff \with { instrumentName = "Ia" } \Ia
\new Staff \with { instrumentName = "Ib" } \Ib
\new Staff \with { instrumentName = "II" } \II
\new Staff \with { instrumentName = "combine Ia II" }
%\displayMusic
{
\partcombine \Ia \II
}
\new Staff \with { instrumentName = "combine Ib II" }
%\displayMusic
{
\partcombine \Ib \II
}
>>Ia ist die erste Stimme wie Holger sie mitgeteilt hat mit zwei Ausnahmen:
stemUp habe ich rausgenommen, scheint ohne Bedeutung zu sein.
Das letzte decrescendo habe ich ordnungsgemäß beendet mittels \! (sic! Das
hat eine Bedeutung s.u.)
Ib ist dieselbe Stimme mit Dynamic.
II ist die zweite Stimme mit ordentlich beendeter Dynamic.
\partcombine \Ia \II liefert einen output wie Holger ihn gepostet hatte.
\partcombine \Ib \II liefert jedoch das gewünschte Bild!!
Wenn man \displayMusic einschaltet so erhält man im ersten Fall:
(make-music
'SequentialMusic
'elements
(list (make-music
'PartCombineMusic
'split-list
(list (cons (ly:make-moment 0 1 0 1) (quote apart))
(cons (ly:make-moment 1 2 0 1) (quote apart))
(cons (ly:make-moment 1 1 0 1) (quote apart))
(cons (ly:make-moment 2 1 0 1) (quote apart))
(cons (ly:make-moment 3 1 0 1) (quote apart))
(cons (ly:make-moment 7 2 0 1) (quote apart))
(cons (ly:make-moment 4 1 0 1) (quote apart))
(cons (ly:make-moment 9 2 0 1) (quote apart))
(cons (ly:make-moment 5 1 0 1) (quote apart))
(cons (ly:make-moment 6 1 0 1) (quote apart)))
'direction
#f
'elements
(list
...
D.h. also, LilyPond hat in den apart-modus gewechselt.
Im zweiten Fall erhält man:
(make-music
'SequentialMusic
'elements
(list (make-music
'PartCombineMusic
'split-list
(list (cons (ly:make-moment 0 1 0 1) (quote unisono))
(cons (ly:make-moment 1 2 0 1) (quote unisono))
(cons (ly:make-moment 1 1 0 1) (quote unisono))
(cons (ly:make-moment 2 1 0 1) (quote unisono))
(cons (ly:make-moment 3 1 0 1) (quote unisono))
(cons (ly:make-moment 7 2 0 1) (quote unisono))
(cons (ly:make-moment 4 1 0 1) (quote unisono))
(cons (ly:make-moment 9 2 0 1) (quote unisono))
(cons (ly:make-moment 5 1 0 1) (quote chords))
(cons (ly:make-moment 6 1 0 1) (quote chords)))
'direction
#f
'elements
(list
...
Wie gewünscht. Allenfalls kann man sich darüber streiten, ob LilyPond für die letzten zwei Takte wirklich in den chord-modus wechseln sollte, denn dann wird der legato-Bogen nur einmal gesetzt.
Wenn ich allerdings in Ib oder II das letzte decresc. nicht beende erhalte ich wieder befremdliche Resultate.
Das hilft jetzt noch nicht allzuviel, mag aber vielleicht ein paar dunkle Ecken zumindest beleuchten.
@ Holger
Auch wenn es Dich kollossal nervt.
Ich denke hier haben wir ein gutes Beispiel warum es sich lohnt immer kompilierbare Code-Beispiele zu posten und diesen vorher auch zu testen.
Ein Knackpunkt ist eben die nicht beendete Dynamik.
Und noch ein weiterer Gedanke.
Deinen Code aus dem anderen Thread habe ich zwar runtergeladen aber, nach einem kurzen Blick, nicht bearbeitet.
Bei meiner Bildschirmgröße und Auflösung werden die Zeilen umgebrochen (oder ich muß die Schrift so klein stellen, daß ich sie nicht mehr lesen kann), sodaß eine Struktur des files nur noch schwer erkennbar ist.
Es hat sich als brauchbare Konvention erwiesen nur (maximal) einen Takt pro Zeile zu schreiben und diese Zeile sollte nicht länger als 80 Anschläge sein.
Ansonsten machst Du den potentiellen Helfern das Leben schwerer.
Gruß,
Harm