Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-10 Thread David Kastrup
"Galen Menzel"  writes:

> On 9 Aug 2018, at 0:53, David Kastrup wrote:
>
> This is what I ended up doing. It’s a somewhat unsatisfying solution,
> since it’s clearly something a machine could do. But it seemed to be
> worth it in this case, since searching for lyrics are the easiest way
> to jump to a bar without having to look up the bar number.
>
> There seems to be a legitimate use case here for suppressing warnings
> related to only one specific voice in a parallel-music expression. Is
> there a way of doing this? If not, do you think the dev team would be
> open to such a feature request?

I was musing over what makes sense doing here.  One could omit both bar
check and length check from sections only having lyric events of the
same duration or some heuristic like that.  But there are also skips in
lyrics which need to get written with explicit duration so that's still
not likely to fully do the trick.

For the bar check, the best solution would be to make them work better
in lyricsto-like contexts.  "Better" would likely mean making sure they
are not separated by a full syllable from the closest measure boundary.
No idea whether that is feasible but it would be sort-of unrelated to
parallelMusic.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-10 Thread Galen Menzel



On 9 Aug 2018, at 0:53, David Kastrup wrote:


"Galen Menzel"  writes:


On 8 Aug 2018, at 14:10, David Kastrup wrote:


"Galen Menzel"  writes:


So basically explicit bar markings and lyrics just don’t play
nicely
together?


And auto-length lyrics.  If you give the lyric syllables explicit
durations and not use \lyricsto/\addlyrics but just set
associatedVoice
and \lyricmode appropriately, you can write bar checks into the 
lyrics
perfectly well.  Note that bar checks indicate that your lyrics 
_are_

written to match a given rhythm at seminal points, so there is some
motivation to either put none of the rhythm into the lyrics (and let
them get autotimed using \addlyrics/lyricsto) or put all of it in 
and

use explicit durations.


Ok, that makes sense. Looks like this is just a rough edge, where the
requirements of auto-length lyrics are in conflict with the
requirements of parallel notation. I’ll look into explicit duration 
or

suppressing the warning.


You could just remove the bar checks from the lyrics selectively, like

lyrics_b = #(map-some-music (music-type-predicate 'bar-check) 
lyrics_b)


However, that would not get you rid of the warnings because of music
with unequal length.  The warnings are intended for locating problems:
removing them has its own problems.  Have you considered specifying 
your

lyrics with durations, like \lyricmode { one 2. two 4 } (spaces before
durations are optional)?


This is what I ended up doing. It’s a somewhat unsatisfying solution, 
since it’s clearly something a machine could do. But it seemed to be 
worth it in this case, since searching for lyrics are the easiest way to 
jump to a bar without having to look up the bar number.


There seems to be a legitimate use case here for suppressing warnings 
related to only one specific voice in a parallel-music expression. Is 
there a way of doing this? If not, do you think the dev team would be 
open to such a feature request?


Thanks!

Galen

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-09 Thread David Kastrup
"Galen Menzel"  writes:

> On 8 Aug 2018, at 14:10, David Kastrup wrote:
>
>> "Galen Menzel"  writes:
>>
>>> So basically explicit bar markings and lyrics just don’t play
>>> nicely
>>> together?
>>
>> And auto-length lyrics.  If you give the lyric syllables explicit
>> durations and not use \lyricsto/\addlyrics but just set
>> associatedVoice
>> and \lyricmode appropriately, you can write bar checks into the lyrics
>> perfectly well.  Note that bar checks indicate that your lyrics _are_
>> written to match a given rhythm at seminal points, so there is some
>> motivation to either put none of the rhythm into the lyrics (and let
>> them get autotimed using \addlyrics/lyricsto) or put all of it in and
>> use explicit durations.
>
> Ok, that makes sense. Looks like this is just a rough edge, where the
> requirements of auto-length lyrics are in conflict with the
> requirements of parallel notation. I’ll look into explicit duration or
> suppressing the warning.

You could just remove the bar checks from the lyrics selectively, like

lyrics_b = #(map-some-music (music-type-predicate 'bar-check) lyrics_b)

However, that would not get you rid of the warnings because of music
with unequal length.  The warnings are intended for locating problems:
removing them has its own problems.  Have you considered specifying your
lyrics with durations, like \lyricmode { one 2. two 4 } (spaces before
durations are optional)?

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-08 Thread Galen Menzel



On 8 Aug 2018, at 14:10, David Kastrup wrote:


"Galen Menzel"  writes:

So basically explicit bar markings and lyrics just don’t play 
nicely

together?


And auto-length lyrics.  If you give the lyric syllables explicit
durations and not use \lyricsto/\addlyrics but just set 
associatedVoice

and \lyricmode appropriately, you can write bar checks into the lyrics
perfectly well.  Note that bar checks indicate that your lyrics _are_
written to match a given rhythm at seminal points, so there is some
motivation to either put none of the rhythm into the lyrics (and let
them get autotimed using \addlyrics/lyricsto) or put all of it in and
use explicit durations.


Ok, that makes sense. Looks like this is just a rough edge, where the 
requirements of auto-length lyrics are in conflict with the requirements 
of parallel notation. I’ll look into explicit duration or suppressing 
the warning.


Thanks again!

Best,

Galen




___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-08 Thread David Kastrup
"Galen Menzel"  writes:

> On 7 Aug 2018, at 14:53, David Wright wrote:
>
>> On Tue 07 Aug 2018 at 12:30:03 (-0700), Galen Menzel wrote:
>>
>>> Now, although `lyrics_c` is a silly way to write a lyric line,
>>> `lyrics_b` seems reasonable to me. Is there a better way to define a
>>> lyric line in a `parallelMusic` definition so that lilypond doesn’t
>>> complain? And if not, is there a way to suppress these barcheck
>>> failure warnings?
>>
>> From NR §1.2.5:
>>
>> Note that bar check marks in lyrics are evaluated at the musical
>> moment when the syllable following the check mark is processed. If
>> the lyrics are associated with the notes of a voice which has a
>> rest at the beginning of a bar, then no syllable can be located at
>> the start of that bar and a warning will be issued if a bar check
>> mark is placed in the lyrics at that position.
>
> So basically explicit bar markings and lyrics just don’t play nicely
> together?

And auto-length lyrics.  If you give the lyric syllables explicit
durations and not use \lyricsto/\addlyrics but just set associatedVoice
and \lyricmode appropriately, you can write bar checks into the lyrics
perfectly well.  Note that bar checks indicate that your lyrics _are_
written to match a given rhythm at seminal points, so there is some
motivation to either put none of the rhythm into the lyrics (and let
them get autotimed using \addlyrics/lyricsto) or put all of it in and
use explicit durations.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-08 Thread Galen Menzel



On 7 Aug 2018, at 14:53, David Wright wrote:


On Tue 07 Aug 2018 at 12:30:03 (-0700), Galen Menzel wrote:


Now, although `lyrics_c` is a silly way to write a lyric line,
`lyrics_b` seems reasonable to me. Is there a better way to define a
lyric line in a `parallelMusic` definition so that lilypond doesn’t
complain? And if not, is there a way to suppress these barcheck
failure warnings?


From NR §1.2.5:

Note that bar check marks in lyrics are evaluated at the musical
moment when the syllable following the check mark is processed. If
the lyrics are associated with the notes of a voice which has a
rest at the beginning of a bar, then no syllable can be located at
the start of that bar and a warning will be issued if a bar check
mark is placed in the lyrics at that position.


So basically explicit bar markings and lyrics just don’t play nicely 
together?



Set the context property ignoreBarChecks might work.
(I'm not a parallel music writer.)


I’ll look into that.

Thanks for the help!

Best,

Galen

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Barcheck failure warnings for lyrics in parallel mode

2018-08-07 Thread David Wright
On Tue 07 Aug 2018 at 12:30:03 (-0700), Galen Menzel wrote:

> Now, although `lyrics_c` is a silly way to write a lyric line,
> `lyrics_b` seems reasonable to me. Is there a better way to define a
> lyric line in a `parallelMusic` definition so that lilypond doesn’t
> complain? And if not, is there a way to suppress these barcheck
> failure warnings?

From NR §1.2.5:

Note that bar check marks in lyrics are evaluated at the musical
moment when the syllable following the check mark is processed. If
the lyrics are associated with the notes of a voice which has a
rest at the beginning of a bar, then no syllable can be located at
the start of that bar and a warning will be issued if a bar check
mark is placed in the lyrics at that position.

Set the context property ignoreBarChecks might work.
(I'm not a parallel music writer.)

Cheers,
David.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Barcheck failure warnings for lyrics in parallel mode

2018-08-07 Thread Galen Menzel

Hi all,

I’m using 2.18.2.

The following code compiles with no issue and correctly places the 
lyrics below the notes:


```
melody_a = { r2 a8 b8 r4 | r2 a8 b8 r4 }
lyrics_a = \lyricmode { one two three four }

\score {
  <<
\new Voice = "melody" \relative c'' \melody_a
\new Lyrics \lyricsto melody \lyrics_a
 >>
  \layout { }
}
```

However, I prefer to write lines in parallel, as follows:

```
\parallelMusic #'(melody_b lyrics_b) {

% Bar 1
   r2 a8   b8r4 |
  \lyricmode {one  two }|

% Bar 2
   r2 a8b8r4 |
  \lyricmode {three four }   |
}

\score {
  <<
\new Voice = "melody" \relative c'' \melody_b
\new Lyrics \lyricsto melody \lyrics_b
 >>
}
```

This typesets correctly, but lilypond complains that the bars in the 
parallel music don't have the same length, and issues a barcheck-failure 
warning. My understanding is that this parallel line is basically 
equivalent to defining `lyrics_b` as


```
lyrics_b = { \lyricmode { one two } | \lyricmode { three four } }
```

and indeed, if we create a non-parallel version with the lyrics defined 
like this, lilypond also complains:


```
melody_c = { r2 a8 b8 r4 | r2 a8 b8 r4 }
lyrics_c = { \lyricmode { one two } | \lyricmode { three four } }

\score {
  <<
\new Voice = "melody" \relative c'' \melody_c
\new Lyrics \lyricsto melody \lyrics_c
 >>
  \layout { }
}
```

Now, although `lyrics_c` is a silly way to write a lyric line, 
`lyrics_b` seems reasonable to me. Is there a better way to define a 
lyric line in a `parallelMusic` definition so that lilypond doesn’t 
complain? And if not, is there a way to suppress these barcheck failure 
warnings?


I’ve attached a small example that contains these three ways of 
defining a lyric line.


I’d appreciate any advice here!

Best,

Galen%{

When compiling this example, lilypond emits barcheck-failure warnings
for the lyrics_b and lyrics_c lines.

%}

\language "english"

melody_a = { r2 a8 b8 r4 | r2 a8 b8 r4 }
lyrics_a = \lyricmode { one two three four }

\score {
  <<
\new Voice = "melody" \relative c'' \melody_a
\new Lyrics \lyricsto melody \lyrics_a
  >>
  \layout { }
}

\parallelMusic #'(melody_b lyrics_b) {

% Bar 1
   r2 a8   b8r4 |
  \lyricmode {one  two }|

% Bar 2
   r2 a8b8r4 |
  \lyricmode {three four }   |
}

\score {
  <<
\new Voice = "melody" \relative c'' \melody_b
\new Lyrics \lyricsto melody \lyrics_b
  >>
}

melody_c = { r2 a8 b8 r4 | r2 a8 b8 r4 }
lyrics_c = { \lyricmode { one two } | \lyricmode { three four } }

\score {
  <<
\new Voice = "melody" \relative c'' \melody_c
\new Lyrics \lyricsto melody \lyrics_c
  >>
  \layout { }
}

\version "2.18.2"
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user