}
-\version "2.14.0"
+\version "2.16.0"
+
+#(define (t->m t)
+ "Return the current moment of translator object @var{t}."
+ (ly:context-current-moment (ly:translator-context t)))
+
+engraver_demo =
+#(make-engraver
+ ((initialize translator)
+ (format 1 "\n\n~16a: (initialize)\n" (t->m translator)))
+ ((start-translation-timestep translator)
+ (format 1 "~16a: (start-translation-timestep)\n" (t->m translator)))
+ (listeners
+ ((rest-event engraver event)
+ (let ((grob (ly:engraver-make-grob engraver 'TextScript event)))
+ (ly:grob-set-property! grob 'text "hi")
+ (format 1 "~16a: detected this rest event: ~a\n~16a: created this grob: ~a\n"
+ (t->m engraver) event (t->m engraver) grob))))
+ (acknowledgers
+ ((note-head-interface engraver grob source-engraver)
+ (format 1 "~16a: saw ~a coming from ~a\n"
+ (t->m engraver) grob source-engraver)))
+ (end-acknowledgers
+ ((beam-interface engraver grob source-engraver)
+ (format 1 "~16a: saw end of ~a coming from ~a\n"
+ (t->m engraver) grob source-engraver)))
+ ((process-music translator)
+ (format 1 "~16a: (process-music)\n" (t->m translator)))
+ ((process-acknowledged translator)
+ (format 1 "~16a: (process-acknowledged)\n" (t->m translator)))
+ ((stop-translation-timestep translator)
+ (format 1 "~16a: (stop-translation-timestep)\n" (t->m translator)))
+ ((finalize translator)
+ (format 1 "~16a: (finalize)\n" (t->m translator))))
\layout {
\context {
\Voice
\consists
- #(list
- (cons 'initialize
- (lambda (trans)
- (display (list "initialize"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- (cons 'start-translation-timestep
- (lambda (trans)
- (display (list "start-trans"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- (cons 'listeners
- (list
- (cons 'rest-event (lambda (engraver event)
- (let*
- ((x (ly:engraver-make-grob engraver 'TextScript event)))
- (display (list "caught event" event "\ncreate:\n" x "\n") (current-error-port))
- (ly:grob-set-property! x 'text "hi"))
- ))
- ))
- (cons 'acknowledgers
- (list
- (cons 'note-head-interface
- (lambda (engraver grob source-engraver)
- (display (list "saw head: " grob " coming from " source-engraver) (current-error-port))
- ))
- ))
- (cons 'end-acknowledgers
- (list
- (cons 'beam-interface
- (lambda (engraver grob source-engraver)
- (display (list "saw end of beam: " grob " coming from " source-engraver) (current-error-port))
- ))
- ))
- (cons 'process-music
- (lambda (trans)
- (display (list "process-music"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- (cons 'process-acknowledged
- (lambda (trans)
- (display (list "process-acknowledged"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- (cons 'stop-translation-timestep
- (lambda (trans)
- (display (list "stop-trans"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- (cons 'finalize
- (lambda (trans)
- (display (list "finalize"
- (ly:context-current-moment
- (ly:translator-context trans)) "\n") (current-error-port))))
- )
-
- }}
-
+ \engraver_demo
+ }
+}
\relative c' {
c8[ r c]