]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/music-functions-init.ly
Lilypond-book docs: Remove incomplete sentence
[lilypond.git] / ly / music-functions-init.ly
index e0b36696bab23c20eefaede5e1c1e634baa87faa..c8054927b025df5ebfad68bf88f02cef14e63df9 100644 (file)
@@ -86,19 +86,17 @@ markups), or inside a score.")
                                           'break-permission 'allow))))
 
 appendToTag =
-#(define-music-function (parser location tag music more)
+#(define-music-function (parser location tag more music)
    (symbol? ly:music? ly:music?)
    (_i "Append @var{more} to the @code{elements} of all music
 expressions in @var{music} that are tagged with @var{tag}.")
-   (music-map-copy (lambda (m)
-                    (if (memq tag (ly:music-property m 'tags))
-                        (begin
-                          (set! m (music-clone m))
-                          (set! (ly:music-property m 'elements)
-                                (append (ly:music-property m 'elements)
-                                        (list more)))))
-                    m)
-                  music))
+   (music-map (lambda (m)
+               (if (memq tag (ly:music-property m 'tags))
+                   (set! (ly:music-property m 'elements)
+                         (append (ly:music-property m 'elements)
+                                 (list more))))
+               m)
+             music))
 
 applyContext =
 #(define-music-function (parser location proc) (procedure?)
@@ -846,18 +844,16 @@ print @var{secondary-note} as a stemless note head in parentheses.")
      main-note))
 
 pushToTag =
-#(define-music-function (parser location tag music more)
+#(define-music-function (parser location tag more music)
    (symbol? ly:music? ly:music?)
    (_i "Add @var{more} to the front of @code{elements} of all music
 expressions in @var{music} that are tagged with @var{tag}.")
-   (music-map-copy (lambda (m)
-                    (if (memq tag (ly:music-property m 'tags))
-                        (begin
-                          (set! m (music-clone m))
-                          (set! (ly:music-property m 'elements)
-                                (cons more (ly:music-property m 'elements)))))
-                    m)
-                  music))
+   (music-map (lambda (m)
+               (if (memq tag (ly:music-property m 'tags))
+                   (set! (ly:music-property m 'elements)
+                         (cons more (ly:music-property m 'elements))))
+               m)
+             music))
 
 quoteDuring =
 #(define-music-function (parser location what main-music) (string? ly:music?)
@@ -869,6 +865,14 @@ usually contains spacers or multi-measure rests.")
                'element main-music
                'quoted-music-name what))
 
+relative =
+#(define-music-function (parser location pitch music)
+   ((ly:pitch? (ly:make-pitch 0 0 0)) ly:music?)
+   (_i "Make @var{music} relative to @var{pitch} (default @code{c'}).")
+   (ly:make-music-relative! music pitch)
+   (make-music 'RelativeOctaveMusic
+              'element music))
+
 removeWithTag =
 #(define-music-function (parser location tag music) (symbol? ly:music?)
    (_i "Remove elements of @var{music} that are tagged with @var{tag}.")