Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.6"
+@c \version "2.19.28"
@node Fretted string instruments
@section Fretted string instruments
* Common notation for fretted strings::
* Guitar::
* Banjo::
+* Lute::
@end menu
@node Common notation for fretted strings
The string on which a note should be played may be indicated by
appending @code{\@var{number}} to a note.
-@lilypond[verbatim,quote,relative=0]
+@lilypond[verbatim,quote,fragment]
\clef "treble_8"
c4\5 e\4 g2\3
-<c,\5 e\4 g\3>1
+<c\5 e\4 g\3>1
@end lilypond
When fingerings and string indications are used together, their
applied to whole chords or single notes @emph{outside} of chords,
fingerings are placed using a different mechanism.
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote,fragment]
\clef "treble_8"
g4\3-0
g-0\3
<g-0\3>
@end lilypond
+String numbers may also, as is customary with unfretted strings,
+be printed in Roman numerals and placed below the staff rather
+than above.
+
+@lilypond[verbatim,quote,fragment]
+\clef "treble_8"
+c'2\2
+a\3
+\romanStringNumbers
+c'\2
+\set stringNumberOrientations = #'(down)
+a\3
+\arabicStringNumbers
+g1\4
+@end lilypond
+
@snippets
@lilypondfile[verbatim,quote,texidoc,doctitle]
@lilypondfile[verbatim,quote,texidoc,doctitle]
{allowing-fingerings-to-be-printed-inside-the-staff.ly}
+@predefined
+@code{\arabicStringNumbers},
+@code{\romanStringNumbers}.
+@endpredefined
+
@seealso
Notation Reference:
@ref{Fingering instructions}.
calligraphic tablature clef is added automatically.
@lilypond[quote,ragged-right,verbatim]
-\new TabStaff \relative c' {
+\new TabStaff \relative {
a,8 a' <c e> a
d,8 a' <d f> a
}
@end lilypond
Default tablatures do not contain any symbols for tone duration nor any
-other musical symbols such as e.g. expressive marks.
+other musical symbols such as expressive marks, for example.
@lilypond[quote,ragged-right,verbatim]
symbols = {
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
- c8_.\<\( c16 c~ c2\!
+ c8_.\<\( c16 c~ 2\!
c'2.\prall\)
}
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
- c8_.\<\( c16 c~ c2\!
+ c8_.\<\( c16 c~ 2\!
c'2.\prall\)
}
to @code{#t}.
@lilypond[quote,ragged-right,verbatim]
-\layout { \override Voice.StringNumber.stencil = ##f }
+\layout { \omit Voice.StringNumber }
\new StaffGroup <<
- \new Staff \relative c {
+ \new Staff \relative {
\clef "treble_8"
\time 2/4
c16 d e f g4
c,16\5 d\5 e\4 f\4 g4\4
c,16 d e f g4
}
- \new TabStaff \relative c {
+ \new TabStaff \relative {
c16 d e f g4
c,16\5 d\5 e\4 f\4 g4\4
\set TabStaff.minimumFret = #5
@funindex \tabChordRepeats
@funindex \chordRepeats
-@cindex Chord, repetition
+@cindex chord, repetition
@cindex repetition, using @code{q}
+@cindex @code{q}, chord repetition
Chord constructs can be repeated by the chord repetition symbol
@code{q}. In combination with tabulatures, its behavior of removing
as @code{\tabChordRepeats}.
@lilypond[quote,verbatim]
-guitar = \relative c' {
- r8 <gis-2 cis-3 b-0>~ q4 q8~ q q4
+guitar = \relative {
+ r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4
}
\new StaffGroup <<
the second alternative of a repeat.
@lilypond[quote,ragged-right,verbatim]
-ties = \relative c' {
+ties = \relative {
\repeat volta 2 {
- e2. f4~
- f2 g2~
+ e'2. f4~
+ 2 g2~
}
\alternative {
{ g4 f2. }
\score {
<<
\new StaffGroup <<
- \context Staff {
+ \new Staff {
\clef "treble_8"
\ties
}
- \context TabStaff {
+ \new TabStaff {
\ties
}
>>
engraving fret numbers in parentheses:
@lilypond[quote,ragged-right,verbatim]
-ties = \relative c' {
+ties = \relative {
\repeat volta 2 {
- e2. f4~
- f2 g2~ }
+ e'2. f4~
+ 2 g2~ }
\alternative {
{ g4 f2. }
{ g4\repeatTie c,2. }
\score {
<<
\new StaffGroup <<
- \context Staff {
+ \new Staff {
\clef "treble_8"
\ties
}
- \context TabStaff {
+ \new TabStaff {
\hideSplitTiedTabNotes
\ties
}
pitches:
@lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber.stencil = ##f }
+\layout { \omit Voice.StringNumber }
firstHarmonic = {
d'4\4\harmonic
g'4\3\harmonic
@lilypondfile[verbatim,quote,texidoc,doctitle]
{chord-glissando-in-tablature.ly}
+@cindex hammer on
+@cindex pull off
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{hammer-on-and-pull-off.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{hammer-on-and-pull-off-using-voices.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{hammer-on-and-pull-off-using-chords.ly}
+
@seealso
Notation Reference:
@ref{Chord repetition},
@lilypond[quote,ragged-right,verbatim]
<<
\new Voice \with {
- \override StringNumber.stencil = ##f
+ \omit StringNumber
} {
\clef "bass_8"
- \relative c, {
- c4 d e f
+ \relative {
+ c,4 d e f
}
}
\new TabStaff \with {
stringTunings = #bass-tuning
} {
- \relative c, {
- c4 d e f
+ \relative {
+ c,4 d e f
}
}
>>
@code{banjo-open-g-tuning}. The predefined string tunings
are found in @file{ly/string-tunings-init.ly}.
-@funindex stringTuning
@funindex \stringTuning
@cindex tablature, custom string tunings
@cindex custom string tunings
where string 1 is at the top of the tablature staff and
string N is at the bottom. This ordinarily results in ordering
from highest pitch to lowest pitch, but some instruments
-(e.g. ukulele) do not have strings ordered by pitch.
+(e.g., ukulele) do not have strings ordered by pitch.
A string pitch in a string tuning list is a LilyPond pitch
object. Pitch objects are created with the Scheme function
\layout @{
\context @{
\TabStaff
- stringTunings = \stringTuning \notemode @{ <c' g' d'' a''> @}
+ stringTunings = \stringTuning <c' g' d'' a''>
@}
@}
@end example
The modern tab clef supports tablatures from 4 to 7 strings.
+@cindex micro-tones, tab
+@cindex quarter-tones, tab
+@cindex tab micro-tones
+@cindex tab quarter-tones
+
+@code{TabStaff} may support micro-tones like quarter-tones, which
+can be played using bendings.
+@code{supportNonIntegerFret = ##t} needs to be set in
+Score-context. However, micro-tones are not supported in @code{FretBoards}.
+
+@lilypond[quote,ragged-right,verbatim]
+\layout {
+ \context {
+ \Score
+ supportNonIntegerFret = ##t
+ }
+}
+
+custom-tuning = \stringTuning <e, a, d ges beh eeh'>
+
+mus = \relative {
+ eeses'4
+ eeseh
+ ees
+ eeh
+ e
+ eih
+ eis
+ eisih
+ eisis
+}
+
+<<
+ \new Staff << \clef "G_8" \mus >>
+ \new TabStaff \with { stringTunings = \custom-tuning } \mus
+>>
+@end lilypond
+
@seealso
Notation Reference:
@ref{Absolute octave entry},
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
f1 g
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<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;"
@cindex fret-diagram markup
@cindex ukulele
-@funindex fret-diagram
@funindex \fret-diagram
The size of the fret diagram, and the number of frets in the diagram
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
f1 g
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<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;"
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
a1
}
}
- \context Staff {
+ \new Staff {
% An 'A' chord for ukulele
a'1^\markup {
\fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;"
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<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;"
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
@cindex fret-diagram-terse markup
-@funindex fret-diagram-terse
@funindex \fret-diagram-terse
The fret-diagram-terse markup string omits string numbers; the string
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram-terse #"x;3;2;o;1;o;"
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
f1 g
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<f, c f a c' f'>1^\markup {
\fret-diagram-terse #"1-(;3;3;2;1;1-);"
@c Need to use override to enable fingerings to show this -- can we do so?
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
\clef "treble_8"
<c e g c' e'>1^\markup {
@cindex fret-diagram-verbose markup
@cindex capo
-@funindex fret-diagram-verbose
@funindex \fret-diagram-verbose
The fret-diagram-verbose markup string is in the format of a Scheme list. Each
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram-verbose #'(
a thick bar that covers all strings. The fret with the
capo will be the lowest fret in the fret diagram.
+Fingering indication dots can be colored as well as parenthesized;
+the parenthesis's color can also be altered independently.
+
+Markups can be placed into the dots as well.
+
@c \override is necessary to make fingering visible
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
- f1 g c
+ f1 g c c b
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
\override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
<f, c f a c' f'>1^\markup {
(place-fret 1 3 3)
)
}
- <c e g c' e'>1^\markup {
+ <c g c' e' g'>1^\markup {
\fret-diagram-verbose #'(
(capo 3)
(mute 6)
(place-fret 2 5 3)
)
}
+ \override Voice.TextScript.size = 1.4
+ <c g c' e' g'>1^\markup {
+ \fret-diagram-verbose #'(
+ (place-fret 6 3 1 red parenthesized default-paren-color)
+ (place-fret 5 3 1 inverted)
+ (place-fret 4 5 2 blue parenthesized)
+ (place-fret 3 5 3 blue)
+ (place-fret 2 5 4 blue)
+ (place-fret 1 3 1 inverted)
+ )
+ }
+ \override Voice.TextScript.size = 1.5
+ <b, fis b dis' fis'>1^\markup {
+ \override #'(fret-diagram-details . ((finger-code . in-dot)))
+ \fret-diagram-verbose #`(
+ (place-fret 5 2 1)
+ (place-fret 4 4 "fis" red)
+ (place-fret 3 4 "b" red)
+ (place-fret
+ 2 4
+ ,#{ \markup
+ \concat {
+ \vcenter "d"
+ \fontsize #-5
+ \musicglyph #"accidentals.sharp"} #}
+ red)
+ (place-fret 1 2 1)
+ )
+ }
}
>>
@end lilypond
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
\chordmode {
c1 d
}
@lilypond[verbatim, ragged-right,quote]
\include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
\chordmode { c1 }
<c' e' g'>1
}
@cindex fret diagrams with chord names
@funindex ChordNames
-@funindex chordmode
@funindex \chordmode
It is common that both chord names and fret diagrams are displayed together.
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychords
}
- \context FretBoards {
+ \new FretBoards {
\mychords
}
>>
\transpose c e { \mychords }
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychordlist
}
- \context FretBoards {
+ \new FretBoards {
\mychordlist
}
>>
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychords
}
- \context FretBoards {
+ \new FretBoards {
\mychords
}
>>
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychords
}
- \context FretBoards {
+ \new FretBoards {
\mychords
}
>>
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychords
}
- \context FretBoards {
+ \new FretBoards {
\mychords
}
>>
@cindex chord shapes for fretted instruments
@funindex \addChordShape
-@funindex addChordShape
-@funindex storePredefinedDiagram
@funindex \storePredefinedDiagram
In addition to fret diagrams, LilyPond stores an internal list of chord
}
<<
- \context ChordNames {
+ \new ChordNames {
\mychords
}
- \context FretBoards {
+ \new FretBoards {
\mychords
}
>>
@lilypondfile[verbatim,quote,texidoc,doctitle]
{defining-predefined-fretboards-for-other-instruments.ly}
-@lilypondfile[verbatim,quote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle,ragged-right]
{chordchanges-for-fretboards.ly}
@lilypondfile[verbatim,quote,texidoc,doctitle]
@lilypond[quote,ragged-right,verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
f1 g
}
}
- \context FretBoards {
+ \new FretBoards {
<f, c f a c' f'>1
<g,\6 b, d g b g'>1
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<f, c f a c' f'>1
<g, b, d g b' g'>1
>>
@end lilypond
-@funindex predefinedFretboardsOff
@funindex \predefinedFretboardsOff
-@funindex predefinedFretboardsOn
@funindex \predefinedFretboardsOn
As no predefined diagrams are loaded by default, automatic calculation
#guitar-tuning
#"x;3-1-(;5-2;5-3;5-4;3-1-1-);"
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 c c
}
}
- \context FretBoards {
+ \new FretBoards {
<c e g c' e'>1
\predefinedFretboardsOff
<c e g c' e'>1
\predefinedFretboardsOn
<c e g c' e'>1
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1
<c e g c' e'>1
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
c1 d:m
}
}
- \context FretBoards {
+ \new FretBoards {
<c-3 e-2 g c'-1 e'>1
<d a-2 d'-3 f'-1>1
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<c e g c' e'>1
<d a d' f'>1
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
d1:m d:m
}
}
- \context FretBoards {
+ \new FretBoards {
<d a d' f'>1
\set FretBoards.minimumFret = #5
<d a d' f'>1
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
<d a d' f'>1
<d a d' f'>1
@cindex fingerings, right hand for fretted instruments
@cindex right hand fingerings for fretted instruments
-@funindex rightHandFinger
@funindex \rightHandFinger
Right-hand fingerings @var{p-i-m-a} must be entered using
@warning{If the number is entered in Scheme notation, remember to append
a space before following it with a closing @code{>} or similar.}
-@lilypond[quote,verbatim,relative=0]
+@lilypond[quote,verbatim,fragment]
\clef "treble_8"
c4\rightHandFinger #1
e\rightHandFinger #2
g\rightHandFinger #3
-c\rightHandFinger #4
-<c,\rightHandFinger #1 e\rightHandFinger #2
- g\rightHandFinger #3 c\rightHandFinger #4 >1
+c'\rightHandFinger #4
+<c\rightHandFinger #1 e\rightHandFinger #2
+ g\rightHandFinger #3 c'\rightHandFinger #4 >1
@end lilypond
For convenience, you can abbreviate @code{\rightHandFinger} to something
This example demonstrates how to include guitar position and
barring indications.
-@lilypond[quote,ragged-right,verbatim,relative=0]
-\clef "treble_8"
-b16 d g b e
-\textSpannerDown
-\override TextSpanner.bound-details.left.text = #"XII "
-g16\startTextSpan
-b16 e g e b g\stopTextSpan
-e16 b g d
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative {
+ \clef "treble_8"
+ b,16 d g b e
+ \textSpannerDown
+ \override TextSpanner.bound-details.left.text = #"XII "
+ g16\startTextSpan
+ b16 e g e b g\stopTextSpan
+ e16 b g d
+}
@end lilypond
@seealso
text markup.
@lilypond[quote,ragged-right,verbatim]
-\relative c' {
+\relative {
\clef "treble_8"
\override Staff.NoteHead.style = #'harmonic-mixed
- d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
+ d'^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
}
@end lilypond
within normal and tablature staves:
@lilypond[quote,ragged-right,verbatim]
-music = \relative c' {
+music = \relative {
< 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 }
+ \tuplet 3/2 { g8 b e }
\deadNotesOff
< a,\3 c\2 e\1 >1
}
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
+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.
@node Indicating power chords
@unnumberedsubsubsec Indicating power chords
-@funindex powerChords
@funindex \powerChords
@cindex power chords
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
@c due to crazy intervals of banjo music, absolute pitch is recommended
@lilypond[quote,ragged-right,verbatim]
-\new TabStaff <<
- \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
- \set TabStaff.stringTunings = #banjo-open-g-tuning
- {
- \stemDown
- g8 d' g'\5 a b g e d' |
- g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
- g4
+music = {
+ g8 d' g'\5 a b g e d' |
+ g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
+ g4
+}
+
+<<
+ \new Staff \with { \omit StringNumber }
+ { \clef "treble_8" \music }
+ \new TabStaff \with {
+ tablatureFormat = #fret-number-tablature-format-banjo
+ stringTunings = #banjo-open-g-tuning
}
+ { \music }
>>
@end lilypond
Snippets:
@rlsr{Fretted strings}.
+
+
+@node Lute
+@subsection Lute
+
+@menu
+* Lute tablatures::
+@end menu
+
+@node Lute tablatures
+@unnumberedsubsubsec Lute tablatures
+
+@cindex lute tablatures
+@cindex tablature, lute
+
+LilyPond supports tablature for lute.
+
+To get additional bass strings use @code{additionalBassStrings}, where the
+pitches of those strings are set. They will be printed below lowest line as:
+a, /a, //a, ///a, 4, 5, etc.
+
+@code{fret-letter-tablature-format} for @code{tablatureFormat} should be used,
+probably @code{fretLabels} for further customizing.
+
+@lilypond[quote,ragged-right,verbatim]
+m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." }
+
+\score {
+ <<
+ \new Staff { \clef bass \cadenzaOn \m }
+ \new TabStaff \m
+ >>
+ \layout {
+ \context {
+ \Score
+ tablatureFormat = #fret-letter-tablature-format
+ }
+ \context {
+ \TabStaff
+ stringTunings = \stringTuning <a, d f a d' f'>
+ additionalBassStrings = \stringTuning <c, d, e, fis, g,>
+ fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
+ }
+ }
+}
+@end lilypond
+
+@cindex lute tunings
+@cindex tunings, lute
+
+@knownissues
+Using @code{FretBoards} with @code{additionalBassStrings} is not supported and
+will yield unsatisfying results.