From: Han-Wen Nienhuys Date: Wed, 23 Jul 2008 14:50:02 +0000 (-0300) Subject: Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond X-Git-Tag: release/2.11.54-1~6 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5bc9118a9fca0752373f52b4aa7d599b8880862f;hp=aa7e0d00e324791a14ba0b9d840ec4fe7e962700;p=lilypond.git Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond --- diff --git a/Documentation/user/changing-defaults.itely b/Documentation/user/changing-defaults.itely index 381dba467b..301f34374d 100644 --- a/Documentation/user/changing-defaults.itely +++ b/Documentation/user/changing-defaults.itely @@ -232,6 +232,9 @@ Then the following, which I don't know what to do with: * 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 @@ -1530,9 +1533,11 @@ To create tab diagrams, enter notes or chords in note mode and 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} diff --git a/Documentation/user/chords.itely b/Documentation/user/chords.itely index dbb1f0084d..14983289cc 100644 --- a/Documentation/user/chords.itely +++ b/Documentation/user/chords.itely @@ -138,35 +138,94 @@ Seventh chords can be created: @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 diff --git a/Documentation/user/fretted-strings.itely b/Documentation/user/fretted-strings.itely index 3e4f8a2f2a..2bcb518678 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.53" @node Fretted string instruments @section Fretted string instruments @@ -36,7 +36,8 @@ to fretted string instruments. * String number indications:: * Default tablatures:: * Custom tablatures:: -* Fret diagrams:: +* Automatic fret diagrams:: +* Fret diagram markups:: * Right-hand fingerings:: @end menu @@ -322,16 +323,124 @@ Snippets: 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 @@ -343,6 +452,268 @@ 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 + +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 @@ -376,17 +747,27 @@ and color of dots. 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 @@ -490,6 +871,15 @@ 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 @@ -568,3 +958,4 @@ The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings. + diff --git a/Documentation/user/input.itely b/Documentation/user/input.itely index 081494939a..fde1bd564f 100644 --- a/Documentation/user/input.itely +++ b/Documentation/user/input.itely @@ -9,10 +9,10 @@ @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 diff --git a/Documentation/user/introduction.itely b/Documentation/user/introduction.itely index a43aa25d61..41eb709caf 100644 --- a/Documentation/user/introduction.itely +++ b/Documentation/user/introduction.itely @@ -898,9 +898,9 @@ gives details about special notation that will only be useful for 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}: diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 9b3ef5a500..0d116b6fd3 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -153,8 +153,8 @@ of this and other documentation. * 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. diff --git a/Documentation/user/notation-appendices.itely b/Documentation/user/notation-appendices.itely index 0158773c57..b47dd2ece6 100644 --- a/Documentation/user/notation-appendices.itely +++ b/Documentation/user/notation-appendices.itely @@ -63,7 +63,7 @@ Major third, perfect fifth @tab @code{5} or nothing @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:5 } @@ -76,7 +76,7 @@ Minor third, perfect fifth @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 } @@ -89,7 +89,7 @@ Major third, augmented fifth @tab @code{aug} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:aug } @@ -102,7 +102,7 @@ Minor third, diminished fifth @tab @code{dim} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:dim } @@ -115,7 +115,7 @@ Major triad, minor seventh @tab @code{7} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:7 } @@ -128,7 +128,7 @@ Major triad, major seventh @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 } @@ -141,7 +141,7 @@ Minor triad, minor seventh @tab @code{m7} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:m7 } @@ -154,7 +154,7 @@ Diminished triad, diminished seventh @tab @code{dim7} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:dim7 } @@ -167,7 +167,7 @@ Augmented triad, minor seventh @tab @code{aug7} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:aug7 } @@ -180,7 +180,7 @@ Diminished triad, minor seventh @tab @code{dim5m7} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:dim5m7 } @@ -193,7 +193,7 @@ Minor triad, major seventh @tab @code{7m5} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:7m5 } @@ -206,7 +206,7 @@ Major triad, sixth @tab @code{6} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:6 } @@ -219,7 +219,7 @@ Minor triad, sixth @tab @code{m6} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:m6 } @@ -232,7 +232,7 @@ Dominant seventh, major ninth @tab @code{9} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:9 } @@ -245,7 +245,7 @@ TODO @tab @code{maj9} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:maj9 } @@ -258,7 +258,7 @@ TODO @tab @code{m9} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:m9 } @@ -271,7 +271,7 @@ Dominant ninth, perfect eleventh @tab @code{11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:11 } @@ -284,7 +284,7 @@ TODO @tab @code{maj11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:maj11 } @@ -297,7 +297,7 @@ TODO @tab @code{m11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:m11 } @@ -310,7 +310,7 @@ Dominant eleventh, major thirteenth @tab @code{13.11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:13.11 } @@ -323,7 +323,7 @@ TODO @tab @code{maj13.11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:maj13.11 } @@ -336,7 +336,7 @@ TODO @tab @code{m13.11} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:m13.11 } @@ -349,7 +349,7 @@ TODO @tab @code{sus2} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:sus2 } @@ -362,7 +362,7 @@ TODO @tab @code{sus4} @tab -@lilypond[line-width=3\cm,noragged-right] +@lilypond[line-width=3\cm,noragged-right, notime] \chordmode { c1:sus4 } diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index ee87ba5de1..e251cb98f4 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -1036,7 +1036,7 @@ Partial or pick-up measures, such as an anacrusis or upbeat, are 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 @@ -1317,9 +1317,12 @@ Internals Reference: @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 @@ -1329,7 +1332,7 @@ aligned vertically, but bar lines distort the regular spacing. 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. @@ -1351,7 +1354,9 @@ To allow line breaking on the bar lines where the @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} @@ -1372,8 +1377,8 @@ Internals Reference: @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. @@ -1394,6 +1399,8 @@ staff are squashed, and the staff itself has a single line } @end lilypond +TODO -- put example in with multiple lines as well (used for strumming +rhythms in guitar) @node Beams @subsection Beams @@ -1442,6 +1449,7 @@ c16 c8 @snippets +@c TODO -- convert to snippet Beaming patterns may be altered with the @code{beatGrouping} property, @lilypond[quote,verbatim,relative=2,fragment,ragged-right] @@ -1452,6 +1460,7 @@ c8[^"(2+3)" c16 c8] 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 @@ -1485,6 +1494,7 @@ For more information about @code{make-moment}, see @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}. @@ -1499,6 +1509,7 @@ c8 \repeat unfold 15 { c[ c] } c @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 @@ -1553,24 +1564,32 @@ defined in @file{scm/@/auto@/-beam@/.scm}. 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}. @@ -1580,6 +1599,7 @@ 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 @@ -1592,9 +1612,11 @@ note is a certain duration @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 @@ -1604,6 +1626,7 @@ signatures @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 @@ -1612,21 +1635,27 @@ e8 e f f e e d d 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 @@ -1726,6 +1755,8 @@ Snippets: @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 @@ -1748,9 +1779,6 @@ from being beamed: \time 2/4 c8 c\noBeam c c @end lilypond -@funindex ] -@funindex [ - @funindex stemLeftBeamCount @funindex stemRightBeamCount @@ -1763,6 +1791,7 @@ then it is erased. In this example, the last @code{f} is printed 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] @@ -1781,6 +1810,10 @@ the group as a whole. @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 @@ -1801,6 +1834,8 @@ which notes are to have their durations modified. Normally 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 @@ -1823,6 +1858,9 @@ the last four 32nd notes are at a constant tempo. 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 @@ -1867,9 +1905,14 @@ double bar line is usually placed at the end of a piece: 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 diff --git a/input/lsr/accordion-discant-symbols.ly b/input/lsr/accordion-discant-symbols.ly index cb84eb3586..324b1dedf6 100644 --- a/input/lsr/accordion-discant-symbols.ly +++ b/input/lsr/accordion-discant-symbols.ly @@ -5,6 +5,14 @@ \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 diff --git a/input/lsr/adding-drum-parts.ly b/input/lsr/adding-drum-parts.ly index 17f381c5ad..29b669bde7 100644 --- a/input/lsr/adding-drum-parts.ly +++ b/input/lsr/adding-drum-parts.ly @@ -5,6 +5,18 @@ \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 diff --git a/input/lsr/adding-fingerings-to-a-score.ly b/input/lsr/adding-fingerings-to-a-score.ly new file mode 100644 index 0000000000..b333639f2f --- /dev/null +++ b/input/lsr/adding-fingerings-to-a-score.ly @@ -0,0 +1,16 @@ +%% 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 +} diff --git a/input/lsr/adding-fingerings-to-tablatures.ly b/input/lsr/adding-fingerings-to-tablatures.ly new file mode 100644 index 0000000000..9ec8bb5444 --- /dev/null +++ b/input/lsr/adding-fingerings-to-tablatures.ly @@ -0,0 +1,38 @@ +%% 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 ^>[ b\2 e\4] + ^>^\threeTwo[ b\2 e\4] + } +} diff --git a/input/lsr/adding-the-current-date-to-a-score.ly b/input/lsr/adding-the-current-date-to-a-score.ly index a7b8ad7f4d..0f61c4e9c4 100644 --- a/input/lsr/adding-the-current-date-to-a-score.ly +++ b/input/lsr/adding-the-current-date-to-a-score.ly @@ -5,6 +5,13 @@ \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. diff --git a/input/lsr/adding-volta-brackets-to-additional-staves.ly b/input/lsr/adding-volta-brackets-to-additional-staves.ly index 0523fad84d..104ddacb9b 100644 --- a/input/lsr/adding-volta-brackets-to-additional-staves.ly +++ b/input/lsr/adding-volta-brackets-to-additional-staves.ly @@ -5,6 +5,17 @@ \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 diff --git a/input/lsr/adjusting-lyrics-vertical-spacing.ly b/input/lsr/adjusting-lyrics-vertical-spacing.ly index f6d6f60360..116205bc1a 100644 --- a/input/lsr/adjusting-lyrics-vertical-spacing.ly +++ b/input/lsr/adjusting-lyrics-vertical-spacing.ly @@ -5,6 +5,13 @@ \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. diff --git a/input/lsr/aligning-and-centering-instrument-names.ly b/input/lsr/aligning-and-centering-instrument-names.ly index 883a48d9d7..110ec890fa 100644 --- a/input/lsr/aligning-and-centering-instrument-names.ly +++ b/input/lsr/aligning-and-centering-instrument-names.ly @@ -5,6 +5,30 @@ \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 diff --git a/input/lsr/aligning-lyrics.ly b/input/lsr/aligning-lyrics.ly index e04eab7c40..e2bda9571e 100644 --- a/input/lsr/aligning-lyrics.ly +++ b/input/lsr/aligning-lyrics.ly @@ -5,6 +5,16 @@ \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. diff --git a/input/lsr/aligning-marks-with-various-notation-objects.ly b/input/lsr/aligning-marks-with-various-notation-objects.ly index 357ae350e7..94924815a9 100644 --- a/input/lsr/aligning-marks-with-various-notation-objects.ly +++ b/input/lsr/aligning-marks-with-various-notation-objects.ly @@ -5,6 +5,21 @@ \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}, diff --git a/input/lsr/alignment-vertical-spacing.ly b/input/lsr/alignment-vertical-spacing.ly index d094f1230f..0bcd7d3295 100644 --- a/input/lsr/alignment-vertical-spacing.ly +++ b/input/lsr/alignment-vertical-spacing.ly @@ -5,6 +5,23 @@ \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. diff --git a/input/lsr/allowing-fingerings-to-be-printed-inside-the-staff.ly b/input/lsr/allowing-fingerings-to-be-printed-inside-the-staff.ly index e24ae1f160..9421ffb585 100644 --- a/input/lsr/allowing-fingerings-to-be-printed-inside-the-staff.ly +++ b/input/lsr/allowing-fingerings-to-be-printed-inside-the-staff.ly @@ -3,7 +3,7 @@ \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 diff --git a/input/lsr/analysis-brackets-above-the-staff.ly b/input/lsr/analysis-brackets-above-the-staff.ly index a9d774ecd7..a94afe6ba8 100644 --- a/input/lsr/analysis-brackets-above-the-staff.ly +++ b/input/lsr/analysis-brackets-above-the-staff.ly @@ -5,6 +5,14 @@ \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 diff --git a/input/lsr/ancient-time-signatures.ly b/input/lsr/ancient-time-signatures.ly index 672ae06442..1c0d668111 100644 --- a/input/lsr/ancient-time-signatures.ly +++ b/input/lsr/ancient-time-signatures.ly @@ -5,6 +5,12 @@ \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. diff --git a/input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly b/input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly index 974ac1bd60..b877d99420 100644 --- a/input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly +++ b/input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly @@ -61,12 +61,12 @@ fragment = { \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 } } diff --git a/input/lsr/automatic-beam-subdivisions.ly b/input/lsr/automatic-beam-subdivisions.ly index 4d42973b3d..955de045e7 100644 --- a/input/lsr/automatic-beam-subdivisions.ly +++ b/input/lsr/automatic-beam-subdivisions.ly @@ -5,6 +5,14 @@ \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 diff --git a/input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly b/input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly index 4d62a26abc..6c7db412b6 100644 --- a/input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly +++ b/input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly @@ -5,6 +5,16 @@ \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. diff --git a/input/lsr/controlling-the-placement-of-chord-fingerings.ly b/input/lsr/controlling-the-placement-of-chord-fingerings.ly index 2129244f76..84282bf2e7 100644 --- a/input/lsr/controlling-the-placement-of-chord-fingerings.ly +++ b/input/lsr/controlling-the-placement-of-chord-fingerings.ly @@ -3,7 +3,7 @@ \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. diff --git a/input/lsr/editorial-annotations.snippet-list b/input/lsr/editorial-annotations.snippet-list index 841fbc1939..b3e6832d20 100644 --- a/input/lsr/editorial-annotations.snippet-list +++ b/input/lsr/editorial-annotations.snippet-list @@ -7,6 +7,7 @@ embedding-native-postscript-in-a--markup-block.ly 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 diff --git a/input/lsr/expressive-marks.snippet-list b/input/lsr/expressive-marks.snippet-list index ac522894e7..c03626f27f 100644 --- a/input/lsr/expressive-marks.snippet-list +++ b/input/lsr/expressive-marks.snippet-list @@ -4,6 +4,7 @@ changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.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 diff --git a/input/lsr/faking-a-hammer-in-tablatures.ly b/input/lsr/faking-a-hammer-in-tablatures.ly new file mode 100644 index 0000000000..ed40239510 --- /dev/null +++ b/input/lsr/faking-a-hammer-in-tablatures.ly @@ -0,0 +1,22 @@ +%% 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) + } + } +} + diff --git a/input/lsr/fingerings,-string-indications,-and-right-hand-fingerings.ly b/input/lsr/fingerings,-string-indications,-and-right-hand-fingerings.ly new file mode 100644 index 0000000000..d70f514bff --- /dev/null +++ b/input/lsr/fingerings,-string-indications,-and-right-hand-fingerings.ly @@ -0,0 +1,23 @@ +%% 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" + 4 + 4 + 4 + 4 +} diff --git a/input/lsr/flamenco-notation.ly b/input/lsr/flamenco-notation.ly new file mode 100644 index 0000000000..66976b29d3 --- /dev/null +++ b/input/lsr/flamenco-notation.ly @@ -0,0 +1,239 @@ +%% 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' { + 8^\iUp + 8^\iDown + r4 + r2^\golpe + + 8^\iUp + 8^\iDown + 8^\iUpGolpe + 8^\iDown + r2 + + 16^\aUp + \headsOff + ^\mUp + ^\iUp + ^\iDown~ + \headsOn + 2 + r4 + + \tupletOff + \times 4/5 { + 16^\xUp + \headsOff + ^\aUp + ^\mUp + ^\iUp + ^\iDown~ + \headsOn + } + 2 + r4 + + \tupletsOff + \times 2/3 { + 8^\pDown + \headsOff + ^\xUp + ^\iUp + \headsOn + } + + \times 2/3 { + 8^\pDown + \headsOff + ^\xUp + ^\iUp + \headsOn + } + + \times 2/3 { + 8^\pDown + \headsOff + ^\xUp + ^\iUp + \headsOn + } + \times 2/3 { + 8^\pDown + \headsOff + ^\xUp + ^\iUp + \headsOn + } + + \tupletsOff + \override Beam #'positions = #'(2 . 2) + \times 2/3 { + a8^\markup{ \small p } + ^\strokeUpGolpe + ^\strokeDown + } + \times 2/3 { + a,8^\markup{ \small p } + ^\strokeUpGolpe + ^\strokeDown + } + \times 2/3 { + a,8^\markup{ \small p } + ^\strokeUpGolpe + ^\strokeDown + } + \times 2/3 { + a,8^\markup{ \small p } + ^\strokeUpGolpe + ^\strokeDown + } + \tupletsOn + + \once \override TextScript #'extra-offset = #'(0 . -1) + 1_\golpe^\mUp + \bar "|." +} + +\score { + \new StaffGroup << + \context Staff = part << + \clef G + \transpose c c' + { + \part + } + >> + \context TabStaff { + \part + } + >> + \layout { + ragged-right = ##t + } +} + diff --git a/input/lsr/fret-diagrams-explained-and-developed.ly b/input/lsr/fret-diagrams-explained-and-developed.ly new file mode 100644 index 0000000000..8f0d7ec674 --- /dev/null +++ b/input/lsr/fret-diagrams-explained-and-developed.ly @@ -0,0 +1,106 @@ +%% 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;" + } + } + } +>> diff --git a/input/lsr/fretted-strings.snippet-list b/input/lsr/fretted-strings.snippet-list index 01e15570dc..3f3fbe0e69 100644 --- a/input/lsr/fretted-strings.snippet-list +++ b/input/lsr/fretted-strings.snippet-list @@ -1 +1,16 @@ -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 diff --git a/input/lsr/how-to-change-fret-diagram-position.ly b/input/lsr/how-to-change-fret-diagram-position.ly new file mode 100644 index 0000000000..6219869445 --- /dev/null +++ b/input/lsr/how-to-change-fret-diagram-position.ly @@ -0,0 +1,56 @@ +%% 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;" } + } + >> + } + >> +} + + diff --git a/input/lsr/jazz-combo-template.ly b/input/lsr/jazz-combo-template.ly index 585373c65b..f1db4a9d6a 100644 --- a/input/lsr/jazz-combo-template.ly +++ b/input/lsr/jazz-combo-template.ly @@ -3,7 +3,7 @@ \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 diff --git a/input/lsr/keyboards.snippet-list b/input/lsr/keyboards.snippet-list index 3892c67ea5..feb6826cf0 100644 --- a/input/lsr/keyboards.snippet-list +++ b/input/lsr/keyboards.snippet-list @@ -5,6 +5,7 @@ piano-template-with-centered-lyrics.ly 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 diff --git a/input/lsr/laissez-vibrer-ties.ly b/input/lsr/laissez-vibrer-ties.ly new file mode 100644 index 0000000000..7fac693369 --- /dev/null +++ b/input/lsr/laissez-vibrer-ties.ly @@ -0,0 +1,26 @@ +%% 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' { + 4\laissezVibrer r \laissezVibrer r + 4\laissezVibrer r 4.\laissezVibrer r8 + + 4\laissezVibrer r + \override LaissezVibrerTieColumn #'tie-configuration + = #`((-7 . ,DOWN) + (-5 . ,DOWN) + (-3 . ,UP) + (-1 . ,UP)) + 4\laissezVibrer r +} diff --git a/input/lsr/letter-tablature-formatting.ly b/input/lsr/letter-tablature-formatting.ly new file mode 100644 index 0000000000..07b271bb12 --- /dev/null +++ b/input/lsr/letter-tablature-formatting.ly @@ -0,0 +1,40 @@ +%% 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 + } +>> diff --git a/input/lsr/modern-tab-text-clef.ly b/input/lsr/modern-tab-text-clef.ly new file mode 100644 index 0000000000..da8113a156 --- /dev/null +++ b/input/lsr/modern-tab-text-clef.ly @@ -0,0 +1,32 @@ +%% 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 +} diff --git a/input/lsr/placement-of-right-hand-fingerings.ly b/input/lsr/placement-of-right-hand-fingerings.ly new file mode 100644 index 0000000000..f05cd99c0b --- /dev/null +++ b/input/lsr/placement-of-right-hand-fingerings.ly @@ -0,0 +1,29 @@ +%% 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) + 4 + + \set strokeFingerOrientations = #'(up right down) + 4 + + \set strokeFingerOrientations = #'(left) + 2 +} diff --git a/input/lsr/polyphony-in-tablature.ly b/input/lsr/polyphony-in-tablature.ly new file mode 100644 index 0000000000..d904939a38 --- /dev/null +++ b/input/lsr/polyphony-in-tablature.ly @@ -0,0 +1,42 @@ +%% 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 + >> + >> + >> +} diff --git a/input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly b/input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly index e27e1ec21c..186dd7bddf 100644 --- a/input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly +++ b/input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly @@ -22,11 +22,11 @@ fret diagrams. } % 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 { diff --git a/input/lsr/staff-notation.snippet-list b/input/lsr/staff-notation.snippet-list index 680bc199c4..cffd42852f 100644 --- a/input/lsr/staff-notation.snippet-list +++ b/input/lsr/staff-notation.snippet-list @@ -9,6 +9,7 @@ tweaking-clef-properties.ly 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 @@ -18,6 +19,7 @@ time-signature-in-parentheses.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 diff --git a/input/lsr/stem-and-beam-behavior-in-tablature.ly b/input/lsr/stem-and-beam-behavior-in-tablature.ly new file mode 100644 index 0000000000..11fe174be0 --- /dev/null +++ b/input/lsr/stem-and-beam-behavior-in-tablature.ly @@ -0,0 +1,23 @@ +%% 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 + } +} diff --git a/input/lsr/tweaks-and-overrides.snippet-list b/input/lsr/tweaks-and-overrides.snippet-list index 826f90bd95..d794e10443 100644 --- a/input/lsr/tweaks-and-overrides.snippet-list +++ b/input/lsr/tweaks-and-overrides.snippet-list @@ -7,6 +7,7 @@ manually-controlling-beam-positions.ly 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 @@ -27,6 +28,7 @@ making-an-object-invisible-with-the-transparent-property.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 diff --git a/input/lsr/volta-multi-staff.ly b/input/lsr/volta-multi-staff.ly index 246d1e4c67..bdd360343d 100644 --- a/input/lsr/volta-multi-staff.ly +++ b/input/lsr/volta-multi-staff.ly @@ -2,7 +2,7 @@ %% 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." diff --git a/input/new/fret-diagrams-explained-and-developed.ly b/input/new/fret-diagrams-explained-and-developed.ly new file mode 100644 index 0000000000..d8d408b7bd --- /dev/null +++ b/input/new/fret-diagrams-explained-and-developed.ly @@ -0,0 +1,104 @@ +\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;" + } + } + } +>> diff --git a/input/new/letter-tablature-formatting.ly b/input/new/letter-tablature-formatting.ly new file mode 100644 index 0000000000..5f2b267903 --- /dev/null +++ b/input/new/letter-tablature-formatting.ly @@ -0,0 +1,38 @@ +\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 + } +>> diff --git a/input/new/modern-tab-text-clef.ly b/input/new/modern-tab-text-clef.ly new file mode 100644 index 0000000000..4af5379726 --- /dev/null +++ b/input/new/modern-tab-text-clef.ly @@ -0,0 +1,30 @@ +\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 +} diff --git a/input/new/volta-multi-staff.ly b/input/new/volta-multi-staff.ly index 276a49f9a7..5a56af1a43 100644 --- a/input/new/volta-multi-staff.ly +++ b/input/new/volta-multi-staff.ly @@ -1,6 +1,6 @@ \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." diff --git a/lily/fretboard-engraver.cc b/lily/fretboard-engraver.cc index 056b826588..b75156f545 100644 --- a/lily/fretboard-engraver.cc +++ b/lily/fretboard-engraver.cc @@ -95,6 +95,7 @@ ADD_TRANSLATOR (Fretboard_engraver, /* read */ "stringTunings " "minimumFret " + "maximumFretStretch " "tablatureFormat " "highStringOne ", diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 59878070f2..a9ca43f9f7 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -426,8 +426,8 @@ the nesting of a start delimiters.") (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.")