@c \version "2.11.38"
+@ignore
+GDP TODO list
+
+1.2.3.1 Time signature
+Needs an example of beatLength, which is broken (see my recent
+mail
+to -bug). What to do? For now I've left a paragraph of text
+which really
+needs to be inserted with an example in a snippet.
+
+1.2.3.4 Polymetric notation
+Quite extensive changes. Could you please check through. Divided
+into three
+sections. Necessarily uses tweaks. I've also left an @lsr under
+@seealso
+Snippets - is this permitted or is @lsr now verboten? This
+snippet is too
+long to include, but seems relevant.
+A snippet "grouping beats" hasn't yet appeared (only sent to vv a
+couple of
+days ago). Text left in Snippets: with TODO.
+@end ignore
+
@node Rhythms
@section Rhythms
This section discusses rhythms, rests, durations, beaming and bars.
@menu
-* Writing rhythms::
-* Writing rests::
-* Displaying rhythms::
-* Beams::
-* Bars::
-* Special rhythmic concerns::
+* Writing rhythms::
+* Writing rests::
+* Displaying rhythms::
+* Beams::
+* Bars::
+* Special rhythmic concerns::
@end menu
@subsection Writing rhythms
@menu
-* Durations::
-* Tuplets::
-* Scaling durations::
-* Ties::
+* Durations::
+* Tuplets::
+* Scaling durations::
+* Ties::
@end menu
@node Durations
@funindex \dotsNeutral
Dots are normally moved up to avoid staff lines, except in
-polyphonic situations. Predefined commands are available to
+polyphonic situations. Predefined commands are available to
force a particular direction manually, for details
-see @ref{Controlling direction and placement}.
+see @ref{Direction and placement}.
@predefined
@ref{Proportional notation}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{Dots},
-@internalsref{DotColumn}.
+@rinternals{Dots},
+@rinternals{DotColumn}.
@knownissues
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
a2 \times 2/3 { b4 b b }
c4 c \times 2/3 { b4 a g }
-
@end lilypond
@funindex \tupletUp
The automatic placement of the tuplet bracket above or below the
notes may be overridden manually with predefined commands, for
-details see @ref{Controlling direction and placement}.
+details see @ref{Direction and placement}.
Tuplets may be nested:
@funindex tupletNumberFormatFunction
@funindex tupletSpannerDuration
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{entering-several-tuplets-using-only-one--times-command.ly}
@funindex TupletNumber
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-the-tuplet-number.ly}
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{permitting-line-breaks-within-beamed-tuplets.ly}
@seealso
@ref{Polymetric notation}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{TupletBracket},
-@internalsref{TupletNumber},
-@internalsref{TimeScaledMusic}.
+@rinternals{TupletBracket},
+@rinternals{TupletNumber},
+@rinternals{TimeScaledMusic}.
@knownissues
@cindex grace notes within tuplet brackets
-When the very first note on a staff is a grace note followed by a
+When the first note on a staff is a grace note followed by a
tuplet the grace note must be placed before the @code{\times}
command to avoid errors. Anywhere else, grace notes may be
placed within tuplet brackets.
@cindex scaling durations
@cindex durations, scaling
-TODO Change \compressMusic to \scaleDurations when implemented.
-
You can alter the duration of single notes, rests or chords by a
fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
@code{M} is 1) to the duration.
@code{s1*23}.
@cindex compressing music
-@funindex \compressMusic
-
-Longer stretches of music may be compressed by a fraction in
-the same way, as if every note, chord or rest had the fraction
-as a multiplier. The general syntax of the command to do this
-is:
+@funindex \scaleDurations
-@example
-\compressMusic #'(@emph{num} . @emph{den}) @{ @emph{music} @}
-@end example
-
-@noindent
-This will leave the appearance of @emph{music} unchanged but
+Longer stretches of music may be compressed by a fraction in the
+same way, as if every note, chord or rest had the fraction as a
+multiplier. This leaves the appearance of the music unchanged but
the internal duration of the notes will be multiplied by the
-fraction @emph{num}/@emph{den}. The spaces around the dot
-are required. Here is an example showing how music can be
-compressed and expanded:
+fraction @emph{num}/@emph{den}. The spaces around the dot are
+required. Here is an example showing how music can be compressed
+and expanded:
@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
\time 2/4
% Normal durations
<c a>4 c8 a
% Scale music by *2/3
-\compressMusic #'(2 . 3) {
+\scaleDurations #'(2 . 3) {
<c a f>4. c8 a f
}
% Scale music by *2
-\compressMusic #'(2 . 1) {
+\scaleDurations #'(2 . 1) {
<c' a>4 c8 b
}
@end lilypond
@ref{Polymetric notation}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@node Ties
A tie is entered using the tilde symbol @code{~}
@lilypond[quote,ragged-right,fragment,verbatim]
-e' ~ e'
+e'2 ~ e'
@end lilypond
be entered as follows:
@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
-<c f g>\laissezVibrer
+<c f g>1\laissezVibrer
@end lilypond
@cindex ties, placement
The vertical placement of ties may be controlled, see
Predefined commands, or for details, see
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
@cindex ties, appearance
@funindex \tieDotted
@snippets
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{using-ties-with-arpeggios.ly}
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{engraving-ties-manually.ly}
Notation Reference: @ref{Automatic note splitting}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{LaissezVibrerTie},
-@internalsref{LaissezVibrerTieColumn},
-@internalsref{TieColumn},
-@internalsref{Tie}.
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}.
@knownissues
@node Writing rests
@subsection Writing rests
+Rests are entered as part of the music in music expressions.
+
@menu
-* Rests::
-* Skips::
-* Full measure rests::
+* Rests::
+* Skips::
+* Full measure rests::
@end menu
@node Rests
@subsubsection Rests
@cindex rest
+@cindex rest, entering durations
@cindex maxima
@cindex longa
@cindex breve
@funindex \longa
@funindex \breve
-Rests are entered like notes with the note name @code{r};
-longer rests with the predefined commands shown:
+Rests are entered like notes with the note name @code{r}.
+Durations longer than a whole rest use the predefined
+commands shown:
@c \time 16/1 is used to avoid spurious bar lines
@c and long tracts of empty measures
}
@end lilypond
-Whole measure rests, centered in the middle of the measure, must
-be entered as multi-measure rests. They can be used for a single
-measure as well as many measures and are discussed in
-@ref{Full measure rests}.
+@cindex rest, multi-measure
+@cindex rest, whole-measure
+
+Whole measure rests, centered in the middle of the measure, must be
+entered as multi-measure rests. They can be used for a single
+measure as well as many measures and are discussed in @ref{Full
+measure rests}.
+
+@cindex rest, specifying vertical position
To explicitly specify a rest's vertical position, write a note
-followed by @code{\rest}. A rest will be placed in the position
-where the note would appear. This allows for precise manual
-formatting of polyphonic music, since the automatic rest collision
-formatter will leave these rests alone.
+followed by @code{\rest}. A rest of the duration of the note will
+be placed at the staff position where the note would appear. This
+allows for precise manual formatting of polyphonic music, since the
+automatic rest collision formatter will not move these rests.
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
a4\rest d4\rest
@snippets
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{rest-styles.ly}
@seealso
-Notation Reference: @ref{Full measure rests}
+Notation Reference:
+@ref{Full measure rests}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{Rest}
+Internals Reference:
+@rinternals{Rest}.
@knownissues
longest and shortest), but the number of glyphs is limited: there
are rests from 128th to maxima (8 x whole).
+
@node Skips
@subsubsection Skips
@cindex invisible rest
@cindex rest, invisible
@cindex spacer note
-
-@funindex \skip
@funindex s
-An invisible rest (also called a @q{skip rest}) can be entered like a
-note with note name @code{s} or with the predefined skip command
-followed by the required duration, as shown here:
+An invisible rest (also called a @q{spacer rest}) can be entered
+like a note with the note name@tie{}@code{s}:
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-% Skip the third beat in the first measure
-a4 a4 s4 a4
-% Use skip command to skip a whole note (measure)
-\skip 1
-a2 a2
+@lilypond[verbatim,quote,relative=2]
+c4 c s c
+s2 c
@end lilypond
@cindex lyrics, skip
-The @code{s} syntax is only available in note mode and chord mode.
-In other situations, for example, when entering lyrics, one must
-use the predefined skip command:
+Spacer rests are available only in note mode and chord mode. In
+other situations, for example, when entering lyrics, @code{\skip}
+is used to skip a musical moment. @code{\skip} requires an
+explicit duration.
@lilypond[quote,ragged-right,verbatim,relative=2]
<<
- { a2 a2 }
- \new Lyrics \lyricmode { \skip 2 bla2 }
+ {
+ a2 \skip2 a2 a2
+ }
+ \new Lyrics {
+ \lyricmode {
+ foo2 \skip 1 bla2
+ }
+ }
>>
@end lilypond
-The @code{s} skip rest implicitly causes @code{Staff} and
-@code{Voice} contexts to be created if none exist, just
-like notes and rests do. These in turn cause a staff with default
-clef and time signature to be printed, with bar lines if necessary.
-For example, the following results in a complete staff with three
-short empty measures:
+A spacer rest implicitly causes @code{Staff} and @code{Voice}
+contexts to be created if none exist, just like notes and rests
+do:
-@lilypond[quote,verbatim,fragment,ragged-right]
-{ s1 s s }
+@lilypond[quote,verbatim,fragment]
+s1 s s
@end lilypond
-However, the predefined skip command behaves differently: it is
-merely an empty musical placeholder. It does not create any
-contexts and does not cause anything to be printed, not even
-transparently. On its own it does not even print an
-empty page:
+@code{\skip} simply skips musical time; it creates no output of
+any kind.
-@example
+@lilypond[quote,verbatim,fragment]
% This is valid input, but does nothing
-@{ \skip 1 @}
-@end example
+\skip 1 \skip1 \skip 1
+@end lilypond
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{SkipMusic}
+Internals Reference: @rinternals{SkipMusic}
@node Full measure rests
b2^"Tutti" b4 a4
@end lilypond
+The duration of full-measure rests is identical to the duration notation
+used for notes. The duration in a multi-measure rest must always be an
+integral number of measure-lengths, so augmentation
+dots or fractions must often be used:
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\compressFullBarRests
+\time 2/4
+R1 | R2 |
+\time 3/4
+R2. | R2.*2 |
+\time 13/8
+R1*13/8 | R1*13/8*12 |
+\time 10/8
+R4*5*4 |
+@end lilypond
+
+A full-measure rest is printed as either a whole
+or breve rest, centered in the measure, depending on the time
+signature.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 4/4
+R1 |
+\time 6/4
+R1*3/2 |
+\time 8/4
+R1*2 |
+@end lilypond
@funindex \expandFullBarRests
@funindex \compressFullBarRests
@cindex multi-measure rest, expanding
@cindex multi-measure rest, contracting
By default a multi-measure rest is expanded in the printed score
-to show all the rest measures explicitly or (as in the example
-above) it can be contracted to a single measure containing a
-multi-measure rest symbol, with the number of measures of rest
+to show all the rest measures explicitly.
+Alternatively, a mult-measure rest can be shown as a single measure
+containing a multi-measure rest symbol, with the number of measures of rest
printed above the measure:
@lilypond[quote,ragged-right,fragment,verbatim]
R2.*2 |
@end lilypond
-The @code{1} in @code{R1} is similar to the duration notation
-used for notes and is the length of a measure in 2/2 or 4/4 time.
-The duration in a multi-measure rest must always be an integral
-number of measure-lengths, so in other time signatures augmentation
-dots or fractions must be used:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\compressFullBarRests
-\time 3/4
-R2. | R2.*2
-\time 13/8
-R1*13/8 | R1*13/8*12 |
-\time 10/8
-R4*5*4 |
-@end lilypond
-
-An @code{R} spanning a single measure is printed as either a whole
-or breve rest, centered in the measure, regardless of the time
-signature.
-
@cindex text on multi-measure rest
@cindex multi-measure rest, attaching text
@cindex fermata on multi-measure rest
@cindex multi-measure rest, attaching fermata
-Text can be added to multi-measure rests by using the
-@var{note} - @code{\markup} syntax described in
-@ref{Formatting text}. The predefined command @code{\fermataMarkup}
+Markups can be added to multi-measure rests.
+The predefined command @code{\fermataMarkup}
is provided for adding fermatas.
@lilypond[quote,ragged-right,verbatim,fragment]
R2.^\fermataMarkup
@end lilypond
-@warning{Text attached to a multi-measure rest is created
-by @code{MultiMeasureRestText}, not
+@warning{
+Markups attached to a multi-measure rest are
+objects of type @code{MultiMeasureRestText}, not
@code{TextScript}. Overrides must be directed to the correct
-object, or they will be ignored. See the following example.}
+object, or they will be ignored. See the following example.
+}
@lilypond[quote,ragged-right,verbatim,fragment]
% This fails, as the wrong object name is specified
R1^"right"
@end lilypond
-Text attached to a multi-measure rest will be centered above or
-below it. Long text attached in this way does not cause the
-measure to expand, and may collide with text in adjacent measures.
-This behavior may be changed with the predefined command
-@code{\textLengthOn}, which will cause following bars to expand
-as necessary to accommodate text. @code{\textLengthOff} returns
-to the default behavior. To left-align text within a bar attach
-it to a zero-length skip note preceding the rest.
-
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\compressFullBarRests
-\textLengthOn
-s1*0^\markup { [MAJOR GENERAL] }
-R1*19
-s1*0^\markup { [MABEL] }
-s1*0_\markup { \italic { Cue: ... it is yours } }
-R1*30
-\textLengthOff
-c4^\markup { CHORUS } d f c
-@end lilypond
-
-@noindent
-Text attached to a skip note in this way is left-aligned to the
-position where the note would be placed in the measure, and placed
-above the measure count numeral, but if the measure length is
-determined by the length of the text, the text will appear to be
-centered. If two (or more) texts are
-attached to skip notes in a measure the measure length is determined by
-the longer text, and the shorter text is then clearly
-left-aligned, as shown in the second measure above. If the shorter
-text of two marks is short enough to fit it will be placed
-alongside and to the left of the measure count numeral.
@predefined
@code{\textLengthOn},
@cindex rest, church
@cindex kirchenpausen
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-form-of-multi--measure-rests.ly}
@cindex multi-measure rests, positioning
@cindex positioning multi-measure rests
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{positioning-multi--measure-rests.ly}
+@c TODO -- convert to snippet
+Markups attached to a multi-measure rest will be centered above or
+below it. Long markups attached to multi-measure rests do not cause
+the measure to expand. To expand a multi-measure rest to fit the markup,
+use a spacer rest with an attached markup before the multi-measure rest:
+
+@c -- music is somewhat compressed vertically. I thought it
+@c was good because the emphasis is not on the content
+@c of the markup, but on the place the markup was attached -cs
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\compressFullBarRests
+\textLengthOn
+s1*0^\markup { [MAJOR GENERAL] }
+R1*19
+s1*0_\markup { \italic { Cue: ... it is yours } }
+s1*0^\markup { A }
+R1*30^\markup { [MABEL] }
+\textLengthOff
+c4^\markup { CHORUS } d f c
+@end lilypond
+
+@noindent
+Note that the spacer rest causes a bar to be inserted.
+Text attached to a spacer rest in this way is left-aligned to the
+position where the note would be placed in the measure, but if the
+measure length is determined by the length of the text, the text will
+appear to be centered.
+
+
@seealso
Music Glossary:
-@rglos{multi-measure rest},
-@rglos{church rests}.
+@rglos{multi-measure rest}.
Notation Reference:
@ref{Durations},
@ref{Text scripts}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{MultiMeasureRest},
-@internalsref{MultiMeasureRestNumber},
-@internalsref{MultiMeasureRestText}.
+@rinternals{MultiMeasureRest},
+@rinternals{MultiMeasureRestNumber},
+@rinternals{MultiMeasureRestText}.
@knownissues
numeral (10).
@cindex condensing rests
-@cindex rests, condensing ordinary
+@cindex rest, condensing ordinary
There is no way to automatically condense multiple ordinary rests
into a single multi-measure rest.
-@cindex rests, collisions of
+@cindex rest, collisions of
Multi-measure rests do not take part in rest collisions.
-Be careful when entering multi-measure rests followed by whole
-notes. The following will enter two notes lasting four measures
-each:
-
-@example
-R1*4 cis cis
-@end example
-
-
@node Displaying rhythms
@subsection Displaying rhythms
@menu
-* Time signature::
-* Upbeats::
-* Unmetered music::
-* Polymetric notation::
-* Automatic note splitting::
-* Showing melody rhythms::
+* Time signature::
+* Upbeats::
+* Unmetered music::
+* Polymetric notation::
+* Automatic note splitting::
+* Showing melody rhythms::
@end menu
@node Time signature
@cindex Time signature, visibility of
-Time signatures by default are printed at the start of every line
+Time signatures are printed at the beginning of a piece
and whenever the time signature changes. If a change takes place
-at the end of a line a warning time signature sign is printed
-there. This default behavior may be changed, see
+at the end of a line a warning time signature sign is printed
+there. This default behavior may be changed, see
@ref{Controlling visibility of objects}.
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\time 2/4
+c2 c
+\break
+c c
+\break
+\time 4/4
+c c c c
+@end lilypond
+
@funindex \numericTimeSignature
@funindex \defaultTimeSignature
@cindex time signature style
Scheme function @code{set-time-signature}, which takes three
arguments: the number of beats, the beat length, and the internal
grouping of beats in the measure. If the
-@internalsref{Measure_grouping_engraver} is included, the function
-will also create @internalsref{MeasureGrouping} signs. Such signs
+@rinternals{Measure_grouping_engraver} is included, the function
+will also create @rinternals{MeasureGrouping} signs. Such signs
ease reading rhythmically complex modern music. In the example,
the 9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
@code{set-time-signature} as the third argument: @code{'(2 2 2 3)}:
@cindex compound time signatures
@cindex time signature, compound
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{compound-time-signatures.ly}
@rglos{time signature}
Notation Reference:
-@ruser{Ancient time signatures},
-@ruser{Time administration}.
+@ref{Ancient time signatures},
+@ref{Time administration}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{TimeSignature},
-@internalsref{Timing_translator}.
+@rinternals{TimeSignature},
+@rinternals{Timing_translator}.
@knownissues
which are to be placed before the first complete measure:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e |
+\partial 4 e4 |
+a2. c,4 |
+@end lilypond
+
+The partial measure can be any duration less than a full measure:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\partial 8*3 c8 d e |
a2. c,4 |
-b2
@end lilypond
Internally, this is translated into
command: i.e., @code{\partial 4} is internally translated to
@code{-4}, meaning @qq{there is a quarter note left in the measure.}
-
@seealso
Music Glossary: @rglos{anacrusis}
Notation Reference: @ref{Grace notes}
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internal Reference: @internalsref{Timing_translator}
+Internal Reference:
+@rinternals{Timing_translator}
@knownissues
@seealso
-Music Glossary: @rglos{cadenza}
+Music Glossary:
+@rglos{cadenza}
-Notation Reference: @ref{Controlling visibility of objects}
+Notation Reference:
+@ref{Controlling visibility of objects}
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@knownissues
for each staff but replacing the symbol manually by setting
@code{timeSignatureFraction} to the desired fraction and scaling
the printed durations in each staff to the common time
-signature. This done with @code{\compressMusic}, which
+signature. This done with @code{\scaleDurations}, which
is used in a similar way to @code{\times}, but does not create
a tuplet bracket, see @ref{Scaling durations}.
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = #'(9 . 8)
- \compressMusic #'(2 . 3)
+ \scaleDurations #'(2 . 3)
\repeat unfold 6 { c8[ c c] }
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = #'(10 . 8)
- \compressMusic #'(3 . 5) {
+ \scaleDurations #'(3 . 5) {
\repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] } |
c4. c4. \times 2/3 { c8 c c } c4
Notation Reference: @ref{Scaling durations}
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@c Is this still permitted?
@c @lsr{contemporary,compound-time-signature}
Internals Reference:
-@internalsref{TimeSignature},
-@internalsref{Timing-translator},
-@internalsref{Staff}.
+@rinternals{TimeSignature},
+@rinternals{Timing-translator},
+@rinternals{Staff}.
@knownissues
@rlearning{Adding and removing engravers}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
Internals Reference:
-@internalsref{Note_heads_engraver},
-@internalsref{Completion_heads_engraver},
-@internalsref{Forbid_line_break_engraver}.
+@rinternals{Note_heads_engraver},
+@rinternals{Completion_heads_engraver},
+@rinternals{Forbid_line_break_engraver}.
@knownissues
@node Showing melody rhythms
@subsubsection Showing melody rhythms
-TODO
+Sometimes you might want to show only the rhythm of a melody. This
+can be done with the rhythmic staff. All pitches of notes on such a
+staff are squashed, and the staff itself has a single line
+
+@c TODO Devise a more realistic example, perhaps with lyrics -td
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new RhythmicStaff {
+ \time 4/4
+ c4 e8 f g2 | r4 g r2 | g1 | r1 |
+}
+@end lilypond
@node Beams
@subsection Beams
@menu
-* Automatic beams::
-* Setting automatic beam behavior::
-* Manual beams::
-* Feathered beams::
+* Automatic beams::
+* Setting automatic beam behavior::
+* Manual beams::
+* Feathered beams::
@end menu
@node Automatic beams
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
-be modified to sub-divide the beams into sub-groups by setting
-the property @code{subdivideBeams}. When set, multiple beams
+be modified to sub-divide the beams into sub-groups by setting
+the property @code{subdivideBeams}. When set, multiple beams
will be sub-divided at intervals defined by the current value of
@code{beatLength} by reducing the multiple beams to just one beam
between the sub-groups. Note that @code{beatLength} lives in the
@cindex line breaks
Line breaks are normally forbidden when beams cross bar lines.
-This behavior can be changed by setting the @code{breakable}
+This behavior can be changed by setting the @code{breakable}
property: @code{\override Beam #'breakable = ##t}.
@lilypond[ragged-right,relative=2,fragment,verbatim,quote]
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
-drawn if the gap is larger than the value of
+drawn if the gap is larger than the value of
@code{auto-knee-gap} plus the width of the beam object (which
depends on the duration of the notes and the slope of the beam).
By default @code{auto-knee-gap} is set to 5.5 staff spaces.
Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{Beam}.
+Internals Reference: @rinternals{Beam}.
@knownissues
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@node Manual beams
@subsubsection Feathered beams
@cindex beams, feathered
-@funindex \featherDurations
+@funindex \featherDurations
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
+changing the overall tempo of the piece. The extent of the
feathered beam must be indicated manually using @code{[} and
-@code{]}, and the beam feathering is turned on by specifying a
+@code{]}, and the beam feathering is turned on by specifying a
direction to the @code{Beam} property @code{grow-direction}.
If the placement of the notes and the sound in the MIDI output
The square brackets
show the extent of the beam and the braces show
-which notes are to have their durations modified. Normally
+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.
+required: the two commands are independent.
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
@end lilypond
@noindent
-The spacing in the printed output represents the
+The spacing in the printed output represents the
note durations only approximately, but the midi output is exact.
@knownissues
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@menu
-* Bar lines::
-* Bar numbers::
-* Bar and bar number checks::
-* Rehearsal marks::
+* Bar lines::
+* Bar numbers::
+* Bar and bar number checks::
+* Rehearsal marks::
@end menu
@node Bar lines
Bar lines delimit measures, and are also used to indicate
repeats. Normally, simple bar lines are automatically inserted
-into the printed output at places based on the current time
-signature.
+into the printed output at places based on the current time
+signature.
-The simple bar lines inserted automatically can be changed to
+The simple bar lines inserted automatically can be changed to
other types with the @code{\bar} command. For example, a closing
double bar line is usually placed at the end of a piece:
@warning{An incorrect duration can lead to poorly formatted
music.}
-
-It is not invalid if the final note in a measure does not
-end on the automatically entered bar line: the note is assumed
+
+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
of such carry-over measures appears the music can appear compressed
or even flowing off the page. This is because automatic line
-breaks happen only at the end of complete measures, i.e., where
+breaks happen only at the end of complete measures, i.e., where
the end of a note coincides with the end of a measure.
@cindex line breaks
@cindex measure lines, invisible
Line breaks are also permitted at manually inserted bar lines
-even within incomplete measures. To allow a line break without
+even within incomplete measures. To allow a line break without
printing a bar line, use
@example
@noindent
This will insert an invisible bar line and allow (but not
-force) a line break to occur at this point. The bar number
-counter is not increased. To force a line break see
+force) a line break to occur at this point. The bar number
+counter is not increased. To force a line break see
@ref{Line breaking}.
This and other special bar lines may be inserted manually at any
point. When they coincide with the end of a measure they replace
-the simple bar line which would have been inserted there
+the simple bar line which would have been inserted there
automatically. When they do not coincide
with the end of a measure the specified bar line is inserted at that
point in the printed output. Such insertions do not affect
-the calculation and placement of subsequent automatic bar lines.
+the calculation and placement of subsequent automatic bar lines.
The simple bar line and four types of double bar line are available
for manual insertion:
In addition, you can specify @code{"||:"}, which is equivalent to
@code{"|:"} except at line breaks, where it gives a double bar
line at the end of the line and a start repeat at the beginning of
-the next line.
+the next line.
@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
\override Score.RehearsalMark #'padding = #3
c c c c
-\bar "||:"
+\bar "||:"
c c c c \break
-\bar "||:"
+\bar "||:"
c c c c
@end lilypond
@funindex defaultBarType
The command @code{\bar }@var{bartype} is a shortcut for
-@code{\set Timing.whichBar = }@var{bartype}. A bar line is
+@code{\set Timing.whichBar = }@var{bartype}. A bar line is
created whenever the @code{whichBar} property is
-set.
+set.
The default bar type used for automatically inserted bar lines is
@code{"|"}. This may be changed at any time
-with @code{\set Timing.defaultBarType = }@var{bartype}.
+with @code{\set Timing.defaultBarType = }@var{bartype}.
@seealso
@c @ref{System start delimiters}.
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{BarLine} (created at
-@internalsref{Staff} level), @internalsref{SpanBar} (across
-staves), @internalsref{Timing_translator} (for Timing
+Internals Reference: @rinternals{BarLine} (created at
+@rinternals{Staff} level), @rinternals{SpanBar} (across
+staves), @rinternals{Timing_translator} (for Timing
properties).
@cindex bar number, format
The size of the bar number may be changed. This is illustrated
-in the following example, which also shows how to enclose bar
+in the following example, which also shows how to enclose bar
numbers in boxes and circles, and shows an alternative way
of specifying @code{#(#f #t #t)} for @code{break-visibility}.
\override Score.BarNumber #'break-visibility
= #end-of-line-invisible
-% Increase the size of the bar number by 2
+% Increase the size of the bar number by 2
\override Score.BarNumber #'font-size = #2
\repeat unfold 3 { c1 } \bar "|"
Bar numbers by default are left-aligned to their parent object.
This is usually the left edge of a line or, if numbers are printed
within a line, the left bar line of the measure. The numbers may also
-be positioned directly on the bar line or right-aligned to the
+be positioned directly on the bar line or right-aligned to the
bar line:
@lilypond[verbatim,ragged-right,quote,fragment,relative]
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{BarNumber}.
+Internals Reference: @rinternals{BarNumber}.
@knownissues
Bar numbers may collide with the top of the
-@internalsref{StaffGroup} bracket, if there is one. To solve
-this, the @code{padding} property of @internalsref{BarNumber} can
+@rinternals{StaffGroup} bracket, if there is one. To solve
+this, the @code{padding} property of @rinternals{BarNumber} can
be used to position the number correctly.
Bar numbers may only be printed at bar lines; to print a bar
@funindex |
Bar checks help detect errors in the entered durations.
-A bar check may be entered using the bar symbol, @code{|},
-at any place where a bar line is expected to fall.
-If bar check lines are encountered at other places,
+A bar check may be entered using the bar symbol, @code{|},
+at any place where a bar line is expected to fall.
+If bar check lines are encountered at other places,
a list of warnings is printed in the log file,
-showing the line numbers and lines
+showing the line numbers and lines
in which the bar checks failed. In the next
example, the second bar check will signal an error.
@funindex |
@funindex pipeSymbol
-It is also possible to redefine the action taken when a bar check
-or pipe symbol, @code{|}, is encountered in the input, so that
-it does something other than a bar check. This is done by
-assigning a music expression to @code{pipeSymbol}.
-In the following example @code{|} is set to insert a double bar
-line wherever it appears in the input, rather than checking
+It is also possible to redefine the action taken when a bar check
+or pipe symbol, @code{|}, is encountered in the input, so that
+it does something other than a bar check. This is done by
+assigning a music expression to @code{pipeSymbol}.
+In the following example @code{|} is set to insert a double bar
+line wherever it appears in the input, rather than checking
for end of bar.
@lilypond[quote,ragged-right,verbatim]
pipeSymbol = \bar "||"
-{
+{
c'2 c'2 |
c'2 c'2
c'2 | c'2
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@node Rehearsal marks
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
This manual: @ref{The Feta font}, @ref{Formatting text}.
-Internals Reference: @internalsref{RehearsalMark}.
+Internals Reference: @rinternals{RehearsalMark}.
Init files: @file{scm/@/translation@/-functions@/.scm} contains
the definition of @code{format-mark-numbers} and
@menu
-* Grace notes::
-* Aligning to cadenzas::
-* Time administration::
+* Grace notes::
+* Aligning to cadenzas::
+* Time administration::
@end menu
@node Grace notes
example:
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-b4 \acciaccatura d8 c4
+b4 \acciaccatura d8 c4
\appoggiatura e8 d4
\acciaccatura { g16[ f] } e4
@end lilypond
@noindent
-@code{\acciaccatura} and @code{\appoggiatura} start a slur,
+@code{\acciaccatura} and @code{\appoggiatura} start a slur,
@code{\grace} does not.
The placement of grace notes is synchronized between different
in other staves by setting @code{strict-grace-spacing} to
##t:
-@lilypond[relative=2,ragged-right]
+@lilypond[verbatim,quote,relative=2]
<<
\override Score.SpacingSpanner #'strict-grace-spacing = ##t
\new Staff {
- c'4
- \afterGrace
- c'4
- { c'16[ c'8 c'16] }
- c'4
- }
+ c4
+ \afterGrace c4 { c16[ c8 c16] }
+ c4 r
+ }
\new Staff {
- c'16[ c'16 c'16 c'16]
- c'16[ c'16 c'16 c'16]
- c'4
+ c16 c c c c c c c c4 r
}
>>
@end lilypond
@rglos{appoggiatura}
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
-Internals Reference: @internalsref{GraceMusic}.
+Internals Reference: @rinternals{GraceMusic}.
@knownissues
-A multi-note beamed @emph{acciaccatura} is printed without a slash,
+A multi-note beamed @emph{acciaccatura} is printed without a slash,
and looks exactly the same as a multi-note beamed
@emph{appoggiatura}.
@c TODO Add link to LSR snippet to add slash when available
@seealso
Snippets:
-@lsrdir{Rhythms,Rhythms}
+@rlsr{Rhythms}.
@node Time administration
The following properties of @code{Timing} are used
to keep track of timing within the score.
-
+
@cindex bar number
@cindex measure number
@item measurePosition
The point within the measure where we currently are. This
quantity is reset by subtracting @code{measureLength} whenever
-@code{measureLength} is reached or exceeded. When that happens,
+@code{measureLength} is reached or exceeded. When that happens,
@code{currentBarNumber} is incremented.
@item timing
@end table
Timing can be changed by setting any of these variables
-explicitly. In the next example, the default 4/4 time
+explicitly. In the next example, the default 4/4 time
signature is printed, but @code{measureLength} is set to 5/4.
At 4/8 through the third measure, the @code{measurePosition} is
advanced by 1/8 to 5/8, shortening that bar by 1/8.
This manual: @ref{Bar numbers}, @ref{Unmetered music}
Snippets:
-@lsrdir{Rhythms,Rhythms}
-
-Internals Reference: @internalsref{Timing_translator},
-@internalsref{Score}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+@rlsr{Rhythms}.
+Internals Reference: @rinternals{Timing_translator},
+@rinternals{Score}