(make-music 'BarCheck
'origin location))))
+(define (make-ottava-set music)
+ "Set context properties for an ottava bracket."
+ (let ((octavation (ly:music-property music 'ottava-number)))
+
+ (list (context-spec-music
+ (make-apply-context
+ (lambda (context)
+ (let ((offset (* -7 octavation))
+ (string (assoc-get octavation '((2 . "15ma")
+ (1 . "8va")
+ (0 . #f)
+ (-1 . "8vb")
+ (-2 . "15mb")))))
+ (set! (ly:context-property context 'middleCOffset) offset)
+ (set! (ly:context-property context 'ottavation) string)
+ (ly:set-middle-C! context))))
+ 'Staff))))
+
(define-public music-descriptions
`(
(AbsoluteDynamicEvent
Syntax: @var{note}@code{x}@code{y}, where @code{x} is a direction
(@code{^} for up or @code{_} for down), or LilyPond's choice
-(no direction specified)), and where @code{y} is an articulation
+(no direction specified), and where @code{y} is an articulation
(such as @code{-.}, @code{->}, @code{\\tenuto}, @code{\\downbow}).
See the Notation Reference for details.")
(types . (general-music event articulation-event script-event))
(types . (general-music event beam-forbid-event))
))
+ (BreakDynamicSpanEvent
+ . ((description . "End an alignment spanner for dynamics here.")
+ (types . (general-music break-span-event break-dynamic-span-event event))
+ ))
+
(BendAfterEvent
. ((description . "A drop/fall/doit jazz articulation.")
(types . (general-music bend-after-event event))))
(types . (general-music event note-grouping-event))
))
+ (OttavaMusic
+ . ((description . "Start or stop an ottava bracket.")
+ (iterator-ctor . ,ly:sequential-iterator::constructor)
+ (elements-callback . ,make-ottava-set)
+ (types . (general-music ottava-music))
+ ))
+
(OverrideProperty
. ((description . "Extend the definition of a graphical object.