Hello all,

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)?

Thanks,
Kieren.

%%%  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

________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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

Reply via email to