3 texidoc
= "Scheme engravers may be instantiated, with
4 instance-scoped slots, by defining a 1 argument procedure which
5 shall return the engraver definition as an alist, with the private
6 slots defined in a closure. The argument procedure argument is the
7 context where the engraver is instantiated."
17 #(let
((instance-counter
0))
19 (set
! instance-counter
(1+ instance-counter
))
20 (let
((instance-id instance-counter
)
21 (private-note-counter
0))
24 . ,(lambda
(engraver event
)
25 (set
! private-note-counter
(1+ private-note-counter
))
26 (let
((text
(ly
:engraver-make-grob engraver
'TextScript event
)))
27 (ly
:grob-set-property
! text
'text
28 (format
"~a.~a" instance-id
29 private-note-counter
))))))))))
34 \relative c'' { c4 d e f }
35 \\ \relative c' { c4 d e f }