* FretBoards
Engraves fretboards from chords. Not easy... Not
documented.
+ There is now some documentation on FretBoards in the NR, under
+ instrument-specific notation -- cds.
+
* NoteNames
* CueVoice Not documented
render them in a @code{TabStaff} context, see
@ref{Default tablatures}.
-To create fret diagrams above a staff, enter them as markup
-above the notes using the @code{\fret-diagram} command, see
-@ref{Fret diagrams}.
+To create fret diagrams above a staff, you have two choices.
+You can either use the @code{FretBoards} context (see
+@ref{Automatic fret diagrams} or you can enter them as a markup
+above the notes using the @code{\fret-diagram} command (see
+@ref{Fret diagram markups}).
@strong{Lyrics mode}
@funindex m
The table belows shows the actions of the quality modifiers on
-triads and seventh chords.
+triads and seventh chords. A more complete table of modifier usage
+is found at @ref{Common chord modifiers}.
-@table @code
+@c @table @code
+@multitable @columnfractions .2 .5 .2
-@item m
+@item
+@b{Modifier}
+@tab
+@b{Action}
+@tab
+@b{Example}
+
+@item
+None
+@tab
+The default action; produces a major triad.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+ \override Staff.TimeSignature #'stencil = ##f
+ c1
+}
+@end lilypond
+
+@item
+m
+@tab
The minor chord. This modifier lowers the 3rd and (if present) the
7th step.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+ \override Staff.TimeSignature #'stencil = ##f
+ c1:m c:m7
+}
+@end lilypond
-@item dim
+
+@item
+dim
+@tab
The diminished chord. This modifier lowers the 3rd, 5th and (if
present) the 7th step.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+ \override Staff.TimeSignature #'stencil = ##f
+ c1:dim c:dim7
+}
+@end lilypond
-@item aug
+@item
+aug
+@tab
The augmented chord. This modifier raises the 5th step.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+ \override Staff.TimeSignature #'stencil = ##f
+ c1:aug
+}
+@end lilypond
-@item maj
+@item
+maj, maj7
+@tab
The major 7th chord. This modifier adds a raised 7th step. The
@code{7} following @code{maj} is optional. Do NOT use this modifier
to create a major triad.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+ \override Staff.TimeSignature #'stencil = ##f
+ c1:maj c:maj7
+}
+@end lilypond
-@end table
+@end multitable
-@c TODO -- perhaps add warning about c and c:maj being different, while
-@c c:maj and c:maj7 are the same
@seealso
+Notation Reference:
+@ref{Common chord modifiers}.
+
Snippets:
-@rlsr{Chords}
+@rlsr{Chords}.
@node Extended and altered chords
@unnumberedsubsubsec Extended and altered chords
version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.51"
+@c \version "2.11.53"
@node Fretted string instruments
@section Fretted string instruments
* String number indications::
* Default tablatures::
* Custom tablatures::
-* Fret diagrams::
+* Automatic fret diagrams::
+* Fret diagram markups::
* Right-hand fingerings::
@end menu
The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
tunings.
-Internals Reference: @rinternals{Tab_note_heads_engraver}.
+Internals Reference:
+@rinternals{Tab_note_heads_engraver}.
@knownissues
No guitar special effects have been implemented.
+@node Automatic fret diagrams
+@subsubsection Automatic fret diagrams
+@cindex fret diagrams
+@cindex chord diagrams
+Fret diagrams can be automatically created from entered notes using the
+@code{FretBoards} context. This context calculates strings and frets
+which 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
+
+Notes can be explicitly placed on a string. It is often enough
+to place only the lowest note on an explicit 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 d:m d:m
+ }
+ }
+ \context FretBoards {
+ < c e g c' e' > 1
+ < c\5 e g c' e' > 1
+ < d a d' f'>
+ < d\4 a d' f'>
+ }
+ \context Staff {
+ \clef "treble_8"
+ < c e g c' e' > 1
+ < c e g c' e' > 1
+ < d a d' f'>
+ < d a d' f'>
+ }
+>>
+@end lilypond
+
+Fingerings can be added to FretBoard fret diagrams.
+
+@lilypond[quote, verbatim]
+<<
+ \context ChordNames {
+ \chordmode {
+ c1 d:m
+ }
+ }
+ \context FretBoards {
+ < c\5-3 e-2 g c'-1 e' > 1
+ < d\4 a-2 d'-3 f'-1>
+ }
+ \context Staff {
+ \clef "treble_8"
+ < c e g c' e' > 1
+ < 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}.
+
+@snippets
+The minimum fret to be used in calculating strings and frets for
+the FretBoard context can be set with the @code{minimumFret}
+property.
+
+@c TODO -- snippet showing minimum fret.
+
+@c TODO -- snippet for using StringTunings
+
+@seealso
-@node Fret diagrams
-@subsubsection Fret diagrams
+Notation Reference:
+@ref{Custom tablatures}
+
+Snippets:
+@rlsr{Fretted strings}.
+
+Internals Reference:
+@rinternals {fret-diagram-interface}.
+
+
+@node Fret diagram markups
+@subsubsection Fret diagram markups
@cindex fret diagrams
@cindex chord diagrams
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
+
+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, b, d g b' g'> ^\markup
+ \fret-diagram #"c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
+ }
+>>
+@end lilypond
+
+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
+
+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, b, d g b' 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.
+
+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
c c c
}
@end lilypond
+@end ignore
-You can set a number of graphical properties according to your preference.
-Details about the property interface to fret diagrams are found at
-@rinternals{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}.
+@snippets
+TODO create snippets for changing properties. Use regression test?
@seealso
+Notation Reference:
+@ref{Text markup commands}.
+
Snippets:
@rlsr{Fretted strings}.
+Internals Reference:
+@rinternals{fret-diagram-interface}.
+
@node Right-hand fingerings
@subsubsection Right-hand fingerings
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
+
@c \version "2.11.51"
-@node Input syntax
-@chapter Input syntax
+@node General input and output
+@chapter General input and output
-This section deals with general LilyPond input syntax issues,
+This section deals with general LilyPond input and output issues,
rather than specific notation.
@menu
particular instrument (or vocal) groups.
@item
-@ruser{Input syntax}:
-discusses general information about LilyPond files and controlling
-output.
+@ruser{General input and output}:
+discusses general information about LilyPond input files and
+controlling output.
@item
@ruser{Spacing issues}:
* Musical notation:: Musical notation.
* Specialist notation:: Notation which is only used for
specific purposes.
-* Input syntax:: General information about
- lilypond input files.
+* General input and output:: General information about
+ lilypond input and output.
* Spacing issues:: Display of output on paper.
* Changing defaults:: Tuning output.
* Interfaces for programmers:: Expert usage.
@tab
@code{5} or nothing
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:5
}
@tab
@code{m} or @code{m5}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m
}
@tab
@code{aug}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:aug
}
@tab
@code{dim}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:dim
}
@tab
@code{7}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:7
}
@tab
@code{maj7} or @code{maj}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:maj7
}
@tab
@code{m7}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m7
}
@tab
@code{dim7}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:dim7
}
@tab
@code{aug7}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:aug7
}
@tab
@code{dim5m7}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:dim5m7
}
@tab
@code{7m5}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:7m5
}
@tab
@code{6}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:6
}
@tab
@code{m6}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m6
}
@tab
@code{9}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:9
}
@tab
@code{maj9}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:maj9
}
@tab
@code{m9}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m9
}
@tab
@code{11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:11
}
@tab
@code{maj11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:maj11
}
@tab
@code{m11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m11
}
@tab
@code{13.11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:13.11
}
@tab
@code{maj13.11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:maj13.11
}
@tab
@code{m13.11}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:m13.11
}
@tab
@code{sus2}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:sus2
}
@tab
@code{sus4}
@tab
-@lilypond[line-width=3\cm,noragged-right]
+@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
c1:sus4
}
entered using the @code{\partial} command, with the syntax
@example
-\partial @var{duration} @emph{notes}
+\partial @var{duration}
@end example
where @code{duration} is the rhythmic length of the interval
@knownissues
-When using different time signatures in parallel, the spacing is
-aligned vertically, but bar lines distort the regular spacing.
-
+When using different time signatures in parallel, notes
+at the same moment will be be placed at the same horizontal
+location. However, the bar lines in the different staves
+will cause the note spacing to be less regular in each of the
+individual staves than would be normal without the different
+time signatures.
@node Automatic note splitting
@subsubsection Automatic note splitting
Long notes which overrun bar lines can be converted automatically
to tied notes. This is done by replacing the
-@code{Note_heads_engraver} by the
+@code{Note_heads_engraver} with the
@code{Completion_heads_engraver}. In the following
example, notes crossing the bar lines are split and tied.
@code{Completion_heads_engraver} has inserted a split note, remove
the @code{Forbid_line_break_engraver} too.
-
+TODO -- find example that shows the above paragraph. I can't make
+the Forbid_line_break_engraver have any effect in my examples (cs).
+Does the Forbid_line_break_engraver still have the claimed effect?
@seealso
Music Glossary: @rglos{tie}
@knownissues
Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the engraver
-will not insert tuplets.
+represented exactly with normal notes and dots, but the
+@code{Completion_heads_engraver} will not insert tuplets.
The @code{Completion_heads_engraver} only affects notes; it does not
split rests.
}
@end lilypond
+TODO -- put example in with multiple lines as well (used for strumming
+rhythms in guitar)
@node Beams
@subsection Beams
@snippets
+@c TODO -- convert to snippet
Beaming patterns may be altered with the @code{beatGrouping} property,
@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
c8[^"(3+2)" c16 c8]
@end lilypond
+@c TODO convert to snippet
The beams of consecutive 16th (or shorter) notes are, by default,
not sub-divided. That is, the three (or more) beams stretch
unbroken over entire groups of notes. This behavior can
@cindex break, line
@cindex line breaks
+@c TODO convert to snippet
Line breaks are normally forbidden when beams cross bar lines.
This behavior can be changed by setting the @code{breakable}
property: @code{\override Beam #'breakable = ##t}.
@cindex kneed beams
@cindex auto-knee-gap
+@c TODO convert to snippet
Kneed beams are inserted automatically when a large gap is
detected between the note heads. This behavior can be tuned
through the @code{auto-knee-gap} property. A kneed beam is
In order to add a rule to the list, use
@example
-#(override-auto-beam-setting '(be p q n m) a b [context])
+#(override-auto-beam-setting
+ '(beam-limit beam-numerator beam-denominator
+ time-signature-numerator time-signature-denominator)
+ moment-numerator moment-denominator [context])
@end example
@itemize
-@item @code{be} is either @code{begin} or @code{end}.
+@item @code{beam-limit} is the type of automatic beam limit
+defined, either @code{begin} or @code{end}.
-@item @code{p/q} is the duration of the note for which you want
-to add a rule. A beam is considered to have the duration of its
-shortest note. Set @code{p} and @code{q} to @code{'*'} to
-have this apply to any beam.
+@item @code{beam-numerator/beam-denominator} is the beam duration
+for which you want to add a rule. A beam is considered to have
+the duration of its shortest note. Set @code{beam-numerator} and
+@code{beam-denominator} to @code{'*'} to
+have this rule apply beams of any duration.
-@item @code{n/m} is the time signature to which
-this rule should apply. Set @code{n} and @code{m} to @code{'*'}
-to have this apply in any time signature.
+@item @code{time-signature-numerator/time-signature-denominator}
+is the time signature to which
+this rule should apply. Set @code{time-signature-numerator} and
+@code{time-signature-denominator} to @code{'*'}
+to have this rule apply in any time signature.
-@item @code{a/b} is the position in the bar at which the beam should
-begin/end.
+@item @code{monent-numerator/moment-denominator} is the position
+in the bar at which the beam should
+begin or end.
@item @code{context} is optional, and it specifies the context at which
the change should be made. The default is @code{'Voice}.
@end itemize
+TODO -- convert to music example
For example, if automatic beams should always end on the first quarter
note, use
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\time 2/4
+% end 1/16 beams for all time signatures at the 1/16 moment
#(override-auto-beam-setting '(end 1 16 * *) 1 16)
a16 a a a a a a a |
a32 a a a a16 a a a a a |
+% end 1/32 beams for all time signatures at the 1/16 moment
#(override-auto-beam-setting '(end 1 32 * *) 1 16)
a32 a a a a16 a a a a a |
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\time 5/8
+% end beams of all durations in 5/8 time signature at the 2/8 moment
#(override-auto-beam-setting '(end * * 5 8) 2 8)
c8 c d d d
\time 4/4
c8 c d d d
@end lilypond
-You can also remove a previously set beam-ending rule by using
+Existing auto-beam rules are removed by using
@example
-#(revert-auto-beam-setting '(be p q n m) a b [context])
+#(revert-auto-beam-setting
+ '(beam-limit beam-numerator beam-denominator
+ time-signature-numerator time-signature-denominator)
+ moment-numerator moment-denominator [context])
@end example
@noindent
-@code{be}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a},
-@code{b} and @code{context} are the same as above. Note that the
-default rules are specified in @file{scm/@/auto@/-beam@/.scm},
+@code{beam-limit}, @code{beam-numerator}, @code{beam-denominator},
+@code{time-signature-numerator}, @code{time-signature-denominator},
+@code{moment-numerator}, @code{moment-denominator} and @code{context}
+are the same as above. Note that the default auto-beaming rules are
+specified in @file{scm/@/auto@/-beam@/.scm},
so you can revert rules that you did not explicitly create.
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\time 4/4
a16 a a a a a a a a a a a a a a a
+% undo a rule ending 1/16 beams in 4/4 time at 1/4 moment
#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
a16 a a a a a a a a a a a a a a a
@end lilypond
@subsubsection Manual beams
@cindex beams, manual
+@funindex ]
+@funindex [
In some cases it may be necessary to override the automatic
beaming algorithm. For example, the autobeamer will not put beams
\time 2/4 c8 c\noBeam c c
@end lilypond
-@funindex ]
-@funindex [
-
@funindex stemLeftBeamCount
@funindex stemRightBeamCount
with only one beam on the left side, i.e., the eighth-note beam of
the group as a whole.
+TODO -- no difference based on stemLeftBeamCount in this example
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
{
f8[ r16 f g a]
@cindex beams, feathered
@funindex \featherDurations
+TODO -- this section relies on overrides. We need to either add
+a predefined, move this to snippets (whole section), or violate
+policy for this section.
+
Feathered beams are used to indicate that a small group of notes
should be played at an increasing (or decreasing) tempo, without
changing the overall tempo of the piece. The extent of the
these would delimit the same group of notes, but this is not
required: the two commands are independent.
+@c TODO -- eliminate "Talking through code"
+
In the following example the eight 16th notes occupy exactly the
same time as a half note, but the first note is one half as long
as the last one, with the intermediate notes gradually
The spacing in the printed output represents the
note durations only approximately, but the midi output is exact.
+@c TODO -- resolve whether or not midi is capitalized -- policy
+@c decision needed
+
@knownissues
The @code{\featherDurations} command only works with very short
e4 d c2 \bar "|."
@end lilypond
+@c TODO -- make this warning more clear. What does it mean?
@warning{An incorrect duration can lead to poorly formatted
music.}
+@c TODO -- check this. I think this behavior no longer happens
+@c with completion_heads_engraver, but it may with note_heads_engraver
+@c Make an example showing the problem
+
It is not invalid if the final note in a measure does not
end on the automatically entered bar line: the note is assumed
to carry over into the next measure. But if a long sequence
\header {
lsrtags = "keyboards"
+ texidoces = "
+Los sÃmbolos especÃficos de acordeón discanto se escriben mediante
+@code{\markup}. Se puede trucar la colocación vertical de los
+sÃmbolos modificando los argumentos de @code{\raise}.
+
+"
+ doctitlees = "SÃmbolos de acordeón discanto"
+
texidoc = "
Accordion discant-specific symbols are added using @code{\\markup}. The
vertical placement of the symbols can be tweaked by changing the
\header {
lsrtags = "rhythms, percussion"
+ texidoces = "
+Mediante la utilización de las potentes herramientas preconfiguradas
+como la función @code{\drummode} y el contexto @code{DrumStaff}, la
+introducción de partes para percusión es muy fácil: las percusiones se
+sitúan en sus propias posiciones de pentagrama (con una clave
+especial) y tienen las cabezas correspondientes al instrumento. Es
+posible añadir un sÃmbolo adicional a la percusión o reducir el número
+de lÃneas.
+
+"
+ doctitlees = "Escritura de partes de percusión"
+
texidoc = "
Using the powerful pre-configured tools such as the @code{\\drummode}
function and the @code{DrumStaff} context, inputting drum parts is
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "editorial-annotations, fretted-strings"
+
+ texidoc = "
+Fingering instructions can be entered using a simple syntax.
+
+"
+ doctitle = "Adding fingerings to a score"
+} % begin verbatim
+\relative c'' {
+ c4-1 d-2 f-4 e-3
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+To add fingerings to tablatures, use a combination of @code{\\markup}
+and @code{\\finger}.
+
+"
+ doctitle = "Adding fingerings to tablatures"
+} % begin verbatim
+one = \markup { \finger 1 }
+two = \markup { \finger 2 }
+threeTwo = \markup {
+ \override #'(baseline-skip . 2)
+ \column {
+ \finger 3
+ \finger 2
+ }
+}
+threeFour = \markup {
+ \override #'(baseline-skip . 2)
+ \column {
+ \finger 3
+ \finger 4
+ }
+}
+
+\score {
+ \new TabStaff {
+ \stemUp
+ e8\4^\one b\2 <e, g\3 e'\1>^>[ b\2 e\4]
+ <a\3 fis'\1>^>^\threeTwo[ b\2 e\4]
+ }
+}
\header {
lsrtags = "titles"
+ texidoces = "
+Con algo de código de Scheme, se puede añadir fácilmente la fecha
+actual a una partitura.
+
+"
+ doctitlees = "Añadir la fecha actual a una partitura"
+
texidoc = "
With a little Scheme code, the current date can easily be added to a
score.
\header {
lsrtags = "repeats"
+ texidoces = "
+El grabador @code{Volta_engraver} reside de forma predeterminada
+dentro del contexto de @code{Score}, y los corchetes de la repetición
+se imprimen asà normalmente sólo encima del pentagrama superior. Esto
+se puede ajustar añadiendo el grabador @code{Volta_engraver} al
+contexto de @code{Staff} en que deban aparecer los corchetes; véase
+también el fragmento de código \"Volta multi staff\".
+
+"
+ doctitlees = "Añadir corchetes de primera y segunda vez a más pentagramas"
+
texidoc = "
The @code{Volta_engraver} by default resides in the @code{Score}
context, and brackets for the repeat are thus normally only printed
\header {
lsrtags = "text, vocal-music, spacing"
+ texidoces = "
+Este fragmento de código muestra cómo situar la lÃnea de base de la
+letra más cerca del pentagrama.
+
+"
+ doctitlees = "Ajuste del especiado vertical de la letra"
+
texidoc = "
This snippet shows how to bring the lyrics line closer to the staff.
\header {
lsrtags = "text, paper-and-layout, titles"
+ texidoces = "
+Los nombres de instrumento se imprimen generalmente a la izquierda de
+los pentagramas. Para alinear los nombres de varios instrumentos
+distintos, sitúelos dentro de un bloque @code{\markup} y utilice una
+de las siguientes posiblidades:
+
+*
+ Nombres de instrumento alineados por la derecha: es el
+ comportamiento predeterminado
+
+*
+ Nombres de instrumento centrados: la utilización de la instrucción
+ @code{\hcenter-in #n} sitúa los nombres de instrumento dentro de
+ un rectángulo separado, donde @code{n} es la anchura del
+ rectángulo
+
+*
+ Nombres de instrumento alineados por la izquierda: los nombres se
+ imprimen en la parte superior de un rectángulo vacÃo, utilizando
+ la instrucción @code{\combine} con un objeto @code{\hspace #n}.
+
+"
+ doctitlees = "Alinear y centrar los nombres de instrumento"
+
texidoc = "
Instrument names are generally printed to the left of the staves. To
align the names of several different intruments, put them in a
\header {
lsrtags = "text, vocal-music"
+ texidoces = "
+La alineación horizontal de la letra se puede ajustar sobreescribiendo
+la propiedad @code{self-alignment-X} del objeto @code{LyricText}.
+@code{#-1} es izquierda, @code{#0} es centrado y @code{#1} es derecha;
+sin embargo, puede usar también @code{#LEFT}, @code{#CENTER} y
+@code{#RIGHT}.
+
+"
+ doctitlees = "Alineación de la letra"
+
texidoc = "
Horizontal alignment for lyrics cam be set by overriding the
@code{self-alignment-X} property of the @code{LyricText} object.
\header {
lsrtags = "text"
+ texidoces = "
+Si están especificadas, las marcas de texto se pueden alinear con
+objetos de notación distintos a las lÃneas divisorias. Entre estos
+objetos se encuentran @code{ambitus}, @code{breathing-sign},
+@code{clef}, @code{custos}, @code{staff-bar}, @code{left-edge},
+@code{key-cancellation}, @code{key-signature} y @code{time-signature}.
+
+En estos casos, las marcas de texto se centran horizontalmente sobre
+el objeto, aunque esto se puede cambiar, como se muestra en la segunda
+lÃnea de este ejemplo (en una partitura con varios pentagramas, se
+debe hacer este ajuste para todos los pentagramas).
+
+"
+ doctitlees = "Alinear marcas con varios objetos de notación"
+
texidoc = "
If specified, text marks may be aligned with notation objects other
than bar lines. These objects include @code{ambitus},
\header {
lsrtags = "tweaks-and-overrides, paper-and-layout, spacing"
+ texidoces = "
+Mediante el establecimiento de las propiedades de
+@code{NonMusicalPaperColumn} se puede ajustar el espaciado vertical en
+cada sistema.
+
+Ajustando @code{alignment-extra-space} o
+@code{fixed-alignment-extra-space} se puede ampliar verticalmente un
+sistema individual.
+
+Por razones técnicas, se debe usar @code{\overrideProperty} para
+cambiar estas propiedades dentro de un pentagrama; aún se debe usar
+@code{\override} dentro de un bloque @code{\context} para las
+sobreescrituras globales.
+
+"
+ doctitlees = "Espaciado de la alineación vertical"
+
texidoc = "
By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
can be adjusted per system.
\version "2.11.52"
\header {
- lsrtags = "editorial-annotations, spacing"
+ lsrtags = "editorial-annotations, fretted-strings, spacing"
texidoces = "
Las cifras de digitación se imprimen de forma predeterminada fuera
\header {
lsrtags = "editorial-annotations, tweaks-and-overrides"
+ texidoces = "
+De forma predeterminada se añaden corchetes de análisis sencillos
+debajo del pentagrama. El ejemplo siguiente muestra una manera de
+colocarlos por encima.
+
+"
+ doctitlees = "Corchetes de análisis encima del pentagrama"
+
texidoc = "
Simple horizontal analysis brackets are added below the staff by
default. The following example shows a way to place them above the
\header {
lsrtags = "ancient-notation"
+ texidoces = "
+Las indicaciones de compás también se pueden grabar en estilo antiguo.
+
+"
+ doctitlees = "Indicaciones de compás antiguas"
+
texidoc = "
Time signatures may also be engraved in an old style.
\new Staff {
\transpose c d
\relative c' {
- \set shapeNoteStyles = ##(do re mi fa #f la ti)
+ \set shapeNoteStyles = #'#(do re mi fa #f la ti)
\fragment
}
\relative c' {
- \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
+ \set shapeNoteStyles = #'#(cross triangle fa #f mensural xcircle diamond)
\fragment
}
}
\header {
lsrtags = "rhythms"
+ texidoces = "
+Se pueden subdividir las barras automáticamente. Estableciendo la
+propiedad @code{subdivideBeams}, las barras se subdividen en
+posiciones de pulso (tal y como se especifica en @code{beatLength}).
+
+"
+ doctitlees = "Subdivisiones de barra automáticas"
+
texidoc = "
Beams can be subdivided automatically. By setting the property
@code{subdivideBeams}, beams are subdivided at beat positions (as
\header {
lsrtags = "rhythms"
+ texidoces = "
+En un compás sencillo como 2/2 ó 4/4, las corcheas se barran de forma
+predeterminada como dos grupos de cuatro.
+
+Utilizando un macro que seobreescribe el comportamiento automático del
+barrado, este fragmento de código cambia el barrado a pulsos de negra.
+
+"
+ doctitlees = "Barras automáticas de dos en dos en los compases de 4/4 o de 2/2"
+
texidoc = "
In a simple time signature of 2/2 or 4/4, 8th notes are beamed by
default as two sets of four.
\version "2.11.52"
\header {
- lsrtags = "editorial-annotations, chords, keyboards"
+ lsrtags = "editorial-annotations, chords, keyboards, fretted-strings"
texidoces = "
Se puede controlar con precisión la colocación de los números de digitación.
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
changing-a-single-notes-size-in-a-chord.ly
+adding-fingerings-to-a-score.ly
grid-lines--changing-their-appearance.ly
default-direction-of-stems-on-the-center-line-of-the-staff.ly
allowing-fingerings-to-be-printed-inside-the-staff.ly
creating-arpeggios-across-notes-in-different-voices.ly
creating-cross-staff-arpeggios-in-other-contexts.ly
printing-hairpins-using-al-niente-notation.ly
+laissez-vibrer-ties.ly
contemporary-glissando.ly
adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
line-arrows.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+A hammer in tablature can be faked with slurs.
+
+"
+ doctitle = "Faking a hammer in tablatures"
+} % begin verbatim
+\score{
+ \new TabStaff {
+ \relative c'' {
+ c4( d) d( d)
+ d2( c)
+ }
+ }
+}
+
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+This example combines left-hand fingering, string indications, and
+right-hand fingering.
+
+"
+ doctitle = "Fingerings, string indications, and right-hand fingerings"
+} % begin verbatim
+#(define RH rightHandFinger)
+
+\relative c {
+ \clef "treble_8"
+ <c-3\5-\RH #1 >4
+ <e-2\4-\RH #2 >4
+ <g-0\3-\RH #3 >4
+ <c-1\2-\RH #4 >4
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+For flamenco guitar, special notations are used:
+
+
+* a golpe symbol to indicate a slap on the guitar body with the nail
+of the ring finger, * an arrow to indicate (the direction of) strokes,
+* different letters for fingering (\"p\": thumb, \"i\": index finger,
+\"m\": middle finger, \"a\": ring finger and \"x\": little finger) *
+3- and 4-finger rasgueados; stroke upwards with all fingers, ending
+with an up- and down using the index finger * abanicos; strokes (in
+tuples) with thumb (down), little and index finger (both up). There's
+also an abanico 2 where middle and ring finger are used instead of the
+little finger. * alza pua fast playing with the thumb
+
+
+
+Most figures use arrows in combination with fingering and with abanicos
+and rasgueados, noteheads are printed only for the first chord.>This
+snippet contains some header-like code that can be copied as
+@samp{flamenco.ly} and included in your source.
+
+"
+ doctitle = "Flamenco notation"
+} % begin verbatim
+% This snippet was originally made for LilyPond 2.11.41
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%% Cut here ----- Start 'flamenco.ly'
+
+% Text indicators
+abanico = \markup { \italic Abanico }
+rasgueaso = \markup { \italic Ras. }
+alzapua = \markup { \italic Alzapua }
+
+% Finger stroke symbols
+strokeUp = \markup { \postscript #"
+ 0.1 setlinewidth
+ 0.5 0 moveto
+ 0.5 2 lineto
+ 0.2 1.4 lineto
+ 0.5 2 moveto
+ 0.8 1.4 lineto
+ stroke
+"}
+
+strokeDown = \markup { \postscript #"
+ 0.1 setlinewidth
+ 0.5 2 moveto
+ 0.5 0 lineto
+ 0.2 0.6 lineto
+ 0.5 0 moveto
+ 0.8 0.6 lineto
+ stroke
+"}
+
+
+
+% Golpe symbol
+golpe = \markup { \postscript #"
+ 0.2 setlinewidth
+ 0 0 moveto
+ 1 0 lineto
+ 1 1 lineto
+ stroke
+ "\postscript #"
+ 0.1 setlinewidth
+ -0.6 -0.1 moveto
+ -0.6 1.0 lineto
+ 0.5 1.0 lineto
+ stroke
+"}
+
+strokeUpGolpe = \markup { \column { \golpe \line { \strokeUp }}}
+iUpGolpe = \markup { \column { \golpe \line { \small i } \line { \strokeUp }}}
+
+% Stokes for all fingers
+pUp = \markup { \column { \small p \line { \strokeUp }}}
+pDown = \markup { \column { \small p \line { \strokeDown }}}
+iUp = \markup { \column { \small i \line { \strokeUp }}}
+iDown = \markup { \column { \small i \line { \strokeDown }}}
+mUp = \markup { \column { \small m \line { \strokeUp }}}
+mDown = \markup { \column { \small m \line { \strokeDown }}}
+aUp = \markup { \column { \small a \line { \strokeUp }}}
+aDown = \markup { \column { \small a \line { \strokeDown }}}
+xUp = \markup { \column { \small x \line { \strokeUp }}}
+xDown = \markup { \column { \small x \line { \strokeDown }}}
+
+
+% Just handy :)
+tupletOff = {
+ \once \override TupletNumber #'stencil = ##f
+ \once \override TupletBracket #'stencil = ##f
+}
+
+tupletsOff = {
+ \override TupletNumber #'stencil = ##f
+ \override TupletBracket #'bracket-visibility = #'if-no-beam
+}
+
+tupletsOn = {
+ \override TupletBracket #'bracket-visibility = #'default
+ \revert TupletNumber #'stencil
+}
+
+headsOff = {
+ \override TabNoteHead #'transparent = ##t
+ \override NoteHead #'transparent = ##t
+ \override NoteHead #'no-ledgers = ##t
+}
+
+headsOn = {
+ \override TabNoteHead #'transparent = ##f
+ \override NoteHead #'transparent = ##f
+ \override NoteHead #'no-ledgers = ##f
+}
+
+%%%%%%% Cut here ----- End 'flamenco.ly'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+part = \relative c' {
+ <a, e' a cis e>8^\iUp
+ <a e' a cis e>8^\iDown
+ r4
+ r2^\golpe
+
+ <a e' a cis e>8^\iUp
+ <a e' a cis e>8^\iDown
+ <a e' a cis e>8^\iUpGolpe
+ <a e' a cis e>8^\iDown
+ r2
+
+ <a e' a cis e>16^\aUp
+ \headsOff
+ <a e' a cis e>^\mUp
+ <a e' a cis e>^\iUp
+ <a e' a cis e>^\iDown~
+ \headsOn
+ <a e' a cis e>2
+ r4
+
+ \tupletOff
+ \times 4/5 {
+ <a e' a cis e>16^\xUp
+ \headsOff
+ <a e' a cis e>^\aUp
+ <a e' a cis e>^\mUp
+ <a e' a cis e>^\iUp
+ <a e' a cis e>^\iDown~
+ \headsOn
+ }
+ <a e' a cis e>2
+ r4
+
+ \tupletsOff
+ \times 2/3 {
+ <a e' a cis e>8^\pDown
+ \headsOff
+ <a e' a cis e>^\xUp
+ <a e' a cis e>^\iUp
+ \headsOn
+ }
+
+ \times 2/3 {
+ <a e' a cis e>8^\pDown
+ \headsOff
+ <a e' a cis e>^\xUp
+ <a e' a cis e>^\iUp
+ \headsOn
+ }
+
+ \times 2/3 {
+ <a e' a cis e>8^\pDown
+ \headsOff
+ <a e' a cis e>^\xUp
+ <a e' a cis e>^\iUp
+ \headsOn
+ }
+ \times 2/3 {
+ <a e' a cis e>8^\pDown
+ \headsOff
+ <a e' a cis e>^\xUp
+ <a e' a cis e>^\iUp
+ \headsOn
+ }
+
+ \tupletsOff
+ \override Beam #'positions = #'(2 . 2)
+ \times 2/3 {
+ a8^\markup{ \small p }
+ <e' a>^\strokeUpGolpe
+ <e a>^\strokeDown
+ }
+ \times 2/3 {
+ a,8^\markup{ \small p }
+ <e' a>^\strokeUpGolpe
+ <e a>^\strokeDown
+ }
+ \times 2/3 {
+ a,8^\markup{ \small p }
+ <e' a>^\strokeUpGolpe
+ <e a>^\strokeDown
+ }
+ \times 2/3 {
+ a,8^\markup{ \small p }
+ <e' a>^\strokeUpGolpe
+ <e a>^\strokeDown
+ }
+ \tupletsOn
+
+ \once \override TextScript #'extra-offset = #'(0 . -1)
+ <g, b f'>1_\golpe^\mUp
+ \bar "|."
+}
+
+\score {
+ \new StaffGroup <<
+ \context Staff = part <<
+ \clef G
+ \transpose c c'
+ {
+ \part
+ }
+ >>
+ \context TabStaff {
+ \part
+ }
+ >>
+ \layout {
+ ragged-right = ##t
+ }
+}
+
--- /dev/null
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.53"
+
+\header {
+ lsrtags = "fretted-strings,tweaks-and-overrides"
+ texidoc = "This snippet shows many possibilities for obtaining
+and tweaking fret diagrams."
+ doctitle = "Fret diagrams explained and developed"
+} % begin verbatim
+
+<<
+ \chords {
+ a2 a
+ c2 c
+ d1
+ }
+
+ \new Voice = "mel" {
+ \textLengthOn
+ % Set global properties of fret diagram
+ \override Voice.TextScript #'size = #1.2
+ \override Voice.TextScript #'fret-diagram-details #'finger-code = #'below-string
+ \override Voice.TextScript #'fret-diagram-details #'dot-color = #'black
+
+ %% A chord for ukelele
+ a'2^\markup {
+ \override #'(fret-diagram-details . (
+ (string-count . 4)
+ (dot-color . white)
+ (finger-code . in-dot))) {
+ \fret-diagram #"4-2-2;3-1-1;2-o;1-o;"
+ }
+ }
+
+ %% A chord for ukelele, with formatting defined in definition string
+ % 1.2 * size, 4 strings, 4 frets, fingerings below string
+ % dot radius .35 of fret spacing, dot position 0.55 of fret spacing
+ a'2^\markup {
+ \override #'(fret-diagram-details . (
+ (dot-color . white)
+ (open-string . "o"))) {
+ \fret-diagram #"s:1.2;w:4;h:3;f:2;d:0.35;p:0.55;4-2-2;3-1-1;2-o;1-o;"
+ }
+ }
+
+ %% C major for guitar, barred on third fret
+ % verbose style
+ % roman fret label, finger labels below string, straight barre
+ c'2^\markup {
+ % 110% of default size
+ \override #'(size . 1.1) {
+ \override #'(fret-diagram-details . (
+ (number-type . roman-lower)
+ (finger-code . below-string)
+ (barre-type . straight))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 2 5 4)
+ (place-fret 1 3 1)
+ (barre 5 1 3))
+ }
+ }
+ }
+
+ %% C major for guitar, barred on third fret
+ % verbose style
+ c'2^\markup {
+ % 110% of default size
+ \override #'(size . 1.1) {
+ \override #'(fret-diagram-details . (
+ (number-type . arabic)
+ (dot-label-font-mag . 0.9)
+ (finger-code . in-dot)
+ (fret-label-font-mag . 0.6)
+ (fret-label-vertical-offset . 0)
+ (label-dir . -1)
+ (mute-string . "M")
+ (orientation . landscape)
+ (xo-font-magnification . 0.4)
+ (xo-padding . 0.3))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 2 5 4)
+ (place-fret 1 3 1)
+ (barre 5 1 3))
+ }
+ }
+ }
+
+ %% simple D chord
+ d'1^\markup {
+ \override #'(fret-diagram-details . (
+ (finger-code . below-string)
+ (dot-radius . 0.35)
+ (dot-position . 0.5)
+ (fret-count . 3))) {
+ \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+ }
+ }
+ }
+>>
-volta-multi-staff.ly
+how-to-change-fret-diagram-position.ly
+flamenco-notation.ly
+adding-fingerings-to-tablatures.ly
+placement-of-right-hand-fingerings.ly
+fingerings,-string-indications,-and-right-hand-fingerings.ly
+polyphony-in-tablature.ly
+jazz-combo-template.ly
+adding-fingerings-to-a-score.ly
+letter-tablature-formatting.ly
+laissez-vibrer-ties.ly
+controlling-the-placement-of-chord-fingerings.ly
+allowing-fingerings-to-be-printed-inside-the-staff.ly
+faking-a-hammer-in-tablatures.ly
+fret-diagrams-explained-and-developed.ly
+modern-tab-text-clef.ly
+stem-and-beam-behavior-in-tablature.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings, tweaks-and-overrides"
+
+ texidoc = "
+If you want to move the position of a fret diagram, for example, to
+avoid collision, or to place it between two notes, you have various
+possibilities:
+
+1) modify #'padding or #'extra-offset values (as shown in the first
+snippet)
+
+2) you can add an invisible voice and attach the fret diagrams to the
+invisible notes in that voice (as shown in the second example).
+
+ If you need to move the fret according with a rythmic position inside
+the bar (in the example, the third beat of the measure) the second
+example is better, because the fret is aligned with the third beat
+itself.
+
+"
+ doctitle = "How to change fret diagram position"
+} % begin verbatim
+harmonies = \chordmode
+{
+ a8:13
+% THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME
+ \once \override ChordNames.ChordName #'extra-offset = #'(10 . 0)
+ b8:13 s2.
+% THIS LINE IS THE SECOND METHOD
+ s4 s4 b4:13
+}
+
+\score
+{
+ <<
+ \context ChordNames \harmonies
+ \context Staff
+ {a8^\markup { \fret-diagram #"6-x;5-0;4-2;3-0;2-0;1-2;" }
+% THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM
+ \once \override TextScript #'extra-offset = #'(10 . 0)
+ b4.~^\markup { \fret-diagram #"6-x;5-2;4-4;3-2;2-2;1-4;" } b4. a8\break
+% HERE IS THE SECOND METHOD
+ <<
+ { a8 b4.~ b4. a8}
+ { s4 s4 s4^\markup { \fret-diagram #"6-x;5-2;4-4;3-2;2-2;1-4;" }
+ }
+ >>
+ }
+ >>
+}
+
+
\version "2.11.52"
\header {
- lsrtags = "keyboards, percussion, template"
+ lsrtags = "keyboards, percussion, fretted-strings, template"
texidoc = "
This is quite an advanced template, for a jazz ensemble. Note that all
vocal-ensemble-template-with-automatic-piano-reduction.ly
piano-template-simple.ly
controlling-the-placement-of-chord-fingerings.ly
+laissez-vibrer-ties.ly
accordion-discant-symbols.ly
fine-tuning-pedal-brackets.ly
piano-template-with-melody-and-lyrics.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "expressive-marks, keyboards, fretted-strings"
+
+ texidoc = "
+Laissez vibrer ties have a fixed size. Their formatting can be tuned
+using @code{'tie-configuration}.
+
+"
+ doctitle = "Laissez vibrer ties"
+} % begin verbatim
+\relative c' {
+ <c e g>4\laissezVibrer r <c f g>\laissezVibrer r
+ <c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8
+
+ <c d e f>4\laissezVibrer r
+ \override LaissezVibrerTieColumn #'tie-configuration
+ = #`((-7 . ,DOWN)
+ (-5 . ,DOWN)
+ (-3 . ,UP)
+ (-1 . ,UP))
+ <c d e f>4\laissezVibrer r
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.53"
+
+\header {
+ lsrtags = "staff-notation,fretted-strings"
+
+ texidoc = "Tablature can be formatted using letters instead of
+numbers."
+ doctitle = "Letter tablature formatting"
+} % begin verbatim
+
+#(define (letter-tablature-format str context event)
+ (let*
+ ((tuning (ly:context-property context 'stringTunings))
+ (pitch (ly:event-property event 'pitch)))
+ (make-whiteout-markup
+ (make-vcenter-markup
+ (string (integer->char
+ (+ (char->integer #\a)
+ (- (ly:pitch-semitones pitch)
+ (list-ref tuning (- str 1))))))))))
+
+music = \relative c {
+ c4 d e f
+ g4 a b c
+ d4 e f g
+}
+
+<<
+ \new Staff {
+ \clef "G_8"
+ \music
+ }
+ \new TabStaff \with {
+ tablatureFormat = #letter-tablature-format
+ } {
+ \music
+ }
+>>
--- /dev/null
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.53"
+
+\header {
+ lsrtags = "staff-notation, fretted-strings"
+
+ texidoc = "
+Use a markup text to replace the (TAB) clef glyph with a modern font.
+
+"
+ doctitle = "Modern TAB text clef"
+} % begin verbatim
+
+TAB = \markup {
+ \raise #1.5
+ \sans
+ \bold
+ \huge
+ \override #'(baseline-skip . 2.5)
+ \center-align {
+ T
+ A
+ B
+ }
+}
+
+\new TabStaff {
+ \override Staff.Clef #'stencil = #(lambda (grob)
+ ly:clef::print (grob-interpret-markup grob TAB))
+ a
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+It is possible to exercise greater control over the placement of
+right-hand fingerings by setting a specific property, as demonstrated
+in the following example.
+
+"
+ doctitle = "Placement of right-hand fingerings"
+} % begin verbatim
+#(define RH rightHandFinger)
+
+\relative c {
+ \clef "treble_8"
+
+ \set strokeFingerOrientations = #'(up down)
+ <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4
+
+ \set strokeFingerOrientations = #'(up right down)
+ <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4
+
+ \set strokeFingerOrientations = #'(left)
+ <c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >2
+}
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+Polyphony is created the same way in a @code{TabStaff} as in a regular
+staff.
+
+"
+ doctitle = "Polyphony in tablature"
+} % begin 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
+}
+
+lower = \relative c {
+ \key e \minor
+ \voiceTwo
+ r16 e d c b a g4 fis8 e fis g a b c
+}
+
+\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
+ >>
+ >>
+ >>
+}
} % begin verbatim
% Define the fret diagrams to be used
cFretDiagram = \markup {
- \fret-diagram #"5-3-3;4-2-2;3-o;2-1-1;1-o"
+ \fret-diagram #"6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
}
gFretDiagram = \markup {
- \fret-diagram #"6-3-2;5-2-1;4-o;3-o;2-o;1-3-3"
+ \fret-diagram #"6-3-2;5-2-1;4-o;3-o;2-o;1-3-3;"
}
verseI = \lyricmode {
removing-the-first-empty-line.ly
quoting-another-voice.ly
volta-multi-staff.ly
+modern-tab-text-clef.ly
non-traditional-key-signatures.ly
measure-counter.ly
adding-ambitus-per-voice.ly
changing-the-staff-size.ly
use-square-bracket-at-the-start-of-a-staff-group.ly
quoting-another-voice-with-transposition.ly
+letter-tablature-formatting.ly
inserting-score-fragments-above-a-staff,-as-markups.ly
volta-below-chords.ly
nesting-staves.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.52"
+
+\header {
+ lsrtags = "fretted-strings"
+
+ texidoc = "
+The direction of stems is controlled the same way in tablature as in
+traditional notation. Beams can be made horizontal, as shown in this
+example.
+
+"
+ doctitle = "Stem and beam behavior in tablature"
+} % begin verbatim
+\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
+ }
+}
custodes.ly
creating-text-spanners.ly
rest-styles.ly
+how-to-change-fret-diagram-position.ly
using-the--tweak-command-to-tweak-individual-grobs.ly
suppressing-warnings-for-clashing-note-columns.ly
controlling-tuplet-bracket-visibility.ly
alignment-vertical-spacing.ly
drawing-circles-around-various-objects.ly
analysis-brackets-above-the-staff.ly
+fret-diagrams-explained-and-developed.ly
removing-the-first-empty-line.ly
caesura-railtracks-with-fermata.ly
changing-form-of-multi--measure-rests.ly
%% This file is in the public domain.
\version "2.11.52"
\header {
- lsrtags = "repeats,staff-notation,fretted-strings"
+ lsrtags = "repeats,staff-notation"
texidoc = "By adding the @code{Volta_engraver} to the relevant
staff, volte can be put over staves other than the topmost
one in a score."
--- /dev/null
+\version "2.11.53"
+
+\header {
+ lsrtags = "fretted-strings,tweaks-and-overrides"
+ texidoc = "This snippet shows many possibilities for obtaining
+and tweaking fret diagrams."
+ doctitle = "Fret diagrams explained and developed"
+}
+
+<<
+ \chords {
+ a2 a
+ c2 c
+ d1
+ }
+
+ \new Voice = "mel" {
+ \textLengthOn
+ % Set global properties of fret diagram
+ \override Voice.TextScript #'size = #1.2
+ \override Voice.TextScript #'fret-diagram-details #'finger-code = #'below-string
+ \override Voice.TextScript #'fret-diagram-details #'dot-color = #'black
+
+ %% A chord for ukelele
+ a'2^\markup {
+ \override #'(fret-diagram-details . (
+ (string-count . 4)
+ (dot-color . white)
+ (finger-code . in-dot))) {
+ \fret-diagram #"4-2-2;3-1-1;2-o;1-o;"
+ }
+ }
+
+ %% A chord for ukelele, with formatting defined in definition string
+ % 1.2 * size, 4 strings, 4 frets, fingerings below string
+ % dot radius .35 of fret spacing, dot position 0.55 of fret spacing
+ a'2^\markup {
+ \override #'(fret-diagram-details . (
+ (dot-color . white)
+ (open-string . "o"))) {
+ \fret-diagram #"s:1.2;w:4;h:3;f:2;d:0.35;p:0.55;4-2-2;3-1-1;2-o;1-o;"
+ }
+ }
+
+ %% C major for guitar, barred on third fret
+ % verbose style
+ % roman fret label, finger labels below string, straight barre
+ c'2^\markup {
+ % 110% of default size
+ \override #'(size . 1.1) {
+ \override #'(fret-diagram-details . (
+ (number-type . roman-lower)
+ (finger-code . below-string)
+ (barre-type . straight))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 2 5 4)
+ (place-fret 1 3 1)
+ (barre 5 1 3))
+ }
+ }
+ }
+
+ %% C major for guitar, barred on third fret
+ % verbose style
+ c'2^\markup {
+ % 110% of default size
+ \override #'(size . 1.1) {
+ \override #'(fret-diagram-details . (
+ (number-type . arabic)
+ (dot-label-font-mag . 0.9)
+ (finger-code . in-dot)
+ (fret-label-font-mag . 0.6)
+ (fret-label-vertical-offset . 0)
+ (label-dir . -1)
+ (mute-string . "M")
+ (orientation . landscape)
+ (xo-font-magnification . 0.4)
+ (xo-padding . 0.3))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 2 5 4)
+ (place-fret 1 3 1)
+ (barre 5 1 3))
+ }
+ }
+ }
+
+ %% simple D chord
+ d'1^\markup {
+ \override #'(fret-diagram-details . (
+ (finger-code . below-string)
+ (dot-radius . 0.35)
+ (dot-position . 0.5)
+ (fret-count . 3))) {
+ \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+ }
+ }
+ }
+>>
--- /dev/null
+\version "2.11.53"
+
+\header {
+ lsrtags = "staff-notation,fretted-strings"
+
+ texidoc = "Tablature can be formatted using letters instead of
+numbers."
+ doctitle = "Letter tablature formatting"
+}
+
+#(define (letter-tablature-format str context event)
+ (let*
+ ((tuning (ly:context-property context 'stringTunings))
+ (pitch (ly:event-property event 'pitch)))
+ (make-whiteout-markup
+ (make-vcenter-markup
+ (string (integer->char
+ (+ (char->integer #\a)
+ (- (ly:pitch-semitones pitch)
+ (list-ref tuning (- str 1))))))))))
+
+music = \relative c {
+ c4 d e f
+ g4 a b c
+ d4 e f g
+}
+
+<<
+ \new Staff {
+ \clef "G_8"
+ \music
+ }
+ \new TabStaff \with {
+ tablatureFormat = #letter-tablature-format
+ } {
+ \music
+ }
+>>
--- /dev/null
+\version "2.11.53"
+
+\header {
+ lsrtags = "staff-notation, fretted-strings"
+
+ texidoc = "
+Use a markup text to replace the (TAB) clef glyph with a modern font.
+
+"
+ doctitle = "Modern TAB text clef"
+}
+
+TAB = \markup {
+ \raise #1.5
+ \sans
+ \bold
+ \huge
+ \override #'(baseline-skip . 2.5)
+ \center-align {
+ T
+ A
+ B
+ }
+}
+
+\new TabStaff {
+ \override Staff.Clef #'stencil = #(lambda (grob)
+ ly:clef::print (grob-interpret-markup grob TAB))
+ a
+}
\version "2.11.36"
\header {
- lsrtags = "repeats,staff-notation,fretted-strings"
+ lsrtags = "repeats,staff-notation"
texidoc = "By adding the @code{Volta_engraver} to the relevant
staff, volte can be put over staves other than the topmost
one in a score."
/* read */
"stringTunings "
"minimumFret "
+ "maximumFretStretch "
"tablatureFormat "
"highStringOne ",
(tablatureFormat ,procedure? "A function formatting a tablature
-note head; it takes a string number, a list of string tunings and a
-@code{Pitch} object. It returns the text as a string.")
+note head. Called with three arguments: string number, context and event.
+It returns the text as a string.")
(tempoWholesPerMinute ,ly:moment? "The tempo in whole notes per
minute.")
(tempoUnitCount ,number? "Count for specifying tempo.")