X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Ffretted-strings.itely;h=eb071b4bd2f5f533946e66765dd144b4a68d0945;hb=3fad7447039ca31737dc5c6d117b07bb0a1f0a67;hp=3e4f8a2f2af6018f7811cec5ca2997fcaf796aad;hpb=373b43f0685a4225a18bab403e1cd1caebc52d00;p=lilypond.git diff --git a/Documentation/user/fretted-strings.itely b/Documentation/user/fretted-strings.itely index 3e4f8a2f2a..eb071b4bd2 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,7 +17,10 @@ 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:: @@ -36,12 +39,14 @@ to fretted string instruments. * String number indications:: * Default tablatures:: * Custom tablatures:: -* Fret diagrams:: +* 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,31 +247,26 @@ 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. Lilypond automatically sets the correct @@ -294,46 +275,87 @@ for bass guitar, which sounds an octave lower than written. @lilypond[quote,ragged-right,verbatim] << - \new Staff << + \new Staff { \clef "bass_8" \relative c, { - c4 d e f + c4 d e f } - >> - \new TabStaff << + } + \new TabStaff { \set TabStaff.stringTunings = #bass-tuning \relative c, { - c4 d e f + 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}. -@seealso +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. -Snippets: -@rlsr{Fretted strings}. +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. -The file @file{scm/@/output@/-lib@/.scm} contains the predefined string -tunings. +LilyPond automatically calculates the number of strings in the +@code{TabStaff} as the number of elements in @code{stringTunings}. -Internals Reference: @rinternals{Tab_note_heads_engraver}. +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'}: -@knownissues -No guitar special effects have been implemented. +@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}. + +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 @@ -343,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 @@ -376,19 +677,468 @@ 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 + +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}. -You can set a number of graphical properties according to your preference. -Details about the property interface to fret diagrams are found at +@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}. + 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. + +@lilypond[quote,ragged-right,verbatim] +<< + \context ChordNames { + \chordmode { + c1 c + } + } + \context FretBoards { + < c g c' e' g'> 1 + < c g\4 c' e' g'> 1 + } + \context Staff { + \clef "treble_8" + < c g c' e' g'> 1 + < c g c' e' g'> 1 + } +>> +@end lilypond + +@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, @@ -413,40 +1163,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] -#(define RH rightHandFinger) -\relative c { - \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,verbatim] -#(define RH rightHandFinger) -\relative c { - \clef "treble_8" - 4 - - - -} -@end lilypond +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{fingerings,-string-indications,-and-right-hand-fingerings.ly} @seealso @@ -475,7 +1199,10 @@ or, for experienced users, a typesetter like GuitarTeX. @end menu @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. @@ -490,8 +1217,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 @@ -524,8 +1265,10 @@ Notation Reference: @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 @@ -546,12 +1289,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 @@ -568,3 +1320,4 @@ The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings. +