Guide, node Updating translation committishes..
@end ignore
-@c \version "2.15.16"
+@c \version "2.19.2"
@node Fretted string instruments
@section Fretted string instruments
@cindex fingering vs. string numbers
The string on which a note should be played may be indicated by
-appending @code{\@var{number}} to a note inside a chord construct
-@code{<>}.
-
-@warning{String numbers @strong{must} be defined inside a chord
-construct even if there is only a single note.}
+appending @code{\@var{number}} to a note.
@lilypond[verbatim,quote,relative=0]
\clef "treble_8"
-<c\5>4 <e\4> <g\3>2
+c4\5 e\4 g2\3
<c,\5 e\4 g\3>1
@end lilypond
When fingerings and string indications are used together, their
-placement is controlled by the order in which the two items appear
-in the code:
+placement can be controlled by the order in which the two items appear
+in the code @emph{only} if they appear inside of an explicit chord:
+applied to whole chords or single notes @emph{outside} of chords,
+fingerings are placed using a different mechanism.
@lilypond[verbatim,quote,relative=1]
\clef "treble_8"
-<g\3-0>2
+g4\3-0
+g-0\3
+<g\3-0>
<g-0\3>
@end lilypond
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\)
}
@cindex fret
@funindex minimumFret
+@funindex restrainOpenStrings
By default pitches are assigned to the lowest playing position on the
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
-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
-minimumFret is 0.
+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
+@code{minimumFret}. The default value for minimumFret is 0.
+Even when @code{minimumFret} is set, open strings are used whenever
+possible. This behaviour can be changed by setting @code{restrainOpenStrings}
+to @code{#t}.
@lilypond[quote,ragged-right,verbatim]
+\layout { \omit Voice.StringNumber }
\new StaffGroup <<
\new Staff \relative c {
\clef "treble_8"
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
}
>>
@lilypond[quote,verbatim]
guitar = \relative c' {
- r8 <gis-6 cis-6 b-0>~ q4 q8~ q q4
+ r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4
}
\new StaffGroup <<
ties = \relative c' {
\repeat volta 2 {
e2. f4~
- f2 g2~
+ 2 g2~
}
\alternative {
{ g4 f2. }
\score {
<<
\new StaffGroup <<
- \context Staff {
+ \new Staff {
\clef "treble_8"
\ties
}
- \context TabStaff {
+ \new TabStaff {
\ties
}
>>
ties = \relative c' {
\repeat volta 2 {
e2. f4~
- f2 g2~ }
+ 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
}
@cindex harmonic indications in tablature notation
@cindex tablature and harmonic indications
-@cindex slides in tablature notation
-@cindex tablature and slides
-@cindex chord glissandi
@funindex \harmonic
@funindex \harmonicByFret
@funindex \harmonicByRatio
pitches:
@lilypond[verbatim,quote]
+\layout { \omit Voice.StringNumber }
firstHarmonic = {
d'4\4\harmonic
g'4\3\harmonic
}
\score {
<<
- \new Staff { \firstHarmonic }
+ \new Staff {
+ \clef "treble_8"
+ \firstHarmonic
+ }
\new TabStaff { \firstHarmonic }
>>
}
}
\score {
<<
- \new Staff { \fretHarmonics }
+ \new Staff {
+ \clef "treble_8"
+ \fretHarmonics
+ }
\new TabStaff { \fretHarmonics }
>>
}
}
\score {
<<
- \new Staff { \ratioHarmonics }
+ \new Staff {
+ \clef "treble_8"
+ \ratioHarmonics
+ }
\new TabStaff { \ratioHarmonics }
>>
}
@lilypondfile[verbatim,quote,texidoc,doctitle]
{fretted-string-harmonics-in-tablature.ly}
+@cindex slides in tablature notation
+@cindex tablature and slides
+
@lilypondfile[verbatim,quote,texidoc,doctitle]
{slides-in-tablature.ly}
+@cindex chord glissandi
+
@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 Staff {
+ \new Voice \with {
+ \omit StringNumber
+ } {
\clef "bass_8"
\relative c, {
c4 d e f
}
}
- \new TabStaff {
- \set TabStaff.stringTunings = #bass-tuning
+ \new TabStaff \with {
+ stringTunings = #bass-tuning
+ } {
\relative c, {
c4 d e f
}
\mynotes
}
\new TabStaff {
- \set stringTunings = \stringTuning <c' g' d'' a''>
+ \set Staff.stringTunings = \stringTuning <c' g' d'' a''>
\mynotes
}
>>
The previous example could also be written as follows:
@lilypond[quote,verbatim]
-"custom-tuning" = \stringTuning <c' g' d'' a''>
+custom-tuning = \stringTuning <c' g' d'' a''>
mynotes = {
c'4 e' g' c'' |
\layout @{
\context @{
\TabStaff
- stringTunings = \stringTuning \notemode @{ <c' g' d'' a''> @}
+ stringTunings = \stringTuning <c' g' d'' a''>
@}
@}
@end example
@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;"
@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;"
@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 {
- \override Voice.TextScript
- #'(fret-diagram-details finger-code) = #'below-string
+ \new 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;"
@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 #'(
@c \override is necessary to make fingering visible
@lilypond[quote, verbatim]
<<
- \context ChordNames {
+ \new ChordNames {
\chordmode {
f1 g c
}
}
- \context Staff {
+ \new Staff {
\clef "treble_8"
- \override Voice.TextScript
- #'(fret-diagram-details finger-code) = #'below-string
+ \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 1 3 3)
)
}
- <c e g c' e'>1^\markup {
+ <c g c' e' g'>1^\markup {
\fret-diagram-verbose #'(
(capo 3)
(mute 6)
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
\chordmode {
c1 d
}
by following the examples found in
@file{predefined-guitar-fretboards.ly}.
-Fret diagrams for the ukulele are contained in the file
+Fret diagrams for the ukulele are contained in the file @*
@file{predefined-ukulele-fretboards.ly}.
@lilypond[verbatim, ragged-right, quote]
}
\new FretBoards {
- \set stringTunings = #ukulele-tuning
+ \set Staff.stringTunings = #ukulele-tuning
\myChords
}
@end lilypond
-Fret diagrams for the mandolin are contained in the file
+Fret diagrams for the mandolin are contained in the file @*
@file{predefined-mandolin-fretboards.ly}.
@lilypond[verbatim, ragged-right, quote]
}
\new FretBoards {
- \set stringTunings = #mandolin-tuning
+ \set Staff.stringTunings = #mandolin-tuning
\myChords
}
@end lilypond
@lilypond[verbatim, ragged-right,quote]
\include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
\chordmode { c1 }
<c' e' g'>1
}
}
<<
- \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
}
>>
}
<<
- \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]
@ref{Predefined fretboard diagrams}.
Installed Files:
-@file{ly/predefined-guitar-fretboards.ly},
-@file{ly/predefined-guitar-ninth-fretboards.ly},
-@file{ly/predefined-ukulele-fretboards.ly},
+@file{ly/predefined-guitar-fretboards.ly}, @*
+@file{ly/predefined-guitar-ninth-fretboards.ly}, @*
+@file{ly/predefined-ukulele-fretboards.ly}, @*
@file{ly/predefined-mandolin-fretboards.ly}.
Snippets:
@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
#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
@funindex rightHandFinger
@funindex \rightHandFinger
-Right-hand fingerings @var{p-i-m-a} must be entered within a
-chord construct @code{<>} for them to be printed in the score,
-even when applied to a single note.
+Right-hand fingerings @var{p-i-m-a} must be entered using
+@code{\rightHandFinger} followed by a number.
-@warning{There @strong{must} be a hyphen before
-@code{@bs{}rightHandFinger} and a space before the closing @code{>}.}
+@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]
\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
+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
@end lilypond
For convenience, you can abbreviate @code{\rightHandFinger} to something
short, for example @code{RH},
@example
-#(define RH rightHandFinger)
+RH=#rightHandFinger
@end example
\clef "treble_8"
b16 d g b e
\textSpannerDown
-\override TextSpanner #'(bound-details left text) = #"XII "
+\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]
\relative c' {
\clef "treble_8"
- \override Staff.NoteHead #'style = #'harmonic-mixed
+ \override Staff.NoteHead.style = #'harmonic-mixed
d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
}
@end lilypond
< 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
}
@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