[ << Specialist notation ] | [Top][Contents][Index] | [ General input and output >> ] |
[ < String number indications ] | [ Up : Common notation for fretted strings ] | [ Custom tablatures > ] |
Default tablatures
Music for plucked string instruments is frequently notated using a finger/touch notation or tablature. In contrast to traditional notation pitches are not denoted with note heads, but by numbers (or letter-like symbols in historical intavolatura). The staff lines in tablature indicate the string on which the note is to be played, and a number placed on a staff line indicates the fret at which the corresponding string is to be pressed. Notes that are to be played simultaneously are vertically aligned.
By default, string 1 is the highest string, and corresponds to the top
line on the TabStaff
. The tuning of the TabStaff
strings defaults to the
standard guitar tuning (with 6 strings). The notes are printed as
tablature, by using TabStaff
and TabVoice
contexts. A
calligraphic tablature clef is added automatically.
\new TabStaff \relative { a,8 a' <c e> a d,8 a' <d f> a }
Default tablatures do not contain any symbols for tone duration nor any other musical symbols such as expressive marks, for example.
symbols = { \time 3/4 c4-.^"Allegro" d( e) f4-.\f g a^\fermata \mark \default c8_.\<\( c16 c~ 2\! c'2.\prall\) } \score { << \new Staff { \clef "G_8" \symbols } \new TabStaff { \symbols } >> }
If all musical symbols used in traditional notation should also show up
in tablature one has to apply the command \tabFullNotation
in a
TabStaff
-context. Please bear in mind that half notes are
double-stemmed in tablature in order to distinguish them from quarter
notes.
symbols = { \time 3/4 c4-.^"Allegro" d( e) f4-.\f g a^\fermata \mark \default c8_.\<\( c16 c~ 2\! c'2.\prall\) } \score { \new TabStaff { \tabFullNotation \symbols } }
By default pitches are assigned to the lowest playing position on the
fretboard (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 don’t want
to have string number indications appear in traditional notation, you
can override the respective stencil. Usually it will be more
comfortable to define the playing position by using the value of
minimumFret
. The default value for minimumFret
is 0.
Even when minimumFret
is set, open strings are used whenever
possible. This behavior can be changed by setting restrainOpenStrings
to #t
.
\layout { \omit Voice.StringNumber } \new StaffGroup << \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 { c16 d e f g4 c,16\5 d\5 e\4 f\4 g4\4 \set TabStaff.minimumFret = 5 \set TabStaff.restrainOpenStrings = ##t c,16 d e f g4 } >>
Chord constructs can be repeated by the chord repetition symbol
‘q’, (see Chord repetition for more). In combination
with tabulatures, its behavior of removing string and fingering
numbers alongside with other events may lead to unwanted results,
in particular different fret positions. The command
\tabChordRepeats
keeps the fingering consistent across
repetitions. In the following example, the default fingering for
this chord (without fingering indications) would be ‘gis’ on 4th
string, ‘b’ on 3rd string, and ‘cis’ on 2nd string. As we use
b-0
in the input, ‘b’ is on the second string, and
‘cis’ moves to the 3rd string. \tabChordRepeats
allows
to keep the same fingering in the following q chords:
guitar = \relative { r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4 } \new StaffGroup << \new Staff { \clef "treble_8" \guitar } \new TabStaff { \tabChordRepeats \guitar } >>
Ties over a line break are parenthesized by default. The same holds for the second alternative of a repeat.
ties = \relative { \repeat volta 2 { e'2. f4~ 2 g2~ } \alternative { \volta 1 { g4 f2. } \volta 2 { g4\repeatTie c,2. } } b1~ \break b1 \bar "|." } \score { << \new StaffGroup << \new Staff { \clef "treble_8" \ties } \new TabStaff { \ties } >> >> \layout { indent = 0 ragged-right = ##t } }
The command \hideSplitTiedTabNotes
cancels the behavior of
engraving fret numbers in parentheses:
ties = \relative { \repeat volta 2 { e'2. f4~ 2 g2~ } \alternative { \volta 1 { g4 f2. } \volta 2 { g4\repeatTie c,2. } } b1~ \break b1 \bar "|." } \score { << \new StaffGroup << \new Staff { \clef "treble_8" \ties } \new TabStaff { \hideSplitTiedTabNotes \ties } >> >> \layout { indent = 0 ragged-right = ##t } }
Harmonic indications can be added to tablature notation as sounding pitches:
\layout { \omit Voice.StringNumber } firstHarmonic = { d'4\4\harmonic g'4\3\harmonic b'2\2\harmonic } \score { << \new Staff { \clef "treble_8" \firstHarmonic } \new TabStaff { \firstHarmonic } >> }
Note that the command \harmonic
must always be attached to single
notes (possibly inside of a chord) instead of whole chords.
It only makes sense for open-string harmonics
in the 12th fret. All other harmonics should be calculated by LilyPond.
This can be achieved by indicating the fret where a finger of the
fretting hand should touch a string.
fretHarmonics = { \harmonicByFret 5 d16\4 \harmonicByFret 4 d16\4 \harmonicByFret 3 d8\4 \harmonicByFret 5 <g\3 b\2>2. } \score { << \new Staff { \clef "treble_8" \fretHarmonics } \new TabStaff { \fretHarmonics } >> }
Alternatively, harmonics can be computed by defining the ratio of string lengths above and below the harmonic fingering.
ratioHarmonics = { \harmonicByRatio #1/2 <g\3 b\2 e'\1>4 \harmonicByRatio #1/3 <g\3 b\2 e'\1>4 \harmonicByRatio #1/4 { g8\3 b8\2 e'4\1 } } \score { << \new Staff { \clef "treble_8" \ratioHarmonics } \new TabStaff { \ratioHarmonics } >> }
String bendings can be added to tablature notation.
A bending is introduced by appending \^
to the note or chord to be bent;
it terminates automatically at the next note or chord.
Available are the following styles: the default prints a curve with an arrow
head up or down, 'hold
a dashed horizontal line, 'pre-bend
a
vertical line with an arrow head, and 'pre-bend-hold
a vertical line with
an arrow head continued by a dashed line.
bend-styles = { <>^"default" f'4\^ g'4\^ f'2 <>^"'hold" \grace f'4\^ g'1\bendHold \^ g'1 <>^"'pre-bend" \grace f'4\preBend \^ g'1\bendHold \^ g'1 <>^"'pre-bend-hold" \grace f'4\preBendHold \^ g'1\bendHold \^ g'1\^ f' \bar "|." } \score { \new StaffGroup << \new Staff { \override TextScript.font-size = -2 \clef "G_8" \bend-styles } \new TabStaff \bend-styles >> \layout { \context { \Voice \omit StringNumber } \context { \TabStaff minimumFret = 5 } \context { \TabVoice \consists Bend_spanner_engraver } } }
Open strings are usually not bent. To have them bent as well set the
property bend-me
to #t
. To exclude other notes from being bent
set it to #f
.
mus = { <>^"default" <a b f'>4\^ <ais b fis'>\^ <a b f'>2 <>^"bend open strings" <a \tweak bend-me ##t b f'>4\^ <ais \tweak bend-me ##t bis fis'>\^ <a b f'>2 <>^"exclude other strings" <g \tweak bend-me ##f b\3 d'>4\^ <a e'\2 >\^ <g \tweak bend-me ##f b\3 d'>2 \bar "|." } \score { \new StaffGroup << \new Staff { \override TextScript.font-size = -2 \clef "G_8" \mus } \new TabStaff \mus >> \layout { \context { \Voice \omit StringNumber } \context { \TabVoice \consists Bend_spanner_engraver } } }
For consecutive bendings the starting bend may need to have an appropriate
setting for details.successive-level
. For convenience there is the
function bendStartLevel
, taking an integer.
printNext = -\tweak details.target-visibility ##t \etc mus = { c'4\3\^ cis'\3 \^ d'2\3 \grace bes4\3\preBendHold \bendStartLevel 2 \printNext \^ d'4\3\bendHold \^ d'2\3\^ des'4\3 \^ c'1\3 \bar "|." } \score { \new StaffGroup << \new Staff { \override TextScript.font-size = -2 \clef "G_8" \mus } \new TabStaff \mus >> \layout { \context { \Voice \omit StringNumber } \context { \TabVoice \consists Bend_spanner_engraver } } }
Per default the BendSpanner
ends at the following note or chord even
if it is tied to the starting note or chord. A single NoteColumn
may be
skipped by using \skipNC
. A group of NoteColumn
s can be skipped
by using \skipNCs
at the beginning and \endSkipNCs
at the end.
bends-with-ties-and-skips = { a'4~\^ \skipNC a'4~ \skipNC a'4 b'4 a'4~ a'4~\^ \skipNC a'4 b'4 a'4~ a'4~ a'4\^ b'4 c'2\^ d'~ \bendHold \^ \skipNC d'~ d'\^ c' \grace { c'8-\preBendHold \^ } \skipNCs d'2~ d'2~ \endSkipNCs d'\^ c'2 \bar "|." } \score { \new StaffGroup << \new Staff { \clef "G_8" \bends-with-ties-and-skips } \new TabVoice \bends-with-ties-and-skips >> \layout { \context { \Voice \omit StringNumber } \context { \TabStaff minimumFret = 3 restrainOpenStrings = ##t } \context { \TabVoice \consists Bend_spanner_engraver } } }
Predefined commands
\skipNCs
,
\skipNC
,
\endSkipNCs
.
Selected Snippets
Stem and beam behavior in tablature
The direction of stems is controlled the same way in tablature as in traditional notation. Beams can be made horizontal, as shown in this example.
\new TabStaff { \relative c { \tabFullNotation g16 b d g b d g b \stemDown \override Beam.concaveness = 10000 g,,16 b d g b d g b } }
Polyphony in tablature
Polyphony is created the same way in a TabStaff
as in a regular
staff.
upper = \relative c' { \time 12/8 \key e \minor \voiceOne r4. r8 e, fis g16 b g e e' b c b a g fis e } lower = \relative c { \key e \minor \voiceTwo r16 e d c b a g4 fis8 e fis g a b c } \score { << \new StaffGroup = "tab with traditional" << \new Staff = "guitar traditional" << \clef "treble_8" \new Voice = "upper" \upper \new Voice = "lower" \lower >> \new TabStaff = "guitar tab" << \new TabVoice = "upper" \upper \new TabVoice = "lower" \lower >> >> >> }
Open string harmonics in tablature
This snippet demonstrates open-string harmonics.
openStringHarmonics = { \textSpannerDown \override TextSpanner.staff-padding = 3 \override TextSpanner.dash-fraction = 0.3 \override TextSpanner.dash-period = 1 %first harmonic \override TextSpanner.bound-details.left.text = \markup\small "1st harm. " \harmonicByFret 12 e,2\6\startTextSpan \harmonicByRatio #1/2 e,\6\stopTextSpan %second harmonic \override TextSpanner.bound-details.left.text = \markup\small "2nd harm. " \harmonicByFret 7 e,\6\startTextSpan \harmonicByRatio #1/3 e,\6 \harmonicByFret 19 e,\6 \harmonicByRatio #2/3 e,\6\stopTextSpan %\harmonicByFret 19 < e,\6 a,\5 d\4 > %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 > %third harmonic \override TextSpanner.bound-details.left.text = \markup\small "3rd harm. " \harmonicByFret 5 e,\6\startTextSpan \harmonicByRatio #1/4 e,\6 \harmonicByFret 24 e,\6 \harmonicByRatio #3/4 e,\6\stopTextSpan \break %fourth harmonic \override TextSpanner.bound-details.left.text = \markup\small "4th harm. " \harmonicByFret 4 e,\6\startTextSpan \harmonicByRatio #1/5 e,\6 \harmonicByFret 9 e,\6 \harmonicByRatio #2/5 e,\6 \harmonicByFret 16 e,\6 \harmonicByRatio #3/5 e,\6\stopTextSpan %fifth harmonic \override TextSpanner.bound-details.left.text = \markup\small "5th harm. " \harmonicByFret 3 e,\6\startTextSpan \harmonicByRatio #1/6 e,\6\stopTextSpan \break %sixth harmonic \override TextSpanner.bound-details.left.text = \markup\small "6th harm. " \harmonicByFret 2.7 e,\6\startTextSpan \harmonicByRatio #1/7 e,\6\stopTextSpan %seventh harmonic \override TextSpanner.bound-details.left.text = \markup\small "7th harm. " \harmonicByFret 2.3 e,\6\startTextSpan \harmonicByRatio #1/8 e,\6\stopTextSpan %eighth harmonic \override TextSpanner.bound-details.left.text = \markup\small "8th harm. " \harmonicByFret 2 e,\6\startTextSpan \harmonicByRatio #1/9 e,\6\stopTextSpan } \score { << \new Staff \with { \omit StringNumber } { \new Voice { \clef "treble_8" \openStringHarmonics } } \new TabStaff { \new TabVoice { \openStringHarmonics } } >> } \paper { tagline = ##f }
Fretted-string harmonics in tablature
The following demonstrates fretted-string harmonics in a tablature.
pinchedHarmonics = { \textSpannerDown \override TextSpanner.bound-details.left.text = \markup {\halign #-0.5 \teeny "PH" } \override TextSpanner.style = #'dashed-line \override TextSpanner.dash-period = 0.6 \override TextSpanner.bound-details.right.attach-dir = 1 \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . 1) } \override TextSpanner.bound-details.right.padding = -0.5 } harmonics = { % artificial harmonics (AH) \textLengthOn <\parenthesize b b'\harmonic>4_\markup { \teeny "AH 16" } <\parenthesize g g'\harmonic>4_\markup { \teeny "AH 17" } <\parenthesize d' d''\harmonic>2_\markup { \teeny "AH 19" } % pinched harmonics (PH) \pinchedHarmonics <a'\harmonic>2\startTextSpan <d''\harmonic>4 <e'\harmonic>4\stopTextSpan % tapped harmonics (TH) <\parenthesize g\4 g'\harmonic>4_\markup { \teeny "TH 17" } <\parenthesize a\4 a'\harmonic>4_\markup { \teeny "TH 19" } <\parenthesize c'\3 c''\harmonic>2_\markup { \teeny "TH 17" } % touch harmonics (TCH) a4( <e''\harmonic>2. )_\markup { \teeny "TCH" } } frettedStrings = { % artificial harmonics (AH) \harmonicByFret 4 g4\3 \harmonicByFret 5 d4\4 \harmonicByFret 7 g2\3 % pinched harmonics (PH) \harmonicByFret 7 d2\4 \harmonicByFret 5 d4\4 \harmonicByFret 7 a4\5 % tapped harmonics (TH) \harmonicByFret 5 d4\4 \harmonicByFret 7 d4\4 \harmonicByFret 5 g2\3 % touch harmonics (TCH) a4 \harmonicByFret 9 g2.\3 } \score { << \new Staff \with { \omit StringNumber } { \new Voice { \clef "treble_8" \harmonics } } \new TabStaff { \new TabVoice { \frettedStrings } } >> }
Slides in tablature
Slides can be typeset in both Staff
and TabStaff
contexts.
slides = { c'8\3(\glissando d'8\3) c'8\3\glissando d'8\3 \hideNotes \grace { g16\glissando } \unHideNotes c'4\3 \afterGrace d'4\3\glissando { \stemDown \hideNotes g16 } \unHideNotes } \score { << \new Staff { \clef "treble_8" \slides } \new TabStaff { \slides } >> \layout { \context { \Score \override Glissando.minimum-length = 4 \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \override Glissando.thickness = 2 \omit StringNumber % or: %\override StringNumber.stencil = ##f } } }
Chord glissando in tablature
Slides for chords are indicated by default in both Staff
and
TabStaff
.
String numbers may be necessary for TabStaff
because automatic
string calculations are different for chords and for single notes.
myMusic = \relative c' { <c e g>1 \glissando <f a c> <cis, eis gis>1 \glissando <f a c> <cis eis gis>1 \glissando <f a c\3> } \score { << \new Staff { \clef "treble_8" \omit StringNumber \myMusic } \new TabStaff \myMusic >> } \score { << \new Staff { \clef "treble_8" \omit StringNumber \myMusic } \new TabStaff \with { \override Glissando.style = #'none } { \myMusic } >> } \paper { tagline = ##f }
Hammer on and pull off
Hammer-on and pull-off can be obtained using slurs.
\new TabStaff { \relative c' { d4( e\2) a( g) } }
Hammer on and pull off using voices
The arc of hammer-on and pull-off is upwards in voices one and three and downwards in voices two and four:
\new TabStaff { \relative c' { << { \voiceOne g2( a) } \\ { \voiceTwo a,( b) } >> \oneVoice } }
Hammer on and pull off using chords
When using hammer-on or pull-off with chorded notes, only a single arc
is drawn. However “double arcs” are possible by setting the
doubleSlurs
property to #t
.
\new TabStaff { \relative c' { % chord hammer-on and pull-off \set doubleSlurs = ##t <g' b>8( <a c> <g b>) } }
See also
Notation Reference: Chord repetition, Glissando, Harmonics, Stems, Written-out repeats.
Snippets: Fretted strings.
Internals Reference: TabNoteHead, TabStaff, TabVoice, Beam.
Known issues and warnings
Chords are not handled in a special way, and hence the automatic string selector may easily select the same string for two notes in a chord.
In order to handle \partCombine
, a TabStaff
must use
specially-created voices:
melodia = \partCombine { e4 g g g } { e4 e e e } << \new TabStaff << \new TabVoice = "one" s1 \new TabVoice = "two" s1 \new TabVoice = "shared" s1 \new TabVoice = "solo" s1 { \melodia } >> >>
Guitar special effects are limited to harmonics and slides.
[ << Specialist notation ] | [Top][Contents][Index] | [ General input and output >> ] |
[ < String number indications ] | [ Up : Common notation for fretted strings ] | [ Custom tablatures > ] |