]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/rhythms.itely
Merge branch 'master' into dev/texi2html
[lilypond.git] / Documentation / user / rhythms.itely
index 859c70b2933cefe8b381d3422a0497b4172d163a..f5a60dadd640410062430772f5a87e00bb88fc72 100644 (file)
@@ -6,6 +6,31 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.11.51"
+
+@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
 
 
@@ -27,10 +52,10 @@ This section discusses rhythms, rests, durations, beaming and bars.
 @subsection Writing rhythms
 
 @menu
-* Durations::                   
-* Tuplets::                     
-* Scaling durations::           
-* Ties::                        
+* Durations::
+* Tuplets::
+* Scaling durations::
+* Ties::
 @end menu
 
 @node Durations
@@ -112,9 +137,9 @@ proportional notation, see @ref{Proportional notation}.
 @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
 
@@ -141,11 +166,12 @@ Notation Reference:
 @ref{Ancient notation},
 @ref{Proportional notation}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}.
+Snippets:
+@rlsr{Rhythms}.
 
 Internals Reference:
-@internalsref{Dots},
-@internalsref{DotColumn}.
+@rinternals{Dots},
+@rinternals{DotColumn}.
 
 
 @knownissues
@@ -180,7 +206,6 @@ the notes are 2/3 of their written length.
 @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
@@ -189,7 +214,7 @@ c4 c \times 2/3 { b4 a g }
 
 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:
 
@@ -219,15 +244,15 @@ see @ref{Scaling durations}.
 @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
@@ -245,16 +270,17 @@ Notation Reference:
 @ref{Objects connected to the input},
 @ref{Polymetric notation}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}.
+Snippets:
+@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.
@@ -266,8 +292,6 @@ 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.
@@ -296,34 +320,26 @@ a multiplier.  This is useful for skipping many measures, e.g.,
 @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
@@ -340,7 +356,8 @@ Notation Reference:
 @ref{Skips},
 @ref{Polymetric notation}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 
 @node Ties
@@ -360,7 +377,7 @@ duration, similar to the augmentation dot.}
 A tie is entered using the tilde symbol @code{~}
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-e' ~ e'
+e'2 ~ e'
 @end lilypond
 
 
@@ -422,7 +439,7 @@ piano, harp and other string and percussion instruments.  They can
 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
@@ -432,7 +449,7 @@ be entered as follows:
 
 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
@@ -455,10 +472,10 @@ commands.
 
 @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}
 
 
@@ -470,13 +487,14 @@ Music Glossary:
 
 Notation Reference: @ref{Automatic note splitting}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 Internals Reference:
-@internalsref{LaissezVibrerTie},
-@internalsref{LaissezVibrerTieColumn},
-@internalsref{TieColumn},
-@internalsref{Tie}.
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}.
 
 
 @knownissues
@@ -494,15 +512,18 @@ well-defined.  In these cases, a slur may be preferable.
 @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
@@ -513,8 +534,9 @@ well-defined.  In these cases, a slur may be preferable.
 @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
@@ -533,16 +555,21 @@ longer rests with the predefined commands shown:
 }
 @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
@@ -550,17 +577,20 @@ 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}
+Snippets:
+@rlsr{Rhythms}.
 
-Internals Reference: @internalsref{Rest}
+Internals Reference:
+@rinternals{Rest}.
 
 
 @knownissues
@@ -570,6 +600,7 @@ There is no fundamental limit to rest durations (both in terms of
 longest and shortest), but the number of glyphs is limited: there
 are rests from 128th to maxima (8 x whole).
 
+
 @node Skips
 @subsubsection Skips
 
@@ -577,62 +608,58 @@ are rests from 128th to maxima (8 x whole).
 @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}
+Snippets:
+@rlsr{Rhythms}.
 
-Internals Reference: @internalsref{SkipMusic}
+Internals Reference: @rinternals{SkipMusic}
 
 
 @node Full measure rests
@@ -657,15 +684,44 @@ R1*4
 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]
@@ -682,26 +738,6 @@ r1 | R1*17 | R1*4 |
 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
@@ -710,9 +746,8 @@ signature.
 @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{Text markup}.  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]
@@ -722,10 +757,12 @@ R2.*10^\markup { \italic "ad lib." }
 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
@@ -736,38 +773,6 @@ R1^"wrong"
 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},
@@ -782,33 +787,62 @@ alongside and to the left of the measure count numeral.
 @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},
-@ref{Text markup},
+@ref{Formatting text},
 @ref{Text scripts}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 Internals Reference:
-@internalsref{MultiMeasureRest},
-@internalsref{MultiMeasureRestNumber},
-@internalsref{MultiMeasureRestText}.
+@rinternals{MultiMeasureRest},
+@rinternals{MultiMeasureRestNumber},
+@rinternals{MultiMeasureRestText}.
 
 
 @knownissues
@@ -819,33 +853,25 @@ fingering numeral (4) may collide with the bar counter
 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::    
+* Time signature::
+* Upbeats::
+* Unmetered music::
+* Polymetric notation::
+* Automatic note splitting::
+* Showing melody rhythms::
 @end menu
 
 @node Time signature
@@ -864,12 +890,22 @@ The time signature is set as follows:
 
 @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
@@ -928,8 +964,8 @@ Options to group beats within a bar are available through the
 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)}:
@@ -955,7 +991,7 @@ the 9/8 measure is subdivided in 2, 2, 2 and 3.  This is passed to
 @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}
 
 
@@ -965,15 +1001,15 @@ Music Glossary:
 @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
@@ -1005,9 +1041,15 @@ where @code{duration} is the rhythmic length of the @emph{notes}
 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
@@ -1022,16 +1064,17 @@ that this is set to a negative number by the @code{\partial}
 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}
+Snippets:
+@rlsr{Rhythms}.
 
-Internal Reference: @internalsref{Timing_translator}
+Internal Reference:
+@rinternals{Timing_translator}
 
 @knownissues
 
@@ -1098,11 +1141,14 @@ d4 e d c
 
 @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}
+Snippets:
+@rlsr{Rhythms}.
 
 @knownissues
 
@@ -1159,7 +1205,7 @@ This notation can be created by setting a common time signature
 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}.
 
@@ -1178,13 +1224,13 @@ staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
   \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
@@ -1247,14 +1293,14 @@ Music Glossary:
 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
 
@@ -1301,12 +1347,13 @@ Learning Manual:
 @rlearning{Engravers explained},
 @rlearning{Adding and removing engravers}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@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
@@ -1319,14 +1366,30 @@ The @code{Completion_heads_engraver} only affects notes; it does not
 split rests.
 
 
+@node Showing melody rhythms
+@subsubsection Showing melody rhythms
+
+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
@@ -1379,8 +1442,8 @@ c8[^"(3+2)" c16 c8]
 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
@@ -1410,7 +1473,7 @@ For more information about @code{make-moment}, see
 @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]
@@ -1426,7 +1489,7 @@ c8 \repeat unfold 15 { c[ c] } c
 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.
@@ -1442,9 +1505,10 @@ f8 f''8 f8 f''8
 
 Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
-Internals Reference: @internalsref{Beam}.
+Internals Reference: @rinternals{Beam}.
 
 
 @knownissues
@@ -1641,7 +1705,8 @@ automatic beam is still accepting notes, it is not typeset.
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 
 @node Manual beams
@@ -1701,13 +1766,13 @@ the group as a whole.
 @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
@@ -1719,9 +1784,9 @@ between the durations of the first and last notes in the group.
 
 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
@@ -1742,7 +1807,7 @@ the last four 32nd notes are at a constant tempo.
 @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
@@ -1752,7 +1817,8 @@ music snippets, and when numbers in the fraction are small.
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 
 
@@ -1761,10 +1827,10 @@ Snippets: @lsrdir{Rhythms,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
@@ -1777,10 +1843,10 @@ Snippets: @lsrdir{Rhythms,Rhythms}
 
 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:
 
@@ -1790,13 +1856,13 @@ e4 d c2 \bar "|."
 
 @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
@@ -1804,7 +1870,7 @@ the end of a note coincides with the end of a measure.
 @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
@@ -1813,17 +1879,17 @@ printing a bar line, use
 
 @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:
@@ -1857,14 +1923,14 @@ automatically print the appropriate bar lines.
 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
 
@@ -1894,13 +1960,13 @@ connected between different staves of a @code{StaffGroup},
 @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
 
@@ -1908,11 +1974,12 @@ Notation Reference: @ref{Line breaking}, @ref{Repeats},
 @c FIXME: node name changed, but is subject to further changes.
 @c @ref{System start delimiters}.
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@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).
 
 
@@ -1983,7 +2050,7 @@ c c c c c
 @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}.
 
@@ -1992,7 +2059,7 @@ 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 "|"
 
@@ -2012,7 +2079,7 @@ of specifying @code{#(#f #t #t)} for @code{break-visibility}.
 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]
@@ -2050,16 +2117,17 @@ Bar numbers can be removed entirely by removing the
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@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
@@ -2085,11 +2153,11 @@ c1 c c c
 @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.
 
@@ -2114,17 +2182,17 @@ incorrect durations.
 @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
@@ -2147,7 +2215,8 @@ when it is processed.
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 
 @node Rehearsal marks
@@ -2249,15 +2318,16 @@ See @ref{The Feta font}, for a list of symbols which may be
 printed with @code{\musicglyph}.
 
 For common tweaks to the positioning of rehearsal marks, see
-@ref{Text marks}.
+@ref{Formatting text}.
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
-This manual: @ref{The Feta font}, @ref{Text marks}.
+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
@@ -2272,9 +2342,9 @@ Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
 
 
 @menu
-* Grace notes::                 
-* Aligning to cadenzas::        
-* Time administration::         
+* Grace notes::
+* Aligning to cadenzas::
+* Time administration::
 @end menu
 
 @node Grace notes
@@ -2306,13 +2376,13 @@ and @code{\appoggiatura}, as demonstrated in the following
 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
@@ -2415,20 +2485,16 @@ Grace notes may be forced to use align with regular notes
 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
@@ -2441,14 +2507,15 @@ Music Glossary:
 @rglos{acciaccatura},
 @rglos{appoggiatura}
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@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
@@ -2511,7 +2578,8 @@ cadenza = \relative c' {
 
 @seealso
 
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets:
+@rlsr{Rhythms}.
 
 
 @node Time administration
@@ -2533,7 +2601,7 @@ default is to be found in the @code{Score} context.  An alias,
 
 The following properties of @code{Timing} are used
 to keep track of timing within the score.
+
 @cindex bar number
 @cindex measure number
 
@@ -2551,7 +2619,7 @@ should be generated.
 @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
@@ -2562,7 +2630,7 @@ measure indefinitely.
 @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.
@@ -2590,22 +2658,8 @@ notes.
 
 This manual: @ref{Bar numbers}, @ref{Unmetered music}
 
-Snippets: @lsrdir{Rhythms,Rhythms}
-
-Internals Reference: @internalsref{Timing_translator},
-@internalsref{Score}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Snippets:
+@rlsr{Rhythms}.
 
+Internals Reference: @rinternals{Timing_translator},
+@rinternals{Score}