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 <[email protected]> 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
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user