]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly
Imported Upstream version 2.19.45
[lilypond.git] / Documentation / snippets / bar-chords-notation-for-guitar-with-text-spanner.ly
diff --git a/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly
new file mode 100644 (file)
index 0000000..d0028da
--- /dev/null
@@ -0,0 +1,74 @@
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
+
+\header {
+  lsrtags = "chords, fretted-strings"
+
+  texidoc = "
+Here is how to print bar chords (or barre chords) or half-bar chords
+(just uncomment the appropriate line for to select either one). The
+syntax is : @code{\\bbarre #'fret_number' note(s)}
+
+
+
+
+
+
+"
+  doctitle = "Bar chords notation for Guitar (with Text Spanner)"
+} % begin verbatim
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%%%%%%  Cut here ----- Start 'bbarred.ly'
+
+%% C with slash -------------------------------
+cWithSlash = \markup {
+  \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
+}
+%% Span -----------------------------------
+%% Syntax: \bbarre #"text" { notes } - text = any number of box
+bbarre =
+#(define-music-function (barre location str music) (string? ly:music?)
+   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
+     (if (pair? elts)
+         (let ((first-element (first elts))
+               (last-element (last elts)))
+           (set! (ly:music-property first-element 'articulations)
+                 (cons (make-music 'TextSpanEvent 'span-direction -1)
+                       (ly:music-property first-element 'articulations)))
+           (set! (ly:music-property last-element 'articulations)
+                 (cons (make-music 'TextSpanEvent 'span-direction 1)
+                       (ly:music-property last-element 'articulations))))))
+   #{
+       \once \override TextSpanner.font-size = #-2
+       \once \override TextSpanner.font-shape = #'upright
+       \once \override TextSpanner.staff-padding = #3
+       \once \override TextSpanner.style = #'line
+       \once \override TextSpanner.to-barline = ##f
+       \once \override TextSpanner.bound-details =
+            #`((left
+                (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
+                (Y . 0)
+                (padding . 0.25)
+                (attach-dir . -2))
+               (right
+                (text . ,#{ \markup { \cWithSlash #str } #})
+                (Y . 0)
+                (padding . 0.25)
+                (attach-dir . 2)))
+%% uncomment this line for make full barred
+      % \once \override TextSpanner.bound-details.left.text = \markup{"B" #str}
+      $music
+   #})
+
+%% %%%%%%%  Cut here ----- End 'bbarred.ly'
+%% Copy and change the last line for full barred. Rename in 'fbarred.ly'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
+\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[  c' d c d8] } }