]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/fretted-strings.itely
Doc: NR 2.4.1 - add Hammer/Pull snippets
[lilypond.git] / Documentation / notation / fretted-strings.itely
index 31bbe5ca9711a797cca28d77bcd5164c46cbf97f..121dfc0580d83731a42bb7f340ae8243f50cfd90 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.16"
+@c \version "2.17.30"
 
 @node Fretted string instruments
 @section Fretted string instruments
@@ -221,6 +221,7 @@ 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.
@@ -231,9 +232,12 @@ 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 }
+\layout { \omit Voice.StringNumber }
 \new StaffGroup <<
    \new Staff \relative c {
      \clef "treble_8"
@@ -246,6 +250,7 @@ comfortable to define the playing position by using the value of
      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
    }
 >>
@@ -305,11 +310,11 @@ ties = \relative c' {
 \score {
   <<
     \new StaffGroup  <<
-      \context Staff {
+      \new Staff {
         \clef "treble_8"
         \ties
       }
-      \context TabStaff {
+      \new TabStaff {
         \ties
       }
     >>
@@ -344,11 +349,11 @@ ties = \relative c' {
 \score {
   <<
     \new StaffGroup  <<
-      \context Staff {
+      \new Staff {
         \clef "treble_8"
         \ties
       }
-      \context TabStaff {
+      \new TabStaff {
       \hideSplitTiedTabNotes
         \ties
       }
@@ -363,9 +368,6 @@ ties = \relative c' {
 
 @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
@@ -374,7 +376,7 @@ Harmonic indications can be added to tablature notation as sounding
 pitches:
 
 @lilypond[verbatim,quote]
-\layout { \override Voice.StringNumber #'stencil = ##f }
+\layout { \omit Voice.StringNumber }
 firstHarmonic = {
   d'4\4\harmonic
   g'4\3\harmonic
@@ -382,7 +384,10 @@ firstHarmonic = {
 }
 \score {
   <<
-    \new Staff { \firstHarmonic }
+    \new Staff {
+      \clef "treble_8"
+      \firstHarmonic
+    }
     \new TabStaff { \firstHarmonic }
   >>
 }
@@ -404,7 +409,10 @@ fretHarmonics = {
 }
 \score {
   <<
-    \new Staff { \fretHarmonics }
+    \new Staff {
+      \clef "treble_8"
+      \fretHarmonics
+    }
     \new TabStaff { \fretHarmonics }
   >>
 }
@@ -421,7 +429,10 @@ ratioHarmonics = {
 }
 \score {
   <<
-    \new Staff { \ratioHarmonics }
+    \new Staff {
+      \clef "treble_8"
+      \ratioHarmonics
+    }
     \new TabStaff { \ratioHarmonics }
   >>
 }
@@ -440,12 +451,29 @@ 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},
@@ -523,7 +551,7 @@ written.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Voice \with {
-    \override StringNumber #'stencil = ##f
+    \omit StringNumber
   } {
     \clef "bass_8"
     \relative c, {
@@ -578,7 +606,7 @@ mynotes = {
     \mynotes
   }
   \new TabStaff {
-    \set stringTunings = \stringTuning <c' g' d'' a''>
+    \set Staff.stringTunings = \stringTuning <c' g' d'' a''>
     \mynotes
   }
 >>
@@ -594,7 +622,7 @@ for predefined fret diagrams
 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'' |
@@ -638,7 +666,7 @@ you can use
 \layout @{
   \context @{
     \TabStaff
-    stringTunings = \stringTuning \notemode @{ <c' g' d'' a''> @}
+    stringTunings = \stringTuning <c' g' d'' a''>
   @}
 @}
 @end example
@@ -710,12 +738,12 @@ In addition, open and unplayed (muted) strings can be indicated.
 
 @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;"
@@ -734,12 +762,12 @@ the fret-diagram markup string.
 
 @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;"
@@ -762,12 +790,12 @@ can be changed in the fret-diagram markup string.
 
 @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;"
@@ -785,12 +813,12 @@ markup string.
 
 @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;"
@@ -804,12 +832,12 @@ can be controlled by the fret-diagram markup string.
 
 @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;"
@@ -826,12 +854,12 @@ markup string.
 
 @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;"
@@ -856,12 +884,12 @@ Mute strings, open strings, and fret numbers can be indicated.
 
 @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;"
@@ -877,12 +905,12 @@ Barre indicators can be included in the fret-diagram-terse markup string.
 
 @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-);"
@@ -899,14 +927,13 @@ 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 {
+  \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;"
@@ -932,12 +959,12 @@ element of the list indicates an item to be placed on the fret diagram.
 
 @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 #'(
@@ -973,15 +1000,14 @@ capo will be the lowest fret in the fret diagram.
 @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)
@@ -1003,7 +1029,7 @@ capo will be the lowest fret in the fret diagram.
         (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)
@@ -1109,7 +1135,7 @@ are stored in a lookup table:
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
   \chordmode {
     c1 d
   }
@@ -1126,7 +1152,7 @@ diagrams can be added for other instruments or other tunings
 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]
@@ -1139,12 +1165,12 @@ myChords = \chordmode { a1 a:m a:aug }
 }
 
 \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]
@@ -1157,7 +1183,7 @@ myChords = \chordmode { c1 c:m7.5- c:aug }
 }
 
 \new FretBoards {
-  \set stringTunings = #mandolin-tuning
+  \set Staff.stringTunings = #mandolin-tuning
   \myChords
 }
 @end lilypond
@@ -1168,7 +1194,7 @@ either as simultaneous music or using chord mode (see
 
 @lilypond[verbatim, ragged-right,quote]
 \include "predefined-guitar-fretboards.ly"
-\context FretBoards {
+\new FretBoards {
   \chordmode { c1 }
   <c' e' g'>1
 }
@@ -1192,10 +1218,10 @@ mychords = \chordmode{
 }
 
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychords
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychords
   }
 >>
@@ -1219,10 +1245,10 @@ mychordlist = {
   \transpose c e { \mychords }
 }
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychordlist
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychordlist
   }
 >>
@@ -1248,10 +1274,10 @@ mychords = \chordmode{
 }
 
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychords
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychords
   }
 >>
@@ -1282,10 +1308,10 @@ mychords = \chordmode {
 }
 
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychords
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychords
   }
 >>
@@ -1309,10 +1335,10 @@ mychords = \chordmode {
 }
 
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychords
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychords
   }
 >>
@@ -1359,10 +1385,10 @@ mychords = \chordmode{
 }
 
 <<
-  \context ChordNames {
+  \new ChordNames {
     \mychords
   }
-  \context FretBoards {
+  \new FretBoards {
     \mychords
   }
 >>
@@ -1382,7 +1408,7 @@ the interface properties belong to @code{FretBoards.FretBoard}.
 @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]
@@ -1396,9 +1422,9 @@ Notation Reference:
 @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:
@@ -1423,16 +1449,16 @@ calculates strings and frets that can be used to play the notes.
 
 @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
@@ -1457,19 +1483,19 @@ commands:
                         #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
@@ -1494,16 +1520,16 @@ Fingerings can be added to FretBoard fret diagrams.
 
 @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
@@ -1519,17 +1545,17 @@ property.
 
 @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
@@ -1651,7 +1677,7 @@ barring indications.
 \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
@@ -1681,7 +1707,7 @@ text markup.
 @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
@@ -1695,7 +1721,7 @@ music = \relative c' {
   < 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
 }
@@ -1844,15 +1870,20 @@ correct fret numbers for the fifth string:
 @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