lilypond-user
[Top][All Lists]
Advanced

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

Re: explicit duration within \lyricsto


From: Aaron Hill
Subject: Re: explicit duration within \lyricsto
Date: Tue, 10 Nov 2020 02:14:59 -0800
User-agent: Roundcube Webmail/1.4.9

(Re-adding mailing list for visibility...)

On 2020-11-10 12:35 am, Christ van Willegen wrote:
Hi Aaron,

Op ma 9 nov. 2020 23:39 schreef Aaron Hill:

Above I show using a NullVoice so the notes do not appear though you can
still attach lyrics to them for timing.

NOTE: As documented in the Notation Reference, changing associatedVoice
must occur one syllable early to have the desired effect.


Still, it would be very nice (TM) to be able to write "a lyric with
embedded4 lyrics8 lengths" within them.

Perhaps a feature request?

Technically, every lyric event has a duration whether or not you specify one. If unspecified, the default duration is used similar to how you can specify a note event with just a pitch alone. Something like the Lyric_combine_music_iterator would be unable to know when a duration is meant to be obeyed or not, as lyrics events with or without an explicit duration are indistinguishable.

Perhaps a property could be introduced that temporarily disables automatic alignment, similar to how melismata can be ignored:

%%%%
\lyricsto melody {
  some words that fol -- low the mel -- o -- dy
  \set ignoreVoice = ##t
  these4 syl8 -- la8 -- bles4 do not2
  \unset ignoreVoice
  back to a -- lign -- ing with the voice
}
%%%%

I don't have a build environment setup, so I cannot easily tinker with the C++. But I wonder if this would work:

//// lyric-combine-music-iterator.cc
  lyrics_found_ = true;
  if (to_boolean (lyrics_context_->get_property ("ignoreVoice"))) {
    Moment m = lyric_iter_->pending_moment ();
    lyric_iter_->process (m);
    return;
  }
  if (!music_context_)
    return;
////

But I do not understand the iterator system well enough, so that could be utter gibberish.


-- Aaron Hill



reply via email to

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