X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fuser%2Ffretted-strings.itely;h=0a7e7ef27b8e5e0a0b9f283d84e3dce0aa88dfeb;hb=240c626c76bf97fba917bf04bf01c0bdf9bd4a8e;hp=1aea258d0c27bd39f24dd309743dcaa933041fb6;hpb=3cf2e35a2b7cfe3f8e43068c645d00990fa9c670;p=lilypond.git diff --git a/Documentation/user/fretted-strings.itely b/Documentation/user/fretted-strings.itely index 1aea258d0c..0a7e7ef27b 100644 --- a/Documentation/user/fretted-strings.itely +++ b/Documentation/user/fretted-strings.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.51" +@c \version "2.11.61" @node Fretted string instruments @section Fretted string instruments @@ -17,12 +17,15 @@ This section discusses several aspects of music notation that are unique to fretted string instruments. @cindex tablature +@cindex tablature, guitar +@cindex tablature, banjo @cindex guitar tablature +@cindex banjo tablature @menu -* Common notation for fretted strings:: -* Guitar:: -* Banjo:: +* Common notation for fretted strings:: +* Guitar:: +* Banjo:: @end menu @node Common notation for fretted strings @@ -32,16 +35,18 @@ This section discusses common notation that is unique to fretted string instruments. @menu -* References for fretted strings:: -* String number indications:: -* Default tablatures:: -* Custom tablatures:: -* Fret diagrams:: -* Right hand fingerings:: +* References for fretted strings:: +* String number indications:: +* Default tablatures:: +* Custom tablatures:: +* Fret diagram markups:: +* Predefined fret diagrams:: +* Automatic fret diagrams:: +* Right-hand fingerings:: @end menu @node References for fretted strings -@subsubsection References for fretted strings +@unnumberedsubsubsec References for fretted strings Music for fretted string instruments is normally notated on a single staff, either in traditional music notation or in @@ -68,18 +73,21 @@ in @ref{Collision resolution}. @seealso Notation Reference: -@ref{Instrument names}, -@ref{Writing music in parallel}, @ref{Fingering instructions}, @ref{Ties}, +@ref{Collision resolution}, +@ref{Instrument names}, +@ref{Writing music in parallel}, @ref{Arpeggio}, @ref{List of articulations}, @ref{Clef}. @node String number indications -@subsubsection String number indications +@unnumberedsubsubsec String number indications -@cindex String numbers +@cindex string numbers +@cindex string vs. fingering numbers +@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 @@ -126,9 +134,13 @@ Internals Reference: @node Default tablatures -@subsubsection Default tablatures -@cindex Tablatures, basic -@cindex Tablatures, default +@unnumberedsubsubsec Default tablatures + +@cindex tablatures, basic +@cindex tablatures, default + +@funindex TabStaff +@funindex TabVoice Tablature notation is used for notating music for plucked string instruments. Pitches are not denoted with note heads, but by @@ -149,13 +161,14 @@ The notes are printed as tablature, by using @code{TabStaff} and @end lilypond @funindex minimumFret + @cindex fret When no string is specified for a note, the note is assigned to the lowest string that can generate the note with a fret number -greater than or equal to @code{minimumFret} is selected. The -default value for @code{minimumFret} is 0. +greater than or equal to the value of @code{minimumFret}. +The default value for @code{minimumFret} is 0. @lilypond[quote,ragged-right,verbatim] @@ -173,57 +186,30 @@ default value for @code{minimumFret} is 0. >> @end lilypond -@snippets +@cindex harmonic indications in tablature notation +@cindex tablature and harmonic indications +@cindex slides in tablature notation +@cindex tablature and slides -The direction of stems is controlled the same way in tablature as -in traditional notation. Beams can be made horizontal: +Harmonic indications and slides can be added to tablature +notation. -@lilypond[quote,ragged-right,verbatim] +@lilypond[fragment, verbatim, quote, relative=1] \new TabStaff { - \relative c { - g16 b d g - b d g b - \stemDown - \override Beam #'damping = #100000 - g,,16 b d g - b d g b + \new TabVoice { + d\2\glissando e\2 } } @end lilypond -Polyphony is created the same way in a @code{TabStaff} as in a -regular staff. -@lilypond[quote,ragged-right,verbatim] -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 -} +@snippets -lower = \relative c { - \key e \minor - \voiceTwo - r16 e d c b a g4 fis8 e fis g a b c -} +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{stem-and-beam-behavior-in-tablature.ly} -\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 - >> - >> - >> -} -@end lilypond +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{polyphony-in-tablature.ly} @seealso @@ -261,64 +247,115 @@ melodia = \partcombine { e4 g g g }{ e4 e e e } >> @end lilypond +Guitar special effects are limited to harmonics and slides. @node Custom tablatures -@subsubsection Custom tablatures -@cindex Tablatures, custom +@unnumberedsubsubsec Custom tablatures -You can change the tuning of the strings. A string tuning is -given as a Scheme list with one integer number for each string, -the number being the pitch (measured in semitones relative to -middle C) of an open string. The numbers specified for -@code{stringTunings} are the numbers of semitones to subtract or -add, starting the specified pitch by default middle C, in string -order. LilyPond automatically calculates the number of strings by -looking at @code{stringTunings}. +@cindex tablatures, custom +@cindex tablature, banjo +@cindex tablature, mandolin +@cindex tablature, bass guitar +@cindex tablature, predefined string tunings +@cindex fretted instruments, predefined string tunings +@cindex predefined string tunings for fretted instruments -In the next example, @code{stringTunings} is set for the pitches -e, a, d, and g. +@funindex StringTunings -@lilypond[quote,ragged-right,fragment,verbatim] -\new TabStaff << - \set TabStaff.stringTunings = #'(-5 -10 -15 -20) - { - a,4 c' a e' e c' a e' - } ->> -@end lilypond +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 +@code{StringTunings} property. LilyPond comes with predefined string tunings for banjo, mandolin, -guitar and bass guitar. +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. -@example -\set TabStaff.stringTunings = #bass-tuning -@end example +@lilypond[quote,ragged-right,verbatim] +<< + \new Staff { + \clef "bass_8" + \relative c, { + c4 d e f + } + } + \new TabStaff { + \set TabStaff.stringTunings = #bass-tuning + \relative c, { + c4 d e f + } + } +>> +@end lilypond -The default string tuning is @code{guitar-tuning} (the standard -EADGBE tuning). Some other predefined tunings are +The default string tuning is @code{guitar-tuning}, which +is the standard EADGBE tuning. Some other predefined tunings are @code{guitar-open-g-tuning}, @code{mandolin-tuning} and -@code{banjo-open-g-tuning}. +@code{banjo-open-g-tuning}. The predefined string tunings +are found in @code{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 +@code{TabStaff} as the number of elements in @code{stringTunings}. + +Any desired string tuning can be created. For example, we can +define a string tuning for a four-string instrument with pitches +of @code{a''}, @code{d''}, @code{g'}, and @code{c'}: + + +@lilypond[quote,verbatim] +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 + } +>> +@end lilypond @seealso +Installed Files: +@file{scm/output-lib.scm}. + Snippets: @rlsr{Fretted strings}. -The file @file{scm/@/output@/-lib@/.scm} contains the predefined string -tunings. - -Internals Reference: @rinternals{Tab_note_heads_engraver}. - -@knownissues - -No guitar special effects have been implemented. +Internals Reference: +@rinternals{Tab_note_heads_engraver}. +@node Fret diagram markups +@unnumberedsubsubsec Fret diagram markups -@node Fret diagrams -@subsubsection Fret diagrams @cindex fret diagrams @cindex chord diagrams +@cindex diagrams, fret +@cindex diagrams, chord for fretted instruments +@cindex fret diagrams, custom +@cindex custom fret diagrams Fret diagrams can be added to music as a markup to the desired note. The markup contains information about the desired fret @@ -328,6 +365,285 @@ produce equivalent markups, but have varying amounts of information in the markup string. Details about the markup interfaces are found at @ref{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. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +@cindex barre indications + +Barre indications can be added to the diagram from +the fret-diagram markup string. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +@cindex fret-diagram markup + +@funindex fret-diagram +@funindex \fret-diagram + +The size of the fret diagram, and the number of frets in the diagram +can be changed in the fret-diagram markup string. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +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. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +Fingering indications can be added, and the location of fingering labels +can be controlled by the fret-diagram markup string. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +Dot radius and dot position can be controlled with the fret-diagram +markup string. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +@cindex fret-diagram-terse markup + +@funindex fret-diagram-terse +@funindex \fret-diagram-terse + +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. + +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +Barre indicators can be included in the fret-diagram-terse markup string. + +@lilypond[quote, verbatim] +<< + \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-);" + } +>> +@end lilypond + +Fingering indications can be included in the fret-diagram-terse markup string. + +@c Need to use override to enable fingerings to show this -- can we do so? +@lilypond[quote, verbatim] +<< + \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;" + } +>> +@end lilypond + +Other fret diagram properties must be adjusted using @code{\override} when using +the fret-diagram-terse markup. + +@cindex fret-diagram-verbose markup + +@funindex fret-diagram-verbose +@funindex \fret-diagram-verbose + +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. + +@lilypond[quote, verbatim] +<< \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) + ) + } +>> +@end lilypond + +Fingering indications and barres can be included in a +fret-diagram-verbose markup string. + +@c \override is necessary to make fingering visible +@lilypond[quote, verbatim] +<< + \context ChordNames { + \chordmode { + f1 g + } + } + \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) + ) + } +>> +@end lilypond + +All other fret diagram properties must be adjusted using @code{\override} +when using the fret-diagram-verbose markup. + +@ignore The following example shows the three fret-diagram markup interfaces, along with examples of common tweaks. For example, the size of the verbose fret diagram is reduced to 0.75, and the @@ -361,19 +677,450 @@ and color of dots. c c c } @end lilypond +@end ignore + +@cindex customized fret diagram +@cindex fret diagram, customized +@cindex diagram, fret, customized + +@funindex fret-diagram-interface -You can set a number of graphical properties according to your preference. -Details about the property interface to fret diagrams are found at +The graphical layout of a fret diagram can be customized according to +user preference through the properties of the @code{fret-diagram-interface}. +Details are found at @rinternals{fret-diagram-interface}. For a fret diagram +markup, the interface properties belong to @code{Voice.TextScript}. + +@snippets + +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{customizing-markup-fret-diagrams.ly} + + +@seealso + +Notation Reference: +@ref{Text markup commands}. + +Snippets: +@rlsr{Fretted strings}. + +Internals Reference: @rinternals{fret-diagram-interface}. +@node Predefined fret diagrams +@unnumberedsubsubsec Predefined fret diagrams + + +@cindex fret diagrams +@cindex chord diagrams + +@funindex FretBoards +@funindex stringTunings + +Fret diagrams can be displayed using the @code{FretBoards} context. By +default, the @code{FretBoards} context will display fret diagrams that +are stored in a lookup table: + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" +\context FretBoards { + \chordmode { + c1 d + } +} +@end lilypond + +The default predefined fret diagrams are contained in the file +@code{predefined-guitar-fretboards.ly}. Fret diagrams are +stored based on the pitches of a chord and the value of +@code{stringTunings} that is currently in use. +@code{predefined-guitar-fretboards.ly} contains predefined +fret diagrams only for @code{guitar-tuning}. Predefined fret +diagrams can be added for other instruments or other tunings +by following the examples found in +@code{predefined-guitar-fretboards.ly}. + +Chord pitches can be entered +either as simultaneous music or using chord mode (see +@ref{Chord mode overview}). + +@lilypond[verbatim, ragged-right,quote] +\include "predefined-guitar-fretboards.ly" +\context FretBoards { + \chordmode {c1} + 1 +} +@end lilypond + +@cindex chord names with fret diagrams +@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. +This is achieved by putting a @code{ChordNames} context in parallel with +a @code{FretBoards} context and giving both contexts the same music. + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" +mychords = \chordmode{ + c1 f g +} + +<< + \context ChordNames { + \mychords + } + \context FretBoards { + \mychords + } +>> +@end lilypond + +@cindex transposing fret diagrams +@cindex fret diagrams, transposing +@cindex diagrams, fret, transposing + +Predefined fret diagrams are transposable, as long as a diagram for the +transposed chord is stored in the fret diagram table. + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" +mychords = \chordmode{ + c1 f g +} + +mychordlist = { + \mychords + \transpose c e { \mychords} +} +<< + \context ChordNames { + \mychordlist + } + \context FretBoards { + \mychordlist + } +>> +@end lilypond + + +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 @ref{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 +@ref{Automatic fret diagrams}. + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" +mychords = \chordmode{ + c1 c:9 +} + +<< + \context ChordNames { + \mychords + } + \context FretBoards { + \mychords + } +>> +@end lilypond + +@cindex fret diagrams, adding custom +@cindex custom fret diagrams, adding +@cindex adding custom fret diagrams + +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 the +fret-diagram-terse definition string for the diagram. + +@lilypond[verbatim, ragged-right, quote] +\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 + } +>> +@end lilypond + +Different fret diagrams for the same chord name can be stored using different +octaves of pitches. + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" + +\storePredefinedDiagram \chordmode {c'} + #guitar-tuning + #(offset-fret 2 (chord-shape 'bes)) + +mychords = \chordmode{ + c1 c' +} + +<< + \context ChordNames { + \mychords + } + \context FretBoards { + \mychords + } +>> +@end lilypond + +@cindex fretted instruments, chord shapes +@cindex chord shapes for fretted instruments + +@funindex \addChordShape +@funindex add ChordShape +@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 +shapes can be added to the internal list and then used to define +predefined fret diagrams. + +@lilypond[verbatim, ragged-right, quote] +\include "predefined-guitar-fretboards.ly" + +% add a new chord shape + +\addChordShape #'powerf #"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) +\storePredefinedDiagram \chordmode {g'} + #guitar-tuning + #(offset-fret 2 (chord-shape 'powerf)) + +mychords = \chordmode{ + f1 f' g g' +} + +<< + \context ChordNames { + \mychords + } + \context FretBoards { + \mychords + } +>> +@end lilypond + +The graphical layout of a fret diagram can be customized according to +user preference through the properties of the @code{fret-diagram-interface}. +Details are found at @rinternals{fret-diagram-interface}. For a +predefined fret diagram, the interface properties belong to +@code{FretBoards.FretBoard}. + +@snippets + +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{customizing-fretboard-fret-diagrams.ly} + + +@seealso + +Notation Reference: +@ref{Custom tablatures}, +@ref{Automatic fret diagrams}, +@ref{Chord mode overview}, +@ref{Predefined fretboard diagrams}. + +Installed Files: +@file{ly/predefined-guitar-fretboards.ly}, +@file{ly/predefined-guitar-ninth-fretboards.ly}. + +Snippets: +@rlsr{Fretted strings}. + +Internals Reference: +@rinternals {fret-diagram-interface}. + + +@node Automatic fret diagrams +@unnumberedsubsubsec Automatic fret diagrams + +@cindex fret diagrams, automatic +@cindex chord diagrams, automatic +@cindex automatic fret diagrams +@cindex automatic chord diagrams + +Fret diagrams can be automatically created from entered notes using the +@code{FretBoards} context. If no predefined diagram is available for +the entered notes in the active @code{stringTunings}, this context +calculates strings and frets that can be used to play the notes. + +@lilypond[quote,ragged-right,verbatim] +<< + \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'> + } +>> +@end lilypond + +@funindex predefinedFretboardsOff +@funindex \predefinedFretboardsOff +@funindex predefinedFretboardsOn +@funindex \predefinedFretboardsOn + +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: + +@lilypond[quote,ragged-right,verbatim] + +\storePredefinedDiagram + #guitar-tuning + #"x;3-1-(;5-2;5-3;5-4;3-1-1);" +<< + \context ChordNames { + \chordmode { + c1 c c + } + } + \context FretBoards { + 1 + \predefinedFretboardsOff + + \predefinedFretboardsOn + + } + \context Staff { + \clef "treble_8" + 1 + + + } +>> +@end lilypond + + + +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 @code{FretBoards} +context. + +@cindex fret diagrams, adding fingerings +@cindex fingerings, adding to fret diagrams + +Fingerings can be added to FretBoard fret diagrams. + +@lilypond[quote, verbatim] +<< + \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'> + } +>> +@end lilypond + +The minimum fret to be used in calculating strings and frets for +the FretBoard context can be set with the @code{minimumFret} +property. + +@lilypond[quote, verbatim] +<< + \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'> + } +>> +@end lilypond + +The strings and frets for the @code{FretBoards} context depend +on the @code{stringTunings} property, which has the same meaning +as in the TabStaff context. See @ref{Custom tablatures} for +information on the @code{stringTunings} property. + +The graphical layout of a fret diagram can be customized according to +user preference through the properties of the @code{fret-diagram-interface}. +Details are found at @rinternals{fret-diagram-interface}. For a +@code{FretBoards} fret diagram, the interface properties belong to +@code{FretBoards.FretBoard}. + +@predefined +@code{\predefinedFretboardsOff}, +@code{\predefinedFretboardsOn}. @seealso +Notation Reference: +@ref{Custom tablatures}. + Snippets: @rlsr{Fretted strings}. +Internals Reference: +@rinternals {fret-diagram-interface}. + + @node Right-hand fingerings -@subsubsection Right-hand fingerings +@unnumberedsubsubsec Right-hand fingerings + +@cindex fretted instruments, right hand fingerings +@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 within a chord construct @code{<>} for them to be printed in the score, @@ -383,14 +1130,13 @@ even when applied to a single note. before the closing @code{>}.} @lilypond[quote,verbatim,relative=0] -{ - \clef "treble_8" - 4 - - - - 1 -} +\clef "treble_8" +4 + + + +1 @end lilypond For convenience, you can abbreviate @code{\rightHandFinger} to something @@ -400,40 +1146,14 @@ short, for example @code{RH}, #(define RH rightHandFinger) @end example -@cindex fingerings, right hand, for guitar -@cindex right hand fingerings for guitar @snippets -You may exercise greater control over the placement of right-hand -fingerings by setting @code{strokeFingerOrientations}, - -@lilypond[quote,verbatim,ragged-right,fragment,relative=0] -#(define RH rightHandFinger) -{ - \clef "treble_8" - \set strokeFingerOrientations = #'(up down) - 4 - \set strokeFingerOrientations = #'(up right down) - 4 - \set strokeFingerOrientations = #'(left) - 2 -} -@end lilypond - -This example combines left-hand fingering, string indication, and -right-hand fingering +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{placement-of-right-hand-fingerings.ly} -@lilypond[quote,ragged-right,fragment,verbatim,relative=0] -#(define RH rightHandFinger) -{ - \clef "treble_8" - 4 - - - -} -@end lilypond +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{fingerings,-string-indications,-and-right-hand-fingerings.ly} @seealso @@ -447,24 +1167,25 @@ Internals Reference: @node Guitar @subsection Guitar -@c TODO Make a snippet based on -@c http://www.nabble.com/Creating-a-nice-formatted-Chords-%2B-Lyrics-layout-for-guitar-players-to13829430.html -@c and include it somewhere -td +Most of the notational issues associated with guitar music are +covered sufficiently in the general fretted strings section, but there +are a few more worth covering here. Occasionally users want to +create songbook-type documents having only lyrics with chord +indications above them. Since Lilypond is a music typesetter, +it is not recommended for documents that have no music notation +in them. A better alternative is a word processor, text editor, +or, for experienced users, a typesetter like GuitarTeX. @menu -* Guitar tablatures:: -* Indicating position and barring:: -* Indicating harmonics and dampened notes:: +* Indicating position and barring:: +* Indicating harmonics and dampened notes:: @end menu -@node Guitar tablatures -@subsubsection Guitar tablatures - -@c TODO Add text -TBC - @node Indicating position and barring -@subsubsection Indicating position and barring +@unnumberedsubsubsec Indicating position and barring + +@cindex indicating position and barring for fretted instruments +@cindex fretted instruments, indicating position and barring This example demonstrates how to include guitar position and barring indications. @@ -479,8 +1200,22 @@ b16 d g b e e16 b g d @end lilypond +@seealso + +Notation Reference: +@ref{Text spanners}. + +Snippets: +@rlsr{Fretted strings}, +@rlsr{Expressive marks}. + @node Indicating harmonics and dampened notes -@subsubsection Indicating harmonics and dampened notes +@unnumberedsubsubsec Indicating harmonics and dampened notes + +@cindex fretted instruments, dampened notes +@cindex fretted instruments, harmonics +@cindex dampened notes on fretted instruments +@cindex harmonics on fretted instruments Special note heads can be used to indicate dampened notes or harmonics. Harmonics are normally further explained with a @@ -508,18 +1243,22 @@ Notation Reference: @node Banjo @subsection Banjo -@menu Banjo tablatures -* Banjo tablatures:: +@menu +* Banjo tablatures:: @end menu @node Banjo tablatures -@subsubsection Banjo tablatures -@cindex Banjo tablatures +@unnumberedsubsubsec Banjo tablatures + +@cindex banjo tablatures +@cindex tablature, banjo LilyPond has basic support for the five-string banjo. When making tablatures for five-string banjo, use the banjo tablature format function to get correct fret numbers for the fifth string: +@c due to crazy intervals of banjo music, absolute pitch is recommended + @lilypond[quote,ragged-right,fragment,verbatim] \new TabStaff << \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo @@ -533,12 +1272,21 @@ correct fret numbers for the fifth string: >> @end lilypond +@cindex banjo tunings +@cindex tunings, banjo + +@funindex banjo-c-tuning +@funindex banjo-modal-tuning +@funindex banjo-open-d-tuning +@funindex banjo-open-dm-tuning +@funindex four-string-banjo + A number of common tunings for banjo are predefined in LilyPond: @code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD), @code{banjo-open-d-tuning} (aDF#AD) and @code{banjo-open-dm-tuning} (aDFAD). -These tunings may be converted to four string banjo tunings using the +These tunings may be converted to four-string banjo tunings using the @code{four-string-banjo} function: @example @@ -554,3 +1302,5 @@ The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings. + +