#(define-public (music-cause grob) (let* ((event (event-cause grob))) (if (ly:stream-event? event) (ly:event-property event 'music-cause) #f))) #(define stick-tab-engraver (list (cons 'acknowledgers (list (cons 'note-head-interface (lambda (engraver grob source-engraver) (let* ((context (ly:translator-context engraver)) (event (event-cause grob)) (mus (music-cause grob)) ;; get music object inside articulations ;; TODO: how do I get to the music-cause property in the Stream_event? (articulations (ly:music-property mus 'articulations))) ;; output articulations, so I can see how to ;; get to the music object inside. (display articulations)(newline) ;; replace the note head (do-something grob)))))))) #(define (do-something grob) (display "Not important\n")) % -------------------------------------------------- \version "2.14.2" \score { << \time 2/4 \new Staff { \clef "treble" \key g \minor \new Voice { \relative c'' { d4-1\4 } } } \new Staff { \clef "bass" \key g \minor \new Voice { \relative g { % ugh, articulations only exist when % there are simultaneous notes } } } >> \layout { \context { \Staff \remove "Fingering_engraver" \consists \stick-tab-engraver } } }