]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly
Run scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / Documentation / snippets / bar-chords-notation-for-guitar--with-text-spanner.ly
index 72da8a3a2ddcf8c8cb5c5e05f3f81334723c2d2f..8946b8a29c3d6393ba3059823ced3c554fb18870 100644 (file)
@@ -1,7 +1,11 @@
-%% Do not edit this file; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.13.4"
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.15.30
+\version "2.16.0"
 
 \header {
   lsrtags = "chords, fretted-strings"
 Here is how to print bar chords, or half-bar chords (just uncomment the
 appropriate line for to select either one).
 
-The syntax is @code{\\bbarre #'fret_number' @{ notes @} } 
-
-
-
-
+The syntax is @code{\\bbarre #\"@var{fret number}\" @{ notes @} }.
 "
-  doctitle = "Bar chords notation for Guitar ( with Text Spanner)"
+  doctitle = "Bar chords notation for Guitar (with Text Spanner)"
 } % begin verbatim
 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% %%%%%%%  Cut here ----- Start 'bbarred.ly' 
+%% %%%%%%%  Cut here ----- Start 'bbarred.ly'
 
-%% PostScript -------------------------------
-pScript= \markup { 
-       \with-dimensions #'(0 . 0.8) #'(0 . 2.0) 
-       \postscript     #"
-       0.15 setlinewidth 
-       /Times-Roman findfont
-       2.0 scalefont
-       setfont
-       (C)show %%change with B if you prefer
-       %(B)show %%change with C if you prefer
-       stroke
-       0.7 -0.5 moveto
-       0.7  1.7 lineto
-       stroke"
+%% 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 ((spanned-music 
-                   (let ((first-element #f)
-                         (last-element #f)
-                         (first-found? #f))
-                     (music-map (lambda (m)
-                                  (if (eqv? (ly:music-property m 'name) 'EventChord)
-                                      (begin
-                                        (if (not first-found?) 
-                                            (begin
-                                              (set! first-found? #t)
-                                              (set! first-element m)))
-                                        (set! last-element m)))
-                                  m)
-                                music)
-                     (if first-found?
-                         (begin
-                           (set! (ly:music-property first-element 'elements)
-                                 (cons (make-music 'TextSpanEvent 'span-direction -1)
-                                       (ly:music-property first-element 'elements)))
-                           (set! (ly:music-property last-element 'elements)
-                                 (cons (make-music 'TextSpanEvent 'span-direction 1)
-                                       (ly:music-property last-element 'elements)))))
-                     music)))
-             (make-music 'SequentialMusic
-               'origin location
-               'elements (list #{
-                       \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 (Y . 0) (padding . 0.25) (attach-dir . -2)) (right (Y . 0) (padding . 0.25) (attach-dir . 2))) 
-                        \once  \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'( 0 . -.5) }
-                        \once  \override TextSpanner #'bound-details #'left #'text =  \markup { \pScript $str } 
+%% 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 }                         
-                          #}
-    spanned-music))))
+       % \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'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%% %%%%%%%  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                    
+%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
 \relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[  c' d c d8] } }