%{
NullVoice is unlike a Voice in this respect: trying to move it to a
different Staff with \change fails with this warning:

    Change_iterator::process (): NullVoice = `soprano': 
    cannot change `Staff' to `S': not changing to same context type: Staff

Apart from the warning, this is inconvenient.  The NullVoice remaining
in the original staff keeps the original staff alive, demanding manual
work to make it disappear.

The NullVoice context definition contains both of the following:

  \alias "Staff"
  \alias "Voice"

My knowledge of contexts is not extensive, but I suggest that the test
that \change applies is too simple.
%}

\version "2.19.54" %% just because it's what I'm using

sopranoNotes = \fixed c' {
  c1 d e f
  \break
  \change Staff = "S"
  g a b c'
}

\new ChoirStaff \with {
  \RemoveEmptyStaves
  \override VerticalAxisGroup.remove-first = ##t
} <<

  \new Staff = "S" \with {
    instrumentName = "S"
    shortInstrumentName = "S"
  } {
    $(skip-of-length sopranoNotes)
  }

  \new Staff = "SA" \with {
    instrumentName = "SA"
    shortInstrumentName = "SA"
  } <<
    \new Voice { \sopranoNotes }
    \new NullVoice = "soprano" { \sopranoNotes }
  >>

>>


_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to