]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/new/adding-extra-fingering-with-scheme.ly
Imported Upstream version 2.18.0
[lilypond.git] / Documentation / snippets / new / adding-extra-fingering-with-scheme.ly
diff --git a/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly
new file mode 100644 (file)
index 0000000..b4d32ff
--- /dev/null
@@ -0,0 +1,39 @@
+\version "2.16.0"
+
+\header {
+  lsrtags = "scheme-language"
+
+  texidoc = "
+You can add additional elements to notes using @code{map-some-music}. In this
+example, an extra script is attached to a note.
+
+In general, first do a @code{\\displayMusic} of the music you want to
+create, then write a function that will work on the appropriate parts
+of the music for you.
+"
+  doctitle = "Adding extra fingering with scheme"
+}
+
+addScript =
+#(define-music-function (parser location script music)
+   (ly:event? ly:music?)
+   (map-some-music
+    (lambda (mus)
+      (define (append-script-at! prop)
+        (set! (ly:music-property mus prop)
+              (append (ly:music-property mus prop)
+                      (list (ly:music-deep-copy script))))
+        mus)
+      (case (ly:music-property mus 'name)
+        ((EventChord)
+         (append-script-at! 'elements))
+        ((NoteEvent)
+         (append-script-at! 'articulations))
+        (else #f)))
+    music))
+
+\score {
+  {
+    \addScript _6 { c'4-3 <c' e' g'> }
+  }
+}