Zwei Möglichkeiten:
1. Du \tagst die überzähligen TextScripts und filterst sie beim \partcombine raus. Vorteil: Sehr flexibel. Nachteil: Tipparbeit.
2. Du filterst sämtliche (!) TextScripts aus einer der beiden Stimmen raus. Vorteil: wenig Tipparbeit. Nachteil: Das betrifft auch die TextScripts, die nur in einer der beiden Stimmen auftreten.
Es hängt also von deinem Stück ab, welche Lösung du nutzen solltest. Hier ein Stück, für das Lösung 2 ungeeignet ist. In Takt 2 sieht man aber den Effekt von Lösung 1. Im Anhang siehst du das Ergebnis: Zeile 1 Stimme 1, Zeile 2 Stimme 2, Zeile 3 normales \partcombine, Zeile 4 Lösung 1, Zeile 5 Lösung 2.
\version "2.18.2"
StimmeEins = {
\textLengthOn
e'1\f
e'1^\markup{ "Text in Stimme 1" }
e'1^\markup{ "anderer Text in Stimme 1" }
e'1
}
StimmeZwei = {
\textLengthOn
c'1\f
c'1-\tag #'redundant ^\markup{ "Text in Stimme 2" }
c'1
c'1^\markup{ "anderer Text in Stimme 2" }
}
\score {
\StimmeEins
}
\score {
\StimmeZwei
}
% Standard-Verhalten
\score {
\partcombine
\StimmeEins
\StimmeZwei
}
% \tag und \removeWithTag
% Vorteile: Kann auf beide Stimmen wirken, Entscheidung individuell
% für einzelne TextScripts
% Nachteil: Falls alle TextScripts raus sollen, viel \tag-Tipparbeit
\score {
\removeWithTag #'redundant
\partcombine
\StimmeEins
\StimmeZwei
}
removeTextScripts =
#(define-music-function (parser location music) (ly:music?)
(music-filter
(lambda (m)
(not (eq?
'TextScriptEvent
(ly:music-property m 'name))))
music))
% Rausfiltern aller TextScripts
% Vorteil: weniger Tipparbeit
% Nachteil: filtert wirklich alle TextScripts raus, auch die, die nur
% in Stimme 2 vorkommen und nicht in Stimme 1
\score {
\partcombine
\StimmeEins
\removeTextScripts \StimmeZwei
}