]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/music-functions-init.ly
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / ly / music-functions-init.ly
index 2c4dcead647fbf9e40f2c45c24f32108a5a51d9b..3f3bdca54dd9632a539b27e18d24be757d39747d 100644 (file)
@@ -110,7 +110,7 @@ balloonGrobText =
 #(define-music-function (parser location grob-name offset text)
                         (symbol? number-pair? markup?)
   (_i "Attach @var{text} to @var{grob-name} at offset @var{offset}
-(use like @code{\once})")
+(use like @code{\\once})")
     (make-music 'AnnotateOutputEvent
                'symbol grob-name
                'X-offset (car offset)
@@ -119,7 +119,7 @@ balloonGrobText =
 
 balloonText =
 #(define-music-function (parser location offset text) (number-pair? markup?)
-  (_i "Attach @var{text} at @var{offset} (use like @code{\tweak})")
+  (_i "Attach @var{text} at @var{offset} (use like @code{\\tweak})")
     (make-music 'AnnotateOutputEvent
                'X-offset (car offset)
                'Y-offset (cdr offset)
@@ -267,7 +267,7 @@ instrumentSwitch =
 #(define-music-function
    (parser location name) (string?)
    (_i "Switch instrument to @var{name}, which must be predefined with
-@var{\addInstrumentDefinition}.")
+@code{\\addInstrumentDefinition}.")
    (let*
        ((handle  (assoc name instrument-definitions))
        (instrument-def (if handle (cdr handle) '()))
@@ -359,6 +359,30 @@ musicMap =
 #(define-music-function (parser location proc mus) (procedure? ly:music?)
             (music-map proc mus))
 
+overrideBeamSettings =
+#(define-music-function
+    (parser location
+     context time-signature rule-type grouping-rule)
+    (symbol? pair? symbol? pair?)
+
+ (_i "Override beamSettings in @var{context}
+for time signatures of @var{time-signature} and rules of type
+@var{rule-type} to have a grouping rule alist
+@var{grouping-rule}.
+@var{rule-type} can be @code{end} or @code{subdivide},
+with a potential future value of @code{begin}.
+@var{grouping-rule} is an alist of @var{(beam-type . grouping)}
+entries.  @var{grouping} is in units of @var{beam-type}.  If
+@var{beam-type} is @code{*}, grouping is in units of the denominator
+of @var{time-signature}.")
+
+ ;; TODO -- add warning if largest value of grouping is
+ ;;         greater than time-signature.
+
+#{
+#(override-beam-setting
+  $time-signature $rule-type $grouping-rule $context)
+#})
 
 overrideProperty =
 #(define-music-function (parser location name property value)
@@ -647,17 +671,50 @@ resetRelativeOctave  =
 
     reference-note))
 
+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?)
-                 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
+#(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))
 
 
 shiftDurations =
 #(define-music-function (parser location dur dots arg) (integer? integer? ly:music?)
-   (_i "")
+   (_i "Scale @var{arg} up by a factor of @var{2^dur*(2-(1/2)^dots)}.")
 
    (music-map
     (lambda (x)
@@ -677,7 +734,7 @@ the `parameters' assoc list.")
 
 rightHandFinger =
 #(define-music-function (parser location finger) (number-or-string?)
-   (_i "Define a StrokeFingerEvent")
+   (_i "Apply @var{finger} as a fingering indication.")
 
    (apply make-music
          (append
@@ -700,7 +757,8 @@ scoreTweak =
        (make-music 'SequentialMusic)))
 
 
-tag = #(define-music-function (parser location tag arg)
+tag =
+#(define-music-function (parser location tag arg)
    (symbol? ly:music?)
 
    (_i "Add @var{tag} to the @code{tags} property of @var{arg}.")
@@ -744,16 +802,20 @@ transposition =
                       (ly:pitch-negate (pitch-of-note pitch-note)))
         'Staff))
 
-tweak = #(define-music-function (parser location sym val arg)
-          (symbol? scheme? ly:music?)
+tweak =
+#(define-music-function (parser location sym val arg)
+   (symbol? scheme? ly:music?)
+   (_i "Add @code{sym . val} to the @code{tweaks} property of @var{arg}.")
 
-          (_i "Add @code{sym . val} to the @code{tweaks} property of @var{arg}.")
-
-          (set!
-           (ly:music-property arg 'tweaks)
-           (acons sym val
-                  (ly:music-property arg 'tweaks)))
-          arg)
+   (if (equal? (object-property sym 'backend-type?) #f)
+       (begin
+        (ly:warning (_ "cannot find property type-check for ~a") sym)
+        (ly:warning (_ "doing assignment anyway"))))
+   (set!
+    (ly:music-property arg 'tweaks)
+    (acons sym val
+          (ly:music-property arg 'tweaks)))
+   arg)