X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fstaff.itely;h=34f90a32e76c326920c8ccb94829e4d10843f93f;hb=42b702e3dae35733ed340e56920ed6252e567c02;hp=e5ae60afc22671ff2660adf55407ec129c352447;hpb=941e0f90de763f5e61524a2f51b6b1ab3abcb80f;p=lilypond.git diff --git a/Documentation/user/staff.itely b/Documentation/user/staff.itely index e5ae60afc2..34f90a32e7 100644 --- a/Documentation/user/staff.itely +++ b/Documentation/user/staff.itely @@ -6,16 +6,16 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.57" +@c \version "2.12.0" @node Staff notation @section Staff notation @lilypondfile[quote]{staff-headword.ly} -This section explains how to influence the staff appearance, print -scores with more than one staff, and how to apply specific -performance marks to single staves. +This section explains how to influence the appearance of staves, +how to print scores with more than one staff, and how to add tempo +indications and cue notes to staves. @menu * Displaying staves:: @@ -27,14 +27,13 @@ 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 @@ -46,6 +45,8 @@ with either a bracket or a brace. @cindex staff instantiation @cindex staff, new @cindex staff, single +@cindex staff, drum +@cindex staff, percussion @cindex drum staff @cindex percussion staff @cindex Gregorian transcription staff @@ -53,6 +54,9 @@ with either a bracket or a brace. @cindex tabstaff @cindex tablature +@funindex \drummode +@funindex drummode + @notation{Staves} (singular: @notation{staff}) are created with the @code{\new} or @code{\context} commands. For details, see @ref{Creating contexts}. @@ -63,9 +67,10 @@ The basic staff context is @code{Staff}: \new Staff { c4 d e f } @end lilypond -@code{DrumStaff} creates a five-line staff set up for a -typical drum set. It uses different names for each instrument. -The instrument names are set using the @code{\drummode} command. +The @code{DrumStaff} context creates a five-line staff set up for +a typical drum set. Each instrument is shown with a different +symbol. The instruments are entered in drum mode following a +@code{\drummode} command, with each instrument specified by name. For details, see @ref{Percussion staves}. @lilypond[verbatim,quote] @@ -74,14 +79,6 @@ For details, see @ref{Percussion staves}. } @end lilypond -@c FIXME: remove when mentioned in NR 2.8 -@code{GregorianTranscriptionStaff} creates a staff to notate -modern Gregorian chant. It does not show bar lines. - -@lilypond[verbatim,quote,relative=2] -\new GregorianTranscriptionStaff { c4 d e f } -@end lilypond - @code{RhythmicStaff} creates a single-line staff that only displays the rhythmic values of the input. Real durations are preserved. For details, see @ref{Showing melody rhythms}. @@ -101,13 +98,18 @@ 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}. +The @code{GregorianTranscriptionStaff} context creates a staff to +notate modern Gregorian chant. It does not show bar lines. +@lilypond[verbatim,quote,relative=2] +\new GregorianTranscriptionStaff { c4 d e f e d } +@end lilypond + +New single staff contexts may be defined. For details, see +@ref{Defining new contexts}. -@seealso +@seealso Music Glossary: @rglos{staff}, @rglos{staves}. @@ -120,7 +122,8 @@ Notation Reference: @ref{Pre-defined contexts}, @ref{Staff symbol}, @ref{Gregorian chant contexts}, -@ref{Mensural contexts}. +@ref{Mensural contexts}, +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. @@ -151,6 +154,7 @@ Internals Reference: @cindex staff group @cindex staff, choir @cindex staff, piano +@cindex staff, grand @cindex system Various contexts exist to group single staves together in order to @@ -204,7 +208,7 @@ details, see @ref{Instrument names}. @lilypond[verbatim,quote,relative=2] \new PianoStaff << - \set PianoStaff.instrumentName = "Piano" + \set PianoStaff.instrumentName = #"Piano" \new Staff { c1 c } \new Staff { c1 c } >> @@ -217,6 +221,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 @@ -233,18 +240,17 @@ explicitly specified. @lilypondfile[verbatim,lilyquote,texidoc,doctitle] {mensurstriche-layout-bar-lines-between-the-staves.ly} -@c FIXME: move to NR 2.8.x when sectioning is ready @seealso - Music Glossary: @rglos{brace}, @rglos{bracket}, @rglos{grand staff}. Notation Reference: -@ref{Instrument names}. +@ref{Instrument names}, +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. @@ -261,8 +267,8 @@ Internals Reference: @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 @@ -271,42 +277,29 @@ Internals Reference: @cindex nested staff brackets @cindex brackets, nesting of @cindex braces, nesting of -@cindex inner staff group -@cindex inner choir staff group - -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 a bracket next to the original bracket of their parent -staff group. -An @code{InnerStaffGroup} is treated similarly to a -@code{StaffGroup}; bar lines are connected between each stave -within the context: +Staff-group contexts can be nested to arbitrary depths. In this +case, each child context creates a new bracket adjacent to the +bracket of its parent group. @lilypond[verbatim,quote,relative=2] \new StaffGroup << \new Staff { c2 c | c2 c } - \new InnerStaffGroup << + \new StaffGroup << \new Staff { g2 g | g2 g } - \new Staff { e2 e | e2 e } + \new StaffGroup \with { + systemStartDelimiter = #'SystemStartSquare + } + << + \new Staff { e2 e | e2 e } + \new Staff { c2 c | c2 c } + >> >> >> @end lilypond -Bar lines are @emph{not} connected between staves of an -@code{InnerChoirStaff}, just like a @code{ChoirStaff}: - -@lilypond[verbatim,quote,relative=2] -\new ChoirStaff << - \new Staff { c2 c | c2 c } - \new InnerChoirStaff << - \new Staff { g2 g | g2 g } - \new Staff { e2 e | e2 e } - >> - \new Staff { c1 | c1 } ->> -@end lilypond +New nested staff group contexts can be defined. For details, see +@ref{Defining new contexts}. @snippets @@ -316,18 +309,16 @@ Bar lines are @emph{not} connected between staves of an @seealso - Notation Reference: @ref{Grouping staves}, -@ref{Instrument names}. +@ref{Instrument names}, +@ref{Defining new contexts}. Snippets: @rlsr{Staff notation}. Internals Reference: -@rinternals{InnerStaffGroup}, @rinternals{StaffGroup}, -@rinternals{InnerChoirStaff}, @rinternals{ChoirStaff}, @rinternals{SystemStartBar}, @rinternals{SystemStartBrace}, @@ -356,6 +347,7 @@ sections are also described. @cindex adjusting staff symbol @cindex drawing staff symbol @cindex staff symbol, setting of +@cindex staff symbol, drawing @cindex stop staff lines @cindex start staff lines @cindex staff lines, amount of @@ -385,22 +377,6 @@ staff. For an explanation, refer to the snippet section in { 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 following example shows, -note positions are not influenced by the staff line positions. - -@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) -} -{ a4 e' f b | d1 } -@end lilypond - Staff line thickness can be modified. The thickness of ledger lines and stems are also affected, since they depend on staff line thickness. @@ -413,7 +389,9 @@ thickness. @end lilypond Ledger line thickness can be set independently of staff line -thickness. +thickness. In the example the two numbers are factors multiplying +the staff line thickness and the staff line spacing. The two +contributions are added to give the ledger line thickness. @lilypond[verbatim,quote,relative=1] \new Staff \with { @@ -422,8 +400,8 @@ thickness. { e4 d c b } @end lilypond -The distance between staff lines can be changed. This 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 { @@ -432,22 +410,18 @@ influence on ledger lines as well. { a4 b c d } @end lilypond -The width of a staff can be modified. The unit is one staff -space. The spacing of objects inside the staff is not influenced -by this setting. - -@lilypond[verbatim,quote,relative=1] -\new Staff \with { - \override StaffSymbol #'width = #23 -} -{ a4 e' f b | d1 } -@end lilypond - Further details about the properties of @code{StaffSymbol} can be -found here: @rinternals{staff-symbol-interface}. +found in @rinternals{staff-symbol-interface}. + +@cindex stopping a staff +@cindex starting a staff +@cindex staff, starting +@cindex staff, stopping @funindex \startStaff +@funindex startStaff @funindex \stopStaff +@funindex stopStaff Modifications to staff properties in the middle of a score can be placed between @code{\stopStaff} and @code{\startStaff}: @@ -464,11 +438,23 @@ b2 b a2 a @end lilypond +@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 +@predefined @code{\startStaff}, @code{\stopStaff}. +@endpredefined @snippets @@ -478,14 +464,13 @@ a2 a @seealso - Music Glossary: @rglos{line}, @rglos{ledger line}, @rglos{staff}. Notation Reference: -@ref{Displaying pitches}. +@ref{Clef}. Snippets: @rlsr{Staff notation}. @@ -511,6 +496,11 @@ outermost bar lines in either direction must be equal. @cindex staff, resizing of @cindex resizing of staves +@funindex \startStaff +@funindex startStaff +@funindex \stopStaff +@funindex stopStaff + @notation{Ossia} staves can be set by creating a new simultaneous staff in the appropriate location: @@ -525,7 +515,8 @@ staff in the appropriate location: } @end lilypond -However, the above example is usually not the desired result. To +@noindent +However, the above example is not what is usually desired. To create ossia staves that are above the original staff, have no time signature or clef, and have a smaller font size, tweaks must be used. The Learning Manual describes a specific technique to @@ -568,7 +559,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) @@ -596,47 +587,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 @@ -649,7 +599,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) @@ -685,7 +635,6 @@ more information about @code{\RemoveEmptyStaffContext}, see @seealso - Music Glossary: @rglos{ossia}, @rglos{staff}, @@ -697,7 +646,7 @@ Learning Manual: @rlearning{Length and thickness of objects}. Notation Reference: -@ref{Setting the staff size}. +@ref{Hiding staves}. Snippets: @rlsr{Staff notation}. @@ -716,6 +665,10 @@ Internals Reference: @cindex hiding of staves @cindex empty staves +@funindex \RemoveEmptyStaffContext +@funindex RemoveEmptyStaffContext + + 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. @@ -727,16 +680,16 @@ alternative, @code{\stopStaff} may be used. \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 all empty staves in a -score except for those in the first system. +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.} +@warning{A staff is considered empty when it contains only +multi-measure rests, skips, spacer rests, or a combination of these +elements.} @lilypond[verbatim,quote,ragged-right] \layout { @@ -744,6 +697,7 @@ skips, spacer rests, or a combination of these.} \RemoveEmptyStaffContext } } + \relative c' << \new Staff { e4 f g a \break @@ -760,13 +714,19 @@ skips, spacer rests, or a combination of these.} @cindex ossia +@noindent @code{\RemoveEmptyStaffContext} can also be used to create ossia sections for a staff. For details, see @ref{Ossia staves}. @cindex hiding ancient staves @cindex hiding rhythmic staves + +@funindex \RemoveEmptyStaffContext +@funindex RemoveEmptyStaffContext @funindex \AncientRemoveEmptyStaffContext +@funindex AncientRemoveEmptyStaffContext @funindex \RemoveEmptyRhythmicStaffContext +@funindex RemoveEmptyRhythmicStaffContext The @code{\AncientRemoveEmptyStaffContext} command may be used to hide empty staves in ancient music contexts. Similarly, @@ -775,10 +735,10 @@ hide empty staves in ancient music contexts. Similarly, @predefined - @code{\RemoveEmptyStaffContext}, @code{\AncientRemoveEmptyStaffContext}, @code{\RemoveEmptyRhythmicStaffContext}. +@endpredefined @snippets @@ -788,7 +748,6 @@ hide empty staves in ancient music contexts. Similarly, @seealso - Music Glossary: @rglos{Frenched staff}. @@ -804,7 +763,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 @@ -829,7 +802,9 @@ format cue notes are also described. @cindex beats per minute @cindex metronome marking @cindex metronome marking with text + @funindex \tempo +@funindex tempo A basic metronome mark is simple to write: @@ -879,31 +854,16 @@ 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}. @seealso - Music Glossary: @rglos{metronome}, @rglos{metronomic indication}, @@ -927,14 +887,14 @@ 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. @lilypond[verbatim,quote,ragged-right,relative=1] -\set Staff.instrumentName = "Violin " -\set Staff.shortInstrumentName = "Vln " +\set Staff.instrumentName = #"Violin " +\set Staff.shortInstrumentName = #"Vln " c4.. g'16 c4.. g'16 \break c1 @@ -957,15 +917,15 @@ 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" + \set Staff.instrumentName = #"Flute" f2 g4 f } \new Staff { \set Staff.instrumentName = \markup \center-column { - Clarinetti + Clarinet \line { "in B" \smaller \flat } } c4 b c2 @@ -973,32 +933,30 @@ default. To center multi-line instrument names, >> @end lilypond -@cindex indent -@cindex short-indent +@funindex indent +@funindex short-indent 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. The @code{indent} and -@code{short-indent} settings are modified in the @code{\layout} -block and specify the level of indentation for the first system -and all succeeding systems, respectively. +@code{short-indent} settings are increased. For details about +these settings, see @ref{Horizontal dimensions}. @lilypond[verbatim,quote,ragged-right] \layout { - indent = 2.5\cm + indent = 3.0\cm short-indent = 1.5\cm } \relative c'' << \new Staff { - \set Staff.instrumentName = "Flute" - \set Staff.shortInstrumentName = "Fl." + \set Staff.instrumentName = #"Alto Flute in G" + \set Staff.shortInstrumentName = #"Fl." f2 g4 f \break g4 f g2 } \new Staff { - \set Staff.instrumentName = "Clarinet" - \set Staff.shortInstrumentName = "Clar." + \set Staff.instrumentName = #"Clarinet" + \set Staff.shortInstrumentName = #"Clar." c,4 b c2 \break c2 b4 c } @@ -1011,24 +969,67 @@ To add instrument names to other contexts (such as For details, see @ref{Modifying context plug-ins}. @cindex instrument names, changing +@cindex changing instrument names Instrument names may be changed in the middle of a piece: @lilypond[verbatim,quote,ragged-right,relative=1] -\set Staff.instrumentName = "First" -\set Staff.shortInstrumentName = "one" +\set Staff.instrumentName = #"First" +\set Staff.shortInstrumentName = #"one" c1 c c c \break c1 c c c \break -\set Staff.instrumentName = "Second" -\set Staff.shortInstrumentName = "two" +\set Staff.instrumentName = #"Second" +\set Staff.shortInstrumentName = #"two" c1 c c c \break c1 c c c \break @end lilypond +@cindex instrument switch +@cindex switching instruments -@seealso +@funindex \addInstrumentDefinition +@funindex addInstrumentDefinition +@funindex \instrumentSwitch +@funindex instrumentSwitch + +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")) + +\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: @@ -1048,28 +1049,41 @@ 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: +@funindex \addQuote +@funindex addQuote +@funindex \quoteDuring +@funindex quoteDuring +@funindex \transposition +@funindex transposition + +It is very common for one voice to double 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 } @@ -1083,8 +1097,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 } @@ -1094,13 +1108,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 } @@ -1109,22 +1124,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 @@ -1132,14 +1134,20 @@ 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} @seealso - Notation Reference: -@ref{Instrument transpositions}. +@ref{Instrument transpositions}, +@ref{Using tags}. Snippets: @rlsr{Staff notation}. @@ -1175,13 +1183,16 @@ 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 +@funindex \cueDuring +@funindex cueDuring + +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} @@ -1205,18 +1216,19 @@ 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. The name of the cued instrument can be printed by setting the -@code{instrumentCueName} property. +@code{instrumentCueName} property in the @code{CueVoice} context. @lilypond[verbatim,quote] oboe = \relative c''' { g4 r8 e16 f e4 d } -\addQuote oboe { \oboe } +\addQuote "oboe" { \oboe } \new Staff \relative c'' << \new CueVoice \with { @@ -1229,14 +1241,31 @@ oboe = \relative c''' { >> @end lilypond -The @code{\killCues} command is used to remove the cue notes from -a music expression. +@cindex removing cues +@cindex removing cue notes +@cindex cue notes, removing + +@funindex \killCues +@funindex killCues +@funindex \transposedCueDuring +@funindex transposedCueDuring + +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}. + +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. @lilypond[verbatim,quote] flute = \relative c''' { r2 cis2 r2 dis2 } -\addQuote flute { \flute } +\addQuote "flute" { \flute } \new Voice \relative c'' { \killCues { @@ -1246,29 +1275,11 @@ flute = \relative c''' { } @end lilypond -When typesetting cue notes, some guidelines should be followed: - -@itemize -@item -The instrument playing the cue should be clearly marked on the -score. - -@item -When the cue notes end, the name of the original instrument should -be indicated. - -@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. - -@end itemize - -The @code{\transposedCueDuring} command is useful to add cues for -instruments in a completely different register. The syntax is -similar to @code{\cueDuring}, but it requires one more argument to -specify the transposition of the cued instrument. For more -information about transposition, see +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] @@ -1293,11 +1304,16 @@ 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 +@seealso Notation Reference: -@ref{Instrument transpositions}. +@ref{Instrument transpositions}, +@ref{Instrument names}, +@ref{Using tags}. Snippets: @rlsr{Staff notation}. @@ -1309,5 +1325,5 @@ Internals Reference: @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.