X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fstaff.itely;h=fab1f62cb51bd515fbe3acfe32cfc4e5ef2c2679;hb=86556b093195ee643543fbfae12a5f2ce2857101;hp=9eb2247b3a7ef86043b1bbfd39b67b20b11c6c6a;hpb=2591352f87779f2679e8dad6dc7655089de6b485;p=lilypond.git diff --git a/Documentation/user/staff.itely b/Documentation/user/staff.itely index 9eb2247b3a..fab1f62cb5 100644 --- a/Documentation/user/staff.itely +++ b/Documentation/user/staff.itely @@ -9,19 +9,15 @@ @node Staff notation @section Staff notation -Notes, dynamic signs, etc., are grouped -with a set of horizontal lines, called a staff (plural @q{staves}). In -LilyPond, these lines are drawn using a separate layout object called -@code{staff symbol}. +Notes, dynamic signs, etc., are grouped with a set of horizontal +lines, called a staff (plural @q{staves}). In LilyPond, these +lines are drawn using a separate layout object called @code{staff +symbol}. Two or more staves can be grouped vertically in a @internalsref{GrandStaff}, a @internalsref{StaffGroup}, or a @internalsref{ChoirStaff}. -@c It seemed awkward to have the general definition of a stave in the -@c second section, since it is already used in the first. I have moved it -@c here. - @menu * Displaying staves:: @@ -52,16 +48,10 @@ Two or more staves can be grouped vertically in a Many scores consist of more than one staff. These staves can be grouped in several different ways: -@c The fourth delimiter, SystemStartSquare, should also be mentioned, with a -@c reference to the relevant section, and a single line of code here showing -@c how to achieve it. - -@itemize @bullet +@itemize @item -In a @internalsref{GrandStaff}, -the group is started with a brace at the left, and bar lines are connected -between the staves. -@c Arpeggios can run through several staves of a @code{GrandStaff} +In a @internalsref{GrandStaff}, the group is started with a brace +at the left, and bar lines are connected between the staves. @lilypond[verbatim,ragged-right,quote] \new GrandStaff @@ -72,9 +62,8 @@ between the staves. @end lilypond @item -In a @internalsref{StaffGroup}, the barlines -will be drawn through all the staves, but the group is started with a -bracket. +In a @internalsref{StaffGroup}, the barlines will be drawn through +all the staves, but the group is started with a bracket. @lilypond[verbatim,ragged-right,quote] \new StaffGroup @@ -85,8 +74,8 @@ bracket. @end lilypond @item -In a @internalsref{ChoirStaff}, the group is started with a bracket, -but bar lines are not connected. +In a @internalsref{ChoirStaff}, the group is started with a +bracket, but bar lines are not connected. @lilypond[verbatim,ragged-right,quote] \new ChoirStaff @@ -97,9 +86,9 @@ but bar lines are not connected. @end lilypond @item -If no context is specified, the default properties for the score will -be used: the group is started with a vertical line, and the bar lines are -not connected. +If no context is specified, the default properties for the score +will be used: the group is started with a vertical line, and the +bar lines are not connected. @lilypond[verbatim,ragged-right,quote] \relative << @@ -111,32 +100,30 @@ not connected. In addition to these four staff group types, other groupings can be produced by changing various properties. E.g., the -"Mensurstriche" layout common in Renaissance music, with barlines -running between but not through the staves, can be produced from a -@code{StaffGroup} or @code{GrandStaff} context if the barlines are -made transparent in the @code{Staff} itself, with the command -@code{\override Staff.BarLine #'transparent = ##t} - -@seealso +@q{Mensurstriche} layout common in Renaissance music, with +barlines running between but not through the staves, can be +produced from a @code{StaffGroup} or @code{GrandStaff} context if +the barlines are made transparent in the @code{Staff} itself, with +the command @code{\override Staff.BarLine #'transparent = ##t} -The bar lines at the start of each system are -@internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and -@internalsref{SystemStartBracket}. Only one of these types is created -in every context, and that type is determined by the property -@code{systemStartDelimiter}. +@cindex staff, nested +Staff groups can be nested, using the context +@code{InnerStaffGroup} or @code{InnerChoirStaff}; see +@lsr{staff,staff-brackets.ly} +@c snippet 137 @commonprop -@c Is it possible to use other headings than this one? It's not very -@c informative... "Nesting braces and brackets" would be better, imho. -System start delimiters may be deeply nested, +More complex nesting can be accomplished using the property +@internalsref{systemStartDelimiterHierarchy}: @lilypond[quote,ragged-right,verbatim] \new StaffGroup \relative << \set StaffGroup.systemStartDelimiterHierarchy - = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d) + = #'(SystemStartSquare (SystemStartBracket a + (SystemStartSquare b)) d) \new Staff { c1 } \new Staff { c1 } \new Staff { c1 } @@ -145,20 +132,36 @@ System start delimiters may be deeply nested, >> @end lilypond +@seealso + +Each staff group context sets the property +@code{systemStartDelimiter} to one of the values +@internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, +and @internalsref{SystemStartBracket}. A fourth delimiter, +@code{systemStartSquare}, is also available, but must be +instantiated manually. + +@commonprop + +To display a bracket even if there is only one staff, see +@lsr{staff,display-bracket-with-only-one-staff-in-a +system.ly} +@c snippet 201 @node Staff symbol @unnumberedsubsubsec Staff symbol @cindex adjusting staff symbol -The layout object which draws the lines of a staff is called @code{staff -symbol}. The staff symbol may be tuned in the number, thickness and -distance of lines, using properties. This is demonstrated in the example -files @lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and +The layout object which draws the lines of a staff is called +@code{staff symbol}. The staff symbol may be tuned in the number, +thickness and distance of lines, using properties. This is +demonstrated in the example files +@lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and @lsr{staff,changing-the-staff-size.ly}. -In addition, staves may be started and stopped at will. This is done -with @code{\startStaff} and @code{\stopStaff}. +In addition, staves may be started and stopped at will. This is +done with @code{\startStaff} and @code{\stopStaff}. @lilypond[verbatim,relative=2,fragment] b4 b @@ -170,12 +173,43 @@ b b b b @end lilypond -In combination with Frenched staves, this may be used to typeset ossia -sections. An example is shown here +In combination with Frenched staves, this may be used to typeset +@emph{ossia} sections. An example is shown here +@cindex staves, Frenched @cindex ossia -@lilypondfile{ossia.ly} +@lilypond[verbatim,relative=2,quote] +<< + \new Staff \with + { + \remove "Time_signature_engraver" + fontSize = #-2 + \override StaffSymbol #'staff-space = #(magstep -2) + firstClef = ##f + } + \relative c'' { + \stopStaff + \skip 2 + + \startStaff + \clef treble + bes8[^"ossia" g bes g] + \stopStaff + + s2 + + \startStaff + f8 d g4 + } + \new Staff \relative + { + \time 2/4 + c4 c g' g a a g2 + } + +>> +@end lilypond @cindex staff lines, setting number of @cindex staff lines, setting thickness of @@ -184,7 +218,8 @@ sections. An example is shown here @seealso -Program reference: @internalsref{StaffSymbol}. +Internals Reference: @internalsref{StaffSymbol}, +@internalsref{DrumStaff}. Examples: @lsrdir{staff} @@ -193,7 +228,7 @@ Examples: @lsrdir{staff} @unnumberedsubsubsec Hiding staves @cindex Frenched scores -@cindex Hiding staves +@cindex staves, hiding In orchestral scores, staff lines that only have rests are usually removed; this saves some space. This style is called @q{French @@ -204,9 +239,9 @@ process, they are removed. For normal staves, a specialized @internalsref{Staff} context is available, which does the same: staves containing nothing (or only -multi-measure rests) are removed. The context definition is stored in -@code{\RemoveEmptyStaffContext} variable. Observe how the second staff -in this example disappears in the second line +multi-measure rests) are removed. The context definition is +stored in @code{\RemoveEmptyStaffContext} variable. Observe how +the second staff in this example disappears in the second line @lilypond[quote,ragged-right,verbatim] \layout { @@ -221,22 +256,38 @@ in this example disappears in the second line } @end lilypond -The first system shows all staves in full. If empty staves should be -removed from the first system too, set @code{remove-first} to true in -@internalsref{VerticalAxisGroup}. +The first system shows all staves in full. If empty staves should +be removed from the first system too, set @code{remove-first} to +true in @internalsref{VerticalAxisGroup}. @example \override Score.VerticalAxisGroup #'remove-first = ##t @end example -To remove other types of contexts, use @code{\AncientRemoveEmptyStaffContext} -or @code{\RemoveEmptyRhythmicStaffContext}. +To remove other types of contexts, use +@code{\AncientRemoveEmptyStaffContext} or +@code{\RemoveEmptyRhythmicStaffContext}. + +Another application of the @code{\RemoveEmptyStaffContext} is to +make ossia sections, i.e., alternative melodies on a separate +piece of staff, with help of a Frenched staff. See @ref{Staff +symbol}. -Another application is making ossia sections, i.e., alternative -melodies on a separate piece of staff, with help of a Frenched -staff. +You can make the staff lines invisible by removing the +@code{Staff_symbol_engraver} from the @code{Staff} context. +@lilypond[quote,ragged-right,verbatim] +\score { + \context Staff \relative c'' { c8 c c16 c c c } + \layout{ + \context { + \Staff + \remove Staff_symbol_engraver + } + } +} +@end lilypond @node Writing parts @subsection Writing parts @@ -256,13 +307,16 @@ staff. @cindex metronome marking Metronome settings can be entered as follows + @example \tempo @var{duration} = @var{per-minute} @end example -In the MIDI output, they are interpreted as a tempo change. In the -layout output, a metronome marking is printed +In the MIDI output, they are interpreted as a tempo change. In +the layout output, a metronome marking is printed + @funindex \tempo + @lilypond[quote,ragged-right,verbatim,fragment] \tempo 8.=120 c''1 @end lilypond @@ -270,11 +324,9 @@ layout output, a metronome marking is printed @commonprop -To change the tempo in the MIDI output without printing anything, make -the metronome marking invisible -@example -\once \override Score.MetronomeMark #'transparent = ##t -@end example +To change the tempo in the MIDI output without printing anything, +make the metronome marking invisible @example \once \override +Score.MetronomeMark #'transparent = ##t @end example To print other metronome markings, use these markup commands @lilypond[quote,ragged-right,verbatim,relative,fragment] @@ -287,40 +339,43 @@ c4^\markup { @end lilypond @noindent -See @ref{Text markup}, for more details. +For more details, see @ref{Text markup}. @seealso -Program reference: @internalsref{MetronomeMark}. +Internals Reference: @internalsref{MetronomeMark}, @ref{MIDI +output}. @refbugs -Collisions are not checked. If you have notes above the top line of -the staff (or notes with articulations, slurs, text, etc), then the -metronome marking may be printed on top of musical symbols. If this -occurs, increase the padding of the metronome mark to place it -further away from the staff. +Collisions are not checked. If you have notes above the top line +of the staff (or notes with articulations, slurs, text, etc), then +the metronome marking may be printed on top of musical symbols. +If this occurs, increase the padding of the metronome mark to +place it further away from the staff. @example \override Score.MetronomeMark #'padding = #2.5 @end example +@c perhaps also an example of how to move it horizontally? @node Instrument names @unnumberedsubsubsec Instrument names -In an orchestral score, instrument names are printed at the left side -of the staves. +In an orchestral score, instrument names are printed at the left +side of the staves. -This can be achieved by setting @internalsref{Staff}.@code{instrumentName} -and @internalsref{Staff}.@code{shortInstrumentName}, or +This can be achieved by setting +@internalsref{Staff}.@code{instrumentName} and +@internalsref{Staff}.@code{shortInstrumentName}, or @internalsref{PianoStaff}.@code{instrumentName} and @internalsref{PianoStaff}.@code{shortInstrumentName}. This will -print text before -the start of the staff. For the first staff, @code{instrumentName} is -used, for the following ones, @code{shortInstrumentName} is used. +print text before the start of the staff. For the first staff, +@code{instrumentName} is used. If set, @code{shortInstrumentName} +is used for the following staves. @lilypond[quote,verbatim,ragged-right,relative=1,fragment] \set Staff.instrumentName = "Ploink " @@ -330,8 +385,8 @@ c1 c'' @end lilypond -You can also use markup texts to construct more complicated instrument -names, for example +You can also use markup texts to construct more complicated +instrument names, for example @lilypond[quote,fragment,verbatim,ragged-right] \set Staff.instrumentName = \markup { @@ -340,7 +395,8 @@ names, for example c''1 @end lilypond -If you wish to center the instrument names, you must center all of them +If you wish to center the instrument names, you must center all of +them individually: @lilypond[quote,verbatim,ragged-right] { << @@ -351,7 +407,8 @@ If you wish to center the instrument names, you must center all of them c''1 } \new Staff { - \set Staff.instrumentName = \markup{ \center-align { Vibraphone }} + \set Staff.instrumentName = + \markup{ \center-align { Vibraphone }} c''1 } >> @@ -367,19 +424,21 @@ To center instrument names while leaving extra space to the right, \new StaffGroup \relative << \new Staff { - \set Staff.instrumentName = \markup { \hcenter-in #10 "blabla" } + \set Staff.instrumentName = + \markup { \hcenter-in #10 "blabla" } c1 c1 } \new Staff { - \set Staff.instrumentName = \markup { \hcenter-in #10 "blo" } + \set Staff.instrumentName = + \markup { \hcenter-in #10 "blo" } c1 c1 } >> @end lilypond -To add instrument names to other contexts (such as @code{GrandStaff}, -@code{ChoirStaff}, or @code{StaffGroup}), the engraver must -be added to that context. +To add instrument names to other contexts (such as +@code{GrandStaff}, @code{ChoirStaff}, or @code{StaffGroup}), the +engraver must be added to that context. @example \layout@{ @@ -388,8 +447,8 @@ be added to that context. @end example @noindent -More information about adding and removing engravers can -be found in @ref{Modifying context plug-ins}. +More information about adding and removing engravers can be found +in @ref{Modifying context plug-ins}. Instrument names may be changed in the middle of a piece, @@ -407,7 +466,7 @@ c1 c c c \break @seealso -Program reference: @internalsref{InstrumentName}. +Internals Reference: @internalsref{InstrumentName}. @node Quoting other voices @@ -415,9 +474,10 @@ Program reference: @internalsref{InstrumentName}. @cindex cues -With quotations, fragments of other parts can be inserted into a part -directly. Before a part can be quoted, it must be marked especially as -quotable. This is done with the @code{\addQuote} command. +With quotations, fragments of other parts can be inserted into a +part directly. Before a part can be quoted, it must be marked +especially as quotable. This is done with the @code{\addQuote} +command. @example \addQuote @var{name} @var{music} @@ -425,8 +485,8 @@ quotable. This is done with the @code{\addQuote} command. @noindent -Here, @var{name} is an identifying string. The @var{music} is any kind -of music. Here is an example of @code{\addQuote} +Here, @var{name} is an identifying string. The @var{music} is any +kind of music. Here is an example of @code{\addQuote} @example \addQuote clarinet \relative c' @{ @@ -435,34 +495,47 @@ of music. Here is an example of @code{\addQuote} @end example This command must be entered at toplevel, i.e., outside any music -blocks. +blocks. Typically, one would use an already defined music event +as the @var{music}: + +@example +clarinet = \relative c' @{ + f4 fis g gis +@} +\addQuote clarinet @{ \clarinet @} +@end example + -After calling @code{\addQuote}, the quotation may then be done with -@code{\quoteDuring} or @code{\cueDuring}, +After calling @code{\addQuote}, the quotation may then be done +with @code{\quoteDuring} or @code{\cueDuring}, @example \quoteDuring #@var{name} @var{music} @end example -During a part, a piece of music can be quoted with the @code{\quoteDuring} -command. +During a part, a piece of music can be quoted with the +@code{\quoteDuring} command. @example \quoteDuring #"clarinet" @{ s2. @} @end example -This would cite three quarter notes (the duration of @code{s2.}) of -the previously added @code{clarinet} voice. - +This would cite three quarter notes (the duration of @code{s2.}) +of the previously added @code{clarinet} voice. More precisely, it takes the current time-step of the part being printed, and extracts the notes at the corresponding point of the -@code{\addQuote}d voice. Therefore, the argument to @code{\addQuote} -should be the entire part of the voice to be quoted, including any -rests at the beginning. +@code{\addQuote}d voice. Therefore, the argument to +@code{\addQuote} should be the entire part of the voice to be +quoted, including any rests at the beginning. + +It is possible to use another music expression instead of +@code{s}, thus creating a polyphonic section, but this may not +always give the desired result. -Quotations take into account the transposition of both source and target -instruments, if they are specified using the @code{\transposition} command. +Quotations take into account the transposition of both source and +target instruments, if they are specified using the +@code{\transposition} command. @lilypond[quote,ragged-right,verbatim] \addQuote clarinet \relative c' { @@ -475,11 +548,11 @@ instruments, if they are specified using the @code{\transposition} command. } @end lilypond -The type of events that are present in cue notes can be trimmed with -the @code{quotedEventTypes} property. The default value is -@code{(note-event rest-event)}, which means that only notes and -rests of the cued voice end up in the @code{\quoteDuring}. -Setting +The type of events that are present in the quoted music can be +trimmed with the @code{quotedEventTypes} property. The default +value is @code{(note-event rest-event)}, which means that only +notes and rests of the quoted voice end up in the +@code{\quoteDuring}. Setting @example \set Staff.quotedEventTypes = @@ -487,27 +560,32 @@ Setting @end example @noindent -will quote notes (but no rests), together with scripts and dynamics. +will quote notes (but no rests), together with scripts and +dynamics. @refbugs -Only the contents of the first @internalsref{Voice} occurring in an -@code{\addQuote} command will be considered for quotation, so +Only the contents of the first @internalsref{Voice} occurring in +an @code{\addQuote} command will be considered for quotation, so @var{music} can not 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. +Quoting grace notes is broken and can even cause LilyPond to +crash. Quoting nested triplets may result in poor notation. +In earlier versions of LilyPond (pre 2.11), @code{addQuote} was +written entirely in lower-case letters: @code{\addquote}. @seealso In this manual: @ref{Instrument transpositions}. -Examples: @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly} +Examples: @lsr{parts,quote.ly}, +@lsr{parts,quote-transportation.ly} -Program reference: @internalsref{QuoteMusic}. +Internals Reference: @internalsref{QuoteMusic}. @node Formatting cue notes @@ -515,9 +593,9 @@ Program reference: @internalsref{QuoteMusic}. @cindex cues, formatting -The previous section deals with inserting notes from another voice. -There is a more advanced music function called @code{\cueDuring}, -which makes formatting cue notes easier. +The previous section deals with inserting notes from another +voice. There is a more advanced music function called +@code{\cueDuring}, which makes formatting cue notes easier. The syntax is @@ -526,11 +604,11 @@ The syntax is @end example This will insert notes from the part @var{name} into a -@internalsref{Voice} called @code{cue}. This happens simultaneously -with @var{music}, which usually is a rest. When the cue notes start, -the staff in effect becomes polyphonic for a moment. The argument -@var{updown} determines whether the cue notes should be notated as a -first or second voice. +@internalsref{Voice} called @code{cue}. This happens +simultaneously with @var{music}, which usually is a rest. When +the cue notes start, the staff in effect becomes polyphonic for a +moment. The argument @var{updown} determines whether the cue +notes should be notated as a first or second voice. @lilypond[verbatim,ragged-right] @@ -566,36 +644,27 @@ smaller = { Here are a couple of hints for successful cue notes -@itemize @bullet +@itemize @item Cue notes have smaller font sizes. -@item - the cued part is marked with the instrument playing the cue. -@item - when the original part takes over again, this should be marked with - the name of the original instrument. - -@c really? Are you sure about that last point? I'll check after 3.0 -gp -@c Yes, this is good practice. Otherwise, the start of the original -@c part can only be seen from the font size. This is not good enough -@c for sight-reading. It is possilbe to use other -@c markers (e.g. a big close-bracket over the staff) to indicate the cue -@c notes are -@c finished. -@c -hwn +@item +the cued part is marked with the instrument playing the cue. +@item +when the original part takes over again, this should be marked +with the name of the original instrument. Any other changes introduced by the cued part should also be -undone. For example, if the cued instrument plays in a different clef, -the original clef should be stated once again. +undone. For example, if the cued instrument plays in a different +clef, the original clef should be stated once again. @end itemize -The macro @code{\transposedCueDuring} is -useful to add cues to instruments which use a completely different -octave range (for example, having a cue of a piccolo flute within -a contra bassoon part). +The macro @code{\transposedCueDuring} is useful to add cues to +instruments which use a completely different octave range (for +example, having a cue of a piccolo flute within a contra bassoon +part). @lilypond[verbatim,ragged-right,quote] picc = \relative c''' {