Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.6"
+@c \version "2.19.21"
@node Staff notation
@section Staff notation
@rinternals{SystemStartBracket},
@rinternals{SystemStartSquare}.
-@knownissues
-@code{PianoStaff} does not, by default, accept @code{ChordNames}.
-
@node Nested staff groups
@unnumberedsubsubsec Nested staff groups
\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
}
@endpredefined
The lines of a staff belong to the @code{StaffSymbol} grob (including
-ledger lines) can be modified using @code{StaffSymbol} properties, but
+ledger lines) and can be modified using @code{StaffSymbol} properties, but
these modifications must be made before the staff is (re)started.
-The number of staff lines can be altered,
+The number of staff lines can be altered:
@lilypond[verbatim,quote,relative=2]
f4 d \stopStaff
@end lilypond
The position of each staff line can also be altered. A list of
-numbers sets each line's position. @code{0} corresponds to the normal
+numbers sets each line's position. @code{0}@tie{}corresponds to the normal
center line, and the normal line positions are
@code{(-4@tie{}-2@tie{}0@tie{}2@tie{}4)}. A single staff line is
printed for every value entered so that the number of staff lines, as
{ f4 d g, e }
@end lilypond
-However, it is possible to set ledger line thickness independently of
-staff lines. The two values required multiply the staff line thickness
-with the staff line spacing and are then added together to give the
-ledger line thickness.
+It is also possible to set ledger line thickness independently of staff
+lines.
@lilypond[verbatim,quote,relative=2]
\new Staff \with {
{ f'4 a, a,, f }
@end lilypond
+@noindent
+The first value is multiplied by the staff line thickness, the second by
+the staff space and then the two values are added together to give the
+new thickness of the ledger line.
+
The vertical positions of ledger lines can be altered,
@lilypond[verbatim,quote,relative=2]
The @code{\stopStaff} is needed in the example to revert the
@code{\override} for the whole @code{StaffSymbol}.
-@lilypond[fragment,quote,relative=1]
-\override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
+@lilypond[verbatim,quote,relative=1]
+\override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
d4 e f g
\stopStaff
\startStaff
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 }
@lilypond[verbatim,quote,ragged-right]
<<
- \new Staff = ossia \with {
+ \new Staff = "ossia" \with {
\remove "Time_signature_engraver"
- \override Clef.transparent = ##t
- fontSize = #-3
- \override StaffSymbol.staff-space = #(magstep -3)
- \override StaffSymbol.thickness = #(magstep -3)
+ \hide Clef
+ \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 {
+ \context Staff = "ossia" {
\startStaff e4 g8 f e2 \stopStaff
}
>>
c4 b c2
<<
{ g4 a g2 }
- \context Staff = ossia {
+ \context Staff = "ossia" {
\startStaff g4 e8 f g2 \stopStaff
}
>>
@lilypond[verbatim,quote,ragged-right]
<<
- \new Staff = ossia \with {
+ \new Staff = "ossia" \with {
\remove "Time_signature_engraver"
- \override Clef.transparent = ##t
- fontSize = #-3
- \override StaffSymbol.staff-space = #(magstep -3)
- \override StaffSymbol.thickness = #(magstep -3)
- } \relative c'' {
+ \hide Clef
+ \magnifyStaff #2/3
+ } \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
\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
}
}
-\relative c' <<
+\relative <<
\new Staff {
- e4 f g a \break
+ e'4 f g a \break
b1 \break
a4 b c2
}
engraver:
@example
-\override StaffSymbol.stencil = ##f
+\omit StaffSymbol
\override NoteHead.no-ledgers = ##t
@end example
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{\paper variables for shifts and indents}.
+settings, see @ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@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
+@lilypond[verbatim,quote,ragged-right]
+prepPiccolo = <>^\markup \italic { muta in Piccolo }
+
+setPiccolo = {
+ \set Staff.instrumentName = #"Piccolo"
+ \set Staff.shortInstrumentName = #"Picc."
+ \set Staff.midiInstrument = #"piccolo"
+ <>^\markup \bold { Piccolo }
+ \transposition c''
}
-@end lilypond
-
-@cindex instrument switch
-@cindex switching instruments
-@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:
-
-@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 = {
+ \set Staff.instrumentName = #"Flute"
+ \set Staff.shortInstrumentName = #"Flt."
+ \set Staff.midiInstrument = #"flute"
+ <>^\markup \bold { Flute }
+ \transposition c'
+}
\new Staff \with {
- instrumentName = #"Bassoon"
+ instrumentName = #"Flute"
+ shortInstrumentName = #"Flt."
+ midiInstrument = #"flute"
}
-\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
+ \setPiccolo
+ g1 g g g \break
+ g1 g \prepFlute R R \break
+ \setFlute
+ g1 g g g
}
@end lilypond
+
@seealso
Notation Reference:
-@ref{\paper variables for shifts and indents},
+@ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents},
@ref{Modifying context plug-ins}.
Snippets:
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 }
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 }
}
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,
}
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
}
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
}
@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