Re: How to force a superfluous CombineTextScript to be printed?

2013-08-21 Thread Dominic
Thanks Ian, I'll try that.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/How-to-force-a-superfluous-CombineTextScript-to-be-printed-tp149514p149574.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


How to force a superfluous CombineTextScript to be printed?

2013-08-20 Thread Dominic
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 with no luck. A
'messy' last-resort would be for me to go through the entire score (hundreds
of pages) and insert manual pieces of a2 text markup tagged so that they
only showed up in the score, not the parts. Surely there is a more automatic
way than this?

Thanks, everyone!

Dominic



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/How-to-force-a-superfluous-CombineTextScript-to-be-printed-tp149514.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: How to force a superfluous CombineTextScript to be printed?

2013-08-20 Thread Ian Hulin
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