Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes..
@end ignore
-@c \version "2.12.0"
+@c \version "2.14.0"
@node Staff notation
@section Staff notation
* Instantiating new staves::
* Grouping staves::
* Nested staff groups::
+* Separating systems::
@end menu
@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}.
+preserved. For details, see @ref{Showing melody rhythms}.
@lilypond[verbatim,quote,relative=2]
\new RhythmicStaff { c4 d e f }
@rinternals{SystemStartBracket},
@rinternals{SystemStartSquare}.
+@knownissues
+@code{PianoStaff} does not, by default, accept @code{ChordNames}.
+
@node Nested staff groups
@unnumberedsubsubsec Nested staff groups
@rinternals{SystemStartBracket},
@rinternals{SystemStartSquare}.
+@node Separating systems
+@unnumberedsubsubsec Separating systems
+
+@cindex system separator mark
+
+If the number of systems per page changes from page to page it is
+customary to separate the systems by placing a system separator mark
+between them. By default the system separator is blank, but can be
+turned on with a @code{\paper} option.
+
+@c \book is required here to display the system separator
+@c ragged-right is required as there are two systems
+@lilypond[verbatim,quote,ragged-right]
+\book {
+ \score {
+ \new StaffGroup <<
+ \new Staff {
+ \relative c'' {
+ c4 c c c
+ \break
+ c4 c c c
+ }
+ }
+ \new Staff {
+ \relative c'' {
+ c4 c c c
+ \break
+ c4 c c c
+ }
+ }
+ >>
+ }
+ \paper {
+ system-separator-markup = \slashSeparator
+ % following commands are needed only to format this documentation
+ paper-width = 100\mm
+ paper-height = 100\mm
+ tagline = ##f
+ }
+}
+@end lilypond
+
+@seealso
+Notation Reference:
+@ref{Page layout}.
+
+Snippets:
+@rlsr{Staff notation}.
+
@node Modifying single staves
@subsection Modifying single staves
@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]
<<
\layout {
\context {
- \RemoveEmptyStaffContext
+ \Staff \RemoveEmptyStaves
\override VerticalAxisGroup #'remove-first = ##t
}
}
@cindex hiding of staves
@cindex empty staves
-@funindex \RemoveEmptyStaffContext
-@funindex RemoveEmptyStaffContext
+@funindex \RemoveEmptyStaves
@funindex Staff_symbol_engraver
@funindex \stopStaff
@funindex stopStaff
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.
@warning{A staff is considered empty when it contains only
-multi-measure rests, skips, spacer rests, or a combination of these
+multi-measure rests, rests, skips, spacer rests, or a combination of these
elements.}
@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
- \RemoveEmptyStaffContext
+ \Staff \RemoveEmptyStaves
}
}
@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
@rlearning{Visibility and color of objects}.
Notation Reference:
+@ref{Changing context default settings},
@ref{Staff symbol},
@ref{Ossia staves},
@ref{Hidden notes},
\override NoteHead #'no-ledgers = ##t
@end example
+For the Known issues and warnings associated with
+@code{\Staff \RemoveEmptyStaves} see
+@ref{Changing context default settings}.
@node Writing parts
@subsection Writing parts
format cue notes are also described.
@menu
-* Metronome marks::
* Instrument names::
* Quoting other voices::
* Formatting cue notes::
@end menu
-
-@node Metronome marks
-@unnumberedsubsubsec Metronome marks
-
-@cindex tempo
-@cindex beats per minute
-@cindex metronome mark
-@cindex metronome marking with text
-
-@funindex \tempo
-@funindex tempo
-
-A basic metronome mark is simple to write:
-
-@lilypond[verbatim,quote,relative=1]
-\tempo 4 = 120
-c2 d
-e4. d8 c2
-@end lilypond
-
-Tempo indications with text can be used instead:
-
-@lilypond[verbatim,quote,relative=2]
-\tempo "Allegretto"
-c4 e d c
-b4. a16 b c4 r4
-@end lilypond
-
-Combining a metronome mark and text will automatically place the
-metronome mark within parentheses:
-
-@lilypond[verbatim,quote,relative=2]
-\tempo "Allegro" 4 = 160
-g4 c d e
-d4 b g2
-@end lilypond
-
-In general, the text can be any markup object:
-
-@lilypond[verbatim,quote,relative=2]
-\tempo \markup { \italic Faster } 4 = 132
-a8-. r8 b-. r gis-. r a-. r
-@end lilypond
-
-A parenthesized metronome mark with no textual indication may be
-written by including an empty string in the input:
-
-@lilypond[verbatim,quote,relative=2]
-\tempo "" 8 = 96
-d4 g e c
-@end lilypond
-
-
-@snippets
-
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{printing-metronome-and-rehearsal-marks-below-the-staff.ly}
-
-@c perhaps also an example of how to move it horizontally?
-
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{changing-the-tempo-without-a-metronome-mark.ly}
-
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{creating-metronome-marks-in-markup-mode.ly}
-
-For more details, see @ref{Formatting text}.
-
-
-@seealso
-Music Glossary:
-@rglos{metronome},
-@rglos{metronomic indication},
-@rglos{tempo indication},
-@rglos{metronome mark}.
-
-Notation Reference:
-@ref{Formatting text},
-@ref{MIDI output}.
-
-Snippets:
-@rlsr{Staff notation}.
-
-Internals Reference:
-@rinternals{MetronomeMark}.
-
-
@node Instrument names
@unnumberedsubsubsec Instrument names
@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.
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 {
@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}.
@cindex instrument names, changing
@cindex changing instrument names
-Instrument names may be changed in the middle of a piece:
+Instrument names may be changed in the middle of a piece.
+However, remember that @code{instrumentName} will not be
+displayed in the middle of the piece, as it only appears
+on the first staff:
@lilypond[verbatim,quote,ragged-right,relative=1]
\set Staff.instrumentName = #"First"
@seealso
Notation Reference:
-@ref{Horizontal dimensions},
+@ref{\paper variables for shifts and indents},
@ref{Modifying context plug-ins}.
Snippets:
@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
@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 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 gis
+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 }
+}
+
+\addQuote "clarinet" { \clarinetNotes }
+
+
+\score {
+ <<
+ \new Staff \with { instrumentName = "Clarinet" } \clarinetNotes
+ \new Staff \with { instrumentName = "Oboe" } \oboeNotes
+ >>
}
@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}.
+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
@cindex rest-event
@funindex quotedEventTypes
+@funindex quotedCueEventTypes
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{quoting-another-voice.ly}
@rlsr{Staff notation}.
Internals Reference:
+@rinternals{Music classes},
@rinternals{QuoteMusic},
@rinternals{Voice}.
+Installed Files:
+@file{scm/define-event-classes.scm}.
+
@knownissues
Only the contents of the first @code{Voice} occurring in an
@code{\addQuote} command will be considered for quotation, so
-@var{music} cannot contain @code{\new} and @code{\context Voice}
-statements that would switch to a different Voice.
+@code{@var{music}} cannot contain @code{\new} and
+@code{\context Voice} statements that would switch to a different
+Voice.
Quoting grace notes is broken and can even cause LilyPond to
crash.
\cueDuring #@var{partname} #@var{voice} @var{music}
@end example
-This command copies the corresponding measures from @var{partname}
-into a @code{CueVoice} context. The @code{CueVoice} is created
-implicitly, and occurs simultaneously with @var{music}, which
-creates a polyphonic situation. The @var{voice} argument
-determines whether the cue notes should be notated as a first or
-second voice; @code{UP} corresponds to the first voice, and
-@code{DOWN} corresponds to the second.
+This command copies only the notes and rests from the
+corresponding measures from @code{@var{partname}} into a
+@code{CueVoice} context. The @code{CueVoice} is created
+implicitly, and occurs simultaneously with @code{@var{music}},
+which creates a polyphonic situation. The @code{@var{voice}}
+argument determines whether the cue notes should be notated as a
+first or second voice; @code{UP} corresponds to the first voice,
+and @code{DOWN} corresponds to the second.
@lilypond[verbatim,quote]
oboe = \relative c'' {
- r2 r8 d16 f e g f a
+ r2 r8 d16(\f f e g f a)
g8 g16 g g2.
}
\addQuote "oboe" { \oboe }
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.
+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, rests, ties, beams and tuplets are quoted, but not
+articulations, dynamic marks, markup etc.
@lilypond[verbatim,quote]
-oboe = \relative c''' {
- g4 r8 e16 f e4 d
+oboe = \relative c'' {
+ r2 r8 d16(\f f e g f a)
+ g8 g16 g g2.
}
\addQuote "oboe" { \oboe }
-\new Staff \relative c'' <<
- \new CueVoice \with {
- instrumentCueName = "ob."
- }
- \new Voice {
- \cueDuring #"oboe" #UP { R1 }
- g4. b8 d2
- }
->>
+\new Voice \relative c'' {
+ \set Score.quotedCueEventTypes = #'(note-event rest-event tie-event
+ beam-event tuplet-span-event
+ dynamic-event slur-event)
+ \cueDuring #"oboe" #UP { R1 }
+ g2 c,
+}
+@end lilypond
+
+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]
+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
+}
@end lilypond
@cindex removing cues
@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
Notation Reference:
@ref{Instrument transpositions},
@ref{Instrument names},
+@ref{Musical cues},
@ref{Using tags}.
Snippets: