I think you misunderstood. If you allow Score to accept NullVoice, you
don't need to explicitly instantiate a Staff, you can just do it the way
you initially wanted.

On Fri, Sep 20, 2024 at 11:01 PM Walt North <[email protected]> wrote:

> thanks.   So far no luck.   I'm giving up for the night.  Get back it
> tomorrow.  Here is what I have tried so far.
>
>
> \version "2.24.2"
>
> \language "english"
>
> \layout {
>   indent = 0
>   \context {
>     \NullVoice
>     \RemoveAllEmptyStaves
>   }
>   \context {
>     \Score
>     \accepts NullVoice
>   }
>   \context {
>     \Staff
>     \accepts NullVoice
>   }
> }
>
> verseLyricsMelody = \relative c' {
>   c4 c c c~ | c c c c |
> }
>
> verseOneLyrics = \lyricmode {
>   one two three four five six seven eight
> }
>
> \new Score {
>   \new Staff
>   <<
>     <<
>       \new NullVoice  = "verseA" { \break  \verseLyricsMelody }
>       \new Lyrics \lyricsto "verseA" { \verseOneLyrics }
>     >>
>   >>
> }
>
> \new Score {
>   \new Staff
>   <<
>     <<
>       \new NullVoice  = "verseB" { \break  \verseLyricsMelody }
>     >>
>     \new Lyrics \lyricsto "verseB" { \verseOneLyrics }
>   >>
> }
>
>
>
> On 9/20/2024 7:51 PM, Saul Tobin wrote:
>
> Another way to get the extra Staff not to appear is to add the following
> to your \layout block:
>
>   \context {
>     \Score
>     \accepts NullVoice
>   }
>
> As an aside directed more at the dev community: is there any good reason
> not to make this the default behavior (and similar for StaffGroup, etc.)?
> NullVoice is defined with both Staff and Voice as aliases. I would have
> assumed this meant that it could be used anywhere that Staff could be used.
>
> Saul
>
>
> On Fri, Sep 20, 2024 at 10:25 PM Saul Tobin <[email protected]>
> wrote:
>
>> The easiest way to get the staff not to appear would be to put NullVoice
>> inside a Staff or similar context that you want to appear.
>>
>> On Fri, Sep 20, 2024 at 8:19 PM Walt North <[email protected]> wrote:
>>
>>> Thanks, that took care of the alignment.
>>>
>>> However now I see an empty staff.  Is it expected I would then have to
>>> remove all empty staves?  I tried that but may not have it right
>>>
>>>
>>> \version "2.24.2"
>>>
>>> \language "english"
>>>
>>> \layout {
>>>   indent = 0
>>>   \context {
>>>     \NullVoice
>>>     \RemoveAllEmptyStaves
>>>   }
>>> }
>>>
>>> verseLyricsMelody = \relative c' {
>>>   c4 c c c~ | c c c c |
>>> }
>>>
>>> verseOneLyrics = \lyricmode {
>>>   one two three four five six seven eight
>>> }
>>>
>>> \new Score {
>>>   <<
>>>     \new Voice = "verse" { \break \verseLyricsMelody }
>>>     \new Lyrics \lyricsto "verse" { \verseOneLyrics }
>>>   >>
>>>   <<
>>>     \new NullVoice  = "verseB" { \break  \verseLyricsMelody }
>>>     \new Lyrics \lyricsto "verseB" { \verseOneLyrics }
>>>
>>>   >>
>>>
>>>
>>>
>>> }
>>>
>>>
>>>
>>> On 9/20/2024 4:58 PM, Saul Tobin wrote:
>>>
>>> My understanding is that Devnull is not intended for alignment of lyrics
>>> because it does not have the necessary engraver to create the invisible
>>> grobs used for alignment. It appears to me in your example that actually
>>> the lyrics are just being spaced evenly without alignment to anything.
>>> Nullvoice is intended for your use case.
>>>
>>> On Fri, Sep 20, 2024, 6:06 PM Walt North <[email protected]> wrote:
>>>
>>>> Am I missing something?  It seems like using devnull to align lyrics to
>>>> does pay attention to ties.  Ties do seem to be honored when using voice
>>>> for alignment.
>>>>
>>>> Below is a stripped down example with screenshot.
>>>>
>>>> \version "2.24.2"
>>>>
>>>> \language "english"
>>>>
>>>> \layout {
>>>>   indent = 0
>>>> }
>>>>
>>>> verseLyricsMelody = \relative c' {
>>>>   c4 c c c~ | c c c c |
>>>> }
>>>>
>>>> verseOneLyrics = \lyricmode {
>>>>   one two three four five six seven eight
>>>> }
>>>>
>>>> \new Score {
>>>>   <<
>>>>     \new Voice = "verse" { \break \verseLyricsMelody }
>>>>     \new Lyrics \lyricsto "verse" { \verseOneLyrics }
>>>>   >>
>>>>   <<
>>>>     \new Devnull  = "verseB" { \break  \verseLyricsMelody }
>>>>     \new Lyrics \lyricsto "verseB" { \verseOneLyrics }
>>>>   >>
>>>> }
>>>>
>>>>
>>>>

Reply via email to