'elements (list (make-music 'BreathingEvent))))
bendAfter =
-#(define-music-function (parser location delta) (integer?)
+#(define-music-function (parser location delta) (real?)
(make-music 'BendAfterEvent
'delta-step delta))
(if (string? (ly:music-property mus 'quoted-music-name))
(ly:music-property mus 'element)
mus)) music))
-
+
+label =
+#(define-music-function (parser location label) (symbol?)
+ (_i "Place a bookmarking label, either at top-level or inside music.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'page-label label
+ 'elements (list (make-music 'LabelEvent
+ 'page-label label))))
makeClusters =
#(define-music-function
grob-name)
(set! (ly:grob-property grob property) value))))))
+%% These are music functions (iso music indentifiers), because music identifiers
+%% are not allowed at top-level.
+pageBreak =
+#(define-music-function (location parser) ()
+ (_i "Force a page break. May be used at toplevel (ie between scores or
+markups), or inside a score.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'line-break-permission 'force
+ 'page-break-permission 'force
+ 'elements (list (make-music 'LineBreakEvent
+ 'break-permission 'force)
+ (make-music 'PageBreakEvent
+ 'break-permission 'force))))
+
+noPageBreak =
+#(define-music-function (location parser) ()
+ (_i "Forbid a page break. May be used at toplevel (ie between scores or
+markups), or inside a score.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'page-break-permission 'forbid
+ 'elements (list (make-music 'PageBreakEvent
+ 'break-permission '()))))
+
+pageTurn =
+#(define-music-function (location parser) ()
+ (_i "Force a page turn between two scores or top-level markups.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'line-break-permission 'force
+ 'page-break-permission 'force
+ 'page-turn-permission 'force
+ 'elements (list (make-music 'LineBreakEvent
+ 'break-permission 'force)
+ (make-music 'PageBreakEvent
+ 'break-permission 'force)
+ (make-music 'PageTurnEvent
+ 'break-permission 'force))))
+
+noPageTurn =
+#(define-music-function (location parser) ()
+ (_i "Forbid a page turn. May be used at toplevel (ie between scores or
+markups), or inside a score.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'page-turn-permission 'forbid
+ 'elements (list (make-music 'PageTurnEvent
+ 'break-permission '()))))
+
+allowPageTurn =
+#(define-music-function (location parser) ()
+ (_i "Allow a page turn. May be used at toplevel (ie between scores or
+markups), or inside a score.")
+ (make-music 'EventChord
+ 'page-marker #t
+ 'page-turn-permission 'allow
+ 'elements (list (make-music 'PageTurnEvent
+ 'break-permission 'allow))))
removeWithTag =
#(define-music-function
#(define-music-function (parser loc arg) (ly:music?)
(_i "Tag @var{arg} to be parenthesized.")
- (set! (ly:music-property arg 'parenthesize) #t)
+ (if (memq 'event-chord (ly:music-property arg 'types))
+ ; arg is an EventChord -> set the parenthesize property on all child notes and rests
+ (map
+ (lambda (ev)
+ (if (or (memq 'note-event (ly:music-property ev 'types))
+ (memq 'rest-event (ly:music-property ev 'types)))
+ (set! (ly:music-property ev 'parenthesize) #t)))
+ (ly:music-property arg 'elements))
+ ; No chord, simply set property for this expression:
+ (set! (ly:music-property arg 'parenthesize) #t))
arg)
%% for lambda*