All,

Attached is a 12-measure LP file snippet with four treble-clef parts plus piano reduction. The piano reduction works perfectly until it encounters a temporary polyphonic passage (TPP). There are two in the example, at mm.3-4 in the upper two voices and mm. 8-9 in the lower two voices. As you can see on compiling it (2.16.2) the first two measures are set in the piano reduction as expected, stems and rests in the right places and directions; LP reports no errors.

Starting in m.5 however, LP reports collisions for rests/notes in the upper voices and, as you can see, the stems no longer, as they were in the first two measures, go the 'right' way, up for the upper part and down for the lower part. The two lower voices continue to be set correctly until they, too, have a TPP in mm.8-9, after which they also are no longer set correctly and LP again reports collisions.

If I remove the TPP, the piano reduction is fine. I've tried using \stemNeutral in various places and other things, but nothing changes in the piano reduction.

The attached LP file has variables for both TPP and NoTPP, NoTPP has the divisi removed. There is a \score section for TPP and NoTPP. Simply shift the comments %{ %} to compile one score or the other.

Any help is appreciated.

Regards.

--
"There is only love, and then oblivion. Love is all we have
to set against hatred." (paraphrased) Ian McEwan

Guy Stalnaker I2@DOIT jstal...@wisc.edu
1210 West Dayton Street Room 3209 CSS Madison WI 53706
work 608.263.8035 fax 608.265.6681
\version "2.16.2"
\language "english"

\header {
  title = "Post-Divisi Piano Reduction stem/rest collisions"
}

global = {
  \override Score.BarNumber #'break-visibility = #'#(#t #t #t)
  \key bf \major
  \time 3/4
  \tempo 4 = 110
  \clef "treble"
}

sopranoOneTPP = { 
  \global 
  ef''  d''4 c'' |
  bf'2 r4 \bar "||" \time 4/4 
  << { \voiceOne d''1 _~ | d''1 }
     \new Voice = "sopOneDiv" { \voiceTwo r1 | a''1 \stemNeutral }
  >> \oneVoice \stemNeutral \bar "||" 
  \key g \major \tempo  4 = 95 
  d''2 e''4 g''  |
  fs''2. r4 |
  e''4 d'' c'' b' |
  a' r4 r2 |
  r2 a''4 r4 |
  g''2  d''4 b' |
  c'' b' a' b' |
  
}

sopranoOneNoTPP = { 
  \global 
  ef''  d''4 c'' |
  bf'2 r4 \bar "||" \time 4/4 
  d''1 _~ | d''1 \bar "||"
  \key g \major \tempo  4 = 95 
  d''2 e''4 g''  |
  fs''2. r4 |
  e''4 d'' c'' b' |
  a' r4 r2 |
  r2 a''4 r4 |
  g''2  d''4 b' |
  c'' b' a' b' |
  
}


sopranoTwoTPP = {

  \global
  c''8 r8 bf'8 r8 a'8 r8 |
  f'4 f' r4 | \time 4/4 
  <<
    { \voiceOne \stemDown r2 a'2 _~ | a'1 }
    \new Voice = "sopTwoDiv" { \voiceTwo \stemUp r4 c''2. ^~ | c''1 }
  >> \oneVoice \stemNeutral | 
  \key g \major
  g'4 r8 g'8 g' a' b' ( c'' ) |
  d''2. d''4 |
  c''4 b' a' g' |
  a'8 b' c'' d'' ef''2 ~ |
  ef''2. r4 |
  b' b' b' d'' |
  a' b' c'' d'' |
  
}

sopranoTwoNoTPP = {

  \global
  c''8 r8 bf'8 r8 a'8 r8 |
  f'4 f' r4 | \time 4/4 
  r2 a'2 ~ | a'1 | 
  \key g \major
  g'4 r8 g'8 g' a' b' ( c'' ) |
  d''2. d''4 |
  c''4 b' a' g' |
  a'8 b' c'' d'' ef''2 ~ |
  ef''2. r4 |
  b' b' b' d'' |
  a' b' c'' d'' |
  
}


altoOneTPP = {
  \global
  g'8 r8 f'8 r8 ef'8 r8 |
  d'4 d' r4 | \time 4/4 
  r2 r4 fs'4 ~|
  fs'1 | \key g \major 
  b'4 b' c'' a'  |
  b'2. r4 |
  g' fs' e' e'  |
  fs' r r 
  << { \voiceOne \stemDown s4 | a'2. }
     \new Voice = "altoOneDiv" { \voiceTwo \stemUp c''4 ^~ | c''2 } 
  >> \oneVoice \stemNeutral
  r4 |
  d'2 e'4 e' |
  e' f' fs' g'4 |
  
}

altoOneNoTPP = {
  \global
  g'8 r8 f'8 r8 ef'8 r8 |
  d'4 d' r4 | \time 4/4 
  r2 r4 fs'4 ~|
  fs'1 | \key g \major 
  b'4 b' c'' a'  |
  b'2. r4 |
  g' fs' e' e'  |
  fs' r r r | 
  a'2. r4 |
  d'2 e'4 e' |
  e' f' fs' g'4 |
  
}


altoTwoTPP =  {
  \global
  ef'8 r8 f'8 r8 f8 r8 |
  bf4 bf r | \time 4/4 
  r1 |
  d'1 | \key g \major 
  g'4 g' f' f' |
  e'2. r4 |
  a4 b c' cs'  |
  d' r4 r2 |
  << { \voiceOne \stemDown r2 d'4 }
     \new Voice = "altoTwoDiv" { \voiceTwo \stemUp r4 fs'2 }
  >> \oneVoice \stemNeutral
  r4 |
  g r gs r |
  a r d' g |
  
}

altoTwoNoTPP =  {
  \global
  ef'8 r8 f'8 r8 f8 r8 |
  bf4 bf r | \time 4/4 
  r1 |
  d'1 | \key g \major 
  g'4 g' f' f' |
  e'2. r4 |
  a4 b c' cs'  |
  d' r4 r2 |
  r2 d'4 r4 |
  g r gs r |
  a r d' g |
  
}

sopranoIStaffTPP = {
  \new Staff { \sopranoOneTPP }
}
sopranoIIStaffTPP= {
  \new Staff { \sopranoTwoTPP }
}
altoIStaffTPP = {
  \new Staff { \altoOneTPP }
}
altoIIStaffTPP = {
  \new Staff { \altoTwoTPP }
}

sopranoIStaffNoTPP = {
  \new Staff { \sopranoOneNoTPP }
}
sopranoIIStaffNoTPP = {
  \new Staff { \sopranoTwoNoTPP }
}
altoIStaffNoTPP = {
  \new Staff { \altoOneNoTPP }
}
altoIIStaffNoTPP = {
  \new Staff { \altoTwoNoTPP }
}

pianoReductionTPP = \new PianoStaff \with {
  fontSize = #-1
  \override StaffSymbol #'staff-space = #(magstep -1)
} <<
  \new Staff \with {
    \consists "Mark_engraver"
    \consists "Metronome_mark_engraver"
    \remove "Staff_performer"
  } {
    #(set-accidental-style 'piano)
    <<
      \sopranoOneTPP
      \\
      \sopranoTwoTPP      
    >>
  }
  \new Staff \with {
    \remove "Staff_performer"
  } {
    #(set-accidental-style 'piano)
    <<
      \altoOneTPP \\
      \altoTwoTPP
    >>
  }
>>

pianoReductionNoTPP = \new PianoStaff \with {
  fontSize = #-1
  \override StaffSymbol #'staff-space = #(magstep -1)
} <<
  \new Staff \with {
    \consists "Mark_engraver"
    \consists "Metronome_mark_engraver"
    \remove "Staff_performer"
  } {
    #(set-accidental-style 'piano)
    <<
      \sopranoOneNoTPP
      \\
      \sopranoTwoNoTPP      
    >>
  }
  \new Staff \with {
    \remove "Staff_performer"
  } {
    #(set-accidental-style 'piano)
    <<
      \altoOneNoTPP \\
      \altoTwoNoTPP
    >>
  }
>>

%{
\score {
  <<
    \new ChoirStaff 
    <<
      \sopranoIStaffTPP
      \sopranoIIStaffTPP
      \altoIStaffTPP
      \altoIIStaffTPP
    >>
    \pianoReductionTPP
  >>
  \layout { }
  \midi { }
}
%}
\score {
  <<
    \new ChoirStaff 
    <<
      \sopranoIStaffNoTPP
      \sopranoIIStaffNoTPP
      \altoIStaffNoTPP
      \altoIIStaffNoTPP
    >>
    \pianoReductionNoTPP
  >>
  \layout { }
  \midi { }
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to