Thanks very much Aaron, I propose to include your snippet in a new release of Lilypond because it's very useful. Il mercoledì 13 novembre 2019, 16:19:29 CET, Aaron Hill <lilyp...@hillvisions.com> ha scritto: On 2019-11-13 7:00 am, Aaron Hill wrote: > On 2019-11-13 6:32 am, Paolo Prete wrote: >> Hello, >> I wonder if is there a script or a snippet for doing that without >> using Frescobaldi > > Probably not perfect, but here's something you can fiddle with:
Updated to ensure the stencil's extents are the same as the original also using a slightly cleaner approach: %%%% \version "2.19.83" showControlPoints = #(grob-transformer 'stencil (lambda (grob orig) (define (draw-control-point pt) #{ \markup \translate $pt \with-color #red \draw-circle #0.2 #0 ##t #}) (define (draw-control-segment pt1 pt2) (let ((delta (cons (- (car pt2) (car pt1)) (- (cdr pt2) (cdr pt1))))) #{ \markup \translate $pt1 \with-color #'(1 .5 0) \draw-line $delta #})) (let* ((pts (ly:grob-property grob 'control-points)) (dots (map draw-control-point pts)) (lines (map draw-control-segment pts (cdr pts)))) (grob-interpret-markup grob #{ \markup \with-dimensions-from \stencil $orig \overlay { \overlay { $@lines } \overlay { $@dots } \stencil $orig } #})))) \layout { \context { \Voice \override PhrasingSlur.stencil = #showControlPoints \override Slur.stencil = #showControlPoints \override Tie.stencil = #showControlPoints } } \fixed c' { e4\( b2._~ | b2( e'8 c') a4\) } %%%% -- Aaron Hill