lilypond-user
[Top][All Lists]
Advanced

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

Hara_kiri_engraver shouldn't handle both staves of a PianoStaff as separ


From: Valentin Villenave
Subject: Hara_kiri_engraver shouldn't handle both staves of a PianoStaff as separate single staves
Date: Sun, 26 Aug 2007 17:06:32 +0200

Hello everybody,

I'm sending it to -user, to discuss it before making a bug report.

As I said in the title, there's an annoying thing when typesetting an
orchestral score with some Piano or Harp parts in it: when your harp
(or piano) only plays a few notes with one single hand, the
RemoveEmptyStaffContext makes the other staff (for the other hand)
disappear. You're left with a single staff, and it's hard to remember
this single staff is actually a Piano or Harp part (both are usually
written on *two* staves at least).

The existing solutions are:
-remove the Hara_kiri_engraver from the staves of the PianoStaff
context. This way (which I've been using until now), the two staves
are *always* displayed, no matter whether they've notes or not.
-whenever only one hand is playing, systematically add invisible notes
to the other hand so the staff doesn't disappear. As Neil mentioned,
it is ugly.
-use the trick described in
http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312 , i.e. add the
multi-measure-rest-interface to the list of keepAliveInterfaces
whenever needed, then unset it. It is the most elegant solution, but
then again, it has to be done *manually* whenever you need it.

But this is, IMO, a bug: neither a Piano nor a Harp part should ever
be reduced to a single staff!

Here is the minimal example for a bug report. In this example, the
piano staves should only be hidden in the third system.

%%%%

% (based on Neil's snippet)

one = {
  \repeat unfold 4 { a4 b c' d'} \break
  \repeat unfold 4 { a4 b c' d'} \break
  \repeat unfold 4 { a4 b c' d'} \break
  a1
}
two = { \clef bass
  \repeat unfold 4 { a4 b c' d'} \break
  \repeat unfold 4 { a4 b c' d'} \break
  R1*4 \break
  a1
}
three = { \clef bass
  \repeat unfold 4 { a4 b c' d'} \break
  R1*4 \break
  R1*4 \break
  a1
}
\score {<<
    \context Staff = one \one
    \new PianoStaff <<
      \context Staff = two \two
      \context Staff = three \three >>
    >>
    \layout {
        \context { \RemoveEmptyStaffContext }
    }
}

%%%%


Regards,
Valentin




reply via email to

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