version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.61"
+@c \version "2.11.57"
@node Staff notation
@section Staff notation
@node Displaying staves
@subsection Displaying staves
-This section describes the different methods of creating and
-grouping staves.
+This section shows the different possibilities of creating and
+grouping staves, which are marked at the beginning of each line
+with either a bracket or a brace.
@menu
* Instantiating new staves::
* Grouping staves::
-* Nested staff groups::
+* Deeper nested staff groups::
@end menu
modern Gregorian chant. It does not show bar lines.
@lilypond[verbatim,quote,relative=2]
-\new GregorianTranscriptionStaff { c4 d e f e d }
+\new GregorianTranscriptionStaff { c4 d e f }
@end lilypond
@code{RhythmicStaff} creates a single-line staff that only
music: @code{MensuralStaff} and @code{VaticanaStaff}. They are
described in @ref{Pre-defined contexts}.
-New single staff contexts may be defined. For details, see
-@ref{Defining new contexts}.
+Staves can be started or stopped at any point in the score. The
+commands @code{\startStaff} and @code{\stopStaff} are used for
+this purpose. For details, see @ref{Staff symbol}.
@seealso
@ref{Pre-defined contexts},
@ref{Staff symbol},
@ref{Gregorian chant contexts},
-@ref{Mensural contexts},
-@ref{Defining new contexts}.
+@ref{Mensural contexts}.
Snippets:
@rlsr{Staff notation}.
@code{SystemStartSquare}, is also available, but it must be
explicitly specified.
-New staff group contexts may be defined. For details, see
-@ref{Defining new contexts}.
-
@snippets
@rglos{grand staff}.
Notation Reference:
-@ref{Instrument names},
-@ref{Defining new contexts}.
+@ref{Instrument names}.
Snippets:
@rlsr{Staff notation}.
@rinternals{SystemStartSquare}.
-@node Nested staff groups
-@unnumberedsubsubsec Nested staff groups
+@node Deeper nested staff groups
+@unnumberedsubsubsec Deeper nested staff groups
@cindex staff, nested
@cindex staves, nested
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.
+create a bracket next to the original bracket of their parent
+staff group.
An @code{InnerStaffGroup} is treated similarly to a
-@code{StaffGroup}; bar lines are connected between each staff
+@code{StaffGroup}; bar lines are connected between each stave
within the context:
@lilypond[verbatim,quote,relative=2]
>>
@end lilypond
-New nested staff group contexts can be defined. For details, see
-@ref{Defining new contexts}.
-
@snippets
Notation Reference:
@ref{Grouping staves},
-@ref{Instrument names},
-@ref{Defining new contexts}.
+@ref{Instrument names}.
Snippets:
@rlsr{Staff notation}.
appearance of a staff, but they must be modified before the staff
is created.
-@c FIXME most of this section should be moved to NR 5.3 or moved to LSR -td
-
The number of staff lines may be changed. The clef position and
the position of middle C may need to be modified to fit the new
staff. For an explanation, refer to the snippet section in
@warning{The @code{'line-positions} property overrides the
@code{'line-count} property. The number of staff lines is
implicitly defined by the number of elements in the list of values
-for @code{'line-positions}.}
+for @code{'line-positions}}
@lilypond[verbatim,quote,relative=1]
\new Staff \with {
{ e4 d c b }
@end lilypond
-The distance between staff lines can be changed. This setting
-affects the spacing of ledger lines as well.
+The distance between staff lines can be changed. This setting has
+influence on ledger lines as well.
@lilypond[verbatim,quote,relative=1]
\new Staff \with {
{ a4 b c d }
@end lilypond
-The width of a staff can be modified. The units are staff
-spaces. The spacing of objects inside the staff is not affected by
-this setting.
+The width of a staff can be modified. The unit is one staff
+space. The spacing of objects inside the staff is not influenced
+by this setting.
@lilypond[verbatim,quote,relative=1]
\new Staff \with {
@end lilypond
Further details about the properties of @code{StaffSymbol} can be
-found in @rinternals{staff-symbol-interface}.
+found here: @rinternals{staff-symbol-interface}.
@funindex \startStaff
@funindex \stopStaff
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.
-
-@lilypond[verbatim,quote,relative=2]
-c4 b a2
-\stopStaff
-b4 c d2
-\startStaff
-e4 d c2
-@end lilypond
-
@predefined
@rglos{staff}.
Notation Reference:
-@ref{Clef}.
+@ref{Displaying pitches}.
Snippets:
@rlsr{Staff notation}.
}
@end lilypond
-@noindent
However, the above example is usually not the desired result. To
create ossia staves that are above the original staff, have no
time signature or clef, and have a smaller font size, tweaks must
<<
\new Staff = ossia \with {
\remove "Time_signature_engraver"
- \override Clef #'transparent = ##t
+ \remove "Clef_engraver"
fontSize = #-3
\override StaffSymbol #'staff-space = #(magstep -3)
\override StaffSymbol #'thickness = #(magstep -3)
>>
@end lilypond
+@c The following is the legacy "ossia.ly" example
+@c
+@c I don't think this method is very efficient.
+@c I'm commenting it out for now. -pm
+
+@ignore
+
+@ lilypond[verbatim,quote]
+<<
+ \new Staff \with
+ {
+ %No time signature in the ossia staff
+ \remove "Time_signature_engraver"
+ fontSize = #-3
+ \override StaffSymbol #'staff-space = #(magstep -3)
+ \override StaffSymbol #'thickness = #(magstep -3)
+ firstClef = ##f
+ }
+ \relative c'' {
+ \stopStaff
+ \skip 2
+
+ \startStaff
+ \clef treble
+ bes8[^"ossia" g bes g]
+ \stopStaff
+
+ s2
+
+ \startStaff
+ f8 d g4
+ }
+ \new Staff \relative c'' {
+ \time 2/4
+ c4 c g' g a a g2
+ }
+>>
+@ end lilypond
+
+@end ignore
+
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
<<
\new Staff = ossia \with {
\remove "Time_signature_engraver"
- \override Clef #'transparent = ##t
+ \remove "Clef_engraver"
fontSize = #-3
\override StaffSymbol #'staff-space = #(magstep -3)
\override StaffSymbol #'thickness = #(magstep -3)
@rlearning{Length and thickness of objects}.
Notation Reference:
-@ref{Hiding staves}.
+@ref{Setting the staff size}.
Snippets:
@rlsr{Staff notation}.
Empty staves can be hidden by setting the
@code{\RemoveEmptyStaffContext} 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.
+Score}. By default, this command hides 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.}
+skips, spacer rests, or a combination of these.}
@lilypond[verbatim,quote,ragged-right]
\layout {
\RemoveEmptyStaffContext
}
}
-
\relative c' <<
\new Staff {
e4 f g a \break
@cindex ossia
-@noindent
@code{\RemoveEmptyStaffContext} can also be used to create ossia
sections for a staff. For details, see @ref{Ossia staves}.
@rinternals{FiguredBass},
@rinternals{Lyrics},
@rinternals{Staff},
-@rinternals{VerticalAxisGroup},
-@rinternals{Staff_symbol_engraver}.
-
-
-@knownissues
-
-Removing @code{Staff_symbol_engraver} also hides bar lines. If
-bar line visibility is forced, formatting errors may occur. In
-this case, use the following overrides instead of removing the
-engraver:
-
-@example
-\override StaffSymbol #'stencil = ##f
-\override NoteHead #'no-ledgers = ##t
-@end example
+@rinternals{VerticalAxisGroup}.
@node Writing parts
@c perhaps also an example of how to move it horizontally?
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{changing-the-tempo-without-a-metronome-mark.ly}
+@c TODO add snippet to LSR -pm
+To change the tempo in the MIDI output without printing anything,
+make the metronome marking invisible
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{creating-metronome-marks-in-markup-mode.ly}
+@example
+\once \override Score.MetronomeMark #'transparent = ##t
+@end example
+
+@c TODO add snippet to LSR -pm
+To print other metronome markings, use these markup commands
+
+@lilypond[verbatim,quote,relative=1]
+c4^\markup {
+ (
+ \smaller \general-align #Y #DOWN \note #"16." #1
+ =
+ \smaller \general-align #Y #DOWN \note #"8" #1
+ ) }
+@end lilypond
For more details, see @ref{Formatting text}.
@cindex instrument names
@cindex instrument names, short
-Instrument names can be printed on the left side of staves in the
+Instrument names can be printed on the left side of staves for the
@code{Staff} and @code{PianoStaff} contexts. The value of
@code{instrumentName} is used for the first staff, and the value
of @code{shortInstrumentName} is used for all succeeding staves.
default. To center multi-line instrument names,
@code{\center-column} must be used:
-@lilypond[verbatim,quote,indent=1.5\cm,relative=2]
+@lilypond[verbatim,quote,relative=2]
<<
\new Staff {
\set Staff.instrumentName = "Flute"
}
\new Staff {
\set Staff.instrumentName = \markup \center-column {
- Clarinet
+ Clarinetti
\line { "in B" \smaller \flat }
}
c4 b c2
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}.
+@code{short-indent} settings are increased. The @code{indent} and
+@code{short-indent} settings are modified in the @code{\layout}
+block and specify the level of indentation for the first system
+and all succeeding systems, respectively.
@lilypond[verbatim,quote,ragged-right]
\layout {
- indent = 3.0\cm
+ indent = 2.5\cm
short-indent = 1.5\cm
}
\relative c'' <<
\new Staff {
- \set Staff.instrumentName = "Alto Flute in G"
+ \set Staff.instrumentName = "Flute"
\set Staff.shortInstrumentName = "Fl."
f2 g4 f \break
g4 f g2
c1 c c c \break
@end lilypond
-@cindex instrument switch
-@cindex switching instruments
-
-If an instrument @emph{switch} is needed,
-@code{\addInstrumentDefinition} may be used in combination with
-@code{\instrumentSwitch} to create a detailed list of the
-necessary changes for the switch. The
-@code{\addInstrumentDefinition} command has two arguments: an
-identifying string, and an association list of context properties
-and values to be used for the instrument. It must be placed in
-the toplevel scope. @code{\instrumentSwitch} is used in the music
-expression to declare the instrument switch:
-
-@lilypond[verbatim,quote,ragged-right]
-\addInstrumentDefinition #"contrabassoon"
- #`((instrumentTransposition . ,(ly:make-pitch -1 0 0))
- (shortInstrumentName . "Cbsn.")
- (clefGlyph . "clefs.F")
- (middleCPosition . 6)
- (clefPosition . 2)
- (instrumentCueName . ,(make-bold-markup "cbsn."))
- (midiInstrument . "bassoon"))
-
-\new Staff \with {
- instrumentName = "Bassoon"
-}
-\relative c' {
- \clef tenor
- \compressFullBarRests
- c2 g'
- R1*16
- \instrumentSwitch "contrabassoon"
- c,,2 g \break
- c,1 ~ | c1
-}
-@end lilypond
-
@seealso
Notation Reference:
-@ref{Horizontal dimensions},
@ref{Modifying context plug-ins}.
Snippets:
@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
-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:
+Quotations allow fragments of other parts to be inserted directly
+into 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'' @{
- a4 gis g gis
+flute = \relative c' @{
+ f4 fis g gis
@}
\addQuote "flute" @{ \flute @}
@end example
-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 from the quoted voice is
-inserted into the music expression:
+The @code{\quoteDuring} command may then be used to indicate when
+the quotation should take place. The corresponding measures from
+the quotation are inserted into the music expression. The syntax
+is similar to @code{\addQuote}:
@lilypond[verbatim,quote]
-flute = \relative c'' {
- a4 gis g gis
+flute = \relative c' {
+ f4 fis g gis
}
\addQuote "flute" { \flute }
situation is created, which is often not desirable:
@lilypond[verbatim,quote]
-flute = \relative c'' {
- a4 gis g gis
+flute = \relative c' {
+ f4 fis g gis
}
\addQuote "flute" { \flute }
@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 source and target instruments if they are specified using the
+@code{\transposition} command:
@lilypond[verbatim,quote]
-clarinet = \relative c'' {
+clarinet = \relative c' {
\transposition bes
- a4 gis g gis
+ f4 fis g gis
}
\addQuote "clarinet" { \clarinet }
}
@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}.
+@c add to snippets, possibly. It might already be there. -pm
+@c
+@c The type of events that are present in the quoted music can be
+@c trimmed with the @code{quotedEventTypes} property. The default
+@c value is @code{(note-event rest-event)}, which means that only
+@c notes and rests of the quoted voice end up in the
+@c @code{\quoteDuring}. Setting
+@c
+@c @example
+@c \set Staff.quotedEventTypes =
+@c #'(note-event articulation-event dynamic-event)
+@c @end example
+@c
+@c @noindent
+@c will quote notes (but no rests), together with scripts and
+@c dynamics.
@snippets
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{quoting-another-voice-with-transposition.ly}
-@cindex note-event
-@cindex articulation-event
-@cindex dynamic-event
-@cindex rest-event
-@funindex quotedEventTypes
-
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{quoting-another-voice.ly}
@seealso
Notation Reference:
-@ref{Instrument transpositions},
-@ref{Using tags}.
+@ref{Instrument transpositions}.
Snippets:
@rlsr{Staff notation}.
@cindex quoting other voices
@cindex cues, formatting
-The previous section explains how to create quotations. The
+The previous section explains how to quote other voices. The
@code{\cueDuring} command is a more specialized form of
@code{\quoteDuring}, being particularly useful for inserting cue
notes into a part. The syntax is as follows:
@example
-\cueDuring #@var{partname} #@var{voice} @var{music}
+ \cueDuring #@var{partname} #@var{voice} @var{music}
@end example
This command copies the corresponding measures from @var{partname}
}
@end lilypond
-@noindent
In the above example, the @code{Voice} context had to be
explicitly declared, or else the entire music expression would
belong to the @code{CueVoice} context.
The name of the cued instrument can be printed by setting the
-@code{instrumentCueName} property in the @code{CueVoice} context.
+@code{instrumentCueName} property.
@lilypond[verbatim,quote]
oboe = \relative c''' {
g4 r8 e16 f e4 d
}
-\addQuote "oboe" { \oboe }
+\addQuote oboe { \oboe }
\new Staff \relative c'' <<
\new CueVoice \with {
>>
@end lilypond
-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.
+The @code{\killCues} command is used to remove the cue notes from
+a music expression.
@lilypond[verbatim,quote]
flute = \relative c''' {
r2 cis2 r2 dis2
}
-\addQuote "flute" { \flute }
+\addQuote flute { \flute }
\new Voice \relative c'' {
\killCues {
}
@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
+When typesetting cue notes, some guidelines should be followed:
+
+@itemize
+@item
+The instrument playing the cue should be clearly marked on the
+score.
+
+@item
+When the cue notes end, the name of the original instrument should
+be indicated.
+
+@item
+Any other changes introduced by the cued part should also be
+undone. For example, if the cued instrument plays in a different
+clef, the original clef should be stated once again.
+
+@end itemize
+
+The @code{\transposedCueDuring} command is useful to add cues for
+instruments in a completely different register. The syntax is
+similar to @code{\cueDuring}, but it requires one more argument to
+specify the transposition of the cued instrument. For more
+information about transposition, see
@ref{Instrument transpositions}.
@lilypond[verbatim,quote]
>>
@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}.
-
@seealso
Notation Reference:
-@ref{Instrument transpositions},
-@ref{Instrument names},
-@ref{Using tags}.
+@ref{Instrument transpositions}.
Snippets:
@rlsr{Staff notation}.
@knownissues
-Collisions can occur with rests, when using @code{\cueDuring},
-between @code{Voice} and @code{CueVoice} contexts.
+Collisions are not checked between @code{Voice} and
+@code{CueVoice} contexts.