especially common in popular music to use chord diagrams above
a staff of traditional notation. The guitar and the banjo are
transposing instruments, sounding an octave lower than written.
-Scores for these instruments should use the @code{"treble_8"} clef.
+Scores for these instruments should use the @code{"treble_8"} clef (or
+@code{\transposition c} to get correct MIDI output).
Some other elements pertinent to fretted string instruments
are covered elsewhere:
@ref{Writing music in parallel},
@ref{Arpeggio},
@ref{List of articulations},
-@ref{Clef}.
+@ref{Clef},
+@ref{Instrument transpositions}.
@node String number indications
@funindex TabVoice
Music for plucked string instruments is frequently notated using a
-finger/touch notation or tablature. In contrast to traditional
+finger/touch notation or tablature. In contrast to traditional
notation pitches are not denoted with note heads, but by numbers (or
-letterlike symbols in historical intavolatura). The numbers
-indicate on which string and fret a note must be played. The numbers
+letterlike symbols in historical intavolatura). The numbers
+indicate on which string and fret a note must be played. The numbers
are printed on top of each other if they are to be played
simultaneously.
+By default, string 1 is the highest, and the tuning defaults to the
+standard guitar tuning (with 6 strings). The notes are printed as
+tablature, by using @code{TabStaff} and @code{TabVoice} contexts. A
+calligraphic tablature clef is added automatically.
-By default, string 1 is the highest,
-and the tuning defaults to the standard guitar tuning (with 6 strings).
-The notes are printed as tablature, by using @code{TabStaff} and
-@code{TabVoice} contexts
-
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\new TabStaff \relative c' {
- a,8 a' <c e> a
- d, a' <d f> a
+ a,8 a' <c e> a
+ d,8 a' <d f> a
}
@end lilypond
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
- c8_.\<\( c16 c ~ c2\!
+ c8_.\<\( c16 c~ c2\!
c'2.\prall\)
}
\score {
<<
\new Staff { \clef "G_8" \symbols }
- \new TabStaff { \symbols }
+ \new TabStaff { \symbols }
>>
}
@end lilypond
If all musical symbols used in traditional notation should also show up
in tablature one has to apply the command @code{\tabFullNotation} in a
-@code{TabStaff}-context. Please bear in mind that half notes are
+@code{TabStaff}-context. Please bear in mind that half notes are
double-stemmed in tablature in order to distinguish them from quarter
notes.
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
- c8_.\<\( c16 c ~ c2\!
+ c8_.\<\( c16 c~ c2\!
c'2.\prall\)
}
}
@end lilypond
-@funindex minimumFret
-
@cindex fret
+@funindex minimumFret
+
By default pitches are assigned to the lowest playing position on the
-fret-board (first position). Open strings are automatically preferred.
+fret-board (first position). Open strings are automatically preferred.
If you would like a certain pitch to be played on a specific string
-you can add a string number indication to the pitch name. If you
+you can add a string number indication to the pitch name. If you
define pitch names and string numbers without a chord construct
(@code{<>}) the string number indications do not appear in traditional
-notation. It is much more comfortable to define the playing position
-by using the value of @code{minimumFret}. The default value for
+notation. It is much more comfortable to define the playing position
+by using the value of @code{minimumFret}. The default value for
minimumFret is 0.
>>
@end lilypond
+@funindex \tabChordRepetition
+
+Chord constructs can be repeated by the chord repetition symbol @code{q}.
+To use this feature in combination with tablature, @code{\tabChordRepetition}
+is provided. It preserves the string information explicitly given within
+chord constructs so repeated chords get identical tablature representations.
+
+@lilypond[quote,verbatim]
+\tabChordRepetition
+
+guitar = \relative c' {
+ r8 <gis\4 cis\3 b\2>~ q4 q8~ q q4
+}
-Ties over a line break are parenthesized by default. The same holds for
+\new StaffGroup <<
+ \new Staff {
+ \clef "treble_8"
+ \override Voice.StringNumber #'transparent = ##t
+ \guitar
+ }
+ \new TabStaff {
+ \guitar
+ }
+>>
+@end lilypond
+
+
+Ties over a line break are parenthesized by default. The same holds for
the second alternative of a repeat.
@lilypond[quote,ragged-right,verbatim]
ties = \relative c' {
- \repeat volta 2 {
- e2. f4~
- f2 g2~ }
- \alternative {
- { g4 f2. }
- { g4\repeatTie c,2. }
- }
- b1~\break
- b1 \bar "|."
+ \repeat volta 2 {
+ e2. f4~
+ f2 g2~
+ }
+ \alternative {
+ { g4 f2. }
+ { g4\repeatTie c,2. }
+ }
+ b1~
+ \break
+ b1
+ \bar "|."
}
\score {
<<
\new StaffGroup <<
- \context Staff {
+ \context Staff {
\clef "treble_8"
\ties
- }
- \context TabStaff {
+ }
+ \context TabStaff {
\ties
}
>>
@lilypond[quote,ragged-right,verbatim]
ties = \relative c' {
- \repeat volta 2 {
- e2. f4~
- f2 g2~ }
- \alternative {
- { g4 f2. }
- { g4\repeatTie c,2. }
- }
- b1~\break
- b1 \bar "|."
+ \repeat volta 2 {
+ e2. f4~
+ f2 g2~ }
+ \alternative {
+ { g4 f2. }
+ { g4\repeatTie c,2. }
+ }
+ b1~
+ \break
+ b1
+ \bar "|."
}
\score {
<<
\new StaffGroup <<
- \context Staff {
+ \context Staff {
\clef "treble_8"
\ties
- }
- \context TabStaff {
+ }
+ \context TabStaff {
\hideSplitTiedTabNotes
\ties
}
@lilypond[verbatim, quote, relative=1]
\new TabStaff {
\new TabVoice {
- <c g'\harmonic> d\2\glissando e\2
+ <c g'\harmonic>4 d\2\glissando e\2
}
}
@end lilypond
specially-created voices:
@lilypond[quote,ragged-right,verbatim]
-melodia = \partcombine { e4 g g g }{ e4 e e e }
+melodia = \partcombine { e4 g g g } { e4 e e e }
<<
\new TabStaff <<
\new TabVoice = "one" s1
@cindex tablatures, custom
@cindex tablature, banjo
@cindex tablature, mandolin
+@cindex tablature, guitar
@cindex tablature, bass guitar
+@cindex tablature, ukulele
@cindex tablature, predefined string tunings
@cindex fretted instruments, predefined string tunings
@cindex predefined string tunings for fretted instruments
@lilypond[quote,verbatim]
mynotes = {
- c'4 e' g' c'' |
- e'' g'' b'' c'''
+ c'4 e' g' c'' |
+ e''4 g'' b'' c'''
}
<<
>>
@end lilypond
+@cindex moderntab clef
+@cindex clef, moderntab
+@cindex clef, tab
+@cindex tab clef
+
+A modern tab clef can also be used.
+
+@lilypond[quote,ragged-right,verbatim]
+\new TabStaff {
+ \clef moderntab
+ <a, e a>1
+ \break
+ \clef tab
+ <a, e a>1
+}
+@end lilypond
+
+The modern tab clef supports tablatures from 4 to 7 strings.
@seealso
Installed Files:
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;"
+ }
}
>>
@end lilypond
}
\context Staff {
\clef "treble_8"
- < f, c f a c' f'>1 ^\markup
+ <f, c f a c' f'>1^\markup {
\fret-diagram #"c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
- < g, d g b d' g'> ^\markup
+ }
+ <g, d g b d' g'>1^\markup {
\fret-diagram #"c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
+ }
}
>>
@end lilypond
@cindex fret-diagram markup
+@cindex ukulele
@funindex fret-diagram
@funindex \fret-diagram
}
\context Staff {
\clef "treble_8"
- < f, c f a c' f'>1 ^\markup
+ <f, c f a c' f'>1^\markup {
\fret-diagram #"s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
- < g, b, d g b g'> ^\markup
+ }
+ <g, b, d g b g'>1^\markup {
\fret-diagram #"h:6;6-3;5-2;4-o;3-o;2-o;1-3;"
+ }
}
>>
@end lilypond
-The number of strings in a fret diagram can be changed to accomodate
+The number of strings in a fret diagram can be changed to accommodate
different instruments such as banjos and ukuleles with the fret-diagram
markup string.
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- a1
- }
+ \chordmode {
+ a1
+ }
}
\context Staff {
- %% An A chord for ukulele
- a'1 ^\markup \fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;"
+ % An 'A' chord for ukulele
+ a'1^\markup {
+ \fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;"
+ }
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram #"f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
+ }
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
+ }
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram-terse #"x;3;2;o;1;o;"
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram-terse #"x;x;o;2;3;1;"
+ }
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- f1 g
- }
+ \chordmode {
+ f1 g
+ }
}
\context Staff {
\clef "treble_8"
- < f, c f a c' f'>1 ^\markup
+ <f, c f a c' f'>1^\markup {
\fret-diagram-terse #"1-(;3;3;2;1;1-);"
- < g, d g b d' g'> ^\markup
+ }
+ <g, d g b d' g'>1^\markup {
\fret-diagram-terse #"3-(;5;5;4;3;3-);"
+ }
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context Staff {
\override Voice.TextScript
#'(fret-diagram-details finger-code) = #'below-string
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram-terse #"x;3-3;2-2;o;1-1;o;"
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram-terse #"x;x;o;2-2;3-3;1-1;"
+ }
}
>>
@end lilypond
the fret-diagram-terse markup.
@cindex fret-diagram-verbose markup
+@cindex capo
@funindex fret-diagram-verbose
@funindex \fret-diagram-verbose
element of the list indicates an item to be placed on the fret diagram.
@lilypond[quote, verbatim]
-<< \context ChordNames {
- \chordmode {
- c1 d:m
- }
- }
+<<
+ \context ChordNames {
+ \chordmode {
+ c1 d:m
+ }
+ }
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ <c e g c' e'>1^\markup {
\fret-diagram-verbose #'(
(mute 6)
(place-fret 5 3)
(place-fret 2 1)
(open 1)
)
- < d a d' f'> ^\markup
+ }
+ <d a d' f'>1^\markup {
\fret-diagram-verbose #'(
(mute 6)
(mute 5)
(place-fret 2 3)
(place-fret 1 1)
)
+ }
}
>>
@end lilypond
@c \override is necessary to make fingering visible
@lilypond[quote, verbatim]
<<
- \context ChordNames {
- \chordmode {
- f1 g c
- }
- }
+ \context ChordNames {
+ \chordmode {
+ f1 g c
+ }
+ }
\context Staff {
\clef "treble_8"
\override Voice.TextScript
#'(fret-diagram-details finger-code) = #'below-string
-
- < f, c f a c' f'>1 ^\markup
+ <f, c f a c' f'>1^\markup {
\fret-diagram-verbose #'(
(place-fret 6 1)
(place-fret 5 3)
(place-fret 1 1)
(barre 6 1 1)
)
- < g, b, d g b g'> ^\markup
+ }
+ <g, b, d g b g'>1^\markup {
\fret-diagram-verbose #'(
(place-fret 6 3 2)
(place-fret 5 2 1)
(open 2)
(place-fret 1 3 3)
)
- < c e g c' e'> ^\markup
+ }
+ <c e g c' e'>1^\markup {
\fret-diagram-verbose #'(
(capo 3)
(mute 6)
(place-fret 3 5 2)
(place-fret 2 5 3)
)
- }
+ }
+ }
>>
@end lilypond
@lilypond[verbatim,ragged-right,quote]
\new Voice {
\clef "treble_8"
- d^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
- d d d
- fis^\markup \override #'(size . 0.75) {
- \override #'(finger-code . below-string) {
- \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
- (place-fret 5 4 3)
- (place-fret 4 4 4)
- (place-fret 3 3 2)
- (place-fret 2 2 1)
- (place-fret 1 2 1))
+ d4^\markup {
+ \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+ }
+ d4 d d
+ fis^\markup {
+ \override #'(size . 0.75) {
+ \override #'(finger-code . below-string) {
+ \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
+ (place-fret 5 4 3)
+ (place-fret 4 4 4)
+ (place-fret 3 3 2)
+ (place-fret 2 2 1)
+ (place-fret 1 2 1))
+ }
}
}
- fis fis fis
- c^\markup \override #'(dot-radius . 0.35) {
- \override #'(finger-code . in-dot) {
- \override #'(dot-color . white) {
- \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
+ fis4 fis fis
+ c^\markup {
+ \override #'(dot-radius . 0.35) {
+ \override #'(finger-code . in-dot) {
+ \override #'(dot-color . white) {
+ \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
+ }
}
}
}
- c c c
+ c4 c c
}
@end lilypond
@end ignore
@snippets
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{customizing-markup-fret-diagrams.ly}
+{changing-fret-orientations.ly}
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{customizing-markup-fret-diagrams.ly}
@seealso
Notation Reference:
@cindex fret diagrams
+@cindex fret diagrams, ukulele
@cindex chord diagrams
@funindex FretBoards
@lilypond[verbatim, ragged-right,quote]
\include "predefined-guitar-fretboards.ly"
\context FretBoards {
- \chordmode {c1}
+ \chordmode { c1 }
<c' e' g'>1
}
@end lilypond
mychordlist = {
\mychords
- \transpose c e { \mychords}
+ \transpose c e { \mychords }
}
<<
\context ChordNames {
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\storePredefinedDiagram \chordmode {c:maj9}
+\storePredefinedDiagram \chordmode { c:maj9 }
#guitar-tuning
#"x;3-2;o;o;o;o;"
-mychords = \chordmode{
+mychords = \chordmode {
c1 c:maj9
}
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\storePredefinedDiagram \chordmode {c''}
+\storePredefinedDiagram \chordmode { c'' }
#guitar-tuning
#(offset-fret 2 (chord-shape 'bes guitar-tuning))
-mychords = \chordmode{
+mychords = \chordmode {
c1 c''
}
@cindex chord shapes for fretted instruments
@funindex \addChordShape
-@funindex add ChordShape
+@funindex addChordShape
@funindex storePredefinedDiagram
@funindex \storePredefinedDiagram
In addition to fret diagrams, LilyPond stores an internal list of chord
shapes. The chord shapes are fret diagrams that can be shifted along
-the neck to different posistions to provide different chords. Chord
+the neck to different positions to provide different chords. Chord
shapes can be added to the internal list and then used to define
predefined fret diagrams. Because they can be moved to various
positions on the neck, chord shapes will normally not contain
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-% add a new chord shape
+% Add a new chord shape
\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
% add some new chords based on the power chord shape
-\storePredefinedDiagram \chordmode {f''}
+\storePredefinedDiagram \chordmode { f'' }
#guitar-tuning
#(chord-shape 'powerf guitar-tuning)
-\storePredefinedDiagram \chordmode {g''}
+\storePredefinedDiagram \chordmode { g'' }
#guitar-tuning
#(offset-fret 2 (chord-shape 'powerf guitar-tuning))
@lilypond[quote,ragged-right,verbatim]
<<
\context ChordNames {
- \chordmode {
- f1 g
- }
+ \chordmode {
+ f1 g
+ }
}
\context FretBoards {
- < f, c f a c' f'>1
- < g,\6 b, d g b g'>
+ <f, c f a c' f'>1
+ <g,\6 b, d g b g'>1
}
\context Staff {
\clef "treble_8"
- < f, c f a c' f'>1
- < g, b, d g b' g'>
+ <f, c f a c' f'>1
+ <g, b, d g b' g'>1
}
>>
@end lilypond
#"x;3-1-(;5-2;5-3;5-4;3-1-1);"
<<
\context ChordNames {
- \chordmode {
- c1 c c
- }
+ \chordmode {
+ c1 c c
+ }
}
\context FretBoards {
<c e g c' e'>1
\predefinedFretboardsOff
- <c e g c' e'>
+ <c e g c' e'>1
\predefinedFretboardsOn
- <c e g c' e'>
+ <c e g c' e'>1
}
\context Staff {
\clef "treble_8"
<c e g c' e'>1
- <c e g c' e'>
- <c e g c' e'>
+ <c e g c' e'>1
+ <c e g c' e'>1
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
- }
+ \chordmode {
+ c1 d:m
+ }
}
\context FretBoards {
- < c-3 e-2 g c'-1 e' > 1
- < d a-2 d'-3 f'-1>
+ <c-3 e-2 g c'-1 e'>1
+ <d a-2 d'-3 f'-1>1
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1
- < d a d' f'>
+ <c e g c' e'>1
+ <d a d' f'>1
}
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- d1:m d:m
- }
+ \chordmode {
+ d1:m d:m
+ }
}
\context FretBoards {
- < d a d' f'>
+ <d a d' f'>1
\set FretBoards.minimumFret = #5
- < d a d' f'>
+ <d a d' f'>1
}
\context Staff {
\clef "treble_8"
- < d a d' f'>
- < d a d' f'>
+ <d a d' f'>1
+ <d a d' f'>1
}
>>
@end lilypond
chord construct @code{<>} for them to be printed in the score,
even when applied to a single note.
-@warning{There @strong{must} be a hyphen after the note and a space
-before the closing @code{>}.}
+@warning{There @strong{must} be a hyphen before
+@code{@bs{}rightHandFinger} and a space before the closing @code{>}.}
@lilypond[quote,verbatim,relative=0]
\clef "treble_8"
@lilypond[quote,ragged-right,verbatim]
\relative c' {
\clef "treble_8"
- \override Staff.NoteHead #'style = #'cross
- g8 a b c b4
\override Staff.NoteHead #'style = #'harmonic-mixed
d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
}
@end lilypond
+Dampened notes (also called @notation{dead notes}) are supported
+within normal and tablature staves:
+
+@lilypond[quote,ragged-right,verbatim]
+music = \relative c' {
+ < a\3 \deadNote c\2 a'\1 >4
+ < b\3 \deadNote d\2 b'\1 >
+ < c\3 \deadNote e\2 c'\1 >
+ \deadNotesOn
+ \times 2/3 { g8 b e }
+ \deadNotesOff
+ < a,\3 c\2 e\1 >1
+}
+\new StaffGroup <<
+ \new Staff {
+ \clef "treble_8"
+ \music
+ }
+ \new TabStaff {
+ \music
+ }
+>>
+@end lilypond
+
+Another playing technique (especially used on electric guitars) is
+called @notation{palm mute}. The string is hereby partly muted by the
+palm of the striking hand (hence the name). Lilypond supports
+the notation of palm mute-style notes by changing the note head to a
+triangle shape.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Voice { % Warning: explicit Voice instantiation is
+ % required to have palmMuteOff work properly
+ % when palmMuteOn comes at the beginning of
+ % the piece.
+ \relative c, {
+ \clef "G_8"
+ \palmMuteOn
+ e8^\markup { \musicglyph #"noteheads.u2do" = palm mute }
+ < e b' e > e
+ \palmMuteOff
+ e e \palmMute e e e |
+ e8 \palmMute { e e e } e e e e |
+ < \palmMute e b' e >8 \palmMute { e e e } < \palmMute e b' e >2
+ }
+}
+@end lilypond
@seealso
Snippets: