]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/staff.itely
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / user / staff.itely
index f567b559e9d3282db251382bb6f26b8a743567ee..c9a8254d901e65014e10227bc65f03de8852f7f4 100644 (file)
@@ -6,16 +6,16 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Staff notation
 @section Staff notation
 
 @lilypondfile[quote]{staff-headword.ly}
 
-This section explains how to influence the staff appearance, print
-scores with more than one staff, and how to apply specific
-performance marks to single staves.
+This section explains how to influence the appearance of staves,
+how to print scores with more than one staff, and how to add tempo
+indications and cue notes to staves.
 
 @menu
 * Displaying staves::
@@ -45,6 +45,8 @@ grouping staves.
 @cindex staff instantiation
 @cindex staff, new
 @cindex staff, single
+@cindex staff, drum
+@cindex staff, percussion
 @cindex drum staff
 @cindex percussion staff
 @cindex Gregorian transcription staff
@@ -52,6 +54,15 @@ grouping staves.
 @cindex tabstaff
 @cindex tablature
 
+@funindex \drummode
+@funindex drummode
+@funindex DrumStaff
+@funindex RhythmicStaff
+@funindex TabStaff
+@funindex MensuralStaff
+@funindex VaticanaStaff
+@funindex GregorianTranscriptionStaff
+
 @notation{Staves} (singular: @notation{staff}) are created with
 the @code{\new} or @code{\context} commands.  For details, see
 @ref{Creating contexts}.
@@ -62,9 +73,10 @@ The basic staff context is @code{Staff}:
 \new Staff { c4 d e f }
 @end lilypond
 
-@code{DrumStaff} creates a five-line staff set up for a
-typical drum set.  It uses different names for each instrument.
-The instrument names are set using the @code{\drummode} command.
+The @code{DrumStaff} context creates a five-line staff set up for
+a typical drum set.  Each instrument is shown with a different
+symbol.  The instruments are entered in drum mode following a
+@code{\drummode} command, with each instrument specified by name.
 For details, see @ref{Percussion staves}.
 
 @lilypond[verbatim,quote]
@@ -73,14 +85,6 @@ For details, see @ref{Percussion staves}.
 }
 @end lilypond
 
-@c FIXME: remove when mentioned in NR 2.8
-@code{GregorianTranscriptionStaff} creates a staff to notate
-modern Gregorian chant.  It does not show bar lines.
-
-@lilypond[verbatim,quote,relative=2]
-\new GregorianTranscriptionStaff { c4 d e f e d }
-@end lilypond
-
 @code{RhythmicStaff} creates a single-line staff that only
 displays the rhythmic values of the input.  Real durations are
 preserved. For details, see @ref{Showing melody rhythms}.
@@ -100,12 +104,18 @@ There are two staff contexts specific for the notation of ancient
 music: @code{MensuralStaff} and @code{VaticanaStaff}.  They are
 described in @ref{Pre-defined contexts}.
 
+The @code{GregorianTranscriptionStaff} context creates a staff to
+notate modern Gregorian chant.  It does not show bar lines.
+
+@lilypond[verbatim,quote,relative=2]
+\new GregorianTranscriptionStaff { c4 d e f e d }
+@end lilypond
+
 New single staff contexts may be defined.  For details, see
 @ref{Defining new contexts}.
 
 
 @seealso
-
 Music Glossary:
 @rglos{staff},
 @rglos{staves}.
@@ -150,6 +160,7 @@ Internals Reference:
 @cindex staff group
 @cindex staff, choir
 @cindex staff, piano
+@cindex staff, grand
 @cindex system
 
 Various contexts exist to group single staves together in order to
@@ -203,7 +214,7 @@ details, see @ref{Instrument names}.
 
 @lilypond[verbatim,quote,relative=2]
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano"
+  \set PianoStaff.instrumentName = #"Piano"
   \new Staff { c1 c }
   \new Staff { c1 c }
 >>
@@ -235,11 +246,9 @@ New staff group contexts may be defined.  For details, see
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {mensurstriche-layout-bar-lines-between-the-staves.ly}
-@c FIXME: move to NR 2.8.x when sectioning is ready
 
 
 @seealso
-
 Music Glossary:
 @rglos{brace},
 @rglos{bracket},
@@ -274,40 +283,24 @@ Internals Reference:
 @cindex nested staff brackets
 @cindex brackets, nesting of
 @cindex braces, nesting of
-@cindex inner staff group
-@cindex inner choir staff group
-
-Two additional staff-group contexts are available that can be
-nested within a @code{StaffGroup} or @code{ChoirStaff} context:
-@code{InnerStaffGroup} and @code{InnerChoirStaff}.  These contexts
-create a new bracket adjacent to the bracket of their parent staff
-group.
 
-An @code{InnerStaffGroup} is treated similarly to a
-@code{StaffGroup}; bar lines are connected between each staff
-within the context:
+Staff-group contexts can be nested to arbitrary depths.  In this
+case, each child context creates a new bracket adjacent to the
+bracket of its parent group.
 
 @lilypond[verbatim,quote,relative=2]
 \new StaffGroup <<
   \new Staff { c2 c | c2 c }
-  \new InnerStaffGroup <<
-    \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
-  >>
->>
-@end lilypond
-
-Bar lines are @emph{not} connected between staves of an
-@code{InnerChoirStaff}, just like a @code{ChoirStaff}:
-
-@lilypond[verbatim,quote,relative=2]
-\new ChoirStaff <<
-  \new Staff { c2 c | c2 c }
-  \new InnerChoirStaff <<
+  \new StaffGroup <<
     \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
+    \new StaffGroup \with {
+      systemStartDelimiter = #'SystemStartSquare
+    }
+    <<
+      \new Staff { e2 e | e2 e }
+      \new Staff { c2 c | c2 c }
+    >>
   >>
-  \new Staff { c1 | c1 }
 >>
 @end lilypond
 
@@ -322,7 +315,6 @@ New nested staff group contexts can be defined.  For details, see
 
 
 @seealso
-
 Notation Reference:
 @ref{Grouping staves},
 @ref{Instrument names},
@@ -332,9 +324,7 @@ Snippets:
 @rlsr{Staff notation}.
 
 Internals Reference:
-@rinternals{InnerStaffGroup},
 @rinternals{StaffGroup},
-@rinternals{InnerChoirStaff},
 @rinternals{ChoirStaff},
 @rinternals{SystemStartBar},
 @rinternals{SystemStartBrace},
@@ -363,6 +353,7 @@ sections are also described.
 @cindex adjusting staff symbol
 @cindex drawing staff symbol
 @cindex staff symbol, setting of
+@cindex staff symbol, drawing
 @cindex stop staff lines
 @cindex start staff lines
 @cindex staff lines, amount of
@@ -404,7 +395,9 @@ thickness.
 @end lilypond
 
 Ledger line thickness can be set independently of staff line
-thickness.
+thickness.  In the example the two numbers are factors multiplying
+the staff line thickness and the staff line spacing.  The two
+contributions are added to give the ledger line thickness.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
@@ -426,8 +419,15 @@ affects the spacing of ledger lines as well.
 Further details about the properties of @code{StaffSymbol} can be
 found in @rinternals{staff-symbol-interface}.
 
+@cindex stopping a staff
+@cindex starting a staff
+@cindex staff, starting
+@cindex staff, stopping
+
 @funindex \startStaff
+@funindex startStaff
 @funindex \stopStaff
+@funindex stopStaff
 
 Modifications to staff properties in the middle of a score can be
 placed between @code{\stopStaff} and @code{\startStaff}:
@@ -444,8 +444,6 @@ b2 b
 a2 a
 @end lilypond
 
-@cindex stopping a staff
-
 @noindent
 In general, @code{\startStaff} and @code{\stopStaff} can be used
 to stop or start a staff in the middle of a score.
@@ -460,9 +458,9 @@ e4 d c2
 
 
 @predefined
-
 @code{\startStaff},
 @code{\stopStaff}.
+@endpredefined
 
 
 @snippets
@@ -472,7 +470,6 @@ e4 d c2
 
 
 @seealso
-
 Music Glossary:
 @rglos{line},
 @rglos{ledger line},
@@ -489,13 +486,6 @@ Internals Reference:
 @rinternals{staff-symbol-interface}.
 
 
-@knownissues
-
-When setting vertical staff line positions manually, bar lines are
-always centered on position 0, so the maximum distance between the
-outermost bar lines in either direction must be equal.
-
-
 @node Ossia staves
 @unnumberedsubsubsec Ossia staves
 
@@ -505,6 +495,11 @@ outermost bar lines in either direction must be equal.
 @cindex staff, resizing of
 @cindex resizing of staves
 
+@funindex \startStaff
+@funindex startStaff
+@funindex \stopStaff
+@funindex stopStaff
+
 @notation{Ossia} staves can be set by creating a new simultaneous
 staff in the appropriate location:
 
@@ -520,7 +515,7 @@ staff in the appropriate location:
 @end lilypond
 
 @noindent
-However, the above example is usually not the desired result.  To
+However, the above example is not what is usually desired.  To
 create ossia staves that are above the original staff, have no
 time signature or clef, and have a smaller font size, tweaks must
 be used.  The Learning Manual describes a specific technique to
@@ -591,13 +586,12 @@ example.
 >>
 @end lilypond
 
+
 Using the @code{\RemoveEmptyStaffContext} command to create ossia
 staves may be used as an alternative.  This method is most
 convenient when ossia staves occur immediately following a line
-break.  In this case, spacer rests do not need to be used at all;
-only @code{\startStaff} and @code{\stopStaff} are necessary.  For
-more information about @code{\RemoveEmptyStaffContext}, see
-@ref{Hiding staves}.
+break.  For more information about
+@code{\RemoveEmptyStaffContext}, see @ref{Hiding staves}.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -607,17 +601,15 @@ more information about @code{\RemoveEmptyStaffContext}, see
     fontSize = #-3
     \override StaffSymbol #'staff-space = #(magstep -3)
     \override StaffSymbol #'thickness = #(magstep -3)
+  } \relative c'' {
+    R1*3
+    c4 e8 d c2
   }
   \new Staff \relative c' {
     c4 b c2
     e4 f e2
     g4 a g2 \break
-    <<
-      { c4 b c2 }
-      \context Staff = ossia {
-        c4 e8 d c2 \stopStaff
-      }
-    >>
+    c4 b c2
     g4 a g2
     e4 d c2
   }
@@ -639,7 +631,6 @@ more information about @code{\RemoveEmptyStaffContext}, see
 
 
 @seealso
-
 Music Glossary:
 @rglos{ossia},
 @rglos{staff},
@@ -670,6 +661,13 @@ Internals Reference:
 @cindex hiding of staves
 @cindex empty staves
 
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
+@funindex Staff_symbol_engraver
+@funindex \stopStaff
+@funindex stopStaff
+
+
 Staff lines can be hidden by removing the
 @code{Staff_symbol_engraver} from the @code{Staff} context.  As an
 alternative, @code{\stopStaff} may be used.
@@ -681,7 +679,6 @@ alternative, @code{\stopStaff} may be used.
 \relative c''' { a8 f e16 d c b a2 }
 @end lilypond
 
-@funindex \RemoveEmptyStaffContext
 
 Empty staves can be hidden by setting the
 @code{\RemoveEmptyStaffContext} command in the @code{\layout}
@@ -689,8 +686,9 @@ block.  In orchestral scores, this style is known as @q{Frenched
 Score}.  By default, this command hides and removes all empty
 staves in a score except for those in the first system.
 
-@warning{An empty staff may only include multi-measure rests,
-skips, spacer rests, or a combination of these elements.}
+@warning{A staff is considered empty when it contains only
+multi-measure rests, skips, spacer rests, or a combination of these
+elements.}
 
 @lilypond[verbatim,quote,ragged-right]
 \layout {
@@ -721,8 +719,13 @@ sections for a staff.  For details, see @ref{Ossia staves}.
 
 @cindex hiding ancient staves
 @cindex hiding rhythmic staves
+
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
 @funindex \AncientRemoveEmptyStaffContext
+@funindex AncientRemoveEmptyStaffContext
 @funindex \RemoveEmptyRhythmicStaffContext
+@funindex RemoveEmptyRhythmicStaffContext
 
 The @code{\AncientRemoveEmptyStaffContext} command may be used to
 hide empty staves in ancient music contexts.  Similarly,
@@ -731,10 +734,10 @@ hide empty staves in ancient music contexts.  Similarly,
 
 
 @predefined
-
 @code{\RemoveEmptyStaffContext},
 @code{\AncientRemoveEmptyStaffContext},
 @code{\RemoveEmptyRhythmicStaffContext}.
+@endpredefined
 
 
 @snippets
@@ -744,7 +747,6 @@ hide empty staves in ancient music contexts.  Similarly,
 
 
 @seealso
-
 Music Glossary:
 @rglos{Frenched staff}.
 
@@ -797,9 +799,11 @@ format cue notes are also described.
 
 @cindex tempo
 @cindex beats per minute
-@cindex metronome marking
+@cindex metronome mark
 @cindex metronome marking with text
+
 @funindex \tempo
+@funindex tempo
 
 A basic metronome mark is simple to write:
 
@@ -859,7 +863,6 @@ For more details, see @ref{Formatting text}.
 
 
 @seealso
-
 Music Glossary:
 @rglos{metronome},
 @rglos{metronomic indication},
@@ -889,8 +892,8 @@ Instrument names can be printed on the left side of staves in the
 of @code{shortInstrumentName} is used for all succeeding staves.
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "Violin "
-\set Staff.shortInstrumentName = "Vln "
+\set Staff.instrumentName = #"Violin "
+\set Staff.shortInstrumentName = #"Vln "
 c4.. g'16 c4.. g'16
 \break
 c1
@@ -916,7 +919,7 @@ default.  To center multi-line instrument names,
 @lilypond[verbatim,quote,indent=1.5\cm,relative=2]
 <<
   \new Staff {
-    \set Staff.instrumentName = "Flute"
+    \set Staff.instrumentName = #"Flute"
     f2 g4 f
   }
   \new Staff {
@@ -929,8 +932,8 @@ default.  To center multi-line instrument names,
 >>
 @end lilypond
 
-@cindex indent
-@cindex short-indent
+@funindex indent
+@funindex short-indent
 
 However, if the instrument names are longer, the instrument names
 in a staff group may not be centered unless the @code{indent} and
@@ -945,36 +948,39 @@ these settings, see @ref{Horizontal dimensions}.
 
 \relative c'' <<
   \new Staff {
-    \set Staff.instrumentName = "Alto Flute in G"
-    \set Staff.shortInstrumentName = "Fl."
+    \set Staff.instrumentName = #"Alto Flute in G"
+    \set Staff.shortInstrumentName = #"Fl."
     f2 g4 f \break
     g4 f g2
   }
   \new Staff {
-    \set Staff.instrumentName = "Clarinet"
-    \set Staff.shortInstrumentName = "Clar."
+    \set Staff.instrumentName = #"Clarinet"
+    \set Staff.shortInstrumentName = #"Clar."
     c,4 b c2 \break
     c2 b4 c
   }
 >>
 @end lilypond
 
+@cindex instrument names, adding to other contexts
+
 To add instrument names to other contexts (such as
 @code{GrandStaff}, @code{ChoirStaff}, or @code{StaffGroup}),
 @code{Instrument_name_engraver} must be added to that context.
 For details, see @ref{Modifying context plug-ins}.
 
 @cindex instrument names, changing
+@cindex changing instrument names
 
 Instrument names may be changed in the middle of a piece:
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "First"
-\set Staff.shortInstrumentName = "one"
+\set Staff.instrumentName = #"First"
+\set Staff.shortInstrumentName = #"one"
 c1 c c c \break
 c1 c c c \break
-\set Staff.instrumentName = "Second"
-\set Staff.shortInstrumentName = "two"
+\set Staff.instrumentName = #"Second"
+\set Staff.shortInstrumentName = #"two"
 c1 c c c \break
 c1 c c c \break
 @end lilypond
@@ -982,6 +988,11 @@ c1 c c c \break
 @cindex instrument switch
 @cindex switching instruments
 
+@funindex \addInstrumentDefinition
+@funindex addInstrumentDefinition
+@funindex \instrumentSwitch
+@funindex instrumentSwitch
+
 If an instrument @emph{switch} is needed,
 @code{\addInstrumentDefinition} may be used in combination with
 @code{\instrumentSwitch} to create a detailed list of the
@@ -1003,7 +1014,7 @@ expression to declare the instrument switch:
      (midiInstrument . "bassoon"))
 
 \new Staff \with {
-  instrumentName = "Bassoon"
+  instrumentName = #"Bassoon"
 }
 \relative c' {
   \clef tenor
@@ -1018,7 +1029,6 @@ expression to declare the instrument switch:
 
 
 @seealso
-
 Notation Reference:
 @ref{Horizontal dimensions},
 @ref{Modifying context plug-ins}.
@@ -1040,16 +1050,23 @@ Internals Reference:
 @cindex fragments
 @cindex cue notes
 
-It is very common for one voice to double the some of the music from                     
-another voice.  For example, the first and second violins may play the                    
-same notes during a passage of music.  In LilyPond this is accomplished                   
+@funindex \addQuote
+@funindex addQuote
+@funindex \quoteDuring
+@funindex quoteDuring
+@funindex \transposition
+@funindex transposition
+
+It is very common for one voice to double some of the music from
+another voice.  For example, the first and second violins may play the
+same notes during a passage of music.  In LilyPond this is accomplished
 by letting one voice @emph{quote} the other voice without having to
 re-enter it.
-                                                                       
-Before a part can be quoted, the @code{\addQuote} command must be used                   
-to initialize the quoted fragment.  This command must be used in the                      
-toplevel scope.  The first argument is an identifying string, and the                     
-second is a music expression: 
+
+Before a part can be quoted, the @code{\addQuote} command must be used
+to initialize the quoted fragment.  This command must be used in the
+toplevel scope.  The first argument is an identifying string, and the
+second is a music expression:
 
 @example
 flute = \relative c'' @{
@@ -1122,6 +1139,7 @@ see @ref{Using tags}.
 @cindex articulation-event
 @cindex dynamic-event
 @cindex rest-event
+
 @funindex quotedEventTypes
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
@@ -1129,7 +1147,6 @@ see @ref{Using tags}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Instrument transpositions},
 @ref{Using tags}.
@@ -1168,6 +1185,11 @@ written entirely in lower-case letters: @code{\addquote}.
 @cindex quoting other voices
 @cindex cues, formatting
 
+@funindex \cueDuring
+@funindex cueDuring
+@funindex \quoteDuring
+@funindex quoteDuring
+
 The previous section explains how to create quotations.  The
 @code{\cueDuring} command is a more specialized form of
 @code{\quoteDuring}, being particularly useful for inserting cue
@@ -1223,6 +1245,15 @@ oboe = \relative c''' {
 >>
 @end lilypond
 
+@cindex removing cues
+@cindex removing cue notes
+@cindex cue notes, removing
+
+@funindex \killCues
+@funindex killCues
+@funindex \transposedCueDuring
+@funindex transposedCueDuring
+
 In addition to printing the name of the cued instrument, when cue
 notes end, the name of the original instrument should be printed,
 and any other changes introduced by the cued part should be
@@ -1283,7 +1314,6 @@ see @ref{Using tags}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Instrument transpositions},
 @ref{Instrument names},
@@ -1301,3 +1331,4 @@ Internals Reference:
 
 Collisions can occur with rests, when using @code{\cueDuring},
 between @code{Voice} and @code{CueVoice} contexts.
+