Hi Rekado,

I think, this is expectable. The stop-translation-step is too late ... you should create grobs in process-music. If you want this to happen as a last action, you should look at the order of all engravers. The last instanciated engraver should be processed last, IIRC
HTH, Jan-Peter



On 01.03.2013 05:10, rekado rekado wrote:
\version "2.16.1"

#(define segfault-engraver
   (list
    (cons 'stop-translation-timestep
     (lambda (trans)
      ;; creating the grob causes the segfault
      (let ((x (ly:engraver-make-grob trans 'TextScript '())))
       (ly:grob-set-property! x 'text "hi"))))))

\layout {
   \context {
     \Score
     \accepts "SegTab"
   }
   \context {
     \Staff
     \name "SegTab"
     \accepts "SegVoice"
   }
   \context {
     \Voice
     \name "SegVoice"
     \consists \segfault-engraver
   }
}

\header {
   title = "Segfault"
}

\score {
   \new GrandStaff
   <<
     \time 4/4
     \new SegTab {
       \new SegVoice = melody {
         \relative f {
           c'8-1\4 d-2 e4-3 f\3 g8-4
         }
       }
     }

     \new SegTab {
       \new SegVoice = bass {
         \relative f {
           c,8-1\8 d e f4 g
         }
       }
     }
   >>
}

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

Reply via email to