]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/staff.itely
Docs: run convert-ly for 2.14.0.
[lilypond.git] / Documentation / notation / staff.itely
index 432c6c99853b68c260b42987502ebb5e1aeb66bf..1239a92769fad82dbab30bd6c16e0409fb2d765c 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.14.0"
 
 @node Staff notation
 @section Staff notation
@@ -274,6 +274,9 @@ Internals Reference:
 @rinternals{SystemStartBracket},
 @rinternals{SystemStartSquare}.
 
+@knownissues
+@code{PianoStaff} does not, by default, accept @code{ChordNames}.
+
 
 @node Nested staff groups
 @unnumberedsubsubsec Nested staff groups
@@ -377,7 +380,7 @@ turned on with a @code{\paper} option.
 
 @seealso
 Notation Reference:
-@ref{Page formatting}.
+@ref{Page layout}.
 
 Snippets:
 @rlsr{Staff notation}.
@@ -638,11 +641,11 @@ example.
 @end lilypond
 
 
-Using the @code{\RemoveEmptyStaffContext} command to create ossia
+Using the @code{\Staff \RemoveEmptyStaves} 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.  For more information about
-@code{\RemoveEmptyStaffContext}, see @ref{Hiding staves}.
+@code{\Staff \RemoveEmptyStaves}, see @ref{Hiding staves}.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -668,7 +671,7 @@ break.  For more information about
 
 \layout {
   \context {
-    \RemoveEmptyStaffContext
+    \Staff \RemoveEmptyStaves
     \override VerticalAxisGroup #'remove-first = ##t
   }
 }
@@ -712,8 +715,7 @@ Internals Reference:
 @cindex hiding of staves
 @cindex empty staves
 
-@funindex \RemoveEmptyStaffContext
-@funindex RemoveEmptyStaffContext
+@funindex \RemoveEmptyStaves
 @funindex Staff_symbol_engraver
 @funindex \stopStaff
 @funindex stopStaff
@@ -732,7 +734,7 @@ alternative, @code{\stopStaff} may be used.
 
 
 Empty staves can be hidden by setting the
-@code{\RemoveEmptyStaffContext} command in the @code{\layout}
+@code{\Staff \RemoveEmptyStaves} command in the @code{\layout}
 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.
@@ -744,7 +746,7 @@ elements.}
 @lilypond[verbatim,quote,ragged-right]
 \layout {
   \context {
-    \RemoveEmptyStaffContext
+    \Staff \RemoveEmptyStaves
   }
 }
 
@@ -765,29 +767,24 @@ elements.}
 @cindex ossia
 
 @noindent
-@code{\RemoveEmptyStaffContext} can also be used to create ossia
+@code{\Staff \RemoveEmptyStaves} can also be used to create ossia
 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
+@funindex \RemoveEmptyStaves
 
-The @code{\AncientRemoveEmptyStaffContext} command may be used to
+The @code{\VaticanaStaff \RemoveEmptyStaves} command may be used to
 hide empty staves in ancient music contexts.  Similarly,
-@code{\RemoveEmptyRhythmicStaffContext} may be used to hide empty
+@code{\RhythmicStaff \RemoveEmptyStaves} may be used to hide empty
 @code{RhythmicStaff} contexts.
 
 
 @predefined
-@code{\RemoveEmptyStaffContext},
-@code{\AncientRemoveEmptyStaffContext},
-@code{\RemoveEmptyRhythmicStaffContext}.
+@code{\Staff \RemoveEmptyStaves},
+@code{\VaticanaStaff \RemoveEmptyStaves},
+@code{\RhythmicStaff \RemoveEmptyStaves}.
 @endpredefined
 
 
@@ -837,8 +834,8 @@ engraver:
 @end example
 
 For the Known issues and warnings associated with
-@code{\RemoveEmptyStaffContext} see @ref{Changing context default
-settings}.
+@code{\Staff \RemoveEmptyStaves} see
+@ref{Changing context default settings}.
 
 @node Writing parts
 @subsection Writing parts
@@ -860,7 +857,8 @@ format cue notes are also described.
 @cindex instrument names, short
 
 Instrument names can be printed on the left side of staves in the
-@code{Staff} and @code{PianoStaff} contexts.  The value of
+@code{Staff}, @code{PianoStaff}, @code{StaffGroup}, @code{GrandStaff}
+and @code{ChoirStaff} contexts.  The value of
 @code{instrumentName} is used for the first staff, and the value
 of @code{shortInstrumentName} is used for all succeeding staves.
 
@@ -911,7 +909,7 @@ default.  To center multi-line instrument names,
 However, if the instrument names are longer, the instrument names
 in a staff group may not be centered unless the @code{indent} and
 @code{short-indent} settings are increased.  For details about
-these settings, see @ref{Horizontal dimensions}.
+these settings, see @ref{\paper variables for shifts and indents}.
 
 @lilypond[verbatim,quote,ragged-right]
 \layout {
@@ -938,7 +936,7 @@ these settings, see @ref{Horizontal dimensions}.
 @cindex instrument names, adding to other contexts
 
 To add instrument names to other contexts (such as
-@code{GrandStaff}, @code{ChoirStaff}, or @code{StaffGroup}),
+@code{ChordNames} or @code{FiguredBass}),
 @code{Instrument_name_engraver} must be added to that context.
 For details, see @ref{Modifying context plug-ins}.
 
@@ -1006,7 +1004,7 @@ expression to declare the instrument switch:
 
 @seealso
 Notation Reference:
-@ref{Horizontal dimensions},
+@ref{\paper variables for shifts and indents},
 @ref{Modifying context plug-ins}.
 
 Snippets:
@@ -1021,9 +1019,9 @@ Internals Reference:
 @node Quoting other voices
 @unnumberedsubsubsec Quoting other voices
 
-@cindex cues
-@cindex quoting other voices
-@cindex fragments
+@cindex quote, voices
+@cindex voices, quoting
+@cindex fragments, quoting
 @cindex cue notes
 
 @funindex \addQuote
@@ -1033,97 +1031,119 @@ Internals Reference:
 @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.
+It is very common for one voice to use the same notes as those from
+another voice.  For example, first and second violins playing the same
+phrase during a particular passage of the music.  This is done by
+letting one voice @emph{quote} the other, without having to re-enter the
+music all over again for the second voice.
 
-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'' @{
-  a4 gis g gis
-@}
-\addQuote "flute" @{ \flute @}
-@end example
+The @code{\addQuote} command, used in the top level scope, defines a
+stream of music from which fragments can be quoted.
 
 The @code{\quoteDuring} command is used to indicate the point where the
 quotation begins.  It is followed by two arguments: the name of the
 quoted voice, as defined with @code{\addQuote}, and a music expression
-that indicates the duration of the quote, usually spacer rests or
-multi-measure rests.  The corresponding music (including all articulations,
-dynamics, markup, etc.) from the quoted voice is inserted into the music
-expression:
+for the duration of the quote.
 
 @lilypond[verbatim,quote]
-flute = \relative c'' {
-  a4 gis g->\f gis^\markup{quoted}
+fluteNotes = \relative c'' {
+  a4 gis g gis | b4^"quoted" r8 ais\p a4( f)
 }
-\addQuote "flute" { \flute }
 
-\relative c' {
-  c4 cis \quoteDuring #"flute" { s2 }
+oboeNotes = \relative c'' {
+  c4 cis c b \quoteDuring #"flute" { s1 }
+}
+
+\addQuote "flute" { \fluteNotes }
+
+\score {
+  <<
+    \new Staff \with { instrumentName = "Flute" } \fluteNotes
+    \new Staff \with { instrumentName = "Oboe" } \oboeNotes
+  >>
 }
 @end lilypond
 
-If the music expression used for @code{\quoteDuring} contains
-anything but a spacer rest or multi-measure rest, a polyphonic
-situation is created, which is often not desirable:
+If the music expression used in @code{\quoteDuring} contains notes
+instead of spacer or multimeasure rests then the quote will appear as
+polyphony and may produce unexpected results.
 
 @lilypond[verbatim,quote]
-flute = \relative c'' {
-  a4 gis g gis
+fluteNotes = \relative c'' {
+  a4 gis g gis | b4^"quoted" r8 ais\p a4( f)
 }
-\addQuote "flute" { \flute }
 
-\relative c' {
-  c4 cis \quoteDuring #"flute" { c4 b }
+oboeNotes = \relative c'' {
+  c4 cis c b \quoteDuring #"flute" { e4 r8 ais b4 a }
+}
+
+\addQuote "flute" { \fluteNotes }
+
+\score {
+  <<
+    \new Staff \with { instrumentName = "Flute" } \fluteNotes
+    \new Staff \with { instrumentName = "Oboe" } \oboeNotes
+  >>
 }
 @end lilypond
 
-Quotations recognize instrument transposition settings for both
-the source and target instruments if the @code{\transposition}
-command is used.  For details about @code{\transposition}, see
-@ref{Instrument transpositions}.
+The @code{\quoteDuring} command uses the @code{\transposition} settings
+of both quoted and quoting parts to produce notes for the quoting part
+that have the same sounding pitch as those in the quoted part.
 
 @lilypond[verbatim,quote]
-clarinet = \relative c'' {
+clarinetNotes = \relative c'' {
   \transposition bes
-  a4 gis g gis
+  \key d \major
+  b4 ais a ais | cis4^"quoted" r8 bis\p b4( f)
 }
-\addQuote "clarinet" { \clarinet }
 
-\relative c' {
-  c4 cis \quoteDuring #"clarinet" { s2 }
+oboeNotes = \relative c'' {
+  c4 cis c b \quoteDuring #"clarinet" { s1 }
 }
-@end lilypond
 
-It is possible to tag quotations with unique names in order to
-process them in different ways.  For details about this procedure,
-see @ref{Using tags}.
+\addQuote "clarinet" { \clarinetNotes }
 
-It is also possible to adjust which objects from the original voice are quoted
-by changing the @code{quotedEventTypes} property.  By default, its value is
-@code{#'(StreamEvent)}, which means that everything is quoted.  Setting it
-to e.g. @code{#'(note-event rest-event tie-event)} causes lilypond to quote
-only notes, rests and ties, but no articulations, markup or dynamics.
 
-@lilypond[verbatim,quote]
-clarinet = \relative c'' {
-  a4 gis g->\f gis^\markup{quoted}
+\score {
+  <<
+    \new Staff \with { instrumentName = "Clarinet" } \clarinetNotes
+    \new Staff \with { instrumentName = "Oboe" } \oboeNotes
+  >>
 }
-\addQuote "clarinet" { \clarinet }
+@end lilypond
 
-\relative c' {
-  \set Score.quotedEventTypes = #'(note-event rest-event tie-event)
-  c4 cis \quoteDuring #"clarinet" { s2 }
+By default quoted music will include all articulations, dynamics,
+markups, etc., in the quoted expression.  It is possible to choose which
+of these objects from the quoted music are displayed by using the
+@code{quotedEventTypes} context property.
+
+@lilypond[verbatim,quote]
+fluteNotes = \relative c'' {
+  a2 g2 |
+  b4\<^"quoted" r8 ais a4\f( c->)
+ }
+
+oboeNotes = \relative c'' {
+  c2. b4 |
+  \quoteDuring #"flute" { s1 }
 }
+
+\addQuote "flute" { \fluteNotes }
+
+\score {
+  <<
+    \set Score.quotedEventTypes = #'(note-event articulation-event
+                                     crescendo-event rest-event
+                                     slur-event dynamic-event)
+    \new Staff \with { instrumentName = "Flute" } \fluteNotes
+    \new Staff \with { instrumentName = "Oboe" } \oboeNotes
+  >>
+ }
 @end lilypond
 
+Quotes can also be tagged, see @ref{Using tags}.
+
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
@@ -1150,9 +1170,13 @@ Snippets:
 @rlsr{Staff notation}.
 
 Internals Reference:
+@rinternals{Music classes},
 @rinternals{QuoteMusic},
 @rinternals{Voice}.
 
+Installed Files:
+@file{scm/define-event-classes.scm}.
+
 
 @knownissues
 
@@ -1223,10 +1247,11 @@ explicitly declared, or else the entire music expression would
 belong to the @code{CueVoice} context.
 
 It is possible to adjust which aspects of the music are quoted with
-@code{\cueDuring} by setting the @code{quotedCueEventTypes} property.  Its
-default value is @code{#'(note-event rest-event tie-event beam-event
-tuplet-span-event)}, which means that only notes, rest, ties, beams and
-tuplets are quoted, but not articulations, dynamic marks, markup etc.
+@code{\cueDuring} by setting the @code{quotedCueEventTypes}
+property.  Its default value is @code{#'(note-event rest-event
+tie-event beam-event tuplet-span-event)}, which means that only
+notes, rests, ties, beams and tuplets are quoted, but not
+articulations, dynamic marks, markup etc.
 
 @lilypond[verbatim,quote]
 oboe = \relative c'' {
@@ -1244,26 +1269,27 @@ oboe = \relative c'' {
 }
 @end lilypond
 
-
-
-The name of the cued instrument can be printed by setting the
-@code{instrumentCueName} property in the @code{CueVoice} context.
+Markup can be used to show the name of the quoted instrument.  Also,
+if the cue notes require a change in clef, the original clef should
+be restored at the end of the cue notes.
 
 @lilypond[verbatim,quote]
-oboe = \relative c''' {
-  g4 r8 e16 f e4 d
+flute = \relative c'' {
+  r2. c4 d8 c d e fis2 g2 d2
+}
+bassoon = \relative c {
+  \clef bass
+  R1
+  \clef treble
+  s1*0^\markup { \tiny "flute" }
+  \cueDuring #"flute" #UP { R1 }
+  \clef bass
+  g4. b8 d2
+}
+\addQuote "flute" { \flute }
+\new Staff {
+  \bassoon
 }
-\addQuote "oboe" { \oboe }
-
-\new Staff \relative c'' <<
-  \new CueVoice \with {
-    instrumentCueName = "ob."
-  }
-  \new Voice {
-    \cueDuring #"oboe" #UP { R1 }
-    g4. b8 d2
-  }
->>
 @end lilypond
 
 @cindex removing cues
@@ -1272,67 +1298,87 @@ oboe = \relative c''' {
 
 @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
-undone.  This can be accomplished by using
-@code{\addInstrumentDefinition} and @code{\instrumentSwitch}.  For
-an example and explanation, see @ref{Instrument names}.
 
 The @code{\killCues} command removes cue notes from a music
-expression.  This can be useful if cue notes need to be removed
-from a part but may be restored at a later time.
+expression, so the same music expression can be used to produce
+the instrument part with cues and the score.  The @code{\killCues}
+command removes only the notes and events that were quoted by
+@code{\cueDuring}.  Other markup associated with cues, such as clef
+changes and a label identifying the source instrument, can be
+tagged for selective inclusion in the score; see @ref{Using tags}.
 
 @lilypond[verbatim,quote]
-flute = \relative c''' {
-  r2 cis2 r2 dis2
+flute = \relative c'' {
+  r2. c4 d8 c d e fis2 g2 d2
+}
+bassoon = \relative c {
+  \clef bass
+  R1
+  \tag #'part {
+    \clef treble
+    s1*0^\markup { \tiny "flute" }
+  }
+  \cueDuring #"flute" #UP { R1 }
+  \tag #'part \clef bass
+  g4. b8 d2
 }
 \addQuote "flute" { \flute }
 
-\new Voice \relative c'' {
-  \killCues {
-    \cueDuring #"flute" #UP { R1 }
-    g4. b8 d2
-  }
+\new Staff {
+  \bassoon
 }
+\new StaffGroup <<
+  \new Staff {
+    \flute
+  }
+  \new Staff {
+    \removeWithTag #'part { \killCues { \bassoon } }
+  }
+>>
 @end lilypond
 
-The @code{\transposedCueDuring} command is useful for adding
-instrumental cues from a completely different register.  The
-syntax is similar to @code{\cueDuring}, but it requires one extra
-argument to specify the transposition of the cued instrument.  For
-more information about transposition, see
-@ref{Instrument transpositions}.
+Alternatively, Clef changes and instrument labels can be
+collected into an instrument definition for repeated use, using
+@code{\addInstrumentDefinition} described in
+@ref{Instrument names}.
+
+@funindex \transposedCueDuring
+@funindex transposedCueDuring
+
+Like @code{\quoteDuring}, @code{\cueDuring} takes instrument
+transpositions into account.  Cue notes are produced at the
+pitches that would be written for the instrument receiving the cue
+to produce the sounding pitches of the source instrument.
+
+To transpose cue notes differently, use
+@code{\transposedCueDuring}.  This command takes an extra argument
+to specify (in absolute mode) the printed pitch that you want to
+represent the sound of a concert middle C.  This is useful for
+taking cues from an instrument in a completely different register.
 
 @lilypond[verbatim,quote]
 piccolo = \relative c''' {
   \clef "treble^8"
   R1
   c8 c c e g2
-  a4 g g2
+  c4 g g2
 }
-\addQuote "piccolo" { \piccolo }
-
-cbassoon = \relative c, {
-  \clef "bass_8"
-  c4 r g r
-  \transposedCueDuring #"piccolo" #UP c,, { R1 }
-  c4 r g r
+bassClarinet = \relative c' {
+  \key d \major
+  \transposition bes,
+  d4 r a r
+  \transposedCueDuring #"piccolo" #UP d { R1 }
+  d4 r a r
 }
 
+\addQuote "piccolo" { \piccolo }
+
 <<
-  \new Staff = "piccolo" \piccolo
-  \new Staff = "cbassoon" \cbassoon
+  \new Staff \piccolo
+  \new Staff \bassClarinet
 >>
 @end lilypond
 
-It is possible to tag cued parts with unique names in order to
-process them in different ways.  For details about this procedure,
-see @ref{Using tags}.
-
 @cindex notes, smaller
 @cindex smaller notes
 
@@ -1359,6 +1405,7 @@ d2. d2.
 Notation Reference:
 @ref{Instrument transpositions},
 @ref{Instrument names},
+@ref{Musical cues},
 @ref{Using tags}.
 
 Snippets: