[Top][All Lists]

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

Change_iterator refuses to move a NullVoice into a Staff

From: Dan Eble
Subject: Change_iterator refuses to move a NullVoice into a Staff
Date: Sat, 25 Mar 2017 14:34:15 -0400

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
  \change Staff = "S"
  g a b c'

\new ChoirStaff \with {
  \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 }


reply via email to

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