+revertBeamSettings =
+#(define-music-function
+ (parser location
+ context time-signature rule-type)
+ (symbol? pair? symbol?)
+
+ (_i "Revert beam settings in @var{context} for time signatures of
+@var{time-signature} and groups of type
+@var{group-type}. @var{group-type} can be @code{end}
+or @code{subdivide}.")
+#{
+ #(revert-beam-setting $time-signature $rule-type $context)
+#})
+
+scaleDurations =
+#(define-music-function (parser location fraction music) (number-pair? ly:music?)
+ (_i "Multiply the duration of events in @var{music} by @var{fraction}.")
+ (ly:music-compress music
+ (ly:make-moment (car fraction) (cdr fraction))))
+
+setBeatGrouping =
+#(define-music-function (parser location grouping) (pair?)
+ (_i "Set the beat grouping in the current time signature to
+@var{grouping}.")
+ (define (default-group-setting c)
+ (let* ((context-time-signature
+ (ly:context-property c 'timeSignatureFraction))
+ (time-signature (if (null? context-time-signature)
+ '(4 . 4)
+ context-time-signature)))
+ (override-property-setting
+ c
+ 'beamSettings
+ (list time-signature 'end)
+ (list (cons '* grouping)))))
+
+ (context-spec-music
+ (make-apply-context default-group-setting)
+ 'Score))