lilypond-user
[Top][All Lists]
Advanced

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

Re: Resolving "cannot resolve rest collision: rest direction not set" wa


From: Arle Lommel
Subject: Re: Resolving "cannot resolve rest collision: rest direction not set" warnings
Date: Wed, 19 Dec 2012 10:41:46 +0100

Actually, I spoke too soon. It looked like they were gone, but when I started checking, my score was severely messed up in other ways by what I had done. When I reverted and then tried again, the rest collision errors were back, so the apparent absence was likely unrelated to the change in voice constructs and came about because I had made some other mistake that coincidentally addressed the cause.

It's a bit long (sorry), but here is my score block showing the declarations. All the variables containing the music are declared in a parallelMusic section.

For what it is worth, all of the conflicts seem to be between the voices "ornamentsVoice" and "rightVoice," both of which often have simultaneous rests. The rests from rightVoice are placed automatically (and correctly) in the proper location, center-staff. The ones from ornamentsVoice I am manually positioning (intentionally, not because of the conflict).

\score {
\new StaffGroup
<<
\new PianoStaff
<<
\new Staff = "RH" {
\set doubleSlurs = ##t
\clef treble
\key d \major
\time 3/4
<<
{ \new Voice="ossiaVoice" \relative c' { \ossia } }
\\
{ \new Voice="ornamentsVoice" \relative c' { \ornaments } }
\\
{ \new Voice="rightVoice" \relative c' { \set doubleSlurs = ##t \righthand } }
>>
}
\new Staff = "LH" {
\set doubleSlurs = ##t
\clef bass
\key d \major
\time 3/4
<<
{ \new Voice = "leftVoice" \relative c { \set doubleSlurs = ##t \lefthand } }
\new Dynamics = "dynamicsVoice" { \pedal }
>>
}
>>
>>
\layout {
\context {
\PianoStaff
\consists #Span_stem_engraver
\consists "Span_arpeggio_engraver"
}
}
}

This would seem to be using separate, explicit voice constructs, but the warnings persist. Any thoughts?

(If it matters, the explanation of the voices is as follows:

ossiaVoice = a voice used to carry some occasional ossia portions. It causes no problem.
ornamentsVoice = a voice used for frequent gracenote-like portions that occupy their notated time and run parallel to the right-hand voice.
rightVoice = the primary right-hand voice
leftVoice = the primary left-hand voice
dynamicsVoice = a voice consisting entirely of spacers and \sustainOn and \sustainOff commands

Only the bolded voices generate the warnings, probably because they are the only ones that generally share the same staff.)

-Arle


On 2012 Dec 19, at 09:45 , Jim Long <address@hidden> wrote:

On Wed, Dec 19, 2012 at 08:44:29AM +0100, Arle Lommel wrote:
Hi all, I am working on the same score that spawned discussion about stem lengths and now have another, hopefully less controversial, question.

I keep getting warnings like the following when I run Lilypond:

warning: cannot resolve rest collision: rest direction not set

I've run into this or a similar problem before.

Cultivate the habit of using separate, explicit voice constructs:

   \new Voice = "upper" \relative c'' {
     ...
   } % upper voice
   \new Voice = "lower" \relative c'' {
     ...
   } % lower voice

A layman's paraphrase of the error message might be that, while
you are manipulating stem directions and pitched rests to
*simulate* the appearance of separate voices, Lily cannot
reliably determine which voice(s) the rests belong to.

HTH,

Jim


reply via email to

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