@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,
form of a spanner event, @var{property} may also have the form
@samp{Grob.property} for specifying a directed tweak.")
(if (ly:music? item)
- (if (eq? (ly:music-property item 'span-direction) START)
+ (if (or (eqv? (ly:music-property item 'span-direction) START)
+ (music-is-of-type? item 'tie-event))
(tweak property (value-for-spanner-piece arg) item)
(begin
(ly:music-warning item (_ "not a spanner"))
'element main-music
'quoted-music-name what))
+reduceChords =
+#(define-music-function (music) (ly:music?)
+ (_i "Reduce chords contained in @var{music} to single notes,
+intended mainly for reusing music in RhythmicStaff. Does not
+reduce parallel music.")
+ (event-chord-reduce music))
relative =
#(define-music-function (pitch music)