[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Fretted string instruments ] | [ Up : Fretted string instruments ] | [ References for fretted strings > ] |
2.4.1 Common notation for fretted strings
This section discusses common notation that is unique to fretted string instruments.
References for fretted strings | ||
String number indications | ||
Default tablatures | ||
Custom tablatures | ||
Fret diagram markups | ||
Predefined fret diagrams | ||
Automatic fret diagrams | ||
Right-hand fingerings |
References for fretted strings
Music for fretted string instruments is normally notated on
a single staff, either in traditional music notation or in
tablature. Sometimes the two types are combined, and it is
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 "treble_8"
clef.
Some other elements pertinent to fretted string instruments
are covered elsewhere:
- Fingerings are indicated as shown in Fingering instructions.
- Instructions for Laissez vibrer ties as well as ties on arpeggios and tremolos can be found in Ties.
- Instructions for handling multiple voices can be found in Collision resolution.
- Instructions for indicating harmonics can be found in Harmonics.
See also
Notation Reference: Fingering instructions, Ties, Collision resolution, Instrument names, Writing music in parallel, Arpeggio, List of articulations, Clef.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < References for fretted strings ] | [ Up : Common notation for fretted strings ] | [ Default tablatures > ] |
String number indications
The string on which a note should be played may be indicated by
appending \number
to a note inside a chord construct
<>
.
Note: String numbers must be defined inside a chord construct even if there is only a single note. |
\clef "treble_8" <c\5>4 <e\4> <g\3>2 <c,\5 e\4 g\3>1
When fingerings and string indications are used together, their placement is controlled by the order in which the two items appear in the code:
\clef "treble_8" <g\3-0>2 <g-0\3>
Selected Snippets
Controlling the placement of chord fingerings
The placement of fingering numbers can be controlled precisely.
\relative c' { \set fingeringOrientations = #'(left) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down right up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(left) <c-1>2 \set fingeringOrientations = #'(down) <e-3>2 }
Allowing fingerings to be printed inside the staff
By default, vertically oriented fingerings are positioned outside the staff. However, this behavior can be canceled.
\relative c' { <c-1 e-2 g-3 b-5>2 \once \override Fingering #'staff-padding = #'() <c-1 e-2 g-3 b-5>2 }
See also
Notation Reference: Fingering instructions.
Snippets: Fretted strings.
Internals Reference: StringNumber, Fingering.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < String number indications ] | [ Up : Common notation for fretted strings ] | [ Custom tablatures > ] |
Default tablatures
Tablature notation is used for notating music for plucked string instruments. Pitches are not denoted with note heads, but by numbers indicating on which string and fret a note must be played. LilyPond offers limited support for tablature.
The string number associated with a note is given as a backslash
followed by a number. 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 TabStaff
and
TabVoice
contexts
\new TabStaff { a,4\5 c'\2 a\3 e'\1 e\4 c'\2 a\3 e'\1 }
When no string is specified for a note, the note is assigned to
the highest string that can generate the note with a fret number
greater than or equal to the value of minimumFret
.
The default value for minimumFret
is 0.
\new StaffGroup << \new Staff \relative c { \clef "treble_8" c16 d e f g4 c,16 d e f g4 } \new TabStaff \relative c { c16 d e f g4 \set TabStaff.minimumFret = #5 c,16 d e f g4 } >>
Harmonic indications and slides can be added to tablature notation.
\new TabStaff { \new TabVoice { <c g'\harmonic> d\2\glissando e\2 } }
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 { g16 b d g b d g b \stemDown \override Beam #'damping = #+inf.0 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" \context Voice = "upper" \upper \context Voice = "lower" \lower >> \new TabStaff = "guitar tab" << \context TabVoice = "upper" \upper \context TabVoice = "lower" \lower >> >> >> }
See also
Notation Reference: Stems.
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 >> ] | ||
[ < Default tablatures ] | [ Up : Common notation for fretted strings ] | [ Fret diagram markups > ] |
Custom tablatures
LilyPond tabulature automatically calculates the fret for
a note based on the string to which the note is assigned.
In order to do this, the tuning of the strings must be
specified. The tuning of the strings is given in the
StringTunings
property.
LilyPond comes with predefined string tunings for banjo, mandolin, guitar and bass guitar. Lilypond automatically sets the correct transposition for predefined tunings. The following example is for bass guitar, which sounds an octave lower than written.
<< \new Staff { \clef "bass_8" \relative c, { c4 d e f } } \new TabStaff { \set TabStaff.stringTunings = #bass-tuning \relative c, { c4 d e f } } >>
The default string tuning is guitar-tuning
, which
is the standard EADGBE tuning. Some other predefined tunings are
guitar-open-g-tuning
, mandolin-tuning
and
banjo-open-g-tuning
. The predefined string tunings
are found in scm/output-lib.scm
.
A string tuning is a Scheme list of string pitches, one for each string, ordered by string number from 1 to N, 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.
A string pitch in a string tuning list is the pitch difference of the open string from middle C measured in semitones. The string pitch must be an integer. Lilypond calculates the actual pitch of the string by adding the string tuning pitch to the actual pitch for middle C.
LilyPond automatically calculates the number of strings in the
TabStaff
as the number of elements in stringTunings
.
Any desired string tuning can be created. For example, we can
define a string tuning for a four-string instrument with pitches
of a''
, d''
, g'
, and c'
:
mynotes = { c'4 e' g' c'' | e'' g'' b'' c''' } << \new Staff { \clef treble \mynotes } \new TabStaff { \set TabStaff.stringTunings = #'(21 14 7 0) \mynotes } >>
See also
Installed Files: ‘scm/output-lib.scm’.
Snippets: Fretted strings.
Internals Reference: Tab_note_heads_engraver.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Custom tablatures ] | [ Up : Common notation for fretted strings ] | [ Predefined fret diagrams > ] |
Fret diagram markups
Fret diagrams can be added to music as a markup to the desired note. The markup contains information about the desired fret diagram. There are three different fret-diagram markup interfaces: standard, terse, and verbose. The three interfaces produce equivalent markups, but have varying amounts of information in the markup string. Details about the markup interfaces are found at Text markup commands.
The standard fret diagram markup string indicates the string number and the fret number for each dot to be placed on the string. In addition, open and unplayed (muted) strings can be indicated.
<< \context ChordNames { \chordmode { c1 d:m } } \context 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;" < d a d' f'> ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;" } >>
Barre indications can be added to the diagram from the fret-diagram markup string.
<< \context ChordNames { \chordmode { f1 g } } \context 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;" < g, d g b d' g'> ^\markup \fret-diagram #"c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;" } >>
The size of the fret diagram, and the number of frets in the diagram can be changed in the fret-diagram markup string.
<< \context ChordNames { \chordmode { f1 g } } \context 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;" < g, b, d g b g'> ^\markup \fret-diagram #"h:6;6-3;5-2;4-o;3-o;2-o;1-3;" } >>
The number of strings in a fret diagram can be changed to accomodate different instruments such as banjos and ukeleles with the fret-diagram markup string.
<< \context ChordNames { \chordmode { a1 } } \context Staff { %% A chord for ukelele a'1 ^\markup \fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;" } >>
Fingering indications can be added, and the location of fingering labels can be controlled by the fret-diagram markup string.
<< \context ChordNames { \chordmode { c1 d:m } } \context 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;" < d a d' f'> ^\markup \fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;" } >>
Dot radius and dot position can be controlled with the fret-diagram markup string.
<< \context ChordNames { \chordmode { c1 d:m } } \context 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;" < d a d' f'> ^\markup \fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;" } >>
The fret-diagram-terse markup string omits string numbers; the string number is implied by the presence of semicolons. There is one semicolon for each string in the diagram. The first semicolon corresponds to the highest string number and the last semicolon corresponds to the first string. Mute strings, open strings, and fret numbers can be indicated.
<< \context ChordNames { \chordmode { c1 d:m } } \context Staff { \clef "treble_8" < c e g c' e' > 1 ^\markup \fret-diagram-terse #"x;3;2;o;1;o;" < d a d' f'> ^\markup \fret-diagram-terse #"x;x;o;2;3;1;" } >>
Barre indicators can be included in the fret-diagram-terse markup string.
<< \context ChordNames { \chordmode { f1 g } } \context Staff { \clef "treble_8" < f, c f a c' f'>1 ^\markup \fret-diagram-terse #"1-(;3;3;2;1;1-);" < g, d g b d' g'> ^\markup \fret-diagram-terse #"3-(;5;5;4;3;3-);" } >>
Fingering indications can be included in the fret-diagram-terse markup string.
<< \context ChordNames { \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 \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;" < d a d' f'> ^\markup \fret-diagram-terse #"x;x;o;2-2;3-3;1-1;" } >>
Other fret diagram properties must be adjusted using \override
when using
the fret-diagram-terse markup.
The fret-diagram-verbose markup string is in the format of a Scheme list. Each element of the list indicates an item to be placed on the fret diagram.
<< \context ChordNames { \chordmode { c1 d:m } } \context Staff { \clef "treble_8" < c e g c' e' > 1 ^\markup \fret-diagram-verbose #'( (mute 6) (place-fret 5 3) (place-fret 4 2) (open 3) (place-fret 2 1) (open 1) ) < d a d' f'> ^\markup \fret-diagram-verbose #'( (mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 1) ) } >>
Fingering indications and barres can be included in a fret-diagram-verbose markup string. Unique to the fret-diagram-verbose interface is a capo indication that can be placed on the fret diagram. The capo indication is a thick bar that covers all strings. The fret with the capo will be the lowest fret in the fret diagram.
<< \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 \fret-diagram-verbose #'( (place-fret 6 1) (place-fret 5 3) (place-fret 4 3) (place-fret 3 2) (place-fret 2 1) (place-fret 1 1) (barre 6 1 1) ) < g, b, d g b g'> ^\markup \fret-diagram-verbose #'( (place-fret 6 3 2) (place-fret 5 2 1) (open 4) (open 3) (open 2) (place-fret 1 3 3) ) < c e g c' e'> ^\markup \fret-diagram-verbose #'( (capo 3) (mute 6) (place-fret 4 5 1) (place-fret 3 5 2) (place-fret 2 5 3) ) } >>
All other fret diagram properties must be adjusted using \override
when using the fret-diagram-verbose markup.
The graphical layout of a fret diagram can be customized according to
user preference through the properties of the fret-diagram-interface
.
Details are found at
fret-diagram-interface. For a fret diagram
markup, the interface properties belong to Voice.TextScript
.
Selected Snippets
Customizing markup fret diagrams
Fret diagram properties can be set through
'fret-diagram-details
. For markup fret diagrams, overrides
can be applied to the Voice.TextScript
object or directly
to the markup.
<< \chords { c1 c c d } \new Voice = "mel" { \textLengthOn % Set global properties of fret diagram \override TextScript #'size = #'1.2 \override TextScript #'(fret-diagram-details finger-code) = #'in-dot \override TextScript #'(fret-diagram-details dot-color) = #'white %% C major for guitar, no barre, using defaults % terse style c'1^\markup { \fret-diagram-terse #"x;3-3;2-2;o;1-1;o;" } %% C major for guitar, barred on third fret % verbose style % size 1.0 % roman fret label, finger labels below string, straight barre c'1^\markup { % standard size \override #'(size . 1.0) { \override #'(fret-diagram-details . ( (number-type . roman-lower) (finger-code . in-dot) (barre-type . straight))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) } } } %% C major for guitar, barred on third fret % verbose style % landscape orientation, arabic numbers, M for mute string % no barre, fret label down or left, small mute label font c'1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string) (number-type . arabic) (label-dir . -1) (mute-string . "M") (orientation . landscape) (barre-type . none) (xo-font-magnification . 0.4) (xo-padding . 0.3))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) } } %% simple D chord % terse style % larger dots, centered dots, fewer frets % label below string d'1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string) (dot-radius . 0.35) (dot-position . 0.5) (fret-count . 3))) { \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;" } } } >>
See also
Notation Reference: Text markup commands.
Snippets: Fretted strings.
Internals Reference: fret-diagram-interface.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Fret diagram markups ] | [ Up : Common notation for fretted strings ] | [ Automatic fret diagrams > ] |
Predefined fret diagrams
Fret diagrams can be displayed using the FretBoards
context. By
default, the FretBoards
context will display fret diagrams that
are stored in a lookup table:
\include "predefined-guitar-fretboards.ly" \context FretBoards { \chordmode { c1 d } }
The default predefined fret diagrams are contained in the file
predefined-guitar-fretboards.ly
. Fret diagrams are
stored based on the pitches of a chord and the value of
stringTunings
that is currently in use.
predefined-guitar-fretboards.ly
contains predefined
fret diagrams only for guitar-tuning
. Predefined fret
diagrams can be added for other instruments or other tunings
by following the examples found in
predefined-guitar-fretboards.ly
.
Chord pitches can be entered either as simultaneous music or using chord mode (see Chord mode overview).
\include "predefined-guitar-fretboards.ly" \context FretBoards { \chordmode {c1} <c' e' g'>1 }
It is common that both chord names and fret diagrams are displayed together.
This is achieved by putting a ChordNames
context in parallel with
a FretBoards
context and giving both contexts the same music.
\include "predefined-guitar-fretboards.ly" mychords = \chordmode{ c1 f g } << \context ChordNames { \mychords } \context FretBoards { \mychords } >>
Predefined fret diagrams are transposable, as long as a diagram for the transposed chord is stored in the fret diagram table.
\include "predefined-guitar-fretboards.ly" mychords = \chordmode{ c1 f g } mychordlist = { \mychords \transpose c e { \mychords} } << \context ChordNames { \mychordlist } \context FretBoards { \mychordlist } >>
The predefined fret diagram table contains seven chords (major, minor, augmented, diminished, dominant seventh, major seventh, minor seventh) for each of 17 keys. A complete list of the predefined fret diagrams is shown in Predefined fretboard diagrams. If there is no entry in the table for a chord, the FretBoards engraver will calculate a fret-diagram using the automatic fret diagram functionality described in Automatic fret diagrams.
\include "predefined-guitar-fretboards.ly" mychords = \chordmode{ c1 c:9 } << \context ChordNames { \mychords } \context FretBoards { \mychords } >>
Fret diagrams can be added to the fret diagram table. To add a diagram, you must specify the chord for the diagram, the tuning to be used, and a definition for the diagram. The diagram definition can be either a fret-diagram-terse definition string or a fret-diagram-verbose marking list.
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram \chordmode {c:9} #guitar-tuning #"x;3-2;2-1;3-3;3-4;x;" mychords = \chordmode{ c1 c:9 } << \context ChordNames { \mychords } \context FretBoards { \mychords } >>
Different fret diagrams for the same chord name can be stored using different octaves of pitches.
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram \chordmode {c'} #guitar-tuning #(offset-fret 2 (chord-shape 'bes guitar-tuning)) mychords = \chordmode{ c1 c' } << \context ChordNames { \mychords } \context FretBoards { \mychords } >>
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 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 any open strings. Like fret diagrams, chord shapes can be entered as either fret-diagram-terse strings or fret-diagram-verbose marking lists.
\include "predefined-guitar-fretboards.ly" % 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'} #guitar-tuning #(chord-shape 'powerf guitar-tuning) \storePredefinedDiagram \chordmode {g'} #guitar-tuning #(offset-fret 2 (chord-shape 'powerf guitar-tuning)) mychords = \chordmode{ f1 f' g g' } << \context ChordNames { \mychords } \context FretBoards { \mychords } >>
The graphical layout of a fret diagram can be customized according to
user preference through the properties of the fret-diagram-interface
.
Details are found at
fret-diagram-interface. For a
predefined fret diagram, the interface properties belong to
FretBoards.FretBoard
.
Selected Snippets
Customizing fretboard fret diagrams
Fret diagram properties can be set through
'fret-diagram-details
. For FretBoard fret diagrams,
overrides are applied to the FretBoards.FretBoard
object.
Like Voice
, FretBoards
is a bottom level context,
therefore can be omitted in property overrides.
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram \chordmode { c' } #guitar-tuning #"x;1-1-(;3-2;3-3;3-4;1-1-);" << \new ChordNames { \chordmode { c1 c c d } } \new FretBoards { % Set global properties of fret diagram \override FretBoards.FretBoard #'size = #'1.2 \override FretBoard #'(fret-diagram-details finger-code) = #'in-dot \override FretBoard #'(fret-diagram-details dot-color) = #'white \chordmode { c \once \override FretBoard #'size = #'1.0 \once \override FretBoard #'(fret-diagram-details barre-type) = #'straight \once \override FretBoard #'(fret-diagram-details dot-color) = #'black \once \override FretBoard #'(fret-diagram-details finger-code) = #'below-string c' \once \override FretBoard #'(fret-diagram-details barre-type) = #'none \once \override FretBoard #'(fret-diagram-details number-type) = #'arabic \once \override FretBoard #'(fret-diagram-details orientation) = #'landscape \once \override FretBoard #'(fret-diagram-details mute-string) = #"M" \once \override FretBoard #'(fret-diagram-details label-dir) = #LEFT \once \override FretBoard #'(fret-diagram-details dot-color) = #'black c' \once \override FretBoard #'(fret-diagram-details finger-code) = #'below-string \once \override FretBoard #'(fret-diagram-details dot-radius) = #0.35 \once \override FretBoard #'(fret-diagram-details dot-position) = #0.5 \once \override FretBoard #'(fret-diagram-details fret-count) = #3 d } } \new Voice { c'1 c' c' d' } >>
Defining predefined fretboards for other instruments Predefined fret diagrams can be added for new instruments in addition to the standards used for guitar. This file shows how this is done by defining a new string-tuning and a few predefined fretboards for the Venezuelan cuatro.
This file also shows how fingerings can be included in the chords
used as reference points for the chord lookup, and displayed in
the fret diagram and the TabStaff
, but not the music.
These fretboards are not transposable because they contain string information. This is planned to be corrected in the future.
% add FretBoards for the Cuatro % Note: This section could be put into a separate file % predefined-cuatro-fretboards.ly % and \included into each of your compositions cuatroTuning = #'(11 18 14 9) dSix = { <a\4 b\1 d\3 fis\2> } dMajor = { <a\4 d\1 d\3 fis \2> } aMajSeven = { <a\4 cis\1 e\3 g\2> } dMajSeven = { <a\4 c\1 d\3 fis\2> } gMajor = { <b\4 b\1 d\3 g\2> } \storePredefinedDiagram \dSix #cuatroTuning #"o;o;o;o;" \storePredefinedDiagram \dMajor #cuatroTuning #"o;o;o;3-3;" \storePredefinedDiagram \aMajSeven #cuatroTuning #"o;2-2;1-1;2-3;" \storePredefinedDiagram \dMajSeven #cuatroTuning #"o;o;o;1-1;" \storePredefinedDiagram \gMajor #cuatroTuning #"2-2;o;1-1;o;" % end of potential include file /predefined-cuatro-fretboards.ly #(set-global-staff-size 16) primerosNames = \chordmode { d:6 d a:maj7 d:maj7 g } primeros = { \dSix \dMajor \aMajSeven \dMajSeven \gMajor } \score { << \new ChordNames { \set chordChanges = ##t \primerosNames } \new Staff { \new Voice \with { \remove "New_fingering_engraver" } \relative c'' { \primeros } } \new FretBoards { \set stringTunings = #cuatroTuning \override FretBoard #'(fret-diagram-details string-count) = #'4 \override FretBoard #'(fret-diagram-details finger-code) = #'in-dot \primeros } \new TabStaff \relative c'' { \set TabStaff.stringTunings = #cuatroTuning \primeros } >> \layout { \context { \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 16) } } \midi { } }
See also
Notation Reference: Custom tablatures, Automatic fret diagrams, Chord mode overview, Predefined fretboard diagrams.
Installed Files: ‘ly/predefined-guitar-fretboards.ly’, ‘ly/predefined-guitar-ninth-fretboards.ly’.
Snippets: Fretted strings.
Internals Reference: fret-diagram-interface.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Predefined fret diagrams ] | [ Up : Common notation for fretted strings ] | [ Right-hand fingerings > ] |
Automatic fret diagrams
Fret diagrams can be automatically created from entered notes using the
FretBoards
context. If no predefined diagram is available for
the entered notes in the active stringTunings
, this context
calculates strings and frets that can be used to play the notes.
<< \context ChordNames { \chordmode { f1 g } } \context FretBoards { < f, c f a c' f'>1 < g,\6 b, d g b g'> } \context Staff { \clef "treble_8" < f, c f a c' f'>1 < g, b, d g b' g'> } >>
As no predefined diagrams are loaded by default, automatic calculation of fret diagrams is the default behavior. Once default diagrams are loaded, automatic calculation can be enabled and disabled with predefined commands:
\storePredefinedDiagram <c e g c' e'> #guitar-tuning #"x;3-1-(;5-2;5-3;5-4;3-1-1);" << \context ChordNames { \chordmode { c1 c c } } \context FretBoards { <c e g c' e'>1 \predefinedFretboardsOff <c e g c' e'> \predefinedFretboardsOn <c e g c' e'> } \context Staff { \clef "treble_8" <c e g c' e'>1 <c e g c' e'> <c e g c' e'> } >>
Sometimes the fretboard calculator will be unable to find
an accceptable diagram. This can often be remedied by
manually assigning a note to a string. In many cases, only one
note need be manually placed on a string; the rest of
the notes will then be placed appropriately by the FretBoards
context.
Fingerings can be added to FretBoard fret diagrams.
<< \context ChordNames { \chordmode { c1 d:m } } \context FretBoards { < c-3 e-2 g c'-1 e' > 1 < d a-2 d'-3 f'-1> } \context Staff { \clef "treble_8" < c e g c' e' > 1 < d a d' f'> } >>
The minimum fret to be used in calculating strings and frets for
the FretBoard context can be set with the minimumFret
property.
<< \context ChordNames { \chordmode { d1:m d:m } } \context FretBoards { < d a d' f'> \set FretBoards.minimumFret = #5 < d a d' f'> } \context Staff { \clef "treble_8" < d a d' f'> < d a d' f'> } >>
The strings and frets for the FretBoards
context depend
on the stringTunings
property, which has the same meaning
as in the TabStaff context. See Custom tablatures for
information on the stringTunings
property.
The graphical layout of a fret diagram can be customized according to
user preference through the properties of the fret-diagram-interface
.
Details are found at
fret-diagram-interface. For a
FretBoards
fret diagram, the interface properties belong to
FretBoards.FretBoard
.
Predefined commands
\predefinedFretboardsOff
,
\predefinedFretboardsOn
.
See also
Notation Reference: Custom tablatures.
Snippets: Fretted strings.
Internals Reference: fret-diagram-interface.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Automatic fret diagrams ] | [ Up : Common notation for fretted strings ] | [ Guitar > ] |
Right-hand fingerings
Right-hand fingerings p-i-m-a must be entered within a
chord construct <>
for them to be printed in the score,
even when applied to a single note.
Note: There must be a hyphen after the note and a space
before the closing |
\clef "treble_8" <c-\rightHandFinger #1 >4 <e-\rightHandFinger #2 > <g-\rightHandFinger #3 > <c-\rightHandFinger #4 > <c,-\rightHandFinger #1 e-\rightHandFinger #2 g-\rightHandFinger #3 c-\rightHandFinger #4 >1
For convenience, you can abbreviate \rightHandFinger
to something
short, for example RH
,
#(define RH rightHandFinger)
Selected Snippets
Placement of right-hand fingerings
It is possible to exercise greater control over the placement of right-hand fingerings by setting a specific property, as demonstrated in the following example.
#(define RH rightHandFinger) \relative c { \clef "treble_8" \set strokeFingerOrientations = #'(up down) <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4 \set strokeFingerOrientations = #'(up right down) <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4 \set strokeFingerOrientations = #'(left) <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >2 }
Fingerings, string indications, and right-hand fingerings
This example combines left-hand fingering, string indications, and right-hand fingering.
#(define RH rightHandFinger) \relative c { \clef "treble_8" <c-3\5-\RH #1 >4 <e-2\4-\RH #2 >4 <g-0\3-\RH #3 >4 <c-1\2-\RH #4 >4 }
See also
Snippets: Fretted strings.
Internals Reference: StrokeFinger.
[ << Specialist notation ] | [Top][Contents][Index][ ? ] | [ General input and output >> ] | ||
[ < Automatic fret diagrams ] | [ Up : Common notation for fretted strings ] | [ Guitar > ] |