]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/ly-examples/tab-example.ly
2874c3456a68191a3e7265f3f70eae86c7ede223
[lilypond.git] / Documentation / web / ly-examples / tab-example.ly
1 \version "2.13.11"
2
3 #(set-global-staff-size 22.45)
4
5 #(define (glissando::calc-extra-dy grob)
6    (let* ((original (ly:grob-original grob))
7           (left-bound (ly:spanner-bound original LEFT))
8           (right-bound (ly:spanner-bound original RIGHT))
9           (left-pitch (ly:event-property (event-cause left-bound) 'pitch))
10           (right-pitch (ly:event-property (event-cause right-bound) 'pitch)))
11
12      (if (and (= (ly:pitch-octave left-pitch) (ly:pitch-octave right-pitch))
13               (= (ly:pitch-notename left-pitch) (ly:pitch-notename right-pitch)))
14          (- (ly:pitch-alteration right-pitch) (ly:pitch-alteration left-pitch))
15          0 )))
16
17 % Hide fret number: useful to draw slide into/from a casual point of
18 % the fretboard.
19 hideFretNumber = {
20   \once \override TabNoteHead #'transparent = ##t
21   \once \override TabNoteHead #'whiteout = ##f
22   \once \override NoteHead #'transparent = ##t
23   \once \override Stem #'transparent = ##t
24   \once \override NoteHead #'no-ledgers = ##t
25 }
26
27 \paper {
28   indent= #0
29   line-width= #180
30 }
31
32 upper= \relative c' {
33   \time 4/4
34   \key e \major
35   \set Staff.midiInstrument = #"acoustic guitar (steel)"
36   \set fingeringOrientations = #'(left)
37
38   \partial 4. \acciaccatura c16 \glissando cis8 e4
39   < cis-1 g'-3 >2 s8 \grace a16 ( \glissando < b-2 >8\3 ) < d-1 > ( b )
40   < e-3 >\2 ( <d-1> b ) \grace < ais-2 >16 ( \glissando a8 g ) s4.
41   s4. < d'\3 g\2 >8 < gis,\4  d'\3 fis\2 >2\arpeggio ~
42   < gis\4 d'\3 fis\2 >2 < b'\2\harmonic e\harmonic >2\fermata
43 }
44
45 lower= \relative c {
46   \set fingeringOrientations = #'(left)
47
48   \partial 4. s4.
49   s4 e,4 s2
50   s2 s8 < e'-3 >4. ~
51   e4 \hideFretNumber \grace { b8 \glissando s4 } < e-2 >4\5 e,2 ~
52   e2 < e'\6\harmonic >
53 }
54
55 \score {
56   \new StaffGroup <<
57     \new Staff = "guitar" <<
58       \context Voice = "upper guitar" {
59         \clef "G_8" \voiceOne
60         \override Glissando #'gap = #0.5
61         \override Glissando #'extra-offset = #'(-0.5 . 0)
62         \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
63         \override Glissando #'minimum-length = #4
64         \override Glissando #'extra-dy = #glissando::calc-extra-dy
65         \upper
66       }
67       \context Voice = "lower guitar" {
68         \clef "G_8" \voiceTwo
69         \override Glissando #'bound-details #'right #'padding = #1
70         \override Glissando #'bound-details #'left #'padding = #0.2
71         \lower
72       }
73     >>
74     \new TabStaff = "tab" <<
75       \context TabVoice = "upper tab" { \clef "moderntab" \voiceOne \upper }
76       \context TabVoice = "lower tab" { \clef "moderntab" \voiceTwo \lower }
77     >>
78   >>
79
80   \layout {
81     \context {
82       \Staff
83       \override StringNumber #'transparent = ##t
84     }
85     \context {
86       \TabStaff
87       \revert Arpeggio #'stencil
88     }
89   }
90 }