X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fstaff.itely;h=b1d47765da5a93a44bc020566946c2f4b257938f;hb=13cfd8beeed2a99d3989a70769f078d6a02a8021;hp=da6a42b7006740791577ea1d2d7c9fba4405b648;hpb=f643c5aab8d4567b1e54c88c14f46a42cccec334;p=lilypond.git diff --git a/Documentation/user/staff.itely b/Documentation/user/staff.itely index da6a42b700..b1d47765da 100644 --- a/Documentation/user/staff.itely +++ b/Documentation/user/staff.itely @@ -1,9 +1,25 @@ @c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore @node Staff notation @section Staff notation -staff = singular, staves = plural +@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] +{staff-headword.ly} + +Notes, dynamic signs, rests, 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 @code{GrandStaff}, a +@code{StaffGroup}, or a @code{ChoirStaff}. + @menu * Displaying staves:: @@ -21,22 +37,24 @@ staff = singular, staves = plural @end menu @node System start delimiters -@unnumberedsubsubsec System start delimiters +@subsubsection System start delimiters @cindex start of system -@cindex Staff, multiple +@cindex staff, multiple @cindex bracket, vertical @cindex brace, vertical @cindex grand staff @cindex staff group @cindex staff, choir +@cindex system Many scores consist of more than one staff. These staves can be -joined in four different ways +grouped in several different ways: -@itemize @bullet -@item The group is started with a brace at the left, and bar lines are -connected. This is done with the @internalsref{GrandStaff} context. +@itemize +@item +In a @code{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 @@ -46,9 +64,9 @@ connected. This is done with the @internalsref{GrandStaff} context. >> @end lilypond -@item The group is started with a bracket, and bar lines are connected. -This is done with the -@internalsref{StaffGroup} context +@item +In a @code{StaffGroup}, the bar lines will be drawn through +all the staves, but the group is started with a bracket. @lilypond[verbatim,ragged-right,quote] \new StaffGroup @@ -58,8 +76,9 @@ This is done with the >> @end lilypond -@item The group is started with a bracket, but bar lines are not -connected. This is done with the @internalsref{ChoirStaff} context. +@item +In a @code{ChoirStaff}, the group is started with a +bracket, but bar lines are not connected. @lilypond[verbatim,ragged-right,quote] \new ChoirStaff @@ -69,8 +88,10 @@ connected. This is done with the @internalsref{ChoirStaff} context. >> @end lilypond -@item The group is started with a vertical line. Bar lines are not -connected. This is the default for the score. +@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. @lilypond[verbatim,ragged-right,quote] \relative << @@ -80,25 +101,35 @@ connected. This is the default for the score. @end lilypond @end itemize +@cindex Mensurstriche layout +@cindex Renaissance music -@seealso +In addition to these four staff group types, other groupings can +be produced by changing various properties. E.g., the +@q{Mensurstriche} layout common in Renaissance music, with +bar lines running between but not through the staves, can be +produced from a @code{StaffGroup} or @code{GrandStaff} context if +the bar lines 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 +@c @lsr{staff,staff-brackets.ly} +@c snippet 137 @commonprop -System start delimiters may be deeply nested, +More complex nesting can be accomplished using the property +@code{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 } @@ -107,24 +138,46 @@ System start delimiters may be deeply nested, >> @end lilypond +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 + +@c FIXME: Graham will deal with this. -gp +@c snippet 201 +To display a bracket even if there is only one staff, see +@c @lsr{staff,display-bracket-with-only-one-staff-in-a system.ly} + +@seealso + +Music Glossary: @rglos{brace}, @rglos{staff}, @rglos{staves} +@rglos{bracket}. + +Snippets: @lsrdir{Staff,Staff-notation} + +Internals Reference: @internalsref{ChoirStaff}, +@internalsref{GrandStaff}, @internalsref{StaffGroup}, +@internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, +@internalsref{SystemStartBracket}, +@internalsref{systemStartDelimiterHierarchy}. + @node Staff symbol -@unnumberedsubsubsec Staff symbol +@subsubsection Staff symbol @cindex adjusting 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}. - -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}. +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 +@c @lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and +@c @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 @@ -136,12 +189,44 @@ b b b b @end lilypond -In combination with Frenched staves, this may be used to typeset ossia -sections. An example is shown here - +@cindex staves, Frenched @cindex ossia +@cindex Frenched staves + +In combination with Frenched staves, this may be used to typeset +@emph{ossia} sections. An example is shown here -@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 @@ -150,29 +235,33 @@ sections. An example is shown here @seealso -Program reference: @internalsref{StaffSymbol}. +Music Glossary: @rglos{ossia}, @rglos{staff}, @rglos{Frenched staff}. -Examples: @lsrdir{staff} +Snippets: @lsrdir{Staff,Staff-notation} + +Internals Reference: @internalsref{StaffSymbol}, +@internalsref{DrumStaff}. @node Hiding staves -@unnumberedsubsubsec Hiding staves +@subsubsection Hiding staves @cindex Frenched scores -@cindex Hiding staves +@cindex staves, hiding +@cindex staves, empty In orchestral scores, staff lines that only have rests are usually -removed; this saves some space. This style is called @q{French Score}. -For @internalsref{Lyrics}, -@internalsref{ChordNames} and @internalsref{FiguredBass}, this is -switched on by default. When the lines of these contexts turn out -empty after the line-breaking process, they are removed. +removed; this saves some space. This style is called @q{French +Score}. For @code{Lyrics}, @code{ChordNames} and +@code{FiguredBass}, this is switched on by default. When +the lines of these contexts turn out empty after the line-breaking +process, they are removed. -For normal staves, a specialized @internalsref{Staff} context is +For normal staves, a specialized @code{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 { @@ -187,22 +276,50 @@ 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 @code{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}. + +@cindex ossia + +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}. + +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 + +@seealso -Another application is making ossia sections, i.e., alternative -melodies on a separate piece of staff, with help of a Frenched -staff. +Notation Reference: @ref{Staff symbol}. +Snippets: @lsrdir{Staff,Staff-notation} +Internals Reference: @internalsref{ChordNames}, +@internalsref{FiguredBass}, @internalsref{Lyrics}, +@internalsref{Staff}, @internalsref{VerticalAxisGroup}. @node Writing parts @subsection Writing parts @@ -215,20 +332,23 @@ staff. @end menu @node Metronome marks -@unnumberedsubsubsec Metronome marks +@subsubsection Metronome marks @cindex Tempo @cindex beats per minute @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 @@ -236,11 +356,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] @@ -253,40 +371,53 @@ c4^\markup { @end lilypond @noindent -See @ref{Text markup}, for more details. +For more details, see @ref{Text markup}. @seealso -Program reference: @internalsref{MetronomeMark}. +Music Glossary: @rglos{metronome}, @rglos{metronomic indication}, +@rglos{tempo indication}, @rglos{metronome mark}. + +Notation Reference: @ref{Text markup}. + +Snippets: @lsrdir{Staff,Staff-notation}. + +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 +@subsubsection Instrument names + +@cindex instrument names +@cindex instrument names, short -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 -@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. +This can be achieved by setting @code{Staff}.@code{instrumentName} and +@code{Staff}.@code{shortInstrumentName}, or +@code{PianoStaff}.@code{instrumentName} and +@code{PianoStaff}.@code{shortInstrumentName}. This will 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 " @@ -296,8 +427,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 { @@ -306,7 +437,10 @@ names, for example c''1 @end lilypond -If you wish to center the instrument names, you must center all of them +@cindex instrument names, centering + +If you wish to center the instrument names, you must center all of +them individually: @lilypond[quote,verbatim,ragged-right] { << @@ -317,7 +451,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 } >> @@ -333,19 +468,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@{ @@ -354,8 +491,10 @@ 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}. + +@cindex instrument names, changing Instrument names may be changed in the middle of a piece, @@ -373,17 +512,26 @@ c1 c c c \break @seealso -Program reference: @internalsref{InstrumentName}. +Notation Reference: @ref{Modifying context plug-ins}. + +Snippets: @lsrdir{Staff,Staff-notation} + +Internals Reference: @internalsref{InstrumentName}, +@internalsref{PianoStaff}, @internalsref{Staff}. @node Quoting other voices -@unnumberedsubsubsec Quoting other voices +@subsubsection Quoting other voices @cindex cues +@cindex quoting other voices +@cindex fragments +@cindex cue notes -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} @@ -391,8 +539,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' @{ @@ -401,34 +549,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' { @@ -441,11 +602,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 = @@ -453,37 +614,46 @@ 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 +Only the contents of the first @code{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}. +Notation Reference: @ref{Instrument transpositions}. -Examples: @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly} +Snippets: @lsrdir{Staff,Staff-notation} -Program reference: @internalsref{QuoteMusic}. +Internals Reference: @internalsref{QuoteMusic}, @internalsref{Voice}. @node Formatting cue notes -@unnumberedsubsubsec Formatting cue notes +@subsubsection Formatting cue notes +@cindex cues +@cindex cue notes +@cindex cue notes, formatting +@cindex fragments +@cindex quoting other voices @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 @@ -492,11 +662,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. +@code{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] @@ -530,38 +700,30 @@ smaller = { @end lilypond -Here are a couple of hints for successful cue notes +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. +@item 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''' { @@ -585,8 +747,10 @@ cbsn = \relative c, { >> @end lilypond +@seealso +Snippets: @lsrdir{Staff,Staff-notation}. - +Internals Reference: @internalsref{Voice}.