\version "2.19.82" tst = #(lambda (ctx) (let ((gliss '()) (gliss-to-test '())) (make-engraver ((initialize translator) (set! gliss '()) (set! gliss-to-test '())) (acknowledgers ((glissando-interface engraver grob source-engraver) (set! gliss (list grob (ly:prob-property (ly:grob-property grob 'cause) 'origin))))) ((stop-translation-timestep translator) (if (and (pair? gliss) (ly:grob? (car gliss))) (set! gliss-to-test (cons (list (car gliss) (second gliss) (grob::rhythmic-location (car gliss))) gliss-to-test)))) ((finalize translator) (if (pair? gliss-to-test) (let ((init #f)) (for-each (lambda (e) (ly:grob-property (car e) 'stencil) (let* ((gliss-stencil (ly:grob-property (car e) 'stencil)) (empty-stencil? (and (ly:stencil? gliss-stencil) (ly:stencil-empty? gliss-stencil))) (grob-not-live? (not (grob::is-live? (car e))))) (if (and (or grob-not-live? empty-stencil?) (not (equal? (car e) init)) ;; mhh...Do I exclude too much? (pair? (third e))) (format #t "Check Glissando: ~a: \n\tin file: ~a\n\tin music: measure ~a, moment ~a\n" (cond (empty-stencil? "length") (grob-not-live? "grob, probably unterminated") (else "???")) (second e) (car (third e)) (ly:moment-main (cdr (third e))))) (set! init (car e)))) gliss-to-test))))))) \layout { \context { \Voice \consists \tst } } << \new Staff { s2. c'4\glissando s1 } \new Staff { c'1 c'1\glissando } \new Staff { c'1 c'1\glissando } >> { e''16 f''\glissando e''8 }