The basic staff context is @code{Staff}:
-@lilypond[verbatim,quote,relative=2]
-\new Staff { c4 d e f }
+@lilypond[verbatim,quote]
+\new Staff \relative { c''4 d e f }
@end lilypond
The @code{DrumStaff} context creates a five-line staff set up for
displays the rhythmic values of the input. Real durations are
preserved. For details, see @ref{Showing melody rhythms}.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new RhythmicStaff { c4 d e f }
@end lilypond
@code{TabStaff} creates a tablature with six strings in standard
guitar tuning. For details, see @ref{Default tablatures}.
-@lilypond[verbatim,quote,relative=2]
-\new TabStaff { c4 d e f }
+@lilypond[verbatim,quote]
+\new TabStaff \relative { c''4 d e f }
@end lilypond
There are two staff contexts specific for the notation of ancient
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 }
+@lilypond[verbatim,quote]
+\new GregorianTranscriptionStaff \relative { c''4 d e f e d }
@end lilypond
New single staff contexts may be defined. For details, see
the group is started with a vertical line, and the bar lines are
not connected.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
<<
- \new Staff { c1 c }
- \new Staff { c1 c }
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { c''1 c }
>>
@end lilypond
In the @code{StaffGroup} context, the group is started with a
bracket and bar lines are drawn through all the staves.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new StaffGroup <<
- \new Staff { c1 c }
- \new Staff { c1 c }
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { c''1 c }
>>
@end lilypond
In a @code{ChoirStaff}, the group starts with a bracket, but bar
lines are not connected.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new ChoirStaff <<
- \new Staff { c1 c }
- \new Staff { c1 c }
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { c''1 c }
>>
@end lilypond
In a @code{GrandStaff}, the group begins with a brace, and bar
lines are connected between the staves.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new GrandStaff <<
- \new Staff { c1 c }
- \new Staff { c1 c }
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { c''1 c }
>>
@end lilypond
that it supports printing the instrument name directly. For
details, see @ref{Instrument names}.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
- \new Staff { c1 c }
- \new Staff { c1 c }
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { \clef bass c1 c }
>>
@end lilypond
case, each child context creates a new bracket adjacent to the
bracket of its parent group.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new StaffGroup <<
- \new Staff { c2 c | c2 c }
+ \new Staff \relative { c''2 c | c2 c }
\new StaffGroup <<
- \new Staff { g2 g | g2 g }
+ \new Staff \relative { g'2 g | g2 g }
\new StaffGroup \with {
systemStartDelimiter = #'SystemStartSquare
}
<<
- \new Staff { e2 e | e2 e }
- \new Staff { c2 c | c2 c }
+ \new Staff \relative { e'2 e | e2 e }
+ \new Staff \relative { c'2 c | c2 c }
>>
>>
>>
stop or (re)start the staff lines respectively, from being printed at
any point witin a score.
-@lilypond[verbatim,quote,relative=2]
-\stopStaff f4 d \startStaff g, e
-f'4 d \stopStaff g, e
-f'4 d \startStaff g, e
+@lilypond[verbatim,quote]
+\relative {
+ \stopStaff f''4 d \startStaff g, e
+ f'4 d \stopStaff g, e
+ f'4 d \startStaff g, e
+}
@end lilypond
@predefined
The number of staff lines can be altered:
-@lilypond[verbatim,quote,relative=2]
-f4 d \stopStaff
-\override Staff.StaffSymbol.line-count = #2
-\startStaff g, e |
+@lilypond[verbatim,quote]
+\relative {
+ f''4 d \stopStaff
+ \override Staff.StaffSymbol.line-count = #2
+ \startStaff g, e |
-f'4 d \stopStaff
-\revert Staff.StaffSymbol.line-count
-\startStaff g, e |
+ f'4 d \stopStaff
+ \revert Staff.StaffSymbol.line-count
+ \startStaff g, e |
+}
@end lilypond
The position of each staff line can also be altered. A list of
printed for every value entered so that the number of staff lines, as
well as their position, can be changed with a single override.
-@lilypond[verbatim,quote,relative=2]
-f4 d \stopStaff
-\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
-\startStaff g, e |
-f'4 d \stopStaff
-\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
-\startStaff g, e
+@lilypond[verbatim,quote]
+\relative {
+ f''4 d \stopStaff
+ \override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
+ \startStaff g, e |
+ f'4 d \stopStaff
+ \override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
+ \startStaff g, e |
+}
@end lilypond
To preserve typical stem directions (in the bottom half of the staff
Staff line thickness can be altered. Ledger lines and note stems, by
default, are also affected.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.thickness = #3
+} \relative {
+ f''4 d g, e
}
-{ f4 d g, e }
@end lilypond
It is also possible to set ledger line thickness independently of staff
lines.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.thickness = #2
\override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
+} \relative {
+ f'''4 a, a,, f
}
-{ f'4 a, a,, f }
@end lilypond
@noindent
The vertical positions of ledger lines can be altered,
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
+} \relative {
+ f'''4 a, a,, f
}
-{ f'4 a, a,, f }
@end lilypond
Additional ledger lines can be made to appear above or below note heads
depending on the current position relative to other note heads that
also have their own ledger lines.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.ledger-extra = #4
+} \relative {
+ f'''4 a, d, f,
}
-{ f'4 a, d, f, }
@end lilypond
Ledger lines can also be made to appear inside the staff where custom
The @code{\stopStaff} is needed in the example to revert the
@code{\override} for the whole @code{StaffSymbol}.
-@lilypond[verbatim,quote,relative=1]
-\override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
-d4 e f g
-\stopStaff
-\startStaff
-\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
-d4 e f g
+@lilypond[verbatim,quote]
+\relative d' {
+ \override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
+ d4 e f g
+ \stopStaff
+ \startStaff
+ \override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
+ d4 e f g
+}
@end lilypond
The distance between staff lines can be altered. This affects ledger
line spacing as well.
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.staff-space = #1.5
+} \relative {
+ f'''4 d, g, e,
}
-{ f'4 d, g, e, }
@end lilypond
@snippets
@end lilypond
-Using the @code{\Staff \RemoveEmptyStaves} command to create ossia
+Using the @code{\RemoveAllEmptyStaves} 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{\Staff \RemoveEmptyStaves}, see @ref{Hiding staves}.
+@code{\RemoveAllEmptyStaves}, see @ref{Hiding staves}.
@lilypond[verbatim,quote,ragged-right]
<<
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
+ \RemoveAllEmptyStaves
} \relative {
R1*3
c''4 e8 d c2
e4 d c2
}
>>
-
-\layout {
- \context {
- \Staff \RemoveEmptyStaves
- \override VerticalAxisGroup.remove-first = ##t
- }
-}
@end lilypond
@cindex Frenched staff
@cindex staff, hiding
@cindex staff, empty
-@cindex hiding of staves
+@cindex hiding staves
+@cindex hiding ancient staves
+@cindex hiding rhythmic staves
+@cindex hiding vaticana staves
@cindex empty staves
@funindex \RemoveEmptyStaves
+@funindex \RemoveAllEmptyStaves
@funindex Staff_symbol_engraver
@funindex \stopStaff
@funindex stopStaff
@end lilypond
-Empty staves can be hidden by setting the
-@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.
+Empty staves can be hidden (for a so-called @q{Frenched Score})
+by applying the @code{\RemoveEmptyStaves} command on a context, which
+can be done globally (in a @code{\layout} block) as well as for
+specific staves only (in a @code{\with} block). This command removes
+all empty staves in a score except for those in the first system. If
+you want those in the first system to be hidden also, use
+@code{\RemoveAllEmptyStaves}. Supported contexts are @code{Staff},
+@code{RhythmicStaff} and @code{VaticanaStaff}.
@warning{A staff is considered empty when it contains only
multi-measure rests, rests, skips, spacer rests, or a combination of these
@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
- \Staff \RemoveEmptyStaves
+ \Staff
+ \RemoveEmptyStaves
}
}
@cindex ossia
@noindent
-@code{\Staff \RemoveEmptyStaves} can also be used to create ossia
+@code{\RemoveAllEmptyStaves} 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 \RemoveEmptyStaves
-
-The @code{\VaticanaStaff \RemoveEmptyStaves} command may be used to
-hide empty staves in ancient music contexts. Similarly,
-@code{\RhythmicStaff \RemoveEmptyStaves} may be used to hide empty
-@code{RhythmicStaff} contexts.
-
@predefined
-@code{\Staff \RemoveEmptyStaves},
-@code{\VaticanaStaff \RemoveEmptyStaves},
-@code{\RhythmicStaff \RemoveEmptyStaves}.
+@code{\RemoveEmptyStaves},
+@code{\RemoveAllEmptyStaves}.
@endpredefined
-
-@snippets
-
-@lilypondfile[verbatim,quote,texidoc,doctitle]
-{removing-the-first-empty-line.ly}
-
@seealso
Music Glossary:
@rglos{Frenched staff}.
@code{instrumentName} is used for the first staff, and the value
of @code{shortInstrumentName} is used for all succeeding staves.
-@lilypond[verbatim,quote,ragged-right,relative=1]
+@lilypond[verbatim,quote,ragged-right]
\new Staff \with {
instrumentName = #"Violin "
shortInstrumentName = #"Vln. "
+} \relative {
+ c'4.. g'16 c4.. g'16 \break | c1 |
}
-{ c4.. g'16 c4.. g'16 \break | c1 }
@end lilypond
@cindex instrument names, complex
@code{\markup} can be used to create more complex instrument names:
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote]
\new Staff \with {
instrumentName = \markup {
\column { "Clarinetti"
\line { "in B" \smaller \flat }
}
}
+} \relative {
+ c''4 c,16 d e f g2
}
-{ c4 c,16 d e f g2 }
@end lilypond
@cindex instrument names, centering
names and short instrument names are centered by 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,indent=1.5\cm]
<<
\new Staff \with {
instrumentName = #"Flute"
- }
- { f2 g4 f }
+ } \relative {
+ f''2 g4 f
+}
\new Staff \with {
instrumentName = \markup {
\center-column { "Clarinet"
\line { "in B" \smaller \flat }
}
}
- }
- { c4 b c2 }
+ } \relative { c''4 b c2 }
>>
@end lilypond
settings, see @ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}.
@lilypond[verbatim,quote,ragged-right]
-\relative c'' {
- <<
- \new Staff \with {
- instrumentName = #"Alto Flute in G"
- shortInstrumentName = #"Flt."
- }
- {
- f2 g4 f \break
- g4 f g2
- }
- \new Staff \with {
- instrumentName = #"Clarinet"
- shortInstrumentName = #"Clar."
- }
- {
- c,4 b c2 \break
- c2 b4 c
- }
- >>
-}
+<<
+ \new Staff \with {
+ instrumentName = #"Alto Flute in G"
+ shortInstrumentName = #"Flt."
+ } \relative {
+ f''2 g4 f \break
+ g4 f g2
+ }
+ \new Staff \with {
+ instrumentName = #"Clarinet"
+ shortInstrumentName = #"Clar."
+ } \relative {
+ c''4 b c2 \break
+ c2 b4 c
+ }
+>>
\layout {
indent = 3.0\cm
}
@end lilypond
+If an @code{\unfoldRepeat} command in a music expression is required to
+be printed when using @code{\quoteDuring}, then it too must also contain
+its own @code{\unfoldRepeat} command;
+
+@lilypond[verbatim,quote]
+fluteNotes = \relative {
+ \repeat volta 2 { a'4 gis g gis }
+}
+
+oboeNotesDW = \relative {
+ \repeat volta 2 \quoteDuring #"incorrect" { s1 }
+}
+
+oboeNotesW = \relative {
+ \repeat volta 2 \quoteDuring #"correct" { s1 }
+}
+
+
+\addQuote "incorrect" { \fluteNotes }
+
+\addQuote "correct" { \unfoldRepeats \fluteNotes }
+
+\score {
+ \unfoldRepeats
+ <<
+ \new Staff \with { instrumentName = "Flute" }
+ \fluteNotes
+ \new Staff \with { instrumentName = "Oboe (incorrect)" }
+ \oboeNotesDW
+ \new Staff \with { instrumentName = "Oboe (correct)" }
+ \oboeNotesW
+ >>
+}
+@end lilypond
+
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.
The simplest way to format cue notes is to explicitly create a
@code{CueVoice} context within the part.
-@lilypond[verbatim,relative=1]
-R1
-<<
- { e2\rest r4. e8 }
- \new CueVoice {
- \stemUp d'8^"flute" c d e fis2
- }
->>
-d,4 r a r
+@lilypond[verbatim]
+\relative {
+ R1
+ <<
+ { e'2\rest r4. e8 }
+ \new CueVoice {
+ \stemUp d'8^"flute" c d e fis2
+ }
+ >>
+ d,4 r a r
+}
@end lilypond
The @code{\cueClef} command can also be used with an explict
command can then be used to switch back to the original clef, again with
an appropriately sized clef.
-@lilypond[verbatim,noragged-right,relative=1]
-\clef "bass"
-R1
-<<
- { e2\rest r4. \cueClefUnset e,8 }
- \new CueVoice {
- \cueClef "treble" \stemUp d''8^"flute" c d e fis2
- }
->>
-d,,4 r a r
+@lilypond[verbatim,noragged-right]
+\relative {
+ \clef "bass"
+ R1
+ <<
+ { e'2\rest r4. \cueClefUnset e,8 }
+ \new CueVoice {
+ \cueClef "treble" \stemUp d''8^"flute" c d e fis2
+ }
+ >>
+ d,,4 r a r
+}
@end lilypond
The @code{\cueClef} and @code{\cueClefUnset} command can also be used
without a @code{CueVoice} if required.
-@lilypond[verbatim,noragged-right,relative=1]
-\clef "bass"
-R1
-\cueClef "treble"
-d'8^"flute" c d e fis2
-\cueClefUnset
-d,,4 r a r
+@lilypond[verbatim,noragged-right]
+\relative {
+ \clef "bass"
+ R1
+ \cueClef "treble"
+ d''8^"flute" c d e fis2
+ \cueClefUnset
+ d,,4 r a r
+}
@end lilypond
For more complex cue note placement, e.g including transposition, or