Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.30"
+@c \version "2.19.21"
@node Staff notation
@section Staff notation
@cindex tablature
@funindex \drummode
-@funindex drummode
@funindex DrumStaff
@funindex RhythmicStaff
@funindex TabStaff
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]
-\new PianoStaff <<
- \set PianoStaff.instrumentName = #"Piano"
- \new Staff { c1 c }
- \new Staff { c1 c }
+@lilypond[verbatim,quote]
+\new PianoStaff \with { instrumentName = #"Piano" }
+<<
+ \new Staff \relative { c''1 c }
+ \new Staff \relative { \clef bass c1 c }
>>
@end lilypond
@rinternals{SystemStartBracket},
@rinternals{SystemStartSquare}.
-@knownissues
-@code{PianoStaff} does not, by default, accept @code{ChordNames}.
-
@node Nested staff groups
@unnumberedsubsubsec Nested staff groups
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 }
>>
>>
>>
\score {
\new StaffGroup <<
\new Staff {
- \relative c'' {
- c4 c c c
+ \relative {
+ c''4 c c c
\break
c4 c c c
}
}
\new Staff {
- \relative c'' {
- c4 c c c
+ \relative {
+ c''4 c c c
\break
c4 c c c
}
@cindex ledger lines, modifying
@funindex \startStaff
-@funindex startStaff
@funindex \stopStaff
-@funindex stopStaff
The @code{\stopStaff} and @code{\startStaff} commands can be used to
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 |
-
-f'4 d \stopStaff
-\revert Staff.StaffSymbol.line-count
-\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 |
+}
@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
@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:
@lilypond[verbatim,quote]
-\new Staff \relative c'' {
- c4 b d c
+\new Staff \relative {
+ c''4 b d c
<<
{ c4 b d c }
\new Staff { e4 d f e }
only a few ossia staves are needed.
@lilypond[verbatim,quote]
-\new Staff = "main" \relative c'' {
- c4 b d c
+\new Staff = "main" \relative {
+ c''4 b d c
<<
{ c4 b d c }
\new Staff \with {
\remove "Time_signature_engraver"
alignAboveContext = #"main"
- fontSize = #-3
- \override StaffSymbol.staff-space = #(magstep -3)
- \override StaffSymbol.thickness = #(magstep -3)
+ \magnifyStaff #2/3
firstClef = ##f
}
{ e4 d f e }
\new Staff = "ossia" \with {
\remove "Time_signature_engraver"
\hide Clef
- fontSize = #-3
- \override StaffSymbol.staff-space = #(magstep -3)
- \override StaffSymbol.thickness = #(magstep -3)
+ \magnifyStaff #2/3
}
{ \stopStaff s1*6 }
- \new Staff \relative c' {
- c4 b c2
+ \new Staff \relative {
+ c'4 b c2
<<
{ e4 f e2 }
\context Staff = "ossia" {
@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]
<<
\new Staff = "ossia" \with {
\remove "Time_signature_engraver"
\hide Clef
- fontSize = #-3
- \override StaffSymbol.staff-space = #(magstep -3)
- \override StaffSymbol.thickness = #(magstep -3)
- } \relative c'' {
+ \magnifyStaff #2/3
+ \RemoveAllEmptyStaves
+ } \relative {
R1*3
- c4 e8 d c2
+ c''4 e8 d c2
}
- \new Staff \relative c' {
- c4 b c2
+ \new Staff \relative {
+ c'4 b c2
e4 f e2
g4 a g2 \break
c4 b 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
Staff lines can be hidden by removing the
\new Staff \with {
\remove "Staff_symbol_engraver"
}
-\relative c''' { a8 f e16 d c b a2 }
+\relative { a''8 f e16 d c b a2 }
@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
}
}
-\relative c' <<
+\relative <<
\new Staff {
- e4 f g a \break
+ e'4 f g a \break
b1 \break
a4 b c2
}
@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
@cindex instrument names, changing
@cindex changing instrument names
-The @code{shortInstrumentName} may be changed in the middle of a piece.
+The @code{shortInstrumentName} may be changed in the middle of a piece,
+along with other settings as needed for the new instrument.
However, only the first instance of @code{instrumentName} will be
printed and subsequent changes will be ignored:
-@lilypond[verbatim,quote,ragged-right,relative=1]
-\new Staff \with {
- instrumentName = #"Flute"
- shortInstrumentName = #"Flt."
-}
-{
- c1 c c c \break
- c1 c c c \break
- \set Staff.instrumentName = #"Clarinet"
- \set Staff.shortInstrumentName = #"Clt."
- c1 c c c \break
- c1 c c c \break
-}
-@end lilypond
-
-@cindex instrument switch
-@cindex switching instruments
+@lilypond[verbatim,quote,ragged-right]
+prepPiccolo = <>^\markup \italic { muta in Piccolo }
-@funindex \addInstrumentDefinition
-@funindex addInstrumentDefinition
-@funindex \instrumentSwitch
-@funindex instrumentSwitch
+prepFlute = <>^\markup \italic { muta in Flauto }
-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:
+setPiccolo = {
+ <>^\markup \bold { Piccolo }
+ \transposition c''
+}
-@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"))
+setFlute = {
+ <>^\markup \bold { Flute }
+ \transposition c'
+}
\new Staff \with {
- instrumentName = #"Bassoon"
+ instrumentName = #"Flute"
+ shortInstrumentName = #"Flt."
}
-\relative c' {
- \clef tenor
- \compressFullBarRests
- c2 g'
- R1*16
- \instrumentSwitch "contrabassoon"
- c,,2 g \break
- c,1 ~ | c1
+\relative {
+ g'1 g g g \break
+ g1 g \prepPiccolo R R \break
+ \set Staff.instrumentName = #"Piccolo"
+ \set Staff.shortInstrumentName = #"Picc."
+ \setPiccolo
+ g1 g g g \break
+ g1 g \prepFlute R R \break
+ \set Staff.instrumentName = #"Flute"
+ \set Staff.shortInstrumentName = #"Flt."
+ \setFlute
+ g1 g g g
}
@end lilypond
+
@seealso
Notation Reference:
@ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents},
@cindex cue notes
@funindex \addQuote
-@funindex addQuote
@funindex \quoteDuring
-@funindex quoteDuring
@funindex \transposition
-@funindex transposition
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
for the duration of the quote.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- a4 gis g gis | b4^"quoted" r8 ais\p a4( f)
+fluteNotes = \relative {
+ a'4 gis g gis | b4^"quoted" r8 ais\p a4( f)
}
-oboeNotes = \relative c'' {
- c4 cis c b \quoteDuring #"flute" { s1 }
+oboeNotes = \relative {
+ c''4 cis c b \quoteDuring #"flute" { s1 }
}
\addQuote "flute" { \fluteNotes }
polyphony and may produce unexpected results.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- a4 gis g gis | b4^"quoted" r8 ais\p a4( f)
+fluteNotes = \relative {
+ a'4 gis g gis | b4^"quoted" r8 ais\p a4( f)
}
-oboeNotes = \relative c'' {
- c4 cis c b \quoteDuring #"flute" { e4 r8 ais b4 a }
+oboeNotes = \relative {
+ c''4 cis c b \quoteDuring #"flute" { e4 r8 ais b4 a }
}
\addQuote "flute" { \fluteNotes }
}
@end lilypond
+If an @code{\unfoldRepeats} command in a music expression is required to
+be printed when using @code{\quoteDuring}, then it too must also contain
+its own @code{\unfoldRepeats} 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.
b4 ais a ais | cis4^"quoted" r8 bis\p b4( f)
}
-oboeNotes = \relative c'' {
- c4 cis c b \quoteDuring #"clarinet" { s1 }
+oboeNotes = \relative {
+ c''4 cis c b \quoteDuring #"clarinet" { s1 }
}
\addQuote "clarinet" { \clarinetNotes }
@code{quotedEventTypes} context property.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- a2 g2 |
+fluteNotes = \relative {
+ a'2 g2 |
b4\<^"quoted" r8 ais a4\f( c->)
}
-oboeNotes = \relative c'' {
- c2. b4 |
+oboeNotes = \relative {
+ c''2. b4 |
\quoteDuring #"flute" { s1 }
}
@funindex \cueDuring
-@funindex cueDuring
@funindex \cueClef
-@funindex cueClef
@funindex \cueDuringWithClef
-@funindex cueDuringWithClef
@funindex \quoteDuring
-@funindex quoteDuring
@cindex notes, smaller
@cindex smaller notes
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
the cue notes are printed in relation to the other voice.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- r2. c4 | d8 c d e fis2 | g2 d |
+fluteNotes = \relative {
+ r2. c''4 | d8 c d e fis2 | g2 d |
}
oboeNotes = \relative c'' {
R1
- \new CueVoice { \set instrumentCueName = "flute" }
+ <>^\markup \tiny { flute }
\cueDuring #"flute" #UP { R1 }
g2 c,
}
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.
+articulations, dynamic marks, markup, etc.
@warning{When a @code{Voice} starts with @code{\cueDuring}, as in the
following example, the @code{Voice} context must be explicitly declared,
context.}
@lilypond[verbatim,quote]
-oboeNotes = \relative c'' {
- r2 r8 d16(\f f e g f a)
+oboeNotes = \relative {
+ r2 r8 d''16(\f f e g f a)
g8 g16 g g2.
}
\addQuote "oboe" { \oboeNotes }
}
@end lilypond
-The name of the instrument playing the cue can be printed by setting
-the @code{instrumentCueName} property in a temporary @code{CueVoice}
-context. The placement and style of the @code{instrumentCueName} is
-controlled by the @code{InstrumentSwitch} object, see
-@ref{Instrument names}. If the cue notes require a change in clef,
+Markup can be used to show the name of the quoted instrument.
+If the cue notes require a change in clef,
this can be done manually but the original clef should also be
restored manually at the end of the cue notes.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- r2. c4 d8 c d e fis2 g2 d2
+fluteNotes = \relative {
+ r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
\clef bass
R1
\clef treble
- \new CueVoice { \set instrumentCueName = "flute" }
+ <>^\markup \tiny { flute }
\cueDuring #"flute" #UP { R1 }
\clef bass
g4. b8 d2
print the original clef once the cue notes have finished.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- r2. c4 d8 c d e fis2 g2 d2
+fluteNotes = \relative {
+ r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
\clef bass
R1
- \new CueVoice { \set instrumentCueName = "flute" }
+ <>^\markup { \tiny "flute" }
\cueDuringWithClef #"flute" #UP #"treble" { R1 }
g4. b8 d2
}
@end lilypond
@funindex \transposedCueDuring
-@funindex transposedCueDuring
Like @code{\quoteDuring}, @code{\cueDuring} takes instrument
transpositions into account. Cue notes are produced at the
taking cues from an instrument in a completely different register.
@lilypond[verbatim,quote]
-piccoloNotes = \relative c''' {
+piccoloNotes = \relative {
\clef "treble^8"
R1
- c8 c c e g2
+ c'''8 c c e g2
c4 g g2
}
@cindex cue notes, removing
@funindex \killCues
-@funindex killCues
-@funindex \addInstrumentDefinition
-@funindex addInstrumentDefinition
The @code{\killCues} command removes cue notes from a music
expression, so the same music expression can be used to produce
tagged for selective inclusion in the score; see @ref{Using tags}.
@lilypond[verbatim,quote]
-fluteNotes = \relative c'' {
- r2. c4 d8 c d e fis2 g2 d2
+fluteNotes = \relative {
+ r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
R1
\tag #'part {
\clef treble
- \new CueVoice { \set instrumentCueName = "flute" }
+ <>^\markup \tiny { flute }
}
\cueDuring #"flute" #UP { R1 }
\tag #'part \clef bass