X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Ffretted-strings.itely;h=db24f3d0cdf7df964e8ee94d0e1c195fc7e31a71;hb=9b95b5452f689f330178ff142fc3847193ef19a5;hp=5b4feef54573b2e918b51957e4d09d72713617a2;hpb=2055f35c47a045a50a01ff4dba8524322cfc3b48;p=lilypond.git diff --git a/Documentation/notation/fretted-strings.itely b/Documentation/notation/fretted-strings.itely index 5b4feef545..db24f3d0cd 100644 --- a/Documentation/notation/fretted-strings.itely +++ b/Documentation/notation/fretted-strings.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.16" @node Fretted string instruments @section Fretted string instruments @@ -76,7 +76,6 @@ in @ref{Collision resolution}. @end itemize - @seealso Notation Reference: @ref{Fingering instructions}, @@ -98,37 +97,36 @@ Notation Reference: @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" -4 2 +c4\5 e\4 g2\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" -2 +g4\3-0 +g-0\3 + @end lilypond @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {controlling-the-placement-of-chord-fingerings.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {allowing-fingerings-to-be-printed-inside-the-staff.ly} - @seealso Notation Reference: @ref{Fingering instructions}. @@ -223,19 +221,23 @@ symbols = { @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 { \override Voice.StringNumber #'stencil = ##f } \new StaffGroup << \new Staff \relative c { \clef "treble_8" @@ -248,39 +250,44 @@ minimumFret is 0. 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 } >> @end lilypond -@funindex \tabChordRepetition +@funindex \tabChordRepeats +@funindex \chordRepeats +@cindex Chord, repetition +@cindex repetition, using @code{q} Chord constructs can be repeated by the chord repetition symbol -@code{q}. To use this feature in combination with tablature, -@code{\tabChordRepetition} is provided. It preserves the string -information explicitly given within chord constructs so repeated chords -get identical tablature representations. +@code{q}. In combination with tabulatures, its behavior of removing +string and finger numbers alongside with other events is cumbersome, so +you'll want to run +@example +\chordRepeats #'(string-number-event fingering-event) +@end example +explicitly on music expressions in tabulature using @ref{Chord +repetition}. This particular command is so common that it is available +as @code{\tabChordRepeats}. @lilypond[quote,verbatim] -\tabChordRepetition - guitar = \relative c' { - r8 ~ q4 q8~ q q4 + r8 ~ q4 q8~ q q4 } \new StaffGroup << \new Staff { \clef "treble_8" - \override Voice.StringNumber #'transparent = ##t \guitar } \new TabStaff { - \guitar + \tabChordRepeats \guitar } >> @end lilypond - Ties over a line break are parenthesized by default. The same holds for the second alternative of a repeat. @@ -372,10 +379,11 @@ Harmonic indications can be added to tablature notation as sounding pitches: @lilypond[verbatim,quote] +\layout { \override Voice.StringNumber #'stencil = ##f } firstHarmonic = { - 4 - 4 - 2 + d'4\4\harmonic + g'4\3\harmonic + b'2\2\harmonic } \score { << @@ -385,8 +393,9 @@ firstHarmonic = { } @end lilypond -Note that the command @code{\harmonic} must always be defined -inside a chord construct. It only makes sense for open-string harmonics +Note that the command @code{\harmonic} must always be attached to single +notes (possibly inside of a chord) instead of whole chords. +It only makes sense for open-string harmonics in the 12th fret. All other harmonics should be calculated by LilyPond. This can be achieved by indicating the fret where a finger of the fretting hand should touch a string. @@ -423,33 +432,32 @@ ratioHarmonics = { } @end lilypond - @snippets - -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {stem-and-beam-behavior-in-tablature.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {polyphony-in-tablature.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {open-string-harmonics-in-tablature.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {fretted-string-harmonics-in-tablature.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {slides-in-tablature.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {chord-glissando-in-tablature.ly} - @seealso Notation Reference: -@ref{Stems}, +@ref{Chord repetition}, +@ref{Glissando}, @ref{Harmonics}, -@ref{Glissando}. +@ref{Stems}, +@ref{Written-out repeats}. Snippets: @rlsr{Fretted strings}. @@ -460,9 +468,7 @@ Internals Reference: @rinternals{TabVoice}, @rinternals{Beam}. - @knownissues - 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. @@ -485,6 +491,7 @@ melodia = \partcombine { e4 g g g } { e4 e e e } Guitar special effects are limited to harmonics and slides. + @node Custom tablatures @unnumberedsubsubsec Custom tablatures @@ -503,7 +510,7 @@ Guitar special effects are limited to harmonics and slides. @cindex tablature, bass @cindex tablature, double bass -@funindex StringTunings +@funindex stringTunings LilyPond tablature automatically calculates the fret for a note based on the string to which the note is assigned. @@ -520,14 +527,17 @@ written. @lilypond[quote,ragged-right,verbatim] << - \new Staff { + \new Voice \with { + \override StringNumber #'stencil = ##f + } { \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 } @@ -539,21 +549,20 @@ 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}. The predefined string tunings -are found in @file{ly/string-tuning-init.ly}. +are found in @file{ly/string-tunings-init.ly}. -@funindex contextStringTunings -@funindex \contextStringTunings +@funindex stringTuning +@funindex \stringTuning @cindex tablature, custom string tunings @cindex custom string tunings Any desired string tuning can be created. The -@code{\contextStringTuning} function can be -used to define a string tuning and set it as the -@code{stringTunings} for the current context. -@code{\contextStringTuning} takes two arguments: the -symbol in which the string tuning will be stored, -and a chord construct -that defines the pitches of each string in the tuning. +@code{\stringTuning} function can be +used to define a string tuning which can be used +to set @code{stringTunings} for the current context. + +Its argument is a chord construct +defining the pitches of each string in the tuning. The chord construct must be in absolute octave mode, see @ref{Absolute octave entry}. The string with the highest number (generally the lowest string) must @@ -574,7 +583,7 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + \set stringTunings = \stringTuning \mynotes } >> @@ -583,21 +592,14 @@ mynotes = { The @code{stringTunings} property is also used by @code{FretBoards} to calculate automatic fret diagrams. -@funindex makeStringTuning -@funindex \makeStringTuning - String tunings are used as part of the hash key for predefined fret diagrams -(see @ref{Predefined fret diagrams}). The @code{\makeStringTuning} -function is used to create a string tuning without setting the -@code{stringTunings} property in the current context. The -arguments to @code{\makeStringTuning} are the symbol to be -used for the new string tuning and a chord construct used -to define the tuning. +(see @ref{Predefined fret diagrams}). + The previous example could also be written as follows: @lilypond[quote,verbatim] -\makeStringTuning #'custom-tuning +"custom-tuning" = \stringTuning mynotes = { c'4 e' g' c'' | @@ -627,36 +629,26 @@ A string pitch in a string tuning list is a LilyPond pitch object. Pitch objects are created with the Scheme function @code{ly:make-pitch} (see @ref{Scheme functions}). -If desired, a string tuning can be created as a Scheme -literal. The example below recreates the examples above, -but the string tuning is not saved as a separate object: - -@lilypond[quote,verbatim] -mynotes = { - c'4 e' g' c'' | - e''4 g'' b'' c''' -} - -<< - \new Staff { - \clef treble - \mynotes - } - \new TabStaff { - \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0) - ,(ly:make-pitch 1 1 0) - ,(ly:make-pitch 0 4 0) - ,(ly:make-pitch 0 0 0)) - \mynotes - } ->> -@end lilypond +@code{\stringTuning} creates such an object from chord input. LilyPond automatically calculates the number of lines in the @code{TabStaff} and the number of strings in an automatically calculated @code{FretBoard} as the number of elements in @code{stringTunings}. +To let all TabStaff contexts use the same custom tuning by default, +you can use + +@example +\layout @{ + \context @{ + \TabStaff + stringTunings = \stringTuning \notemode @{ @} + @} +@} +@end example + + @cindex moderntab clef @cindex clef, moderntab @cindex clef, tab @@ -683,7 +675,7 @@ Notation Reference: @ref{Scheme functions}. Installed Files: -@file{ly/string-tuning-init.ly} +@file{ly/string-tunings-init.ly}, @file{scm/tablature.scm}. Snippets: @@ -697,6 +689,7 @@ Automatic tablature calculations do not work properly in most cases for instruments where string pitches do not vary monotonically with string number, such as ukuleles. + @node Fret diagram markups @unnumberedsubsubsec Fret diagram markups @@ -1087,10 +1080,10 @@ markup, the interface properties belong to @code{Voice.TextScript}. @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {changing-fret-orientations.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {customizing-markup-fret-diagrams.ly} @seealso @@ -1107,7 +1100,6 @@ Internals Reference: @node Predefined fret diagrams @unnumberedsubsubsec Predefined fret diagrams - @cindex fret diagrams @cindex fret diagrams, ukulele @cindex fret diagrams, mandolin @@ -1389,19 +1381,18 @@ the interface properties belong to @code{FretBoards.FretBoard}. @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {customizing-fretboard-fret-diagrams.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {defining-predefined-fretboards-for-other-instruments.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {chordchanges-for-fretboards.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {fretboards-alternate-tables.ly} - @seealso Notation Reference: @ref{Custom tablatures}, @@ -1569,7 +1560,6 @@ diagram, the interface properties belong to @code{\predefinedFretboardsOn}. @endpredefined - @seealso Notation Reference: @ref{Custom tablatures}. @@ -1595,40 +1585,38 @@ with non-monotonic tunings. @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" -4 - - - -1 +c4\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 @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {placement-of-right-hand-fingerings.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {fingerings,-string-indications,-and-right-hand-fingerings.ly} - @seealso Snippets: @rlsr{Fretted strings}. @@ -1674,7 +1662,6 @@ b16 e g e b g\stopTextSpan e16 b g d @end lilypond - @seealso Notation Reference: @ref{Text spanners}. @@ -1883,22 +1870,21 @@ correct fret numbers for the fifth string: @funindex banjo-open-dm-tuning @funindex four-string-banjo -A number of common tunings for banjo are predefined in LilyPond: +A number of common tunings for the five-string banjo are predefined: @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 may be converted to four-string tunings using the @code{four-string-banjo} function: @example \set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning) @end example - @seealso +Installed Files: +@file{ly/string-tunings-init.ly}. + Snippets: @rlsr{Fretted strings}. - -Installed Files: -@file{scm/string-tunings-init.scm} contains predefined banjo tunings.