On Fri, 9 Jan 2026, Kieren MacMillan wrote:

> Just smoosh them together! It’s a NullVoice anyway…  ;)
>

Update: This method worked.

Kieren very kindly provided some off-list help to me on my real full
engraving file. There was one slight snag related to this code:

\new NullVoice = "lyricsRhythm" { << \soprano \alto \tenor \bass >> }

I got a couple of warning messages saying “warning: cannot end slur”
because, as Kieren explained:

> The <<>> smooshes all voices into a single voice — but in this case, every
> voice has slurs, and sometimes their starting or ending points conflict.


Kieren showed me how to assign ID numbers to the conflicting slurs, which
fixed the problem.

A question after all the above:

Should Kieren’s approach be shown/added (or at least mentioned in) the
documentation?

In the code below, I played with
https://lilypond.org/doc/v2.24/Documentation/1b/lily-5a9e4461.ly — which is
shown at
https://lilypond.org/doc/v2.24/Documentation/notation/techniques-specific-to-lyrics#polyphony-with-shared-lyrics.
Kieren’s method worked well here.

Any snippet or documentation about this approach should mention, as Kieren
explained to me, that music elements “can conflict when you combine voices,”
but personally (so far, at least), I’d rather (A) manage those conflicts
when they arise than (B) deal with writing out a (potentially cluttering)
variable to go into my NullVoice.

%%% SNIPPET BEGINS

\version "2.24.4"

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }

% Not needed with Kieren’s approach:
% aligner = \relative { b'8( c d c) b( a g a) }

words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice { \voiceOne \soprano }
  \new Voice { \voiceTwo \alto }

  % Code from the documentation:
  % \new NullVoice = "aligner" \aligner

  % The same code tweaked to use Kieren’s approach:
  \new NullVoice = "lyricsRhythm" { << \soprano \alto >> }

  \new Lyrics \lyricsto "lyricsRhythm" \words
>>

%%% SNIPPET ENDS

Reply via email to