Often in the music I'm engraving a single variable might be used and transformed in multiple contexts and repetitions throughout the piece. This can become difficult to keep track of, particularly if subsequent changes are made which might want to affect only one or some of the instances.
It would be great to be able to display the use of variables throughout a score, I imagine by writing a custom engraver for this. Such an engraver would create two helpful components: 1. Add markup to every use of a variable in the music. The point-and-click link of this markup would be to the use of the variable (rather than its definition). 2. Output a text report listing the musical locations (bar/beat) and contexts of each variable. The example below demonstrates what such an engraver would create. I don't really know how to start with this, or if it is even possible - any thoughts or pointers from scheme gurus would be extremely helpful. Thanks, Mark %%%%%%%%%%%%%%%% \version "2.19.82" motif = { c'4 e' g' c'' } #(define-markup-command (variable layout props varname) (string?) "Format variable name." (interpret-markup layout props #{ \markup \with-dimensions #'(0 . 0) #'(0 . 0) \with-color #red \raise #1 \column { \box \fontsize #-3 \typewriter #varname \combine \draw-line #'(0 . 3) \arrow-head #Y #DOWN ##f } #})) varname = #(define-event-function (text) (markup?) #{ -\tweak parent-alignment-X #CENTER -\tweak layer #-10 ^\markup \variable #text #}) \score { << \new Staff = "flute" \with { instrumentName = "flute" } { <>\varname "motif" \motif R1 \repeat unfold 3 \transpose c' e' { <>\varname "motif" \motif } \bar "|." } \new Staff = "viola" \with { instrumentName = "viola" } { \clef "alto" R1 \repeat unfold 4 \shiftDurations 2 0 { <>\varname "motif" \motif } R1*2 <>\varname "motif" \motif } >> } %{ output to text file: Variable report =============== motif: 1 0/4: flute 2 0/4: viola 2 1/4: viola 2 2/4: viola 2 3/4: viola 3 0/4: flute 4 0/4: flute 5 0/4: flute 5 0/4: viola %} %%%%%%%%%%%%%%%% -- Mark Knoop _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user