]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/music-functions-init.ly
Merge commit 'origin'
[lilypond.git] / ly / music-functions-init.ly
index a112b67e64a55107686bd736531034558ffa42e2..2dded22e3d77acd2b2dbcab500d6a01a5f893be9 100644 (file)
@@ -7,16 +7,18 @@
 %% this file is alphabetically sorted.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%% need SRFI-1 filter 
+%% need SRFI-1 filter
 
 #(use-modules (srfi srfi-1))
 
 acciaccatura =
-#(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
+#(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic
+   (_i "Create an acciaccatura from the following music expression"))
 
 addQuote =
 #(define-music-function (parser location name music) (string? ly:music?)
-   (_i "Add a piece of music to be quoted ")
+   (_i "Define @var{music} as a quotable music expression named
+@var{name}")
    (add-quotable parser name music)
    (make-music 'SequentialMusic 'void #t))
 
@@ -27,11 +29,11 @@ afterGrace =
 #(define-music-function
   (parser location main grace)
   (ly:music? ly:music?)
-
+  (_i "Create @var{grace} note(s) after a @var{main} music expression.")
   (let*
       ((main-length (ly:music-length main))
        (fraction  (ly:parser-lookup parser 'afterGraceFraction)))
-    
+
     (make-simultaneous-music
      (list
       main
@@ -50,34 +52,38 @@ afterGrace =
 
 applyMusic =
 #(define-music-function (parser location func music) (procedure? ly:music?)
-               (func music))
+   (_i"Apply procedure @var{func} to @var{music}.")
+  (func music))
 
 
 applyOutput =
 #(define-music-function (parser location ctx proc) (symbol? procedure?)
-                (make-music 'ApplyOutputEvent
-                  'origin location
-                  'procedure proc
-                  'context-type ctx))
+  (_i "Apply function @code{proc} to every layout object in context @code{ctx}")
+  (make-music 'ApplyOutputEvent
+              'origin location
+              'procedure proc
+              'context-type ctx))
 
 appoggiatura =
-#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
-
+#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
+  (_i "Create an appoggiatura from @var{music}"))
 
 
 % for regression testing purposes.
 assertBeamQuant =
 #(define-music-function (parser location l r) (pair? pair?)
+  (_i "Testing function: check whether the beam quants @var{l} and @var{r} are correct")
   (make-grob-property-override 'Beam 'positions
    (ly:make-simple-closure
     (ly:make-simple-closure
      (append
       (list chain-grob-member-functions `(,cons 0 0))
       (check-quant-callbacks l r))))))
-    
+
 % for regression testing purposes.
 assertBeamSlope =
 #(define-music-function (parser location comp) (procedure?)
+  (_i "Testing function: check whether the slope of the beam is the same as @code{comp}")
   (make-grob-property-override 'Beam 'positions
    (ly:make-simple-closure
     (ly:make-simple-closure
@@ -89,18 +95,22 @@ assertBeamSlope =
 
 autochange =
 #(define-music-function (parser location music) (ly:music?)
-               (make-autochange-music parser music))
+  (_i "Make voices that switch between staves automatically")
+  (make-autochange-music parser music))
 
 applyContext =
 #(define-music-function (parser location proc) (procedure?)
-                 (make-music 'ApplyContext 
-                   'origin location
-                   'procedure proc))
+  (_i "Modify context properties with Scheme procedure @var{proc}.")
+  (make-music 'ApplyContext
+              'origin location
+              'procedure proc))
 
 
 balloonGrobText =
-#(define-music-function (parser location grob-name offset text) (symbol? number-pair? markup?)
-   
+#(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})")
     (make-music 'AnnotateOutputEvent
                'symbol grob-name
                'X-offset (car offset)
@@ -109,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})")
     (make-music 'AnnotateOutputEvent
                'X-offset (car offset)
                'Y-offset (cdr offset)
@@ -117,8 +127,8 @@ balloonText =
 
 
 bar =
-#(define-music-function (parser location type)
-   (string?)
+#(define-music-function (parser location type) (string?)
+  (_i "Insert a bar line of type @var{type}")
    (context-spec-music
     (make-property-set 'whichBar type)
     'Timing))
@@ -126,9 +136,10 @@ bar =
 
 barNumberCheck =
 #(define-music-function (parser location n) (integer?)
-   (make-music 'ApplyContext 
+  (_i "Print a warning if the current bar number is not @var{n}.")
+   (make-music 'ApplyContext
               'origin location
-              'procedure 
+              'procedure
               (lambda (c)
                 (let*
                     ((cbn (ly:context-property c 'currentBarNumber)))
@@ -139,32 +150,32 @@ barNumberCheck =
 
 bendAfter =
 #(define-music-function (parser location delta) (real?)
-             
+  (_i "Create a fall or doit of pitch interval @var{delta}.")
   (make-music 'BendAfterEvent
    'delta-step delta))
 
 %% why a function?
 breathe =
 #(define-music-function (parser location) ()
-            (make-music 'EventChord 
+  (_i "Insert a breath mark.")
+            (make-music 'EventChord
               'origin location
               'elements (list (make-music 'BreathingEvent))))
 
 
 clef =
-#(define-music-function (parser location type)
-   (string?)
-   (_i "Set the current clef.")
-
+#(define-music-function (parser location type) (string?)
+  (_i "Set the current clef to @var{type}.")
    (make-clef-set type))
 
 
-cueDuring = 
+cueDuring =
 #(define-music-function
-  (parser location what dir main-music)
-  (string? ly:dir? ly:music?)
+  (parser location what dir main-music) (string? ly:dir? ly:music?)
+  (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
+in a CueVoice oriented by @var{dir}.")
   (make-music 'QuoteMusic
-             'element main-music 
+             'element main-music
              'quoted-context-type 'Voice
              'quoted-context-id "cue"
              'quoted-music-name what
@@ -173,12 +184,15 @@ cueDuring =
 
 displayLilyMusic =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Display  the LilyPond input representation of @var{music}
+to the console.")
    (newline)
    (display-lily-music music parser)
    music)
 
 displayMusic =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Display the internal representation of @var{music} to the console.")
    (newline)
    (display-scheme-music music)
    music)
@@ -186,6 +200,7 @@ displayMusic =
 
 endSpanners =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Terminate the next spanner prematurely after exactly one note without the need of a specific end spanner.")
    (if (eq? (ly:music-property music 'name) 'EventChord)
        (let*
           ((elts (ly:music-property music 'elements))
@@ -206,19 +221,17 @@ endSpanners =
                               'elements (list music
                                               end-ev-chord))))
         total)
-       
+
        (ly:input-message location (_ "argument endSpanners is not an EventChord: ~a" music))))
 
 featherDurations=
 #(define-music-function (parser location factor argument) (ly:moment? ly:music?)
-   (_i "Rearrange durations in ARGUMENT so there is an
-acceleration/deceleration. ")
-   
+ (_i "Adjust durations of music in @var{argument} by rational @var{factor}. ")
    (let*
        ((orig-duration (ly:music-length argument))
        (multiplier (ly:make-moment 1 1)))
 
-     (music-map 
+     (music-map
       (lambda (mus)
        (if (and (eq? (ly:music-property mus 'name) 'EventChord)
                 (< 0 (ly:moment-main-denominator (ly:music-length mus))))
@@ -236,15 +249,15 @@ acceleration/deceleration. ")
      argument))
 
 grace =
-#(def-grace-function startGraceMusic stopGraceMusic)
-
+#(def-grace-function startGraceMusic stopGraceMusic
+   (_i "Insert @var{music} as grace notes."))
 
 "instrument-definitions" = #'()
 
 addInstrumentDefinition =
 #(define-music-function
    (parser location name lst) (string? list?)
-
+   (_i "Create instrument @var{name} with properties @var{list}.")
    (set! instrument-definitions (acons name lst instrument-definitions))
 
    (make-music 'SequentialMusic 'void #t))
@@ -253,6 +266,8 @@ addInstrumentDefinition =
 instrumentSwitch =
 #(define-music-function
    (parser location name) (string?)
+   (_i "Switch instrument to @var{name}, which must be predefined with
+@var{\addInstrumentDefinition}.")
    (let*
        ((handle  (assoc name instrument-definitions))
        (instrument-def (if handle (cdr handle) '()))
@@ -274,10 +289,10 @@ instrumentSwitch =
 %% Parser used to read page-layout file, and then retreive score tweaks.
 #(define page-layout-parser #f)
 
-includePageLayoutFile = 
+includePageLayoutFile =
 #(define-music-function (parser location) ()
-   (_i "If page breaks and tweak dump is not asked, and the file
-<basename>-page-layout.ly exists, include it.")
+   (_i "Include the file @var{<basename>-page-layout.ly}. Deprecated as
+part of two-pass spacing.")
    (if (not (ly:get-option 'dump-tweaks))
        (let ((tweak-filename (format #f "~a-page-layout.ly"
                                     (ly:parser-output-name parser))))
@@ -290,11 +305,10 @@ includePageLayoutFile =
                                                tweak-filename))))))
    (make-music 'SequentialMusic 'void #t))
 
-
-
 keepWithTag =
 #(define-music-function
   (parser location tag music) (symbol? ly:music?)
+  (_i "Include only elements of @var{music} that are tagged with @var{tag}.")
   (music-filter
    (lambda (m)
     (let* ((tags (ly:music-property m 'tags))
@@ -304,9 +318,10 @@ keepWithTag =
       res)))
    music))
 
-removeWithTag = 
+removeWithTag =
 #(define-music-function
   (parser location tag music) (symbol? ly:music?)
+  (_i "Remove elements of @var{music} that are tagged with @var{tag}.")
   (music-filter
    (lambda (m)
     (let* ((tags (ly:music-property m 'tags))
@@ -318,24 +333,26 @@ killCues =
 #(define-music-function
    (parser location music)
    (ly:music?)
+   (_i "Remove cue notes from @var{music}.")
    (music-map
     (lambda (mus)
       (if (string? (ly:music-property mus 'quoted-music-name))
          (ly:music-property mus 'element)
          mus)) music))
 
-label = 
+label =
 #(define-music-function (parser location label) (symbol?)
-   (_i "Place a bookmarking label, either at top-level or inside music.")
+   (_i "Create @var{label} as a bookmarking label")
    (make-music 'EventChord
               'page-marker #t
               'page-label label
               'elements (list (make-music 'LabelEvent
-                                          'page-label label)))) 
+                                          'page-label label))))
 
 makeClusters =
 #(define-music-function
                (parser location arg) (ly:music?)
+   (_i "Display chords in @var{arg} as clusters")
                (music-map note-to-cluster arg))
 
 musicMap =
@@ -343,20 +360,10 @@ musicMap =
             (music-map proc mus))
 
 
-
-oldaddlyrics =
-#(define-music-function (parser location music lyrics) (ly:music? ly:music?)
-
-              (make-music 'OldLyricCombineMusic 
-                          'origin location
-                          'elements (list music lyrics)))
-
-
 overrideProperty =
 #(define-music-function (parser location name property value)
    (string? symbol? scheme?)
 
-
    (_i "Set @var{property} to @var{value} in all grobs named @var{name}.
 The @var{name} argument is a string of the form @code{\"Context.GrobName\"}
 or @code{\"GrobName\"}")
@@ -410,7 +417,7 @@ markups), or inside a score.")
 pageTurn =
 #(define-music-function (location parser) ()
    (_i "Force a page turn between two scores or top-level markups.")
-   (make-music 'EventChord 
+   (make-music 'EventChord
               'page-marker #t
               'line-break-permission 'force
               'page-break-permission 'force
@@ -452,7 +459,7 @@ octaveCheck =
 
    (make-music 'RelativeOctaveCheck
               'origin location
-              'pitch (pitch-of-note pitch-note) 
+              'pitch (pitch-of-note pitch-note)
            ))
 
 ottava = #(define-music-function (parser location octave) (number?)
@@ -464,7 +471,7 @@ partcombine =
                 (make-part-combine-music parser
                                         (list part1 part2)))
 
-             
+
 pitchedTrill =
 #(define-music-function
    (parser location main-note secondary-note)
@@ -483,7 +490,7 @@ pitchedTrill =
           (let*
               ((trill-pitch (ly:music-property (car sec-note-events) 'pitch))
                (forced (ly:music-property (car sec-note-events ) 'force-accidental)))
-            
+
             (if (ly:pitch? trill-pitch)
                 (for-each (lambda (m) (ly:music-set-property! m 'pitch trill-pitch))
                           trill-events)
@@ -534,7 +541,7 @@ Example:
     (define (change-voice)
       "Stores the previously built sequence into the current voice and
        change to the following voice."
-      (list-set! current-voices 0 (cons (make-music 'SequentialMusic 
+      (list-set! current-voices 0 (cons (make-music 'SequentialMusic
                                          'elements (reverse! current-sequence))
                                         (car current-voices)))
       (set! current-sequence (list))
@@ -548,7 +555,7 @@ Example:
             ((not (null? (ly:music-property music 'origin)))
              (ly:music-property music 'origin))
             (else (or (music-origin (ly:music-property music 'element))
-                      (let ((origins (remove not (map music-origin 
+                      (let ((origins (remove not (map music-origin
                                                       (ly:music-property music 'elements)))))
                         (and (not (null? origins)) (car origins)))))))
     ;;
@@ -577,15 +584,15 @@ Example:
                       (let ((moment-reference (ly:music-length (car seqs))))
                         (for-each (lambda (seq moment)
                                     (if (not (equal? moment moment-reference))
-                                        (ly:music-message seq 
+                                        (ly:music-message seq
                                          "Bars in parallel music don't have the same length")))
                           seqs (map-in-order ly:music-length seqs))))
            voices)
    ;;
    ;; bind voice identifiers to the voices
    (map (lambda (voice-id voice)
-          (ly:parser-define! parser voice-id 
-                             (make-music 'SequentialMusic 
+          (ly:parser-define! parser voice-id
+                             (make-music 'SequentialMusic
                                'origin location
                                'elements voice)))
         voice-ids voices))
@@ -642,16 +649,17 @@ resetRelativeOctave  =
 
 
 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))))
 
 
 
 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)
       (shift-one-duration-log x dur dots)) arg))
@@ -670,11 +678,11 @@ 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
-          (list 
+          (list
            'StrokeFingerEvent
            'origin location)
           (if  (string? finger)
@@ -693,7 +701,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}.")
@@ -737,16 +746,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)