]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/staff.itely
Run scripts/auxiliar/update-with-convert-ly.sh -f 2.19.20
[lilypond.git] / Documentation / notation / staff.itely
index b1558e72dfef9f3fae3886e528f9020a4385690b..2ad184bc1f0ac14bae2accdf878f836024113798 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.17.6"
+@c \version "2.19.21"
 
 @node Staff notation
 @section Staff notation
@@ -69,7 +69,7 @@ grouping staves.
 
 @notation{Staves} (singular: @notation{staff}) are created with
 the @code{\new} or @code{\context} commands.  For details, see
-@ref{Creating contexts}.
+@ref{Creating and referencing contexts}.
 
 The basic staff context is @code{Staff}:
 
@@ -124,7 +124,7 @@ Music Glossary:
 @rglos{staves}.
 
 Notation Reference:
-@ref{Creating contexts},
+@ref{Creating and referencing contexts},
 @ref{Percussion staves},
 @ref{Showing melody rhythms},
 @ref{Default tablatures},
@@ -274,9 +274,6 @@ Internals Reference:
 @rinternals{SystemStartBracket},
 @rinternals{SystemStartSquare}.
 
-@knownissues
-@code{PianoStaff} does not, by default, accept @code{ChordNames}.
-
 
 @node Nested staff groups
 @unnumberedsubsubsec Nested staff groups
@@ -353,15 +350,15 @@ turned on with a @code{\paper} option.
   \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
         }
@@ -432,10 +429,10 @@ f'4 d \startStaff g, e
 @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
@@ -447,11 +444,12 @@ f'4 d \stopStaff
 \startStaff g, e |
 @end lilypond
 
-The position of each the staff lines can also be altered.  The values
-used are @emph{half} staff line spaces and the new position is relative
-to the normal center line.  A single staff line is printed for every
-value entered so that the number of staff lines, as well as their
-position in the staff, can be changed with a single override.
+The position of each staff line can also be altered.  A list of
+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
+well as their position, can be changed with a single override.
 
 @lilypond[verbatim,quote,relative=2]
 f4 d \stopStaff
@@ -462,8 +460,12 @@ f'4 d \stopStaff
 \startStaff g, e
 @end lilypond
 
-The clef position and the position of middle C may need to be adjusted
-accordingly to fit the new lines.  See @ref{Clef}.
+To preserve typical stem directions (in the bottom half of the staff
+stems point up, in the top half they point down), align the center
+line (or space) of the customized staff with the position of the
+normal center line (0).  The clef position and the position of
+middle@tie{}C may need to be adjusted accordingly to fit the new
+lines.  See @ref{Clef}.
 
 Staff line thickness can be altered.  Ledger lines and note stems, by
 default, are also affected.
@@ -475,10 +477,8 @@ default, are also affected.
 { 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 {
@@ -488,6 +488,11 @@ ledger line thickness.
 { 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]
@@ -508,14 +513,14 @@ also have their own ledger lines.
 { f'4 a, d, f, }
 @end lilypond
 
-Legder lines can also be made to appear inside the staff where custom
+Ledger lines can also be made to appear inside the staff where custom
 staff lines are required.  The example shows the default position of
-ledger lines when the explicit @code{legder-position} is and is not set.
-The @code{stopStaff} is needed in the example to revert the
+ledger lines when the explicit @code{ledger-position} is and is not set.
+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
@@ -572,8 +577,8 @@ Internals Reference:
 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 }
@@ -595,17 +600,15 @@ to align the ossia staff.  This method is most appropriate when
 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 }
@@ -624,20 +627,18 @@ example.
 
 @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
       }
     >>
@@ -645,7 +646,7 @@ example.
     c4 b c2
     <<
       { g4 a g2 }
-      \context Staff = ossia {
+      \context Staff = "ossia" {
         \startStaff g4 e8 f g2 \stopStaff
       }
     >>
@@ -663,18 +664,16 @@ break.  For more information about
 
 @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
@@ -742,7 +741,7 @@ alternative, @code{\stopStaff} may be used.
 \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
 
 
@@ -763,9 +762,9 @@ elements.}
   }
 }
 
-\relative c' <<
+\relative <<
   \new Staff {
-    e4 f g a \break
+    e'4 f g a \break
     b1 \break
     a4 b c2
   }
@@ -839,7 +838,7 @@ this case, use the following overrides instead of removing the
 engraver:
 
 @example
-\override StaffSymbol.stencil = ##f
+\omit StaffSymbol
 \override NoteHead.no-ledgers = ##t
 @end example
 
@@ -925,17 +924,17 @@ multi-line instrument names, @code{\center-column} must be used:
 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'' {
+\relative {
   <<
     \new Staff \with {
       instrumentName = #"Alto Flute in G"
       shortInstrumentName = #"Flt."
     }
     {
-      f2 g4 f \break
+      f''2 g4 f \break
       g4 f g2
     }
     \new Staff \with {
@@ -964,70 +963,52 @@ that context.  For details, see @ref{Modifying context plug-ins}.
 @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:
@@ -1069,12 +1050,12 @@ quoted voice, as defined with @code{\addQuote}, and a music expression
 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 }
@@ -1092,12 +1073,12 @@ instead of spacer or multimeasure rests then the quote will appear as
 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 }
@@ -1121,8 +1102,8 @@ clarinetNotes = \relative c'' {
   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 }
@@ -1152,13 +1133,13 @@ of these objects from the quoted music are displayed by using the
 @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 }
 }
 
@@ -1295,13 +1276,13 @@ corresponds to the first and second voices respectively, determining how
 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,
 }
@@ -1329,8 +1310,8 @@ or else the entire music expression would belong to the @code{CueVoice}
 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 }
@@ -1344,24 +1325,21 @@ oboeNotes = \relative c'' {
 }
 @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
@@ -1380,14 +1358,14 @@ clef that needs to be printed for the cue notes but will automatically
 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
 }
@@ -1414,10 +1392,10 @@ 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]
-piccoloNotes = \relative c''' {
+piccoloNotes = \relative {
   \clef "treble^8"
   R1
-  c8 c c e g2
+  c'''8 c c e g2
   c4 g g2
 }
 
@@ -1442,8 +1420,6 @@ bassClarinetNotes = \relative c' {
 
 @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
@@ -1454,8 +1430,8 @@ changes and a label identifying the source instrument, can be
 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 {
@@ -1463,7 +1439,7 @@ bassoonNotes = \relative c {
   R1
   \tag #'part {
     \clef treble
-    \new CueVoice { \set instrumentCueName = "flute" }
+    <>^\markup \tiny { flute }
   }
   \cueDuring #"flute" #UP { R1 }
   \tag #'part \clef bass