Hi Dominic,
Have you tried using \partcombineApart and \partcombineAutomatic? (See
code below). See also Notation Reference 1.5.2 - Automatic Part Combining
http://lilypond.org/doc/v2.17/Documentation/notation/multiple-voices
There are also \partcombineUP and \partcombineDOWN flavours of
\partcombine (same syntax as \partcombine) which force both the parts to
use the specified stem direction when combined.
The code below is still a work-round to get the a2 to print, but you
might want to use this as a template.
The \partcombine call is pretty horrible but this way you get the
\partcombinemumble directives applied to both parts without having to
add them individually to each the music for each instrument.
At the moment you get dynamics above and below the combined stave, but
you could control this with tags on the flutedyn variable so it only
gets used when you're print out the flute part.
Hope this gives you some ideas to work around the restriction without
too much pain (and typing) in your big score.
HTH, Cheers,
Ian
%-
\version 2.17.25
\language english
pieceSettings = {
\key d \major
\time 6/8
}
aduetext = \markup \bold a2
% TODO - split dynamics and \partcombine commands into separate
% variables flutedyn and flutepartc ?
% Use tags 'score and 'part so fluteTwo will only print dynamics
% when printing the part out and not the score.
% OR use this below
%
% \flutedyn % variable with spacers and dynamics
% {
% \compressFullBarRests
% \partcombine
%
% \flutepartc % variable with spacers and
% % \partcombinexxx
% \fluteOne
%
%
% \flutepartc
% \fluteTwo
%
%
flutedynsetc = {
\partcombineApart
s4\mf\ s8 s4 s8 | % bar 1
s2. | % bar 2
s4\!
\partcombineAutomatic
% unison
s8 s4 s8| % bar 3
s2. | % bar 4
% MMR in flute parts
s2.*2 | % bar 5-6
\partcombineAutomatic
s4\f^\aduetext s8 s4 s8 | % bar 7
\partcombineApart
s2. | % bar 8
s2.*2 | % bar 9 - 10
s4 s8 s4
\partcombineUnisono s8| % bar 11
\partcombineAutomatic
s2.*2 \bar || % bar 12 - 153
}
fluteOne = \relative c' {
\pieceSettings
% apart
d'4 e8 fs g a | % bar 1
a4 b8 cs d cs | % bar 2
% unison
d4 d8 d4 d8 | % bar 3
R2.*3 | % bars 4 - 6
d4 d8 d4 d8 | % bar 7
d8 cs b cs b cs | % bar 8
% apart
r4 r8 a g fs | % bar 9
e8 fs e d cs a| % bar 10
b8 a g fs e d | % bar 11
% unison
cs'8 b8 a g fs e | % bar 12
d4 d8 d4 d8 \bar || % bar 13
}
fluteTwo = \relative c' {
\pieceSettings
% apart
fs4 g8 a b d | % bar 1
r4 r8 e fs a | % bar 2
% unison
d4 d8 d4 d8 | % bar 3
R2.*3 | % bars 4 - 6
d4 d8 d4 d8 | % bar 7
d8 cs b cs b cs | % bar 8
% apart
g8 a g fs e d | % bar 9
cs8 d cs b a fs | % bar 10
g8 fs e d cs d| % bar 11
% unison
cs'8 b8 a g fs e | % bar 12
d4 d8 d4 d8 \bar || % bar 13
}
\score {
\new Staff \with { instrumentName = Flutes
printPartCombineTexts = ##t
soloText = #Fl. 1
soloIIText = #Fl. 2}
{
\compressFullBarRests
\partcombine
\flutedynsetc % TODO
% change to \flutedyn and \flutepartc
\fluteOne
\flutedynsetc % TODO
% change to \flutedyn and
% \flutepartc
\fluteTwo
}
}
On 20/08/13 08:53, Dominic wrote:
Consider the following minimal example:
/\version 2.17.20
fluteOne = \relative c' { \repeat unfold 2 { c'8 d e f g2 | R1*8 } }
fluteTwo = \fluteOne
\score {
\new Staff \with { instrumentName = Flutes }
{ \compressFullBarRests \partcombine \fluteOne \fluteTwo }
}/
If two instruments are playing in unison for a long while, and continue to
do so even following a multi-measure rest, I want a reminder 'a2' to be
printed where they resume (i.e. in the 3rd bar of the example). In a large
orchestral score, it is useful to have reminders even if they are
technically superfluous, especially when the second one is on a different
page. I need a function that effectively says Take whatever the previous
CombineTextScript said, and reprint it at the given location
I have tried explicitly inserting /partcombineUnisono/ or turning
/printPartCombineTexts/ off then immediately on again, in an attempt to jolt
Lilypond into forgetting any prevailing a2 status, but