Discussion:
No lyric extenders for RhythmicStaff if music comes from a variable
Lukas-Fabian Moser
2018-11-27 21:22:16 UTC
Permalink
Dear list,

consider:

\version "2.19.80"

Melodie = \relative g' {
    g8 16 16 16 8.~  4 r
}

\new Staff \Melodie \addlyrics { Once there was a way __ }

\new RhythmicStaff \Melodie \addlyrics { Once there was a way __ }

\new Staff \relative g' { g8 16 16 16 8.~  4 r }  \addlyrics { Once
there was a way __ }

\new RhythmicStaff \relative g' { g8 16 16 16 8.~  4 r } \addlyrics {
Once there was a way __ }

As can be seen, the second example does not contain the Lyric extender.
Why is this so, and how can I get it back? (True for 2.19.80 as well as
not-so-current master from a few weeks/months ago.)

Best
Lukas
Aaron Hill
2018-11-27 21:53:01 UTC
Permalink
Post by Lukas-Fabian Moser
Dear list,
\version "2.19.80"
Melodie = \relative g' {
    g8 16 16 16 8.~  4 r
}
\new Staff \Melodie \addlyrics { Once there was a way __ }
\new RhythmicStaff \Melodie \addlyrics { Once there was a way __ }
\new Staff \relative g' { g8 16 16 16 8.~  4 r }  \addlyrics { Once
there was a way __ }
\new RhythmicStaff \relative g' { g8 16 16 16 8.~  4 r } \addlyrics {
Once there was a way __ }
As can be seen, the second example does not contain the Lyric
extender. Why is this so, and how can I get it back? (True for 2.19.80
as well as not-so-current master from a few weeks/months ago.)
Some curly braces seem to help:

%%%%
\new RhythmicStaff { \Melodie \addlyrics { Once there was a way __ } }
%%%%

Using \displayMusic shows that use of the variable versus the explicit
\relative produces a different S-expression, but I am not sure where the
fault lies.

-- Aaron Hill
David Kastrup
2018-11-27 22:01:04 UTC
Permalink
Post by Aaron Hill
Post by Lukas-Fabian Moser
\version "2.19.80"
Melodie = \relative g' {
    g8 16 16 16 8.~  4 r
}
\new Staff \Melodie \addlyrics { Once there was a way __ }
\new RhythmicStaff \Melodie \addlyrics { Once there was a way __ }
\new Staff \relative g' { g8 16 16 16 8.~  4 r }  \addlyrics { Once
there was a way __ }
\new RhythmicStaff \relative g' { g8 16 16 16 8.~  4 r } \addlyrics {
Once there was a way __ }
As can be seen, the second example does not contain the Lyric
extender. Why is this so, and how can I get it back? (True for 2.19.80
as well as not-so-current master from a few weeks/months ago.)
%%%%
\new RhythmicStaff { \Melodie \addlyrics { Once there was a way __ } }
%%%%
Using \displayMusic shows that use of the variable versus the explicit
\relative produces a different S-expression, but I am not sure where
the fault lies.
I never managed to get the parser to group \addlyrics just with the
desired expressions. Operator priorities for shift/reduce conflict
resolution are hard to get right, and this is the major case where I did
not manage even though there are several issues and patches trying to
fix it.
--
David Kastrup
Lukas-Fabian Moser
2018-11-27 22:20:12 UTC
Permalink
Post by David Kastrup
Post by Aaron Hill
%%%%
\new RhythmicStaff { \Melodie \addlyrics { Once there was a way __ } }
%%%%
Using \displayMusic shows that use of the variable versus the explicit
\relative produces a different S-expression, but I am not sure where
the fault lies.
I never managed to get the parser to group \addlyrics just with the
desired expressions. Operator priorities for shift/reduce conflict
resolution are hard to get right, and this is the major case where I did
not manage even though there are several issues and patches trying to
fix it.
Well, to summarize:

In less than an hour after posting a question / potential bug report,
there is

- a quick & easy solution provided by an experienced fellow user,

- an explanation and some perspective from the main developer working on
that part of the code.

Unbeatable. And on top of this, the excellent quality that LilyPond
produces (which is often remarked upon by students & colleagues that see
my worksheets containing lots of Lilypond music examples). It's simply
wonderful to work with this program - thanks so much!

Best
Lukas
Werner LEMBERG
2018-11-27 22:29:53 UTC
Permalink
Post by Lukas-Fabian Moser
In less than an hour after posting a question / potential bug
report, there is
- a quick & easy solution provided by an experienced fellow user,
- an explanation and some perspective from the main developer
working on that part of the code.
Unbeatable. And on top of this, the excellent quality that LilyPond
produces (which is often remarked upon by students & colleagues that
see my worksheets containing lots of Lilypond music examples). It's
simply wonderful to work with this program - thanks so much!
Hear, hear! And yes, great kudos to all the helpful guys on this
list!


Werner
David Kastrup
2018-11-28 09:58:09 UTC
Permalink
Post by Werner LEMBERG
Post by Lukas-Fabian Moser
In less than an hour after posting a question / potential bug
report, there is
- a quick & easy solution provided by an experienced fellow user,
- an explanation and some perspective from the main developer
working on that part of the code.
Unbeatable. And on top of this, the excellent quality that LilyPond
produces (which is often remarked upon by students & colleagues that
see my worksheets containing lots of Lilypond music examples). It's
simply wonderful to work with this program - thanks so much!
Hear, hear! And yes, great kudos to all the helpful guys on this
list!
Well, the equivalent of "sure, I agree this sucks" from the "highest
level" is not exactly the most brilliant endorsement, even if it may be
personally satisfying. Which reminds me of the old joke "I'll believe
that Microsoft is able to deliver products that don't suck when they
start selling vacuum cleaners".

At any rate, nobody will claim in good conscience that LilyPond does not
have its dirty corners.
--
David Kastrup
Loading...