X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fstaff.itely;h=f567b559e9d3282db251382bb6f26b8a743567ee;hb=3fad7447039ca31737dc5c6d117b07bb0a1f0a67;hp=f26c2c58039ad5e129057c5eb0dce1846901dac8;hpb=ce49c007e453c5575cc82fc0c26f2d1e8ff11803;p=lilypond.git diff --git a/Documentation/user/staff.itely b/Documentation/user/staff.itely index f26c2c5803..f567b559e9 100644 --- a/Documentation/user/staff.itely +++ b/Documentation/user/staff.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.57" +@c \version "2.11.61" @node Staff notation @section Staff notation @@ -27,16 +27,16 @@ performance marks to single staves. @node Displaying staves @subsection Displaying staves -This section shows the different possibilities of creating and -grouping staves, which are marked at the beginning of each line -with either a bracket or a brace. +This section describes the different methods of creating and +grouping staves. @menu * Instantiating new staves:: * Grouping staves:: -* Deeper nested staff groups:: +* Nested staff groups:: @end menu + @node Instantiating new staves @unnumberedsubsubsec Instantiating new staves @@ -78,7 +78,7 @@ For details, see @ref{Percussion staves}. modern Gregorian chant. It does not show bar lines. @lilypond[verbatim,quote,relative=2] -\new GregorianTranscriptionStaff { c4 d e f } +\new GregorianTranscriptionStaff { c4 d e f e d } @end lilypond @code{RhythmicStaff} creates a single-line staff that only @@ -100,9 +100,8 @@ There are two staff contexts specific for the notation of ancient music: @code{MensuralStaff} and @code{VaticanaStaff}. They are described in @ref{Pre-defined contexts}. -Staves can be started or stopped at any point in the score. The -commands @code{\startStaff} and @code{\stopStaff} are used for -this purpose. For details, see @ref{Staff symbol}. +New single staff contexts may be defined. For details, see +@ref{Defining new contexts}. @seealso @@ -114,12 +113,13 @@ Music Glossary: Notation Reference: @ref{Creating contexts}, @ref{Percussion staves}, +@ref{Showing melody rhythms}, @ref{Default tablatures}, +@ref{Pre-defined contexts}, +@ref{Staff symbol}, @ref{Gregorian chant contexts}, @ref{Mensural contexts}, -@ref{Staff symbol}, -@ref{Pre-defined contexts}, -@ref{Showing melody rhythms}. +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. @@ -197,9 +197,9 @@ lines are connected between the staves. >> @end lilypond -The @code{PianoStaff} is almost identical to a @code{GrandStaff}, -except that it supports printing the instrument name directly. -For details, see @ref{Instrument names}. +The @code{PianoStaff} is identical to a @code{GrandStaff}, except +that it supports printing the instrument name directly. For +details, see @ref{Instrument names}. @lilypond[verbatim,quote,relative=2] \new PianoStaff << @@ -216,6 +216,9 @@ Each staff group context sets the property @code{SystemStartSquare}, is also available, but it must be explicitly specified. +New staff group contexts may be defined. For details, see +@ref{Defining new contexts}. + @snippets @@ -243,25 +246,26 @@ Music Glossary: @rglos{grand staff}. Notation Reference: -@ref{Instrument names}. +@ref{Instrument names}, +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. Internals Reference: @rinternals{Staff}, +@rinternals{StaffGroup}, @rinternals{ChoirStaff}, @rinternals{GrandStaff}, @rinternals{PianoStaff}, -@rinternals{StaffGroup}, @rinternals{SystemStartBar}, @rinternals{SystemStartBrace}, @rinternals{SystemStartBracket}, @rinternals{SystemStartSquare}. -@node Deeper nested staff groups -@unnumberedsubsubsec Deeper nested staff groups +@node Nested staff groups +@unnumberedsubsubsec Nested staff groups @cindex staff, nested @cindex staves, nested @@ -276,19 +280,19 @@ Internals Reference: Two additional staff-group contexts are available that can be nested within a @code{StaffGroup} or @code{ChoirStaff} context: @code{InnerStaffGroup} and @code{InnerChoirStaff}. These contexts -create an additional bracket next to the original bracket of their -parent staff group. +create a new bracket adjacent to the bracket of their parent staff +group. An @code{InnerStaffGroup} is treated similarly to a -@code{StaffGroup}; bar lines are connected between each stave +@code{StaffGroup}; bar lines are connected between each staff within the context: @lilypond[verbatim,quote,relative=2] \new StaffGroup << - \new Staff { c2 c } + \new Staff { c2 c | c2 c } \new InnerStaffGroup << - \new Staff { g2 g } - \new Staff { e2 e } + \new Staff { g2 g | g2 g } + \new Staff { e2 e | e2 e } >> >> @end lilypond @@ -298,15 +302,18 @@ Bar lines are @emph{not} connected between staves of an @lilypond[verbatim,quote,relative=2] \new ChoirStaff << - \new Staff { c2 c } + \new Staff { c2 c | c2 c } \new InnerChoirStaff << - \new Staff { g2 g } - \new Staff { e2 e } + \new Staff { g2 g | g2 g } + \new Staff { e2 e | e2 e } >> - \new Staff { c1 } + \new Staff { c1 | c1 } >> @end lilypond +New nested staff group contexts can be defined. For details, see +@ref{Defining new contexts}. + @snippets @@ -318,7 +325,8 @@ Bar lines are @emph{not} connected between staves of an Notation Reference: @ref{Grouping staves}, -@ref{Instrument names}. +@ref{Instrument names}, +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. @@ -330,7 +338,8 @@ Internals Reference: @rinternals{ChoirStaff}, @rinternals{SystemStartBar}, @rinternals{SystemStartBrace}, -@rinternals{SystemStartBracket}. +@rinternals{SystemStartBracket}, +@rinternals{SystemStartSquare}. @node Modifying single staves @@ -366,11 +375,10 @@ sections are also described. @cindex spacing of ledger lines @cindex number of staff lines -The grob @code{StaffSymbol} is responsible for drawing the lines -of a staff. Its properties can be altered in order to change the -appearance of a staff, but they must be changed before the staff -is created. A staff may be started or stopped at any point in the -score. +The lines of a staff belong to the @code{StaffSymbol} grob. +@code{StaffSymbol} properties can be modified to change the +appearance of a staff, but they must be modified before the staff +is created. The number of staff lines may be changed. The clef position and the position of middle C may need to be modified to fit the new @@ -378,31 +386,13 @@ staff. For an explanation, refer to the snippet section in @ref{Clef}. @lilypond[verbatim,quote,relative=2] -\new Staff { - \override Staff.StaffSymbol #'line-count = #3 - d4 d d d -} -@end lilypond - -The vertical position of staff lines and the number of staff lines -can be defined at the same time. As the example shows, the -positions of the notes are not influenced by the position of the -staff lines. Details for modifying this property are found in -@rinternals{staff-symbol-interface}. - -@warning{The @code{'line-positions} property overrides the -@code{'line-count} property. The number of staff lines is -implicitly defined by the number of elements in the list of values -for @code{'line-positions}} - -@lilypond[verbatim,quote,relative=1] \new Staff \with { - \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7) + \override StaffSymbol #'line-count = #3 } -{ a4 e' f b | d1 } +{ d4 d d d } @end lilypond -The staff line thickness can be modified. The thickness of ledger +Staff line thickness can be modified. The thickness of ledger lines and stems are also affected, since they depend on staff line thickness. @@ -413,9 +403,8 @@ thickness. { e4 d c b } @end lilypond -The thickness of ledger lines can be set independently of staff -line thickness. A description of this property is also found in -@rinternals{staff-symbol-interface}. +Ledger line thickness can be set independently of staff line +thickness. @lilypond[verbatim,quote,relative=1] \new Staff \with { @@ -424,8 +413,8 @@ line thickness. A description of this property is also found in { e4 d c b } @end lilypond -The distance between staff lines can be changed. The setting has -influence on ledger lines as well. +The distance between staff lines can be changed. This setting +affects the spacing of ledger lines as well. @lilypond[verbatim,quote,relative=1] \new Staff \with { @@ -434,16 +423,11 @@ influence on ledger lines as well. { a4 b c d } @end lilypond -The width of a staff can be adjusted. The unit is one staff -space. The spacing of objects inside the staff is not influenced -by this setting. +Further details about the properties of @code{StaffSymbol} can be +found in @rinternals{staff-symbol-interface}. -@lilypond[verbatim,quote,relative=1] -\new Staff \with { - \override StaffSymbol #'width = #23 -} -{ a4 e' f b | d1 } -@end lilypond +@funindex \startStaff +@funindex \stopStaff Modifications to staff properties in the middle of a score can be placed between @code{\stopStaff} and @code{\startStaff}: @@ -460,12 +444,24 @@ b2 b a2 a @end lilypond +@cindex stopping a staff + +@noindent +In general, @code{\startStaff} and @code{\stopStaff} can be used +to stop or start a staff in the middle of a score. + +@lilypond[verbatim,quote,relative=2] +c4 b a2 +\stopStaff +b4 c d2 +\startStaff +e4 d c2 +@end lilypond + @predefined -@funindex \startStaff @code{\startStaff}, -@funindex \stopStaff @code{\stopStaff}. @@ -483,7 +479,7 @@ Music Glossary: @rglos{staff}. Notation Reference: -@ref{Displaying pitches}. +@ref{Clef}. Snippets: @rlsr{Staff notation}. @@ -495,9 +491,9 @@ Internals Reference: @knownissues -When setting staff lines manually, bar lines are always drawn -centered on the position 0, so the maximum distance of the bar -lines in either direction must be equal. +When setting vertical staff line positions manually, bar lines are +always centered on position 0, so the maximum distance between the +outermost bar lines in either direction must be equal. @node Ossia staves @@ -523,6 +519,7 @@ staff in the appropriate location: } @end lilypond +@noindent However, the above example is usually not the desired result. To create ossia staves that are above the original staff, have no time signature or clef, and have a smaller font size, tweaks must @@ -566,7 +563,7 @@ example. << \new Staff = ossia \with { \remove "Time_signature_engraver" - \remove "Clef_engraver" + \override Clef #'transparent = ##t fontSize = #-3 \override StaffSymbol #'staff-space = #(magstep -3) \override StaffSymbol #'thickness = #(magstep -3) @@ -594,47 +591,6 @@ example. >> @end lilypond -@c The following is the legacy "ossia.ly" example -@c -@c I don't think this method is very efficient. -@c I'm commenting it out for now. -pm - -@ignore - -@ lilypond[verbatim,quote] -<< - \new Staff \with - { - %No time signature in the ossia staff - \remove "Time_signature_engraver" - fontSize = #-3 - \override StaffSymbol #'staff-space = #(magstep -3) - \override StaffSymbol #'thickness = #(magstep -3) - firstClef = ##f - } - \relative c'' { - \stopStaff - \skip 2 - - \startStaff - \clef treble - bes8[^"ossia" g bes g] - \stopStaff - - s2 - - \startStaff - f8 d g4 - } - \new Staff \relative c'' { - \time 2/4 - c4 c g' g a a g2 - } ->> -@ end lilypond - -@end ignore - Using the @code{\RemoveEmptyStaffContext} command to create ossia staves may be used as an alternative. This method is most convenient when ossia staves occur immediately following a line @@ -647,7 +603,7 @@ more information about @code{\RemoveEmptyStaffContext}, see << \new Staff = ossia \with { \remove "Time_signature_engraver" - \remove "Clef_engraver" + \override Clef #'transparent = ##t fontSize = #-3 \override StaffSymbol #'staff-space = #(magstep -3) \override StaffSymbol #'thickness = #(magstep -3) @@ -695,7 +651,7 @@ Learning Manual: @rlearning{Length and thickness of objects}. Notation Reference: -@ref{Setting the staff size}. +@ref{Hiding staves}. Snippets: @rlsr{Staff notation}. @@ -707,22 +663,34 @@ Internals Reference: @node Hiding staves @unnumberedsubsubsec Hiding staves -@cindex Frenched scores +@cindex Frenched score +@cindex Frenched staff @cindex staff, hiding @cindex staff, empty @cindex hiding of staves @cindex empty staves -@cindex Frenched staves -In orchestral scores, staff lines that only have rests are usually -removed in order to save some space. This style is called -@q{French Score}. For the @code{Lyrics}, @code{ChordNames}, and -@code{FiguredBass} contexts, this is switched on by default. +Staff lines can be hidden by removing the +@code{Staff_symbol_engraver} from the @code{Staff} context. As an +alternative, @code{\stopStaff} may be used. -For other staff contexts, this behavior is set with the -@code{\RemoveEmptyStaffContext} command. It is set in the -@code{\layout} block. As a result, empty staves or staves -containing multi-measure rests are removed after a line break. +@lilypond[verbatim,quote] +\new Staff \with { + \remove "Staff_symbol_engraver" +} +\relative c''' { a8 f e16 d c b a2 } +@end lilypond + +@funindex \RemoveEmptyStaffContext + +Empty staves can be hidden by setting the +@code{\RemoveEmptyStaffContext} 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. + +@warning{An empty staff may only include multi-measure rests, +skips, spacer rests, or a combination of these elements.} @lilypond[verbatim,quote,ragged-right] \layout { @@ -730,54 +698,56 @@ containing multi-measure rests are removed after a line break. \RemoveEmptyStaffContext } } -\relative c'' { - << - \new Staff { e4 f g a \break c1 } - \new Staff { c4 d e f \break R1 } - >> -} -@end lilypond -To remove other types of contexts, use -@code{\AncientRemoveEmptyStaffContext} or -@code{\RemoveEmptyRhythmicStaffContext}. +\relative c' << + \new Staff { + e4 f g a \break + b1 \break + a4 b c2 + } + \new Staff { + c,4 d e f \break + R1 \break + f4 g c,2 + } +>> +@end lilypond @cindex ossia -Another application of @code{\RemoveEmptyStaffContext} is to make -ossia sections, i.e., alternative melodies on a separate piece of -staff, with help of a Frenched staff. For details, see -@ref{Ossia staves}. - -Staff lines can be made invisible by removing the -@code{Staff_symbol_engraver} from the @code{Staff} context: +@noindent +@code{\RemoveEmptyStaffContext} can also be used to create ossia +sections for a staff. For details, see @ref{Ossia staves}. -@lilypond[verbatim,quote] -\new Staff \with { - \remove "Staff_symbol_engraver" -} -\relative c'' { c8 c c16 c c c c2 } -@end lilypond - - -@snippets +@cindex hiding ancient staves +@cindex hiding rhythmic staves +@funindex \AncientRemoveEmptyStaffContext +@funindex \RemoveEmptyRhythmicStaffContext -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] -{removing-the-first-empty-line.ly} +The @code{\AncientRemoveEmptyStaffContext} command may be used to +hide empty staves in ancient music contexts. Similarly, +@code{\RemoveEmptyRhythmicStaffContext} may be used to hide empty +@code{RhythmicStaff} contexts. @predefined -@funindex \RemoveEmptyStaffContext @code{\RemoveEmptyStaffContext}, -@funindex \AncientRemoveEmptyStaffContext @code{\AncientRemoveEmptyStaffContext}, -@funindex \RemoveEmptyRhythmicStaffContext @code{\RemoveEmptyRhythmicStaffContext}. +@snippets + +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{removing-the-first-empty-line.ly} + + @seealso +Music Glossary: +@rglos{Frenched staff}. + Notation Reference: @ref{Staff symbol}, @ref{Ossia staves}. @@ -790,7 +760,21 @@ Internals Reference: @rinternals{FiguredBass}, @rinternals{Lyrics}, @rinternals{Staff}, -@rinternals{VerticalAxisGroup}. +@rinternals{VerticalAxisGroup}, +@rinternals{Staff_symbol_engraver}. + + +@knownissues + +Removing @code{Staff_symbol_engraver} also hides bar lines. If +bar line visibility is forced, formatting errors may occur. In +this case, use the following overrides instead of removing the +engraver: + +@example +\override StaffSymbol #'stencil = ##f +\override NoteHead #'no-ledgers = ##t +@end example @node Writing parts @@ -817,30 +801,40 @@ format cue notes are also described. @cindex metronome marking with text @funindex \tempo -Basic metronome markings can be entered as follows: +A basic metronome mark is simple to write: -@lilypond[verbatim,quote,relative=2] -\tempo 2 = 120 -c1 +@lilypond[verbatim,quote,relative=1] +\tempo 4 = 120 +c2 d +e4. d8 c2 @end lilypond -Textual tempo indications can be used instead: +Tempo indications with text can be used instead: @lilypond[verbatim,quote,relative=2] \tempo "Allegretto" -d2 c +c4 e d c +b4. a16 b c4 r4 @end lilypond -The combination of a metronome marking and textual description -will automatically place the metronome marking within parentheses: +Combining a metronome mark and text will automatically place the +metronome mark within parentheses: @lilypond[verbatim,quote,relative=2] \tempo "Allegro" 4 = 160 g4 c d e +d4 b g2 @end lilypond -To write a metronome marking in parentheses without the text, -include an empty string in the input: +In general, the text can be any markup object: + +@lilypond[verbatim,quote,relative=2] +\tempo \markup { \italic Faster } 4 = 132 +a8-. r8 b-. r gis-. r a-. r +@end lilypond + +A parenthesized metronome mark with no textual indication may be +written by including an empty string in the input: @lilypond[verbatim,quote,relative=2] \tempo "" 8 = 96 @@ -855,25 +849,11 @@ d4 g e c @c perhaps also an example of how to move it horizontally? -@c TODO add snippet to LSR -pm -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 - -@c TODO add snippet to LSR -pm -To print other metronome markings, use these markup commands +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{changing-the-tempo-without-a-metronome-mark.ly} -@lilypond[verbatim,quote,relative=1] -c4^\markup { - ( - \smaller \general-align #Y #DOWN \note #"16." #1 - = - \smaller \general-align #Y #DOWN \note #"8" #1 - ) } -@end lilypond +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{creating-metronome-marks-in-markup-mode.ly} For more details, see @ref{Formatting text}. @@ -903,7 +883,7 @@ Internals Reference: @cindex instrument names @cindex instrument names, short -Instrument names can be printed on the left side of staves for the +Instrument names can be printed on the left side of staves in the @code{Staff} and @code{PianoStaff} contexts. The value of @code{instrumentName} is used for the first staff, and the value of @code{shortInstrumentName} is used for all succeeding staves. @@ -911,9 +891,9 @@ of @code{shortInstrumentName} is used for all succeeding staves. @lilypond[verbatim,quote,ragged-right,relative=1] \set Staff.instrumentName = "Violin " \set Staff.shortInstrumentName = "Vln " -c1 +c4.. g'16 c4.. g'16 \break -c''1 +c1 @end lilypond Markup mode can be used to create more complicated instrument @@ -923,7 +903,7 @@ names: \set Staff.instrumentName = \markup { \column { "Clarinetti" \line { "in B" \smaller \flat } } } -c1 +c4 c,16 d e f g2 @end lilypond @cindex instrument names, centering @@ -933,18 +913,18 @@ instrument names and short instrument names are centered by default. To center multi-line instrument names, @code{\center-column} must be used: -@lilypond[verbatim,quote,relative=2] +@lilypond[verbatim,quote,indent=1.5\cm,relative=2] << + \new Staff { + \set Staff.instrumentName = "Flute" + f2 g4 f + } \new Staff { \set Staff.instrumentName = \markup \center-column { - Clarinetti + Clarinet \line { "in B" \smaller \flat } } - c1 - } - \new Staff { - \set Staff.instrumentName = "Vibraphone" - c1 + c4 b c2 } >> @end lilypond @@ -952,28 +932,31 @@ default. To center multi-line instrument names, @cindex indent @cindex short-indent -The @code{indent} and @code{short-indent} settings specify the -level of indentation for the first system and all succeeding -systems, respectively. They can be modified in the @code{\layout} -block. For longer instrument names or short instrument names, it -may be useful to increase the @code{indent} and -@code{short-indent} settings: +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{Horizontal dimensions}. -@lilypond[verbatim,quote] -\relative c' << - \new Staff \with { - instrumentName = "Oboe" +@lilypond[verbatim,quote,ragged-right] +\layout { + indent = 3.0\cm + short-indent = 1.5\cm +} + +\relative c'' << + \new Staff { + \set Staff.instrumentName = "Alto Flute in G" + \set Staff.shortInstrumentName = "Fl." + f2 g4 f \break + g4 f g2 } - { c2 d } - \new Staff \with { - instrumentName = "Glockenspiel" + \new Staff { + \set Staff.instrumentName = "Clarinet" + \set Staff.shortInstrumentName = "Clar." + c,4 b c2 \break + c2 b4 c } - { c'2 d } >> - -\layout { - indent = 2.5\cm -} @end lilypond To add instrument names to other contexts (such as @@ -996,16 +979,48 @@ c1 c c c \break c1 c c c \break @end lilypond +@cindex instrument switch +@cindex switching instruments -@snippets +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: -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] -{aligning-and-centering-instrument-names.ly} +@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")) + +\new Staff \with { + instrumentName = "Bassoon" +} +\relative c' { + \clef tenor + \compressFullBarRests + c2 g' + R1*16 + \instrumentSwitch "contrabassoon" + c,,2 g \break + c,1 ~ | c1 +} +@end lilypond @seealso Notation Reference: +@ref{Horizontal dimensions}, @ref{Modifying context plug-ins}. Snippets: @@ -1025,28 +1040,34 @@ Internals Reference: @cindex fragments @cindex cue notes -Quotations allow fragments of other parts to be inserted directly -into a music expression. Before a part can be quoted, the -@code{\addQuote} command must be used to initialize the quoted -fragment. This command must be used in the toplevel scope. The -first argument is an identifying string, and the second is a music -expression: +It is very common for one voice to double the some of the music from +another voice. For example, the first and second violins may play the +same notes during a passage of music. In LilyPond this is accomplished +by letting one voice @emph{quote} the other voice without having to +re-enter it. + +Before a part can be quoted, the @code{\addQuote} command must be used +to initialize the quoted fragment. This command must be used in the +toplevel scope. The first argument is an identifying string, and the +second is a music expression: @example -flute = \relative c' @{ - f4 fis g gis +flute = \relative c'' @{ + a4 gis g gis @} \addQuote "flute" @{ \flute @} @end example -The @code{\quoteDuring} command may then be used to indicate when -the quotation should take place. The corresponding measures from -the quotation are inserted into the music expression. The syntax -is similar to @code{\addQuote}: +The @code{\quoteDuring} command is used to indicate the point where the +quotation begins. It is followed by two arguments: the name of the +quoted voice, as defined with @code{\addQuote}, and a music expression +that indicates the duration of the quote, usually spacer rests or +multi-measure rests. The corresponding music from the quoted voice is +inserted into the music expression: @lilypond[verbatim,quote] -flute = \relative c' { - f4 fis g gis +flute = \relative c'' { + a4 gis g gis } \addQuote "flute" { \flute } @@ -1060,8 +1081,8 @@ anything but a spacer rest or multi-measure rest, a polyphonic situation is created, which is often not desirable: @lilypond[verbatim,quote] -flute = \relative c' { - f4 fis g gis +flute = \relative c'' { + a4 gis g gis } \addQuote "flute" { \flute } @@ -1071,13 +1092,14 @@ flute = \relative c' { @end lilypond Quotations recognize instrument transposition settings for both -the source and target instruments if they are specified using the -@code{\transposition} command: +the source and target instruments if the @code{\transposition} +command is used. For details about @code{\transposition}, see +@ref{Instrument transpositions}. @lilypond[verbatim,quote] -clarinet = \relative c' { +clarinet = \relative c'' { \transposition bes - f4 fis g gis + a4 gis g gis } \addQuote "clarinet" { \clarinet } @@ -1086,22 +1108,9 @@ clarinet = \relative c' { } @end lilypond -@c add to snippets, possibly. It might already be there. -pm -@c -@c The type of events that are present in the quoted music can be -@c trimmed with the @code{quotedEventTypes} property. The default -@c value is @code{(note-event rest-event)}, which means that only -@c notes and rests of the quoted voice end up in the -@c @code{\quoteDuring}. Setting -@c -@c @example -@c \set Staff.quotedEventTypes = -@c #'(note-event articulation-event dynamic-event) -@c @end example -@c -@c @noindent -@c will quote notes (but no rests), together with scripts and -@c dynamics. +It is possible to tag quotations with unique names in order to +process them in different ways. For details about this procedure, +see @ref{Using tags}. @snippets @@ -1109,6 +1118,12 @@ clarinet = \relative c' { @lilypondfile[verbatim,lilyquote,texidoc,doctitle] {quoting-another-voice-with-transposition.ly} +@cindex note-event +@cindex articulation-event +@cindex dynamic-event +@cindex rest-event +@funindex quotedEventTypes + @lilypondfile[verbatim,lilyquote,texidoc,doctitle] {quoting-another-voice.ly} @@ -1116,7 +1131,8 @@ clarinet = \relative c' { @seealso Notation Reference: -@ref{Instrument transpositions}. +@ref{Instrument transpositions}, +@ref{Using tags}. Snippets: @rlsr{Staff notation}. @@ -1152,13 +1168,13 @@ written entirely in lower-case letters: @code{\addquote}. @cindex quoting other voices @cindex cues, formatting -The previous section explains how to quote other voices. The +The previous section explains how to create quotations. The @code{\cueDuring} command is a more specialized form of @code{\quoteDuring}, being particularly useful for inserting cue notes into a part. The syntax is as follows: @example - \cueDuring #@var{partname} #@var{voice} @var{music} +\cueDuring #@var{partname} #@var{voice} @var{music} @end example This command copies the corresponding measures from @var{partname} @@ -1166,8 +1182,8 @@ into a @code{CueVoice} context. The @code{CueVoice} is created implicitly, and occurs simultaneously with @var{music}, which creates a polyphonic situation. The @var{voice} argument determines whether the cue notes should be notated as a first or -second voice; @code{DOWN} corresponds to the first voice, and -@code{UP} corresponds to the second. +second voice; @code{UP} corresponds to the first voice, and +@code{DOWN} corresponds to the second. @lilypond[verbatim,quote] oboe = \relative c'' { @@ -1182,34 +1198,62 @@ oboe = \relative c'' { } @end lilypond +@noindent In the above example, the @code{Voice} context had to be explicitly declared, or else the entire music expression would belong to the @code{CueVoice} context. -@c TODO document \killCues -@c TODO document instrumentCueName context property +The name of the cued instrument can be printed by setting the +@code{instrumentCueName} property in the @code{CueVoice} context. -When typesetting cue notes, some guidelines should be followed: +@lilypond[verbatim,quote] +oboe = \relative c''' { + g4 r8 e16 f e4 d +} +\addQuote "oboe" { \oboe } + +\new Staff \relative c'' << + \new CueVoice \with { + instrumentCueName = "ob." + } + \new Voice { + \cueDuring #"oboe" #UP { R1 } + g4. b8 d2 + } +>> +@end lilypond -@itemize -@item -The instrument playing the cue should be clearly marked on the -score. +In addition to printing the name of the cued instrument, when cue +notes end, the name of the original instrument should be printed, +and any other changes introduced by the cued part should be +undone. This can be accomplished by using +@code{\addInstrumentDefinition} and @code{\instrumentSwitch}. For +an example and explanation, see @ref{Instrument names}. -@item -When the cue notes end, the name of the original instrument should -be indicated. +The @code{\killCues} command removes cue notes from a music +expression. This can be useful if cue notes need to be removed +from a part but may be restored at a later time. -@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. +@lilypond[verbatim,quote] +flute = \relative c''' { + r2 cis2 r2 dis2 +} +\addQuote "flute" { \flute } -@end itemize +\new Voice \relative c'' { + \killCues { + \cueDuring #"flute" #UP { R1 } + g4. b8 d2 + } +} +@end lilypond -The @code{\transposedCueDuring} command is useful to add cues for -instruments in a completely different register. Having piccolo -cues within a contrabassoon part is a good example. +The @code{\transposedCueDuring} command is useful for adding +instrumental cues from a completely different register. The +syntax is similar to @code{\cueDuring}, but it requires one extra +argument to specify the transposition of the cued instrument. For +more information about transposition, see +@ref{Instrument transpositions}. @lilypond[verbatim,quote] piccolo = \relative c''' { @@ -1233,17 +1277,27 @@ cbassoon = \relative c, { >> @end lilypond +It is possible to tag cued parts with unique names in order to +process them in different ways. For details about this procedure, +see @ref{Using tags}. + @seealso +Notation Reference: +@ref{Instrument transpositions}, +@ref{Instrument names}, +@ref{Using tags}. + Snippets: @rlsr{Staff notation}. Internals Reference: +@rinternals{CueVoice}, @rinternals{Voice}. @knownissues -Collisions are not checked between @code{Voice} and -@code{CueVoice} contexts. +Collisions can occur with rests, when using @code{\cueDuring}, +between @code{Voice} and @code{CueVoice} contexts.