@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))))
- (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)))))))
+ (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)))
%% music identifiers not allowed at top-level,
(music->lily-string music))
(ly:music-property sim 'elements)))))
-(define-extra-display-method SimultaneousMusic (expr)
- "If `sim' is an \afterGrace expression, return \"\\afterGrace ...\".
-Otherwise, return #f."
- ;; TODO: do something with afterGraceFraction?
- (with-music-match (expr (music 'SimultaneousMusic
- elements (?before-grace
- (music 'SequentialMusic
- elements ((music 'SkipMusic)
- (music 'GraceMusic
- element ?grace))))))
- (format #f "\\afterGrace ~a ~a"
- (music->lily-string ?before-grace)
- (music->lily-string ?grace))))
-
;;;
;;; Chords
;;;
(parameterize ((*current-context* ctype))
(music->lily-string music)))))
+;; \afterGrace
+(define-extra-display-method ContextSpeccedMusic (expr)
+ "If `sim' is an \afterGrace expression, return \"\\afterGrace ...\".
+Otherwise, return #f."
+ ;; TODO: do something with afterGraceFraction?
+ (with-music-match
+ (expr (music 'ContextSpeccedMusic
+ context-type 'Bottom
+ element
+ (music 'SimultaneousMusic
+ elements (?before-grace
+ (music 'SequentialMusic
+ elements ((music 'SkipMusic)
+ (music 'GraceMusic
+ element ?grace)))))))
+ (format #f "\\afterGrace ~a ~a"
+ (music->lily-string ?before-grace)
+ (music->lily-string ?grace))))
+
+
;; special cases: \figures \lyrics \drums
(define-extra-display-method ContextSpeccedMusic (expr)
(with-music-match (expr (music 'ContextSpeccedMusic