]> git.donarmstrong.com Git - lilypond.git/commitdiff
Move chordGlissando into music-functions-init.ly
authorGraham Percival <graham@percival-music.ca>
Mon, 7 Mar 2011 12:33:57 +0000 (12:33 +0000)
committerGraham Percival <graham@percival-music.ca>
Mon, 7 Mar 2011 12:33:57 +0000 (12:33 +0000)
Documentation/snippets/chord-glissando-in-tablature.ly
Documentation/snippets/new/chord-glissando-in-tablature.ly
ly/chord-glissando-init.ly [deleted file]
ly/music-functions-init.ly

index f1ab4d37cd0e34db1e6fa44a682de4eb4dfa5e49..6bd5505fd0018853d7df7efabe5899360e789581 100644 (file)
@@ -19,8 +19,6 @@ and @code{\\chordGlissando} draws lines between single notes.
 } % begin verbatim
 
 
-\include "chord-glissando-init.ly"
-
 myMusic = \relative c' {
   \chordGlissando
   <c\3 e\2 g\1>8 <f\3 a\2 c\1>
index e3d3f610ae3ba71ad8ef16f3dedf6a35b9853b22..1f5e08834d06d67a4e39bd9a0d7b1d1e74b229e0 100644 (file)
@@ -11,8 +11,6 @@ and @code{\chordGlissando} draws lines between single notes.
   doctitle = "Chord glissando in tablature"
 }
 
-\include "chord-glissando-init.ly"
-
 myMusic = \relative c' {
   \chordGlissando
   <c\3 e\2 g\1>8 <f\3 a\2 c\1>
diff --git a/ly/chord-glissando-init.ly b/ly/chord-glissando-init.ly
deleted file mode 100644 (file)
index f59c99d..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-%%%% This file is part of LilyPond, the GNU music typesetter.
-%%%%
-%%%% Copyright (C) 2010 Carl D. Sorensen <c_sorensen@byu.edu>
-%%%%
-%%%% LilyPond is free software: you can redistribute it and/or modify
-%%%% it under the terms of the GNU General Public License as published by
-%%%% the Free Software Foundation, either version 3 of the License, or
-%%%% (at your option) any later version.
-%%%%
-%%%% LilyPond is distributed in the hope that it will be useful,
-%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
-%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%%%% GNU General Public License for more details.
-%%%%
-%%%% You should have received a copy of the GNU General Public License
-%%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
-
-\version "2.13.49"
-
-%%  Make slide indication for chords
-chordGlissando =
-#(define-music-function (parser location mus1 mus2) (ly:music? ly:music?)
-   "Make a glissando between the notes of triads @code{mus1} and @code{mus2}."
-
-   (define (add-glissando musChord)
-     (let ((els (ly:music-property musChord 'elements)))
-       (ly:music-set-property! musChord 'elements (append els (list (make-music 'GlissandoEvent))))
-       musChord))
-
-   (define (get-notes musicChord)
-     (filter (lambda(x) (eq? (ly:music-property x 'name) 'NoteEvent))
-             (ly:music-property musicChord 'elements)))
-
-   (define (select-note musChord index)
-     (let* ((notes (get-notes musChord))
-            (non-notes (filter (lambda (x)
-                                 (not (eq? (ly:music-property x 'name)
-                                           'NoteEvent)))
-                               (ly:music-property musChord 'elements)))
-            (selected-note (list-ref notes index))
-            (new-els (cons selected-note non-notes))
-            (new-mus (ly:music-deep-copy musChord)))
-       (ly:music-set-property! new-mus 'elements new-els)
-       new-mus))
-
-   (define (add-glissando-line mus1 mus2 index)
-     (context-spec-music
-      (context-spec-music
-       (make-sequential-music
-        (list
-         hideNotes
-         (make-grob-property-set 'StringNumber 'transparent #t)
-         (make-grob-property-set 'NoteColumn 'ignore-collision #t)
-         ;; obviously, this isn't equivalent to \once,
-         ;; so could be changed if required
-         (make-grob-property-set 'Glissando 'thickness 2)
-         (make-grob-property-set 'DynamicText 'transparent #t)
-         (make-grob-property-set 'DynamicLineSpanner 'transparent #t)
-         (make-grob-property-set 'DynamicTextSpanner 'transparent #t)
-         (add-glissando (select-note mus1 index))
-         (select-note mus2 index)))
-       'Bottom (symbol->string (gensym)))
-      'Staff))
-
-   (let* ((notes1 (get-notes mus1))
-          (notes2 (get-notes mus2))
-          (note-count (min (length notes1) (length notes2))))
-
-    #{
-       \once \override Glissando #'minimum-length = #4
-       \once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
-     <<
-       {
-         $(add-glissando mus1)
-         $mus2
-       }
-       $(make-simultaneous-music
-           (map (lambda (x)
-                        (add-glissando-line mus1 mus2 x))
-                (iota note-count)))
-    >>
-    \revert NoteColumn #'ignore-collision
-  #}))
index 2ebbd8f1bce3bd83b240ffa066b754d6cac37b82..10643a3bab9708e7d6f32f3c93e17a85cb2ccd4c 100644 (file)
@@ -204,7 +204,70 @@ breathe =
    (_i "Insert a breath mark.")
    (make-music 'BreathingEvent))
 
-
+%%  Make slide indication for chords
+chordGlissando =
+#(define-music-function (parser location mus1 mus2) (ly:music? ly:music?)
+   "Make a glissando between the notes of triads @code{mus1} and @code{mus2}."
+
+   (define (add-glissando musChord)
+     (let ((els (ly:music-property musChord 'elements)))
+       (ly:music-set-property! musChord 'elements (append els (list (make-music 'GlissandoEvent))))
+       musChord))
+
+   (define (get-notes musicChord)
+     (filter (lambda(x) (eq? (ly:music-property x 'name) 'NoteEvent))
+             (ly:music-property musicChord 'elements)))
+
+   (define (select-note musChord index)
+     (let* ((notes (get-notes musChord))
+            (non-notes (filter (lambda (x)
+                                 (not (eq? (ly:music-property x 'name)
+                                           'NoteEvent)))
+                               (ly:music-property musChord 'elements)))
+            (selected-note (list-ref notes index))
+            (new-els (cons selected-note non-notes))
+            (new-mus (ly:music-deep-copy musChord)))
+       (ly:music-set-property! new-mus 'elements new-els)
+       new-mus))
+
+   (define (add-glissando-line mus1 mus2 index)
+     (context-spec-music
+      (context-spec-music
+       (make-sequential-music
+        (list
+         hideNotes
+         (make-grob-property-set 'StringNumber 'transparent #t)
+         (make-grob-property-set 'NoteColumn 'ignore-collision #t)
+         ;; obviously, this isn't equivalent to \once,
+         ;; so could be changed if required
+         (make-grob-property-set 'Glissando 'thickness 2)
+         (make-grob-property-set 'DynamicText 'transparent #t)
+         (make-grob-property-set 'DynamicLineSpanner 'transparent #t)
+         (make-grob-property-set 'DynamicTextSpanner 'transparent #t)
+         (add-glissando (select-note mus1 index))
+         (select-note mus2 index)))
+       'Bottom (symbol->string (gensym)))
+      'Staff))
+
+   (let* ((notes1 (get-notes mus1))
+          (notes2 (get-notes mus2))
+          (note-count (min (length notes1) (length notes2))))
+
+    #{
+       \once \override Glissando #'minimum-length = #4
+       \once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+     <<
+       {
+         $(add-glissando mus1)
+         $mus2
+       }
+       $(make-simultaneous-music
+           (map (lambda (x)
+                        (add-glissando-line mus1 mus2 x))
+                (iota note-count)))
+    >>
+    \revert NoteColumn #'ignore-collision
+  #}))
 
 clef =
 #(define-music-function (parser location type) (string?)