lilypond-user
[Top][All Lists]
Advanced

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

Re: trying to solve "cyclic chain in pure-Y-offset callbacks" error in c


From: Toine Schreurs
Subject: Re: trying to solve "cyclic chain in pure-Y-offset callbacks" error in custom (ScoreMarks) context
Date: Thu, 3 Aug 2017 20:01:11 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

> In the snippet included below, I'm using a custom ScoreMarks context to show 
> MetronomeMarks (plus, in the real world, RehearsalMarks and other things) 
> above the system. The problem is, in order to have the MetronomeMark align 
> correctly with the TimeSignature, I must (?) include the TimeSignature in 
> some form or other. But I don't want the actual grob to appear, or affect 
> spacing in any way *other than* helping with alignment.

> 
> All the attempts I've tried (\omit-s, stencil tweaks, etc.) throw "cyclic 
> chain in pure-Y-offset callbacks" errors, which I have just been ignoring 
> (for years now). But I'd like to solve this once and for all, if possible…
> 
> 1. Is the error more serious than a simply aesthetic problem?
> 
> 2. If not, is there some way to avoid seeing the errors?
> 
> 3. In any case, is there a better way of doing what I'm trying to do (i.e., 
> one that won't cause the error in the first place)?

What about:
\layout {
  \context {
    \Score
    \remove Staff_collecting_engraver
  }
}

This apparently removes the errors/warnings. I have no idea about other
implications.

Toine Schreurs

> %%%  SNIPPET BEGINS
> \version "2.19"
> 
> \layout {
>   \context {
>     \type "Engraver_group"
>     \name ScoreMarks
>     \consists "Staff_collecting_engraver"
>     \consists "Axis_group_engraver"
>     \override VerticalAxisGroup.staff-affinity = #DOWN
>     \consists "Metronome_mark_engraver"
>     \override MetronomeMark.break-align-symbols =
>       #'(left-edge staff-bar clef time-signature key-signature)
>     \override MetronomeMark.non-break-align-symbols =
>       #'(paper-column-interface)
>   }
>   \context {
>     \Score
>     \remove "Metronome_mark_engraver"
>     \remove "Mark_engraver"
>     \accepts ScoreMarks
>   }
> }
> 
> global = {
>   \tempo "Testing"
>   \time 2/2
>   s1
> }
> 
> \markup "No TimeSignature in ScoreMarks = incorrect alignment:"
> \score {
>   <<
>     \new ScoreMarks \global
>     \new Staff << \global c''1 >>
>   >>
> }
> 
> \markup "TimeSignature in ScoreMarks = correct alignment + unwanted grob + 
> error:"
> \score {
>   <<
>     \new ScoreMarks \global
>     \new Staff << \global c''1 >>
>   >>
>   \layout {
>     \context {
>       \ScoreMarks
>       \consists "Time_signature_engraver"
>     }
>   }
> }
> 
> \markup "TimeSignature included in and then \omit-ed from ScoreMarks = 
> correct alignment + error:"
> \score {
>   <<
>     \new ScoreMarks \global
>     \new Staff << \global c''1 >>
>   >>
>   \layout {
>     \context {
>       \ScoreMarks
>       \consists "Time_signature_engraver"
>       \omit TimeSignature
>     }
>   }
> }
> %%%  SNIPPET ENDS



reply via email to

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