lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Ian Hulin
Subject: Re: How to force a superfluous CombineTextScript to be printed?
Date: Wed, 21 Aug 2013 01:19:14 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130803 Thunderbird/17.0.8

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
\partcombine<mumble> 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
%                           % \partcombine<xxx>
%              \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 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.
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]