2017-02-22 23:08 GMT+01:00 David Kastrup <d...@gnu.org>: > Easy enough: wrap a (descend-to-context ... 'Bottom) around its > definition. However, this breaks \displayLilyMusic in bewildering ways.
Doing so, i.e.: afterGrace = #(define-music-function (fraction main grace) ((fraction?) ly:music? ly:music?) (_i "Create @var{grace} note(s) after a @var{main} music expression. The musical position of the grace expression is after a given fraction of the main note's duration has passed. If @var{fraction} is not specified as first argument, it is taken from @code{afterGraceFraction} which has a default value of @code{3/4}.") (let ((main-length (ly:music-length main)) (fraction (or fraction (ly:parser-lookup 'afterGraceFraction)))) (descend-to-context (make-simultaneous-music (list main (make-sequential-music (list (make-music 'SkipMusic 'duration (ly:make-duration 0 0 (* (ly:moment-main main-length) (/ (car fraction) (cdr fraction))))) (make-music 'GraceMusic 'element grace))))) 'Bottom))) \displayLilyMusic \relative { \time 2/4 \afterGrace g'2 { f8[ g] } f2 } returns: { \time 2/4 \context Bottom \afterGrace g'2 { f'8[ g'8] } f'2 } Is this not correct? Cheers, Harm _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond