X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fnotation.itely;h=4558754152b63b5f8fe8eaaf975086017942c72b;hb=1423508c355989fa26a8cfe5985b0d6e1ab0a538;hp=7fd23609838b49b8663aa52f164a58f9182f7483;hpb=31a3d86ea52318746f44600161e4dfad7db9366f;p=lilypond.git diff --git a/Documentation/user/notation.itely b/Documentation/user/notation.itely index 7fd2360983..57afdc00fd 100644 --- a/Documentation/user/notation.itely +++ b/Documentation/user/notation.itely @@ -1,7478 +1,35 @@ -@c Note: -*-texinfo-*- -@c This file is part of lilypond.tely - -@c A menu is needed before every deeper *section nesting of @node's; run -@c M-x texinfo-all-menus-update -@c to automatically fill in these menus before saving changes - -@node Notation manual -@chapter Notation manual - -This chapter describes all the different types of notation supported -by LilyPond. It is intended as a reference for users that are already -somewhat familiar with LilyPond. - -@menu -* Note entry:: -* Easier music entry:: -* Staff notation:: -* Polyphony:: -* Beaming:: -* Accidentals:: -* Expressive marks:: -* Repeats:: -* Rhythmic music:: -* Piano music:: -* Vocal music:: -* Tablatures:: -* Chord names:: -* Orchestral music:: -* Ancient notation:: -* Contemporary notation:: -* Special notation:: -* Sound:: -@end menu - -@c FIXME: Note entry vs Music entry at top level menu is confusing. - -@node Note entry -@section Note entry -@cindex Note entry - -This section is about basic notation elements notes, rests and -related constructs, such as stems, tuplets and ties. - -@menu -* Notes:: -* Pitches:: -* Chromatic alterations:: -* Chords:: -* Rests:: -* Skips:: -* Durations:: -* Stems:: -* Ties:: -* Tuplets:: -@end menu - - -@node Notes -@subsection Notes - - -A note is printed by specifying its pitch and then its duration: -@footnote{Notes constitute the most basic elements of LilyPond input, -but they do not form valid input on their own without a @code{\score} -block. However, for the sake of brevity and simplicity we will -generally omit @code{\score} blocks and @code{\paper} declarations in -this manual.} - -@lilypond[fragment,verbatim] - cis'4 d'8 e'16 c'16 -@end lilypond - - -@node Pitches -@subsection Pitches - -@cindex Pitch names -@cindex Note specification -@cindex pitches -@cindex entering notes - -The most common syntax for pitch entry is used in @code{\chords} and -@code{\notes} mode. In these modes, pitches may be designated by -names. The notes are specified by the letters @code{a} through -@code{g}, while the octave is formed with notes ranging from @code{c} -to @code{b}. The pitch @code{c} is an octave below middle C and the -letters span the octave above that C: - -@lilypond[fragment,verbatim] -\clef bass - a,4 b, c d e f g a b c' d' e' \clef treble f' g' a' b' c'' -@end lilypond - -@cindex note names, Dutch - -A sharp is formed by adding @code{-is} to the end of a pitch name and -a flat is formed by adding @code{-es}. Double sharps and double flats -are obtained by adding @code{-isis} or @code{-eses}. These -names are the Dutch note names. In Dutch, @code{aes} is contracted to -@code{as}, but both forms are accepted. Similarly, both -@code{es} and @code{ees} are accepted. - -Half-flats and half-sharps are formed by adding @code{-eh} and -@code{-ih}; the following is a series of Cs with increasing pitches: - -@cindex quarter tones -@cindex semi-flats, semi-sharps - -@lilypond[verbatim,relative=2] - ceses4 - ceseh - ces - ceh - c - cih - cis - cisih - cisis -@end lilypond - -There are predefined sets of note names for various other languages. -To use them, include the language specific init file. For -example: @code{\include "english.ly"}. The available language files -and the note names they define are: - -@anchor{note name} -@anchor{note names} -@example - Note Names sharp flat -nederlands.ly c d e f g a bes b -is -es -english.ly c d e f g a bf b -s/-sharp -f/-flat - -x (double) -deutsch.ly c d e f g a b h -is -es -norsk.ly c d e f g a b h -iss/-is -ess/-es -svenska.ly c d e f g a b h -iss -ess -italiano.ly do re mi fa sol la sib si -d -b -catalan.ly do re mi fa sol la sib si -d/-s -b -espanol.ly do re mi fa sol la sib si -s -b - -@end example - -@cindex @code{'} -@cindex @code{,} - - - -The optional octave specification takes the form of a series of -single quote (`@code{'}') characters or a series of comma -(`@code{,}') characters. Each @code{'} raises the pitch by one -octave; each @code{,} lowers the pitch by an octave: - -@lilypond[fragment,verbatim] - c' c'' es' g' as' gisis' ais' -@end lilypond - - -@refcommands - -Notes can be hidden and unhidden with the following commands: - -@cindex @code{\hideNotes} -@code{\hideNotes}, -@cindex @code{\unHideNotes} -@code{\unHideNotes}. - - -@seealso - -Program reference: @internalsref{NoteEvent}, and @internalsref{NoteHead}. - -@node Chromatic alterations -@subsection Chromatic alterations - -Normally accidentals are printed automatically, but you may also -print them manually. A reminder accidental -@cindex reminder accidental -@cindex @code{?} -can be forced by adding an exclamation mark @code{!} -after the pitch. A cautionary accidental -@cindex cautionary accidental -@cindex parenthesized accidental -(i.e. an accidental within parentheses) can be obtained by adding the -question mark `@code{?}' after the pitch: - -@lilypond[fragment,verbatim] - cis' cis' cis'! cis'? -@end lilypond - - -@seealso - -The automatic production of accidentals can be tuned in many -ways. For more information, refer to @ref{Accidentals}. - - -@refbugs - -There are no generally accepted standards for denoting three quarter -flats, so LilyPond's symbol does not conform to any standard. - -@node Chords -@subsection Chords - -A chord is formed by a enclosing a set of pitches in @code{<} and -@code{>}. A chord may be followed by a duration, and a set of -articulations, just like simple notes. - -@lilypond[relative] - 4 8 <>8 -@end lilypond - -@node Rests -@subsection Rests -@cindex Rests - - - - -Rests are entered like notes, with the note name @code{r}: - -@lilypond[raggedright,verbatim] -r1 r2 r4 r8 -@end lilypond - -Whole bar rests, centered in middle of the bar, -must be done with multi-measure rests. They are discussed in -@ref{Multi measure rests}. - - -A rest's vertical position may be explicitly specified by entering a -note with the @code{\rest} keyword appended. This makes manual -formatting in polyphonic music easier. Rest collision testing will -leave these rests alone: - -@lilypond[raggedright,verbatim] -a'4\rest d'4\rest -@end lilypond - -@seealso - -Program reference: @internalsref{RestEvent}, and @internalsref{Rest}. - - -@c FIXME: naming. -@node Skips -@subsection Skips -@cindex Skip -@cindex Invisible rest -@cindex Space note - -An invisible rest (also called a `skip') can be entered like a note -with note name `@code{s}' or with @code{\skip @var{duration}}: - -@lilypond[raggedright,verbatim] -a2 s4 a4 \skip 1 a4 -@end lilypond - -The @code{s} syntax is only available in note mode and chord mode. In -other situations, you should use the @code{\skip} command: - -@lilypond[raggedright,verbatim] -\score { - \new Staff << - { \time 4/8 \skip 2 \time 4/4 } - \notes\relative c'' { a2 a1 } - >> -} -@end lilypond - -The skip command is merely an empty musical placeholder. It does not -produce any output, not even transparent output. - -The @code{s} skip command does create @internalsref{Staff} and -@internalsref{Voice} when necessary, similar to note and rest -commands. For example, the following results in an empty staff. - -@lilypond[raggedright,verbatim] -\score { \notes { s4 } } -@end lilypond - -The same fragment using @code{\skip} results in an empty page. - -@seealso - -Program reference: @internalsref{SkipEvent}, @internalsref{SkipMusic}. - - - -@node Durations -@subsection Durations - - -@cindex duration - - -In Note, Chord, and Lyrics mode, durations are designated by numbers -and dots: durations are entered as their reciprocal values. For example, -a quarter note is entered using a @code{4} (since it is a 1/4 note), while -a half note is entered using a @code{2} (since it is a 1/2 note). For notes -longer than a whole you must use variables: - -@example -c'\breve -c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64 -r\longa r\breve -r1 r2 r4 r8 r16 r32 r64 r64 -@end example - -@lilypond[noindent] -\score { - \notes \relative c'' { - a\breve*1/2 \autoBeamOff - a1 a2 a4 a8 a16 a32 a64 a64 - r\longa*1/4 r\breve *1/2 - r1 r2 r4 r8 r16 r32 r64 r64 - } - \paper { - raggedright = ##t - \context { - \StaffContext - \remove "Clef_engraver" - \override StaffSymbol #'transparent = ##t - \override TimeSignature #'transparent = ##t - \override BarLine #'transparent = ##t - \consists "Pitch_squash_engraver" - } - } -} -@end lilypond - - -If the duration is omitted then it is set to the previously entered -duration. The default for the first note is a quarter note. The duration -can be followed by dots (`@code{.}') in order to obtain dotted note -lengths: -@cindex @code{.} - -@lilypond[fragment,verbatim] - a' b' c''8 b' a'4 a'4. b'4.. c'8. -@end lilypond -@cindex @code{r} -@cindex @code{s} - -You can alter the length of duration by a fraction @var{N/M} -appending `@code{*}@var{N/M}' (or `@code{*}@var{N}' if @var{M=1}). This -will not affect the appearance of the notes or rests produced. -In the following example, the first three notes take up exactly two -beats: -@lilypond[fragment,relative=2,verbatim] - \time 2/4 - a4*2/3 gis4*2/3 a4*2/3 - a4 -@end lilypond - - -@refcommands - -Dots are normally moved up to avoid staff lines, except in polyphonic -situations. The following commands may be used to force a particular -direction manually: - -@cindex @code{\dotsUp} -@code{\dotsUp}, -@cindex @code{\dotsDown} -@code{\dotsDown}, -@cindex @code{\dotsBoth} -@code{\dotsBoth}. - -@seealso - -Program reference: @internalsref{Dots}, and @internalsref{DotColumn}. - -@node Stems -@subsection Stems - -Whenever a note is found, a @internalsref{Stem} object is created -automatically. For whole notes and rests, they are also created but -made invisible. - -@refcommands - -@cindex @code{\stemUp} -@code{\stemUp}, -@cindex @code{\stemDown} -@code{\stemDown}, -@cindex @code{\stemBoth} -@code{\stemBoth}. - - -@node Ties -@subsection Ties - -@cindex Tie -@cindex ties -@cindex @code{~} - -A tie connects two adjacent note heads of the same pitch. The tie in -effect extends the length of a note. Ties should not be confused with -slurs, which indicate articulation, or phrasing slurs, which indicate -musical phrasing. A tie is entered using the tilde symbol `@code{~}': - -@lilypond[fragment,verbatim] - e' ~ e' ~ -@end lilypond - -When a tie is applied to a chord, all note heads whose pitches match -are connected. When no note heads match, no ties will be created. - -In its meaning a tie is just a way of extending a note duration, similar -to the augmentation dot; in the following example there are two ways of -notating exactly the same concept: -@c -@lilypond[fragment,raggedright] -\time 3/4 c'2. c'2 ~ c'4 -@end lilypond -If you need to tie a lot of notes over bars, it may be easier to use automatic -note splitting (see @ref{Automatic note splitting}). - -@refcommands - - -@cindex @code{\tieUp} -@code{\tieUp}, -@cindex @code{\tieDown} -@code{\tieDown}, -@cindex @code{\tieBoth} -@code{\tieBoth}, -@cindex @code{\tieDotted} -@code{\tieDotted}, -@cindex @code{\tieSolid} -@code{\tieSolid}. - -@seealso - -In this manual: @ref{Automatic note splitting}. - -Program reference: @internalsref{TieEvent}, @internalsref{Tie}. - -For tying only a subset of the note heads of a pair of chords, see -@inputfileref{input/regression,tie-chord-partial.ly}. - -@refbugs - - -Switching staves when a tie is active will not produce a slanted tie. - -Formatting of ties is a difficult subject. The results are often not -optimal. - - - -@node Tuplets -@subsection Tuplets - -@cindex tuplets -@cindex triplets -@cindex @code{\times} - -Tuplets are made out of a music expression by multiplying all durations -with a fraction: - -@cindex @code{\times} -@example - \times @var{fraction} @var{musicexpr} -@end example - -@noindent -The duration of @var{musicexpr} will be multiplied by the fraction. -The fraction's denominator will be printed over the notes, optionally -with a bracket. The most common tuplet is the triplet in which 3 -notes have the length of 2, so the notes are 2/3 of their written -length: - -@lilypond[fragment,verbatim] - g'4 \times 2/3 {c'4 c' c'} d'4 d'4 -@end lilypond - -The property @code{tupletSpannerDuration} specifies how long each -bracket should last. With this, you can make lots of tuplets while -typing @code{\times} only once, saving lots of typing. In the next -example, there are two triplets shown, while @code{\times} was only -used once: - -@lilypond[fragment,relative,raggedright,verbatim] -\set tupletSpannerDuration = #(ly:make-moment 1 4) -\times 2/3 { c'8 c c c c c } -@end lilypond - -The format of the number is determined by the property -@code{tupletNumberFormatFunction}. The default prints only the -denominator, but if it is set to the Scheme function -@code{fraction-tuplet-formatter}, @var{num}:@var{den} will be printed -instead. - - -@cindex @code{tupletNumberFormatFunction} -@cindex tuplet formatting - - -@refcommands - -@cindex @code{\tupletUp} -@code{\tupletUp}, -@cindex @code{\tupletDown} -@code{\tupletDown}, -@cindex @code{\tupletBoth} -@code{\tupletBoth}. - -@seealso - -Program reference: @internalsref{TupletBracket}, and @internalsref{TimeScaledMusic}. - -Examples: @inputfileref{input/regression,tuplet-nest.ly}. - -@refbugs - -Nested tuplets are not formatted automatically. In this case, outer -tuplet brackets should be moved manually, which is demonstrated in -@inputfileref{input/regression,tuplet-nest.ly}. - - - -@node Easier music entry -@section Easier music entry -@cindex Music entry - -This section deals with tricks and features of the input language that -were added solely to help entering music, finding and correcting -mistakes. There are also external tools that make debugging easier. -See @ref{Point and click} for more information. - -It is also possible to enter and edit music using other programs. For -example, GUI interfaces, or MIDI sequencers. Refer to the LilyPond -website for more information. - - -@menu -* Relative octaves:: -* Octave check:: -* Bar check:: -* Skipping corrected music:: -* Automatic note splitting:: -@end menu - - - - -@node Relative octaves -@subsection Relative octaves -@cindex Relative -@cindex relative octave specification - -Octaves are specified by adding @code{'} and @code{,} to pitch names. -When you copy existing music, it is easy to accidentally put a pitch -in the wrong octave and hard to find such an error. The relative -octave mode prevents these errors: a single error puts the rest of the -piece off by one octave: - -@cindex @code{\relative} -@example - \relative @var{startpitch} @var{musicexpr} -@end example - -The octave of notes that appear in @var{musicexpr} are calculated as -follows: If no octave changing marks are used, the basic interval -between this and the last note is always taken to be a fourth or -less. This distance is determined without regarding alterations; a -@code{fisis} following a @code{ceses} will be put above the -@code{ceses}. - -The octave changing marks @code{'} and @code{,} can be added to raise -or lower the pitch by an extra octave. Upon entering relative mode, -an absolute starting pitch must be specified that will act as the -predecessor of the first note of @var{musicexpr}. - -Here is the relative mode shown in action: -@lilypond[fragment,raggedright,verbatim] - \relative c'' { - b c d c b c bes a - } -@end lilypond - -Octave changing marks are used for intervals greater than a fourth: -@lilypond[fragment,verbatim] - \relative c'' { - c g c f, c' a, e'' } -@end lilypond - -If the preceding item is a chord, the first note of the chord is used -to determine the first note of the next chord: - -@lilypond[fragment,verbatim] - \relative c' { - c - - - } -@end lilypond -@cindex @code{\notes} - -The pitch after the @code{\relative} contains a note name. To parse -the note name as a pitch, it must surrounded by @code{\notes} - -The relative conversion will not affect @code{\transpose}, -@code{\chords} or @code{\relative} sections in its argument. If you -want to use relative within transposed music, you must place an -additional @code{\relative} inside the @code{\transpose}. - -@node Octave check -@subsection Octave check - - -Octave checks make octave errors easier to correct: a note may be -followed by @code{=}@var{quotes} which indicates what its absolute -octave should be. In the following example, -@example - \relative c'' @{ c='' b=' d,='' @} -@end example - -@noindent -@c take care with @code, adds confusing quotes. -the d will generate a warning, because a d'' is expected, but a d' is -found. In the output, the octave is corrected for this and the -following notes. - - - -There is also a syntax that is separate from the notes. -@example - \octave @var{pitch} -@end example - -This checks that @var{pitch} (without octave) yields @var{pitch} (with -octave) in \relative mode. If not, a warning is printed, and the -octave is corrected, for example, the first check is passed -successfully. The second check fails with an error message. The -octave is adjusted so the following notes are in the correct octave -once again. -@example - \relative c' @{ - e - \octave a' - \octave b' - @} -@end example - - -The octave of a note following an octave check is determined with -respect to the note preceding it. In the next fragment, the last note -is a @code{a'}, above middle C. Hence, the @code{\octave} check may -be deleted without changing the meaning of the piece. - -@lilypond[verbatim,fragment] - \relative c' { - e - \octave b - a - } -@end lilypond - -@node Bar check -@subsection Bar check -@cindex Bar check - -@cindex bar check -@cindex @code{barCheckSynchronize} -@cindex @code{|} - -Bar checks help detect errors in the durations. A bar check is -entered using the bar symbol, `@code{|}'. Whenever it is encountered -during interpretation, it should fall on a measure boundary. If it -does not, a warning is printed. In the next example, the second bar -check will signal an error: -@example - \time 3/4 c2 e4 | g2 | -@end example - -Bar checks can also be used in lyrics, for example - -@example - \lyrics @{ - \time 2/4 - Twin -- kle | Twin -- kle - @} -@end example - - -@cindex skipTypesetting - -Failed bar checks are caused by entering incorrect -durations. Incorrect durations often completely garble up the score, -especially if it is polyphonic, so you should start correcting the -score by scanning for failed bar checks and incorrect durations. To -speed up this process, you can use @code{skipTypesetting}, described -in the next section. - -@node Skipping corrected music -@subsection Skipping corrected music - -The property @code{Score.skipTypesetting} can be used to switch on and -off typesetting completely during the interpretation phase. When -typesetting is switched off, the music is processed much more quickly. -This can be used to skip over the parts of a score that have already -been checked for errors: - -@lilypond[fragment,raggedright,verbatim] -\relative c'' { c8 d -\set Score.skipTypesetting = ##t - e f g a g c, f e d -\set Score.skipTypesetting = ##f -c d b bes a g c2 } -@end lilypond - -@node Automatic note splitting -@subsection Automatic note splitting - -Long notes can be converted automatically to tied notes. This is done -by replacing the @internalsref{Note_heads_engraver} by the -@internalsref{Completion_heads_engraver}. -In the following examples, notes crossing the bar line are split and tied. - - -@lilypond[noindent,verbatim,relative=1] -\new Voice \with { - \remove "Note_heads_engraver" - \consists "Completion_heads_engraver" -} { - c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 -} -@end lilypond - -This engraver splits all running notes at the bar line, and inserts -ties. One of its uses is to debug complex scores: if the measures are -not entirely filled, then the ties exactly show how much each measure -is off. - -@refbugs - -Not all durations (especially those containing tuplets) can be -represented exactly; the engraver will not insert tuplets. - -@seealso - -Examples: @inputfileref{input/regression,completion-heads.ly}. - -Program reference: @internalsref{Completion_heads_engraver}. - - -@node Staff notation -@section Staff notation - -This section describes music notation that occurs on staff level, -such as keys, clefs and time signatures. - -@cindex Staff notation - -@menu -* Staff symbol:: -* Key signature:: -* Clef:: -* Ottava brackets:: -* Time signature:: -* Partial measures:: -* Unmetered music:: -* Bar lines:: -@end menu - -@node Staff symbol -@subsection Staff symbol - -@cindex adjusting staff symbol - -Notes, dynamic signs, etc. are grouped -with a set of horizontal lines, into a staff (plural `staves'). In our -system, these lines are drawn using a separate layout object called -staff symbol. - - -@cindex staff lines, setting number of -@cindex staff lines, setting thickness of -@cindex thickness of staff lines, setting -@cindex number of staff lines, setting - -@seealso - -Program reference: @internalsref{StaffSymbol}. - -Examples: @inputfileref{input/test,staff-lines.ly}, -@inputfileref{input/test,staff-size.ly}. - -@refbugs - -If a staff is ended halfway a piece, the staff symbol may not end -exactly on the bar line. - - -@node Key signature -@subsection Key signature -@cindex Key signature - -@cindex @code{\key} - -The key signature indicates the scale in which a piece is played. It -is denoted by a set of alterations (flats or sharps) at the start of -the staff. - - -Setting or changing the key signature is done with the @code{\key} -command: -@example - @code{\key} @var{pitch} @var{type} -@end example - -@cindex @code{\minor} -@cindex @code{\major} -@cindex @code{\minor} -@cindex @code{\ionian} -@cindex @code{\locrian} -@cindex @code{\aeolian} -@cindex @code{\mixolydian} -@cindex @code{\lydian} -@cindex @code{\phrygian} -@cindex @code{\dorian} - -Here, @var{type} should be @code{\major} or @code{\minor} to get -@var{pitch}-major or @var{pitch}-minor, respectively. -The standard mode names @code{\ionian}, -@code{\locrian}, @code{\aeolian}, @code{\mixolydian}, @code{\lydian}, -@code{\phrygian}, and @code{\dorian} are also defined. - -This command sets the context property -@internalsref{Staff}.@code{keySignature}. Non-standard key signatures -can be specified by setting this property directly. - -Accidentals and key signatures often confuse new users, because -unaltered notes get natural signs depending on the key signature. For -more information, see @ref{More about pitches}. - -@refbugs - -The ordering of a key cancellation is wrong when it is combined with -repeat bar lines. The cancellation is also printed after a line break. - -@seealso - -Program reference: @internalsref{KeyChangeEvent}, and @internalsref{KeySignature}. - -@cindex @code{keySignature} - - -@node Clef -@subsection Clef -@cindex @code{\clef} - -The clef indicates which lines of the staff correspond to which -pitches. - - -The clef can be set or changed with the @code{\clef} command: -@lilypond[fragment,verbatim] - \key f\major c''2 \clef alto g'2 -@end lilypond - -Supported clef-names include: -@c Moved standard clefs to the top /MB -@table @code -@cindex treble clef -@cindex violin clef -@item treble, violin, G, G2 -G clef on 2nd line -@item alto, C -@cindex alto clef - C clef on 3rd line -@item tenor -@cindex tenor clef - C clef on 4th line. -@item bass, F -@cindex bass clef - F clef on 4th line -@item french -@cindex french clef - G clef on 1st line, so-called French violin clef -@item soprano -@cindex soprano clef - C clef on 1st line -@item mezzosoprano -@cindex mezzosoprano clef - C clef on 2nd line -@item baritone -@cindex baritone clef - C clef on 5th line -@item varbaritone -@cindex varbaritone clef - F clef on 3rd line -@item subbass -@cindex subbass clef - F clef on 5th line -@item percussion - percussion clef -@item tab - tablature clef -@end table - -By adding @code{_8} or @code{^8} to the clef name, the clef is -transposed one octave down or up, respectively, and @code{_15} and -@code{^15} transposes by two octaves. The argument @var{clefname} -must be enclosed in quotes when it contains underscores or digits. For -example, - - -@cindex choral tenor clef -@lilypond[verbatim,fragment,relative] - \clef "G_8" c4 -@end lilypond - -This command is equivalent to setting @code{clefGlyph}, -@code{clefPosition} (which controls the Y position of the clef), -@code{centralCPosition} and @code{clefOctavation}. A clef is printed -when any of these properties are changed. - -@seealso - -Program reference: the object for this symbol is @internalsref{Clef}. - - - -@node Ottava brackets -@subsection Ottava brackets - -``Ottava'' brackets introduce an extra transposition of an octave for -the staff. They are created by invoking the function -@code{set-octavation}: - -@cindex ottava -@cindex 15ma -@cindex octavation - -@lilypond[verbatim,fragment] -\relative c''' { - a2 b - #(set-octavation 1) - a b - #(set-octavation 0) - a b } -@end lilypond - -The @code{set-octavation} function also takes -1 (for 8va bassa) and 2 -(for 15ma) as arguments. Internally the function sets the properties -@code{ottavation} (e.g. to @code{"8va"}) and -@code{centralCPosition}. For overriding the text of the bracket, set -@code{ottavation} after invoking @code{set-octavation}, i.e., - -@example - #(set-octavation 1) - \set Staff.ottavation = #"8" -@end example - -@seealso - -Program reference: @internalsref{OttavaBracket}. - -Examples: @inputfileref{input/regression,ottava.ly}, -@inputfileref{input/regression,ottava-broken.ly}. - -@refbugs - -@code{set-octavation} will get confused when clef changes happen -during an octavation bracket. - -@node Time signature -@subsection Time signature -@cindex Time signature -@cindex meter -@cindex @code{\time} - -Time signature indicates the metrum of a piece: a regular pattern of -strong and weak beats. It is denoted by a fraction at the start of the -staff. - - -The time signature is set or changed by the @code{\time} -command: -@lilypond[fragment,verbatim] - \time 2/4 c'2 \time 3/4 c'2. -@end lilypond - -The symbol that is printed can be customized with the @code{style} -property. Setting it to @code{#'()} uses fraction style for 4/4 and -2/2 time. There are many more options for its layout. See -@inputfileref{input/test,time.ly} for more examples. - - -This command sets the property @code{timeSignatureFraction}, -@code{beatLength} and @code{measureLength} in the @code{Timing} -context, which is normally aliased to @internalsref{Score}. The -property @code{measureLength} determines where bar lines should be -inserted, and how automatic beams should be generated. Changing the -value of @code{timeSignatureFraction} also causes the symbol to be -printed. - -More options are available through the Scheme function -@code{set-time-signature}. In combination with the -@internalsref{Measure_grouping_engraver}, it will create -@internalsref{MeasureGrouping} signs. Such signs ease reading -rhythmically complex modern music. In the following example, the 9/8 -measure is subdivided in 2, 2, 2 and 3. This is passed to -@code{set-time-signature} as the third argument @code{(2 2 2 3)}: - -@lilypond[verbatim] -\score { \notes \relative c'' { - #(set-time-signature 9 8 '(2 2 2 3)) - g8[ g] d[ d] g[ g] a8[( bes g]) | - #(set-time-signature 5 8 '(3 2)) - a4. g4 - } - \paper { - raggedright = ##t - \context { \StaffContext - \consists "Measure_grouping_engraver" - }}} -@end lilypond - -@seealso - -Program reference: @internalsref{TimeSignature}, and @internalsref{Timing_engraver}. - - -@refbugs - -Automatic beaming does not use the measure grouping specified with -@code{set-time-signature}. - -@node Partial measures -@subsection Partial measures -@cindex Partial -@cindex anacrusis -@cindex partial measure -@cindex measure, partial -@cindex shorten measures -@cindex @code{\partial} - -Partial measures, for example in upsteps, are entered using the -@code{\partial} command: -@lilypond[fragment,verbatim,relative=1] -\partial 16*5 c16 cis d dis e | a2. c,4 | b2 -@end lilypond - -The syntax for this command is -@example - \partial @var{duration} -@end example -This is internally translated into -@example - \set Timing.measurePosition = -@var{length of duration} -@end example -@cindex @code{|} -The property @code{measurePosition} contains a rational number -indicating how much of the measure has passed at this point. - -@node Unmetered music -@subsection Unmetered music - -Bar lines and bar numbers are calculated automatically. For unmetered -music (e.g. cadenzas), this is not desirable. By setting -@code{Score.timing} to false, this automatic timing can be switched -off. Empty bar lines, - -@example - \bar "" -@end example - -@noindent -indicate where line breaks can occur. - - - -@refcommands - -@cindex @code{\cadenzaOn} -@code{\cadenzaOn}, -@cindex @code{\cadenzaOff} -@code{\cadenzaOff}. - -@node Bar lines -@subsection Bar lines -@cindex Bar lines - -@cindex @code{\bar} -@cindex measure lines -@cindex repeat bars - - -Bar lines delimit measures, but are also used to indicate repeats. -Normally, they are inserted automatically. Line breaks may only -happen on bar lines. - - - Special types -of bar lines can be forced with the @code{\bar} command: -@c -@lilypond[relative=1,fragment,verbatim] - c4 \bar "|:" c4 -@end lilypond - -The following bar types are available: -@lilypond[fragment,relative,raggedright,verbatim] -c4 -\bar "|" c -\bar "" c -\bar "|:" c -\bar "||" c -\bar ":|" c -\bar ".|" c -\bar ".|." c -\bar ":|:" c -\bar "|." c -\bar ":" c -@end lilypond -For allowing line breaks, there is a special command, -@example - \bar "empty" -@end example -This will insert an invisible bar line, and allow line breaks at this -point. - -In scores with many staves, a @code{\bar} command in one staff is -automatically applied to all staves. The resulting bar lines are -connected between different staves of a @internalsref{StaffGroup}: -@c -@lilypond[fragment,verbatim] -<< \context StaffGroup << - \new Staff { e'4 d' - \bar "||" - f' e' } - \new Staff { \clef bass c4 g e g } >> -\new Staff { \clef bass c2 c2 } >> -@end lilypond - -A bar line is created whenever the @code{whichBar} property is set. -At the start of a measure it is set to the contents of -@code{defaultBarType}. The contents of @code{repeatCommands} are used -to override default measure bars. - -The command @code{\bar }@var{bartype} is a short cut for doing -@code{\set Timing.whichBar = }@var{bartype}. Whenever @code{whichBar} -is set to a string, a bar line of that type is created. - -@cindex whichBar -@cindex repeatCommands -@cindex defaultBarType - -You are encouraged to use @code{\repeat} for repetitions. See -@ref{Repeats}. - - - -@seealso - -In this manual: @ref{Repeats}. - - -Program reference: the bar line objects that are created at -@internalsref{Staff} level are called @internalsref{BarLine}, the bar -lines that span staves are @internalsref{SpanBar}s. - -@cindex bar lines at start of system -@cindex start of system - -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}. - -Examples: @inputfileref{input/test,bar-lines.ly}, - -@node Polyphony -@section Polyphony -@cindex polyphony - -The easiest way to enter fragments with more than one voice on a staff -is to split chords using the separator @code{\\}. You can use it for -small, short-lived voices or for single chords: - -@lilypond[verbatim,fragment] -\context Staff \relative c'' { - c4 << { f d e } \\ { b c2 } >> - c4 << g' \\ b, \\ f' \\ d >> -} -@end lilypond - -The separator causes @internalsref{Voice} contexts@footnote{Polyphonic -voices are sometimes called "layers" other notation packages} -@cindex layers -to be instantiated. They bear the names @code{"1"}, @code{"2"}, etc. In -each of these contexts, vertical direction of slurs, stems, etc. is set -appropriately. - -@cindex @code{\voiceOne} -@cindex @code{\voiceFour} - -This can also be done by instantiating @internalsref{Voice} contexts -by hand, and using @code{\voiceOne}, up to @code{\voiceFour} to assign -a stem directions and horizontal shift for each part: -@c - -@lilypond[raggedright,verbatim] -\relative c'' -\context Staff << \new Voice { \voiceOne cis2 b } - \new Voice { \voiceThree b4 ais ~ ais4 gis4 } - \new Voice { \voiceTwo fis4~ fis4 f ~ f } >> -@end lilypond - -@noindent -The command @code{\oneVoice} will revert back to the normal setting. -@cindex @code{\oneVoice} - - -Normally, note heads with a different number of dots are not merged, but -when the object property @code{merge-differently-dotted} is set in -the @internalsref{NoteCollision} object, they are merged: -@lilypond[verbatim,fragment,raggedright] -\relative c'' \context Voice << { - g8 g8 - \override Staff.NoteCollision - #'merge-differently-dotted = ##t - g8 g8 - } \\ { g8.[ f16] g8.[ f16] } - >> -@end lilypond - -Similarly, you can merge half note heads with eighth notes, by setting -@code{merge-differently-headed}: -@lilypond[fragment,relative=2,verbatim] -\context Voice << { - c8 c4. - \override Staff.NoteCollision - #'merge-differently-headed = ##t - c8 c4. } \\ { c2 c2 } >> -@end lilypond - -LilyPond also vertically shifts rests that are opposite of a stem: - - -@lilypond[raggedright,fragment,verbatim] -\context Voice << c''4 \\ r4 >> -@end lilypond - - -@refcommands - - - -@cindex @code{\oneVoice} -@code{\oneVoice}, -@cindex @code{\voiceOne} -@code{\voiceOne}, -@cindex @code{\voiceTwo} -@code{\voiceTwo}, -@cindex @code{\voiceThree} -@code{\voiceThree}, -@cindex @code{\voiceFour} -@code{\voiceFour}. - - -The following commands specify in what chords of the current voice -should be shifted: the outer voice has @code{\shiftOff}, and the inner -voices have @code{\shiftOn}, @code{\shiftOnn}, etc. - - -@cindex @code{\shiftOn} -@code{\shiftOn}, -@cindex @code{\shiftOnn} -@code{\shiftOnn}, -@cindex @code{\shiftOnnn} -@code{\shiftOnnn}, -@cindex @code{\shiftOff} -@code{\shiftOff}. - - - -@seealso - -Program reference: the objects responsible for resolving collisions are -@internalsref{NoteCollision} and @internalsref{RestCollision}. - -Examples: See also example files -@inputfileref{input/regression,collision-dots.ly}, -@inputfileref{input/regression,collision-head-chords.ly}, -@inputfileref{input/regression,collision-heads.ly}, -@inputfileref{input/regression,collision-mesh.ly}, and -@inputfileref{input/regression,collisions.ly}. - - -@refbugs - -Resolving collisions is a intricate subject, and only a few situations -are handled. When LilyPond cannot cope, the @code{force-hshift} -property of the @internalsref{NoteColumn} object and pitched rests can -be used to override typesetting decisions. - -When using @code{merge-differently-headed} with an upstem eighth or a -shorter note, and a downstem half note, the eighth note gets the wrong -offset. - -There is no support for clusters where the same note occurs with -different accidentals in the same chord. In this case, it is -recommended to use enharmonic transcription, or to use special cluster -notation (see @ref{Clusters}). - -@node Beaming -@section Beaming - -Beams are used to group short notes into chunks that are aligned with -the metrum. They are inserted automatically - -@lilypond[fragment,verbatim,relative=2] -\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8 -@end lilypond - -When these automatic decisions are not good enough, beaming can be -entered explicitly. It is also possible to define beaming patterns -that differ from the defaults. - -Individual notes may be marked with @code{\noBeam}, to prevent them -from being beamed: - -@lilypond[fragment,verbatim,relative=2] - \time 2/4 c8 c\noBeam c c -@end lilypond - - -@seealso - -Program reference: @internalsref{Beam}. - - -@cindex Automatic beams -@menu -* Manual beams:: -* Setting automatic beam behavior:: -@end menu - -@node Manual beams -@subsection Manual beams -@cindex beams, manual -@cindex @code{]} -@cindex @code{[} - -In some cases it may be necessary to override the automatic beaming -algorithm. For example, the autobeamer will not put beams over rests -or bar lines. Such beams are specified by manually: the begin and end -point are marked with @code{[} and @code{]}: - -@lilypond[fragment,relative,verbatim] - \context Staff { - r4 r8[ g' a r8] r8 g[ | a] r8 - } -@end lilypond - -@cindex @code{stemLeftBeamCount} - -Normally, beaming patterns within a beam are determined automatically. -If necessary, the properties @code{stemLeftBeamCount} and -@code{stemRightBeamCount} can be used to override the defaults. If -either property is set, its value will be used only once, and then it -is erased: - -@lilypond[fragment,relative,verbatim] - \context Staff { - f8[ r16 f g a] - f8[ r16 \set stemLeftBeamCount = #1 f g a] - } -@end lilypond -@cindex @code{stemRightBeamCount} - - -The property @code{subdivideBeams} can be set in order to subdivide -all 16th or shorter beams at beat positions, as defined by the -@code{beatLength} property. - - -@lilypond[relative=1,verbatim,noindent] - c16[ c c c c c c c] - \set subdivideBeams = ##t - c16[ c c c c c c c] - \set Score.beatLength = #(ly:make-moment 1 8) - c16[ c c c c c c c] -@end lilypond -@cindex subdivideBeams - -Kneed beams are inserted automatically, when a large gap is detected -between the note heads. This behavior can be tuned through the object -property @code{auto-knee-gap}. - -Normally, line breaks are forbidden when beams cross bar lines. This -behavior can be changed by setting @code{allowBeamBreak}. - -@cindex @code{allowBeamBreak} -@cindex beams and line breaks - -@cindex beams, kneed -@cindex kneed beams -@cindex auto-knee-gap - - - -@refbugs - -@cindex Frenched staves - -Automatically kneed cross-staff beams cannot be used together with -hidden staves. - - - - -@node Setting automatic beam behavior -@subsection Setting automatic beam behavior - -@cindex @code{autoBeamSettings} -@cindex @code{(end * * * *)} -@cindex @code{(begin * * * *)} -@cindex automatic beams, tuning -@cindex tuning automatic beaming - -@c [TODO: use \applycontext] - -In normal time signatures, automatic beams can start on any note but can -only end in a few positions within the measure: beams can end on a beat, -or at durations specified by the properties in -@code{autoBeamSettings}. The defaults for @code{autoBeamSettings} -are defined in @file{scm/auto-beam.scm}. - -The value of @code{autoBeamSettings} is changed with two functions, -@example - #(override-auto-beam-setting - '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b} - [@var{context}]) - #(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})) -@end example -Here, @var{be} is the symbol @code{begin} or @code{end}, and -@var{context} is an optional context (default: @code{'Voice}). It -determines whether the rule applies to begin or end-points. The -quantity @var{p}/@var{q} refers to the length of the beamed notes (and -`@code{* *}' designates notes of any length), @var{n}/@var{M} refers -to a time signature (wildcards `@code{* *}' may be entered to -designate all time signatures), @var{a}/@var{b} is a duration. By -default, this command changes settings for the current voice. It is -also possible to adjust settings at higher contexts, by adding a -@var{context} argument. - -For example, if automatic beams should end on every quarter note, use -the following: -@example - #(override-auto-beam-setting '(end * * * *) 1 4 'Staff) -@end example -Since the duration of a quarter note is 1/4 of a whole note, it is -entered as @code{(ly:make-moment 1 4)}. - -The same syntax can be used to specify beam starting points. In this -example, automatic beams can only end on a dotted quarter note: -@example - #(override-auto-beam-setting '(end * * * *) 3 8) -@end example -In 4/4 time signature, this means that automatic beams could end only on -3/8 and on the fourth beat of the measure (after 3/4, that is 2 times -3/8, has passed within the measure). - -Rules can also be restricted to specific time signatures. A rule that -should only be applied in @var{N}/@var{M} time signature is formed by -replacing the second asterisks by @var{N} and @var{M}. For example, a -rule for 6/8 time exclusively looks like -@example - #(override-auto-beam-setting '(begin * * 6 8) @dots{}) -@end example - -If a rule should be to applied only to certain types of beams, use the -first pair of asterisks. Beams are classified according to the -shortest note they contain. For a beam ending rule that only applies -to beams with 32nd notes (and no shorter notes), use @code{(end 1 32 * -*)}. - -If a score ends while an automatic beam has not been ended and is still -accepting notes, this last beam will not be typeset at all. - -@cindex automatic beam generation -@cindex autobeam -@cindex @code{autoBeaming} -@cindex lyrics - -If beams are used to indicate melismata in songs, then automatic -beaming should be switched off. This is done by setting -@code{autoBeaming} to @code{#f}. - -@refcommands - -@cindex @code{\autoBeamOff} -@code{\autoBeamOff}, -@cindex @code{\autoBeamOn} -@code{\autoBeamOn}. - - -@refbugs - -The rules for ending a beam depend on the shortest note in a beam. -So, while it is possible to have different ending rules for eight -beams and sixteenth beams, a beam that contains both eight and -sixteenth notes will use the rules for the sixteenth beam. - -In the example below, the autobeamer makes eight beams and sixteenth -end at 3 eights; the third beam can only be corrected by specifying -manual beaming. - -@lilypond[raggedright,fragment,relative] - #(override-auto-beam-setting '(end * * * *) 3 8) - % rather show case where it goes wrong - %\time 12/8 c'8 c c c16 c c c c c c[ c c c] c8[ c] c4 - \time 12/8 c'8 c c c16 c c c c c c c c c c8 c c4 -@end lilypond -It is not possible to specify beaming parameters that act differently in -different parts of a measure. This means that it is not possible to use -automatic beaming in irregular meters such as @code{5/8}. - -@node Accidentals -@section Accidentals -@cindex Accidentals - -This section describes how to change the way that accidentals are -inserted automatically before the running notes. - -Common rules for typesetting accidentals have been canned in a -function. This function is called as follows: - -@cindex @code{set-accidental-style} -@example - #(set-accidental-style 'modern 'Voice) -@end example - -The function takes two arguments: a symbol that denotes the style (in -the example, @code{modern}), and another symbol that denotes the -context name (in this example, @code{Voice}). If no context name is -supplied, @code{Staff} is the default. - -The following styles are supported: -@table @code -@item default - This is the default typesetting behavior. It should correspond - to 18th century common practice: Accidentals are - remembered to the end of the measure in which they occur and - only on their own octave. - -@item voice -@c - The normal behavior is to remember the accidentals on -Staff-level. This variable, however, typesets accidentals -individually for each voice. Apart from that, the rule is similar to -@code{code}. - - This leads to some weird and often unwanted results - because accidentals from one voice do not get canceled in other - voices: -@lilypond[raggedright,relative,fragment,verbatim] - \context Staff << - #(set-accidental-style 'voice) - << - { es g } \\ - { c, e } - >> >> -@end lilypond - Hence you should only use @code{voice} if the voices -are to be read solely by individual musicians. If the staff is to be -used by one musician (e.g. a conductor) then you use -@code{modern} or @code{modern-cautionary} -instead. - -@item modern -@cindex @code{modern} style accidentals - This rule corresponds to the common practice in the 20th - century. - This rule prints the same accidentals as @code{default}, but temporary - accidentals also are canceled in other octaves. Furthermore, - in the same octave, they also get canceled in the following - measure: - -@lilypond[raggedright,fragment,verbatim] - #(set-accidental-style 'modern) - cis' c'' cis'2 | c'' c' -@end lilypond - -@item @code{modern-cautionary} - @cindex @code{modern-cautionary} - This rule is similar to @code{modern}, but the - ``extra'' accidentals (the ones not typeset by - @code{default}) are typeset as cautionary accidentals. - They are printed in reduced size or with parentheses: -@lilypond[raggedright,fragment,verbatim] - #(set-accidental-style 'modern-cautionary) - cis' c'' cis'2 | c'' c' -@end lilypond - - @cindex @code{modern-voice} -@item modern-voice -This rule is used for multivoice accidentals to be read both by musicians -playing one voice and musicians playing all voices. Accidentals are -typeset for each voice, but they @emph{are} canceled across voices in -the same @internalsref{Staff}. - - @cindex @code{modern-voice-cautionary} -@item modern-voice-cautionary -This rule is the same as @code{modern-voice}, but with the extra -accidentals (the ones not typeset by @code{voice}) typeset -as cautionaries. Even though all accidentals typeset by -@code{default} @emph{are} typeset by this variable then -some of them are typeset as cautionaries. - -@item piano - @cindex @code{piano} accidentals -This rule reflects 20th century practice for piano notation. Very similar to - @code{modern} but accidentals also get canceled - across the staves in the same @internalsref{GrandStaff} or - @internalsref{PianoStaff}. - -@item piano-cautionary - @cindex @code{#(set-accidental-style 'piano-cautionary)} - As @code{#(set-accidental-style 'piano)' , str)} but with the extra accidentals - typeset as cautionaries. - -@item no-reset - @cindex @code{no-reset} accidental style - @c - This is the same as @code{default} but with accidentals lasting - ``forever'' and not only until the next measure: -@lilypond[raggedright,fragment,verbatim,relative] - #(set-accidental-style 'no-reset) - c1 cis cis c -@end lilypond - -@item forget - This is sort of the opposite of @code{no-reset}: Accidentals - are not remembered at all---and hence all accidentals are - typeset relative to the key signature, regardless of what was - before in the music: - -@lilypond[raggedright,fragment,verbatim,relative] - #(set-accidental-style 'forget) - \key d\major c4 c cis cis d d dis dis -@end lilypond -@end table - - -@seealso - -Program reference: @internalsref{Accidental_engraver}, -@internalsref{Accidental}, and @internalsref{AccidentalPlacement}. - - -@refbugs - -Simultaneous notes are considered to be entered in sequential -mode. This means that in a chord the accidentals are typeset as if the -notes in the chord happened once at a time - in the order in which -they appear in the input file. - -This is only a problem when accidentals in a chord depend on each -other. This problem can be solved by manually inserting @code{!} and -@code{?} for the problematic notes. - -In the default scheme, accidentals only depend on other -accidentals with the same pitch on the same staff, so no conflicts are -possible. - -@node Expressive marks -@section Expressive marks - - -@c todo: should change ordering -@c where to put text spanners, metronome marks, -@c fingering? - -@menu -* Slurs:: -* Phrasing slurs:: -* Breath marks:: -* Metronome marks:: -* Text spanners:: -* Analysis brackets:: -* Articulations:: -* Fingering instructions:: -* Text scripts:: -* Grace notes:: -* Glissando:: -* Dynamics:: -@end menu - -@node Slurs -@subsection Slurs -@cindex Slurs - -A slur indicates that notes are to be played bound or @emph{legato}. - - -They are entered using parentheses: -@lilypond[relative=1,fragment,verbatim] - f( g)( a) a8 b( a4 g2 f4) - 2( 2) -@end lilypond - - -@c TODO: should explain that ^( and _( set directions -@c should set attachments with ^ and _ ? - -Slurs avoid crossing stems, and are generally attached to note heads. -However, in some situations with beams, slurs may be attached to stem -ends. If you want to override this layout you can do this through the -object property @code{attachment} of @internalsref{Slur}. Its value -is a pair of symbols, specifying the attachment type of the left and -right end points: - -@lilypond[fragment,relative,verbatim] - \slurUp - \override Stem #'length = #5.5 - g'8(g g4) - \override Slur #'attachment = #'(stem . stem) - g8( g g4) -@end lilypond - -If a slur would strike through a stem or beam, the slur will be moved -away upward or downward. If this happens, attaching the slur to the -stems might look better: - -@lilypond[fragment,relative,verbatim] - \stemUp \slurUp - d32( d'4 d8..) - \override Slur #'attachment = #'(stem . stem) - d,32( d'4 d8..) -@end lilypond - -@refcommands - - -@cindex @code{\slurUp} -@code{\slurUp}, -@cindex @code{\slurDown} -@code{\slurDown}, -@cindex @code{\slurBoth} -@code{\slurBoth}, -@cindex @code{\slurDotted} -@code{\slurDotted}, -@cindex @code{\slurSolid} -@code{\slurSolid}. - -@seealso - -Program reference: @seeinternals{Slur}, and @internalsref{SlurEvent}. - - -@refbugs - -Producing nice slurs is a difficult problem, and LilyPond -uses a simple, empiric method to produce slurs. In some cases, its -results are ugly. - - -@cindex Adjusting slurs - -@node Phrasing slurs -@subsection Phrasing slurs - -@cindex phrasing slurs -@cindex phrasing marks - -A phrasing slur (or phrasing mark) connects chords and is used to -indicate a musical sentence. It is started using @code{\(} and @code{\)} -respectively: - -@lilypond[fragment,verbatim,relative] - \time 6/4 c'\( d( e) f( e) d\) -@end lilypond - -Typographically, the phrasing slur behaves almost exactly like a -normal slur. However, they are treated as different objects. A -@code{\slurUp} will have no effect on a phrasing slur; instead, you -should use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and -@code{\phrasingSlurBoth}. - -The commands @code{\slurUp}, @code{\slurDown}, and @code{\slurBoth} -will only affect normal slurs and not phrasing slurs. - -@refcommands - -@cindex @code{\phrasingSlurUp} -@code{\phrasingSlurUp}, -@cindex @code{\phrasingSlurDown} -@code{\phrasingSlurDown}, -@cindex @code{\phrasingSlurBoth} -@code{\phrasingSlurBoth}. - -@seealso - -Program reference: see also @internalsref{PhrasingSlur}, and -@internalsref{PhrasingSlurEvent}. - -@refbugs - -Phrasing slurs have the same limitations in their formatting as normal -slurs. Putting phrasing slurs over rests leads to spurious warnings. - -@node Breath marks -@subsection Breath marks - -Breath marks are entered using @code{\breathe}: - - -@lilypond[fragment,relative,verbatim] -c'4 \breathe d4 -@end lilypond - -The glyph of the breath mark can be tuned by overriding the -@code{text} property of the @code{BreathingSign} layout object with -any markup text. For example, -@lilypond[fragment,verbatim,relative] -c'4 -\override BreathingSign #'text - = #(make-musicglyph-markup "scripts-rvarcomma") -\breathe -d4 -@end lilypond - -@seealso - -Program reference: @internalsref{BreathingSign}, -@internalsref{BreathingSignEvent}. - -Examples: @inputfileref{input/regression,breathing-sign.ly}. - - -@node Metronome marks -@subsection 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, and in the -paper output, a metronome marking is printed: -@cindex @code{\tempo} -@lilypond[fragment,verbatim] - \tempo 8.=120 c''1 -@end lilypond - -@seealso - -Program reference: @internalsref{MetronomeChangeEvent}. - - - -@node Text spanners -@subsection Text spanners -@cindex Text spanners - -Some performance indications, e.g. @i{rallentando} or @i{accelerando}, -are written as texts, and extended over many measures with dotted -lines. You can create such texts using text spanners: attach -@code{\startTextSpan} and @code{\stopTextSpan} to the -start and ending note of the spanner. - -The string to be printed, as well as the style, is set through object -properties: - -@lilypond[fragment,relative,verbatim] - \relative c' { c1 - \override TextSpanner #'direction = #-1 - \override TextSpanner #'edge-text = #'("rall " . "") - c2\startTextSpan b c\stopTextSpan a } -@end lilypond - - -@seealso - -Internals @internalsref{TextSpanEvent}, -@internalsref{TextSpanner}. - -Examples: @inputfileref{input/regression,text-spanner.ly}. - - -@node Analysis brackets -@subsection Analysis brackets -@cindex brackets -@cindex phrasing brackets -@cindex musicological analysis -@cindex note grouping bracket - -Brackets are used in musical analysis to indicate structure in musical -pieces. LilyPond supports a simple form of nested horizontal brackets. -To use this, add the @internalsref{Horizontal_bracket_engraver} to -@internalsref{Staff} context. A bracket is started with -@code{\startGroup} and closed with @code{\stopGroup}: - -@lilypond[raggedright,verbatim] -\score { \notes \relative c'' { - c4\startGroup\startGroup - c4\stopGroup - c4\startGroup - c4\stopGroup\stopGroup - } - \paper { \context { - \StaffContext \consists "Horizontal_bracket_engraver" - }}} -@end lilypond - -@seealso - -Program reference: @internalsref{HorizontalBracket}, -@internalsref{NoteGroupingEvent}. - -Examples: @inputfileref{input/regression,note-group-bracket.ly}. - - -@node Articulations -@subsection Articulations -@cindex Articulations - -@cindex articulations -@cindex scripts -@cindex ornaments - -A variety of symbols can appear above and below notes to indicate -different characteristics of the performance. They are added to a note -by adding a dash and the character signifying the -articulation. They are demonstrated here: - -@lilypondfile[]{script-abbreviations.ly} - -The meanings of these shorthands can be changed. See -@file{ly/script-init.ly} for examples. - - -The script is automatically placed, but if you need to force -directions, you can use @code{_} to force them down, or @code{^} to -put them up: -@lilypond[fragment,verbatim] - c''4^^ c''4_^ -@end lilypond - -Other symbols can be added using the syntax -@var{note}@code{\}@var{name}, e.g. @code{c4\fermata}. Again, they -can be forced up or down using @code{^} and @code{_}, -e.g. - -@lilypond[verbatim,fragment,relative=2] - c\fermata c^\fermata c_\fermata -@end lilypond - - - -@cindex accent -@cindex marcato -@cindex staccatissimo -@cindex fermata -@cindex stopped -@cindex staccato -@cindex portato -@cindex tenuto -@cindex upbow -@cindex downbow -@cindex foot marks -@cindex organ pedal marks -@cindex turn -@cindex open -@cindex flageolet -@cindex reverseturn -@cindex trill -@cindex prall -@cindex mordent -@cindex prallprall -@cindex prallmordent -@cindex prall, up -@cindex prall, down -@cindex mordent -@cindex thumb marking -@cindex segno -@cindex coda -@cindex varcoda - -@lilypondfile[]{script-chart.ly} - - -@refcommands - -@cindex @code{\scriptUp} -@code{\scriptUp}, -@cindex @code{\scriptDown} -@code{\scriptDown}, -@cindex @code{\scriptBoth} -@code{\scriptBoth}. - -@seealso - -Program reference: @internalsref{ScriptEvent}, and @internalsref{Script}. - -@refbugs - -These note ornaments appear in the printed output but have no -effect on the MIDI rendering of the music. - - -@node Fingering instructions -@subsection Fingering instructions - -@cindex fingering - -Fingering instructions can be entered using -@example - @var{note}-@var{digit} -@end example -For finger changes, use markup texts: -@c -@lilypond[verbatim,raggedright,fragment] - c'4-1 c'4-2 c'4-3 c'4-4 - c'^\markup { \finger "2-3" } -@end lilypond - -@cindex finger change -@cindex scripts -@cindex superscript -@cindex subscript - -You can use the thumb-script to indicate that a note should be -played with the thumb (e.g. in cello music): - -@lilypond[verbatim,raggedright,fragment] - 8_\thumb _\thumb -@end lilypond - -Fingerings for chords can also be added to individual notes -of the chord by adding them after the pitches: -@lilypond[verbatim,raggedright,fragment,relative=1] - < c-1 e-2 g-3 b-5 > 4 -@end lilypond - -@noindent -In this case, setting @code{fingeringOrientations} will put fingerings next -to note heads: - -@lilypond[verbatim,raggedright,fragment,relative=1] - \set fingeringOrientations = #'(left down) - 4 - \set fingeringOrientations = #'(up right down) - 4 - \set fingeringOrientations = #'(right) - 4 -@end lilypond - -The last note demonstrates how fingering instructions can be put close -to note heads in monophonic music, using this feature. - -@seealso - -Program reference: @internalsref{FingerEvent}, and @internalsref{Fingering}. - -Examples: @inputfileref{input/regression,finger-chords.ly}. - -@node Text scripts -@subsection Text scripts -@cindex Text scripts - -@cindex text items, non-empty -@cindex non-empty texts - -It is possible to place arbitrary strings of text or markup text (see -@ref{Text markup}) above or below notes by using a string: -@code{c^"text"}. By default, these indications do not influence the -note spacing, but by using the command @code{\fatText}, the widths -will be taken into account: -@c -@lilypond[fragment,raggedright,verbatim] \relative c' { -c4^"longtext" \fatText c4_"longlongtext" c4 } -@end lilypond - -It is possible to use @TeX{} commands in the strings, but this should -be avoided because the exact dimensions of the string can then no -longer be computed. - -@refcommands - -@cindex @code{\fatText} -@code{\fatText}, -@cindex @code{\emptyText} -@code{\emptyText}. - -@seealso - -In this manual: @ref{Text markup}. - -Program reference: @internalsref{TextScriptEvent}, @internalsref{TextScript}. - - - - -@node Grace notes -@subsection Grace notes - - -@c should have blurb about accaciatura / appogiatura - -@cindex @code{\grace} -@cindex ornaments -@cindex grace notes - -Grace notes are ornaments that are written out. The most common ones -are acciaccatura, which should be played as very short. It is denoted -by a slurred small note with a slashed stem. The appoggiatura is a -grace note that takes a fixed fraction of the main note, is and -denoted as a slurred note in small print without a slash. -They are entered with the commands @code{\acciaccatura} and -@code{\appoggiatura}, as demonstrated in the following example: - - -@cindex appoggiatura -@cindex acciaccatura - -@lilypond[relative=2,verbatim,fragment] -b4 \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e4 -@end lilypond - -Both are special forms of the @code{\grace} command. By prefixing this -keyword to a music expression, a new one is formed, which will be -printed in a smaller font and takes up no logical time in a measure. -@lilypond[relative=2,verbatim,fragment] - c4 \grace c16 c4 - \grace { c16[ d16] } c2 c4 -@end lilypond - -@noindent -Unlike @code{\acciaccatura} and @code{\appoggiatura}, the -@code{\grace} command does not start a slur. - -Internally, timing for grace notes is done using a second, `grace' -time. Every point in time consists of two rational numbers: one -denotes the logical time, one denotes the grace timing. The above -example is shown here with timing tuples: - -@lilypond[raggedright] -<< - \relative c''{ - c4 \grace c16 c4 \grace { - c16[ d16] } c2 c4 - } - \new Lyrics \lyrics { - \markup { (0,0) } 4 - \grace { \markup { - ( \fraction 1 4 , \fraction -1 16 ) } 16 } - \markup { (\fraction 1 4 , 0 ) } 4 - \grace { - \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16 - \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16 - } - \markup { ( \fraction 2 4 , 0 ) } - } >> -@end lilypond - - -The placement of grace notes is synchronized between different staves. -In the following example, there are two sixteenth graces notes for -every eighth grace note: - -@lilypond[relative=2,verbatim,fragment] -<< \new Staff { e4 \grace { c16[ d e f] } e4 } - \new Staff { c'4 \grace { g8[ b] } c4 } >> -@end lilypond - - - -If you want to end a note with a grace, then the standard trick -is to put the grace notes after a ``space note'', e.g. -@lilypond[fragment,verbatim,relative=2] -\context Voice { - << { d1^\trill ( } - { s2 \grace { c16[ d] } } >> - c4) -} -@end lilypond - -@noindent -By adjusting the duration of the skip note (here it is a half-note), -the space between the main-note and the grace is adjusted. - - -A @code{\grace} section will introduce special typesetting settings, -for example, to produce smaller type, and set directions. Hence, when -introducing layout tweaks, they should be inside the grace section, -for example, -@lilypond[fragment,verbatim,relative=1] -\new Voice { - \acciaccatura { - \override Stem #'direction = #-1 - f16-> - \revert Stem #'direction - } - g4 -} -@end lilypond - -@noindent -The overrides should also be reverted inside the grace section. - -If the layout of grace sections must be changed throughout the music, -then this can be accomplished through the function -@code{add-grace-property}. The following example undefines the Stem -direction for this grace, so stems do not always point up. - -@example - \new Staff @{ - #(add-grace-property "Voice" Stem direction '()) - @dots{} - @} -@end example - -@noindent -Another option is to change the variables @code{startGraceMusic}, -@code{stopGraceMusic}, @code{startAccacciaturaMusic}, -@code{stopAccacciaturaMusic}, @code{startAppoggiaturaMusic}, -@code{stopAppoggiaturaMusic}. More information is in the file -@file{ly/grace-init.ly}. - - -@seealso - -Program reference: @internalsref{GraceMusic}. - -@refbugs - -A score that starts with an @code{\grace} section needs an explicit -@code{\context Voice} declaration, otherwise the main note and grace -note end up on different staves. - -Grace note synchronization can also lead to surprises. Staff notation, -such as key signatures, bar lines, etc. are also synchronized. Take -care when you mix staves with grace notes and staves without, for example, - -@lilypond[relative=2,verbatim,fragment] -<< \new Staff { e4 \bar "|:" \grace c16 d4 } - \new Staff { c4 \bar "|:" d4 } >> -@end lilypond - -@noindent -This can be remedied by inserting grace skips, for the above example - -@verbatim - \new Staff { c4 \bar "|:" \grace s16 d4 } >> -@end verbatim - -Grace sections should only be used within sequential music -expressions. Nesting or juxtaposing grace sections is not supported, -and might produce crashes or other errors. - - -@node Glissando -@subsection Glissando -@cindex Glissando - -@cindex @code{\glissando} - -A glissando is a smooth change in pitch. It is denoted by a line or a -wavy line between two notes. - - -A glissando line can be requested by attaching a @code{\glissando} to -a note: - -@lilypond[fragment,relative,verbatim] - c'\glissando c' -@end lilypond - -@seealso - -Program reference: @internalsref{Glissando}, and @internalsref{GlissandoEvent}. - -Example files: @file{input/regression,glissando.ly} - - - -@refbugs - -Printing text over the line (such as @emph{gliss.}) is not supported. - - -@node Dynamics -@subsection Dynamics -@cindex Dynamics - - - -@cindex @code{\ppp} -@cindex @code{\pp} -@cindex @code{\p} -@cindex @code{\mp} -@cindex @code{\mf} -@cindex @code{\f} -@cindex @code{\ff} -@cindex @code{\fff} -@cindex @code{\ffff} -@cindex @code{\fp} -@cindex @code{\sf} -@cindex @code{\sff} -@cindex @code{\sp} -@cindex @code{\spp} -@cindex @code{\sfz} -@cindex @code{\rfz} - - -Absolute dynamic marks are specified using a command after a note: -@code{c4\ff}. The available dynamic marks are @code{\ppp}, -@code{\pp}, @code{\p}, @code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, -@code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff}, -@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}: - -@lilypond[verbatim,raggedright,fragment,relative] - c'\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff - c2\sf c\rfz -@end lilypond - -@cindex @code{\<} -@cindex @code{\>} -@cindex @code{\"!} - - - -A crescendo mark is started with @code{\<} and terminated with -@code{\!}. A decrescendo is started with @code{\>} and also terminated -with @code{\!}. Because these marks are bound to notes, if you must -use spacer notes if multiple marks during one note are needed: - -@lilypond[fragment,verbatim] - c''\< c''\! d''\> e''\! - << f''1 { s4 s4\< s4\! \> s4\! } >> -@end lilypond -This may give rise to very short hairpins. Use @code{minimum-length} -in @internalsref{Voice}.@internalsref{Hairpin} to lengthen them, for -example: - -@example - \override Staff.Hairpin #'minimum-length = #5 -@end example - -You can also use a text saying @emph{cresc.} instead of hairpins. Here -is an example how to do it: - -@lilypond[fragment,relative=2,verbatim] - \setTextCresc - c \< d e f\! - \setHairpinCresc - e\> d c b\! -@end lilypond - -@cindex crescendo -@cindex decrescendo - -You can also supply your own texts: -@lilypond[fragment,relative,verbatim] - \context Voice { - \set crescendoText = \markup { \italic "cresc. poco" } - \set crescendoSpanner = #'dashed-line - a'2\< a a a\!\mf - } -@end lilypond - -@cindex diminuendo - - -@refcommands - -@cindex @code{\dynamicUp} -@code{\dynamicUp}, -@cindex @code{\dynamicDown} -@code{\dynamicDown}, -@cindex @code{\dynamicBoth} -@code{\dynamicBoth}. - -@cindex direction, of dynamics - -@seealso - -Program reference: @internalsref{CrescendoEvent}, -@internalsref{DecrescendoEvent}, and -@internalsref{AbsoluteDynamicEvent}. - -Dynamics @internalsref{DynamicText} and @internalsref{Hairpin} -objects. Vertical positioning of these symbols is handled by the -@internalsref{DynamicLineSpanner} object. - - -@node Repeats -@section Repeats - - -@cindex repeats -@cindex @code{\repeat} - - -Repetition is a central concept in music, and multiple notations exist -for repetitions. In LilyPond, most of these notations can be captured -in a uniform syntax. One of the advantages is that they can be -rendered in MIDI accurately. - -The following types of repetition are supported: - -@table @code -@item unfold -Repeated music is fully written (played) out. Useful for MIDI -output, and entering repetitive music. - -@item volta -This is the normal notation: Repeats are not written out, but -alternative endings (volte) are printed, left to right. - -@ignore -@item fold -Alternative endings are written stacked. This has limited use but may be -used to typeset two lines of lyrics in songs with repeats, see -@inputfileref{input,star-spangled-banner.ly}. -@end ignore - -@c tremolo, beamed -@item tremolo -Make tremolo beams. - -@item percent -Make beat or measure repeats. These look like percent signs. - -@end table - -@menu -* Repeat syntax:: -* Repeats and MIDI:: -* Manual repeat commands:: -* Tremolo repeats:: -* Tremolo subdivisions:: -* Measure repeats:: -@end menu - -@node Repeat syntax -@subsection Repeat syntax - - -LilyPond has one syntactic construct for specifying different types of -repeats. The syntax is - -@example - \repeat @var{variant} @var{repeatcount} @var{repeatbody} -@end example - -If you have alternative endings, you may add -@cindex @code{\alternative} -@example - \alternative @code{@{} @var{alternative1} - @var{alternative2} - @var{alternative3} @dots{} @code{@}} -@end example -where each @var{alternative} is a music expression. If you do not -give enough alternatives for all of the repeats, then the first -alternative is assumed to be played more than once. - -Normal notation repeats are used like this: -@lilypond[fragment,verbatim,relative=1] - c1 - \repeat volta 2 { c4 d e f } - \repeat volta 2 { f e d c } -@end lilypond - -With alternative endings: -@lilypond[fragment,verbatim,relative=1] - c1 - \repeat volta 2 {c4 d e f} - \alternative { {d2 d} {f f,} } -@end lilypond - - -@lilypond[fragment,verbatim,relative=1] -\context Staff { - \partial 4 - \repeat volta 4 { e | c2 d2 | e2 f2 | } - \alternative { { g4 g g } { a | a a a a | b2. } } -} -@end lilypond - -@refbugs - -A nested repeat like - -@example -\repeat @dots{} -\repeat @dots{} -\alternative -@end example - -@noindent -is ambiguous, since it is is not clear to which @code{\repeat} the -@code{\alternative} belongs. This ambiguity is resolved by always -having the @code{\alternative} belong to the inner @code{\repeat}. -For clarity, it is advisable to use braces in such situations. -@cindex ambiguity - -@node Repeats and MIDI -@subsection Repeats and MIDI - -@cindex expanding repeats - -For instructions on how to expand repeats for MIDI output, see the -example file @inputfileref{input/test,unfold-all-repeats.ly}. - - -@refbugs - -Timing information is not remembered at the start of an alternative, -so after a repeat timing information must be reset by hand, for -example by setting @code{Score.measurePosition} or entering -@code{\partial}. Similarly, slurs or ties are also not repeated. - - -@node Manual repeat commands -@subsection Manual repeat commands - -@cindex @code{repeatCommands} - -The property @code{repeatCommands} can be used to control the layout of -repeats. Its value is a Scheme list of repeat commands, where each repeat -command can be - -@table @asis -@item the symbol @code{start-repeat}, - which prints a @code{|:} bar line, -@item the symbol @code{end-repeat}, - which prints a @code{:|} bar line, -@item the list @code{(volta @var{text})}, - which prints a volta bracket saying @var{text}: The text can be specified as -a text string or as a markup text, see @ref{Text markup}. Do not -forget to change the font, as the default number font does not contain -alphabetic characters. Or, -@item the list @code{(volta #f)}, which - stops a running volta bracket: -@end table - -@lilypond[verbatim,fragment,relative=2] - c4 - \set Score.repeatCommands = #'((volta "93") end-repeat) - c4 c4 - \set Score.repeatCommands = #'((volta #f)) - c4 c4 -@end lilypond - - -@seealso - -Program reference: @internalsref{VoltaBracket}, @internalsref{RepeatedMusic}, -@internalsref{VoltaRepeatedMusic}, -@internalsref{UnfoldedRepeatedMusic}, and -@internalsref{FoldedRepeatedMusic}. - -@node Tremolo repeats -@subsection Tremolo repeats -@cindex tremolo beams - -To place tremolo marks between notes, use @code{\repeat} with tremolo -style: -@lilypond[verbatim,raggedright] -\score { - \context Voice \notes\relative c' { - \repeat "tremolo" 8 { c16 d16 } - \repeat "tremolo" 4 { c16 d16 } - \repeat "tremolo" 2 { c16 d16 } - } -} -@end lilypond - -Tremolo marks can also be put on a single note. In this case, the -note should not be surrounded by braces. -@lilypond[verbatim,raggedright] - \repeat "tremolo" 4 c'16 -@end lilypond - -A similar mechanism is the tremolo subdivision, described in -@ref{Tremolo subdivisions}. - -@seealso - -In this manual: @ref{Tremolo subdivisions}, @ref{Repeats}. - -Program reference: tremolo beams are @internalsref{Beam} objects. Single stem -tremolos are @internalsref{StemTremolo} objects. The music expression is -@internalsref{TremoloEvent}. - -Example files: @inputfileref{input/regression,chord-tremolo.ly}, -@inputfileref{input/regression,stem-tremolo.ly}. - -@node Tremolo subdivisions -@subsection Tremolo subdivisions -@cindex tremolo marks -@cindex @code{tremoloFlags} - -Tremolo marks can be printed on a single note by adding -`@code{:}[@var{length}]' after the note. The length must be at least 8. -A @var{length} value of 8 gives one line across the note stem. If the -length is omitted, then then the last value (stored in -@code{tremoloFlags}) is used: - -@lilypond[verbatim,fragment] - c'2:8 c':32 | c': c': | -@end lilypond - -@c [TODO : stok is te kort bij 32en] - -@refbugs - -Tremolos entered in this way do not carry over into the MIDI output. - -@seealso - -In this manual: @ref{Tremolo repeats}. - -Elsewhere: @internalsref{StemTremolo}, @internalsref{TremoloEvent}. - -@node Measure repeats -@subsection Measure repeats - -@cindex percent repeats -@cindex measure repeats - -In the @code{percent} style, a note pattern can be repeated. It is -printed once, and then the pattern is replaced with a special sign. -Patterns of a one and two measures are replaced by percent-like signs, -patterns that divide the measure length are replaced by slashes: - -@lilypond[verbatim,raggedright] - \context Voice { \repeat "percent" 4 { c'4 } - \repeat "percent" 2 { c'2 es'2 f'4 fis'4 g'4 c''4 } -} -@end lilypond - -@seealso - -Program reference: @internalsref{RepeatSlash}, @internalsref{PercentRepeat}, -@internalsref{PercentRepeatedMusic}, and -@internalsref{DoublePercentRepeat}. - - - -@node Rhythmic music -@section Rhythmic music - - -@menu -* Showing melody rhythms:: -* Entering percussion:: -* Percussion staves:: -@end menu - - -@node Showing melody rhythms -@subsection Showing melody rhythms - -Sometimes you might want to show only the rhythm of a melody. This -can be done with the rhythmic staff. All pitches of notes on such a -staff are squashed, and the staff itself has a single line: - -@lilypond[fragment,relative,verbatim] - \context RhythmicStaff { - \time 4/4 - c4 e8 f g2 | r4 g r2 | g1:32 | r1 | - } -@end lilypond - -@seealso - -Program reference: @internalsref{RhythmicStaff}. - -Examples: @inputfileref{input/regression,rhythmic-staff.ly}. - - -@node Entering percussion -@subsection Entering percussion - -@cindex percussion -@cindex drums - - -Percussion notes may be entered in @code{\drums} mode, which is -similar to @code{notes}. Each piece of percussion has a full name and -an abbreviated name, and both be used in input files: - -@example - hihat hh bassdrum bd -@end example -@lilypond[raggedright] - \new DrumStaff \drums { hihat hh bassdrum bd - } -@end lilypond - -The complete list of drum names is in the init file -@file{ly/drumpitch-init.ly}. -@c TODO: properly document this. - -@seealso - -Program reference: @internalsref{DrumNoteEvent}. - -@node Percussion staves -@subsection Percussion staves -@cindex percussion -@cindex drums - -A percussion part for more than one instrument typically uses a -multiline staff where each position in the staff refers to one piece -of percussion. - - -To typeset the music, the notes must be interpreted in a -@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts: - -@c -@lilypond[raggedright,verbatim] -up = \drums { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } -down = \drums { bassdrum4 snare8 bd r bd sn4 } -\score { - \new DrumStaff - << \new DrumVoice { \voiceOne \up } - \new DrumVoice { \voiceTwo \down } ->> } -@end lilypond - -The above example shows verbose polyphonic notation. The short -polyphonic notation, described in @ref{Polyphony}, can also be used if -the @internalsref{DrumVoices} are instantiated by hand first. For example, - -@lilypond[fragment,verbatim] -\drums \new DrumStaff << - \context DrumVoice = "1" { s1 *2 } - \context DrumVoice = "2" { s1 *2 } - { - bd4 sn4 bd4 sn4 - << - { \repeat unfold 16 hh16 } - \\ - { bd4 sn4 bd4 sn4 } - >> - } ->> -@end lilypond - - -There are also other layout possibilities. To use these, set the -property @code{drumStyleTable} in context @internalsref{DrumVoice}. -The following variables have been predefined: - -@table @code -@item drums-style -is the default. It typesets a typical drum kit on a five-line staff - -@lilypond[noindent] -nam = \lyrics { cymc cyms cymr hh hhc hho hhho hhp cb hc - bd sn ss tomh tommh tomml toml tomfh tomfl } -mus = \drums { cymc cyms cymr hh | hhc hho hhho hhp | \break cb hc - bd sn ss tomh tommh tomml toml tomfh tomfl s16 } -\score { - << \new DrumStaff\with { - \remove Bar_engraver - \remove Time_signature_engraver - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - minimumVerticalExtent = #'(-4.0 . 5.0) - } \mus - \context Lyrics \nam - >> - \paper { - %% need to do this, because of indented @itemize - linewidth= 9 \cm - \context { \ScoreContext - \override LyricText #'font-family = #'typewriter - \override BarNumber #'transparent =##T -}}} -@end lilypond - -The drum scheme supports six different toms. When there fewer toms, simply -select the toms that produce the desired result, i.e. to get toms on -the three middle lines you use @code{tommh}, @code{tomml} and -@code{tomfh}. - -@item timbales-style -to typeset timbales on a two line staff: - -@lilypond[raggedright] -nam = \lyrics { timh ssh timl ssl cb } -mus = \drums { timh ssh timl ssl cb s16 } -\score { - << - \context DrumStaff \with { - \remove Bar_engraver - \remove Time_signature_engraver - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - \override StaffSymbol #'line-count = #2 - \override StaffSymbol #'staff-space = #2 - minimumVerticalExtent = #'(-3.0 . 4.0) - drumStyleTable = #timbales-style - } \mus - \context Lyrics { - \override LyricText #'font-family = #'typewriter - - \nam } - >> -} -@end lilypond -@item congas-style -to typeset congas on a two line staff: - -@lilypond[raggedright] -nam = \lyrics { cgh cgho cghm ssh cgl cglo cglm ssl } -mus = \drums { cgh cgho cghm ssh cgl cglo cglm ssl s16 } -\score { - << - \context DrumStaff\with { - \remove Bar_engraver - \remove Time_signature_engraver - drumStyleTable = #congas-style - \override StaffSymbol #'line-count = #2 - - %% this sucks; it will lengthen stems. - \override StaffSymbol #'staff-space = #2 - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \context Lyrics { - \override LyricText #'font-family = #'typewriter -\nam } - >> -} -@end lilypond -@item bongos-style -to typeset bongos on a two line staff: - -@lilypond[raggedright] -nam = \lyrics { boh boho bohm ssh bol bolo bolm ssl } -mus = \drums { boh boho bohm ssh bol bolo bolm ssl s16 } -\score { - << - \context DrumStaff\with { - \remove Bar_engraver - \remove Time_signature_engraver - \override StaffSymbol #'line-count = #2 - drumStyleTable = #bongos-style - - %% this sucks; it will lengthen stems. - \override StaffSymbol #'staff-space = #2 - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \context Lyrics { - \override LyricText #'font-family = #'typewriter -\nam } - >> -} -@end lilypond - -@item percussion-style -to typeset all kinds of simple percussion on one line staves: -@lilypond[raggedright] -nam = \lyrics { tri trio trim gui guis guil cb cl tamb cab mar hc } -mus = \drums { tri trio trim gui guis guil cb cl tamb cab mar hc s16 } -\score { - << - \context DrumStaff\with{ - \remove Bar_engraver - drumStyleTable = #percussion-style - \override StaffSymbol #'line-count = #1 - \remove Time_signature_engraver - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \context Lyrics { - \nam - \override LyricText #'font-family = #'typewriter -} - >> -} -@end lilypond -@end table - -If you do not like any of the predefined lists you can define your own -list at the top of your file: - -@lilypond[raggedright,verbatim] -#(define mydrums '( - (bassdrum default #f -1) - (snare default #f 0) - (hihat cross #f 1) - (pedalhihat xcircle "stopped" 2) - (lowtom diamond #f 3) -)) -up = \drums { hh8 hh hh hh hhp4 hhp } -down = \drums { bd4 sn bd toml8 toml } -\score { - \new DrumStaff << - \set DrumStaff.drumStyleTable - = #(alist->hash-table mydrums) - \new DrumVoice { \voiceOne \up } - \new DrumVoice { \voiceTwo \down } - >> -} -@end lilypond - - -@seealso - -Init files: @file{ly/drumpitch-init.ly}. - -Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}. - -@refbugs - -Because general MIDI does not contain rim shots, the sidestick is used -for this purpose instead. - -@node Piano music -@section Piano music - -Piano staves are two normal staves coupled with a brace. The staves -are largely independent, but sometimes voices can cross between the -two staves. The same notation is also used for harps and other key -instruments. The @internalsref{PianoStaff} is especially built to -handle this cross-staffing behavior. In this section we discuss the -@internalsref{PianoStaff} and some other pianistic peculiarities. - - -@menu -* Automatic staff changes:: -* Manual staff switches:: -* Pedals:: -* Arpeggio:: -* Staff switch lines:: -@end menu - -@refbugs - -There is no support for putting chords across staves. You can get -this result by increasing the length of the stem in the lower stave so -it reaches the stem in the upper stave, or vice versa. An example is -included with the distribution as -@inputfileref{input/test,stem-cross-staff.ly}. - -Dynamics are not centered, but kludges do exist. See -@inputfileref{input/template,piano-dynamics.ly}. - -@cindex cross staff stem -@cindex stem, cross staff - -The distance between the two staves is normally fixed across the -entire score. It is possible to tune this per system, but it does -require arcane command incantations. See -@inputfileref{input/test,piano-staff-distance.ly}. - - - - - - -@node Automatic staff changes -@subsection Automatic staff changes -@cindex Automatic staff changes - -Voices can switch automatically between the top and the bottom -staff. The syntax for this is -@example - \autochange \context Voice @{ @dots{}@var{music}@dots{} @} -@end example -The two staves of the piano staff must be named @code{up} and -@code{down}. - -The autochanger switches on basis of pitch (middle C is the turning -point), and it looks ahead skipping over rests to switch in -advance. Here is a practical example: - -@lilypond[verbatim,raggedright] -\score { \notes \context PianoStaff << - \context Staff = "up" { - \autochange \new Voice \relative c' { - g4 a b c d r4 a g } } - \context Staff = "down" { - \clef bass - s1*2 -} >> } -@end lilypond - -@noindent -In this example, spacer rests are used to prevent the bottom staff from -terminating too soon. - - -@seealso - -In this manual: @ref{Manual staff switches}. - -Program reference: @internalsref{AutoChangeMusic}. - - - -@refbugs - -The staff switches often do not end up in optimal places. For high -quality output, staff switches should be specified manually. - - - -@node Manual staff switches -@subsection Manual staff switches - -@cindex manual staff switches -@cindex staff switch, manual - -Voices can be switched between staves manually, using the following command: -@example - \change Staff = @var{staffname} @var{music} -@end example - -@noindent -The string @var{staffname} is the name of the staff. It switches the -current voice from its current staff to the Staff called -@var{staffname}. Typically @var{staffname} is @code{"up"} or -@code{"down"}. - - - -@node Pedals -@subsection Pedals -@cindex Pedals - -Pianos have pedals that alter the way sound are produced. Generally, a -piano has three pedals, sustain, una corda, and sostenuto. - - -Piano pedal instruction can be expressed by attaching -@code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda}, -@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a -note or chord: - -@lilypond[fragment,verbatim] - c'4\sustainDown c'4\sustainUp -@end lilypond - -What is printed can be modified by setting @code{pedal@var{X}Strings}, -where @var{X} is one of the pedal types: @code{Sustain}, -@code{Sostenuto} or @code{UnaCorda}. Refer to -@internalsref{SustainPedal} in the program reference for more -information. - -Pedals can also be indicated by a sequence of brackets, by setting the -@code{pedalSustainStyle} property to @code{bracket} objects: - -@lilypond[fragment,verbatim,relative=2] - \set Staff.pedalSustainStyle = #'bracket - c\sustainDown d e - b\sustainUp\sustainDown - b g \sustainUp a \sustainDown \bar "|." -@end lilypond - -A third style of pedal notation is a mixture of text and brackets, -obtained by setting the @code{pedalSustainStyle} style property to -@code{mixed}: - -@lilypond[fragment,verbatim,relative=2] - \set Staff.pedalSustainStyle = #'mixed - c\sustainDown d e - b\sustainUp\sustainDown - b g \sustainUp a \sustainDown \bar "|." -@end lilypond - -The default `*Ped.' style for sustain and damper pedals corresponds to -style @code{#'text}. The sostenuto pedal uses @code{mixed} style by -default. - -@lilypond[fragment,verbatim,relative=2] - c\sostenutoDown d e c, f g a\sostenutoUp -@end lilypond - -For fine-tuning of the appearance of a pedal bracket, the properties -@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of -@code{PianoPedalBracket} objects (see -@internalsref{PianoPedalBracket} in the Program reference) can be modified. For example, the -bracket may be extended to the end of the note head: - -@lilypond[fragment,verbatim] -\override Staff.PianoPedalBracket - #'shorten-pair = #'(0 . -1.0) - c\sostenutoDown d e c, f g a\sostenutoUp -@end lilypond - -@node Arpeggio -@subsection Arpeggio -@cindex Arpeggio - -@cindex broken arpeggio -@cindex @code{\arpeggio} - -You can specify an arpeggio sign on a chord by attaching an -@code{\arpeggio} to a chord: - - -@lilypond[fragment,relative,verbatim] - \arpeggio -@end lilypond - -When an arpeggio crosses staves, you attach an arpeggio to the chords -in both staves, and set -@internalsref{PianoStaff}.@code{connectArpeggios}: - -@lilypond[fragment,relative,verbatim] - \context PianoStaff << - \set PianoStaff.connectArpeggios = ##t - \new Staff { \arpeggio } - \new Staff { \clef bass \arpeggio } - >> -@end lilypond - -The direction of the arpeggio is sometimes denoted by adding an -arrowhead to the wiggly line: - -@lilypond[fragment,relative,verbatim] - \context Voice { - \arpeggioUp - \arpeggio - \arpeggioDown - \arpeggio - } -@end lilypond - -A square bracket on the left indicates that the player should not -arpeggiate the chord: - -@lilypond[fragment,relative,verbatim] - \arpeggioBracket - \arpeggio -@end lilypond - -@refcommands - -@cindex @code{\arpeggio} -@code{\arpeggio}, -@cindex @code{\arpeggioUp} -@code{\arpeggioUp}, -@cindex @code{\arpeggioDown} -@code{\arpeggioUp}, -@cindex @code{\arpeggioBoth} -@code{\arpeggioBoth}, -@cindex @code{\arpeggioBracket} -@code{\arpeggioBracket}. - -@seealso - -Program reference: @internalsref{ArpeggioEvent} music expressions lead to -@internalsref{Arpeggio} objects. Cross staff arpeggios are -@internalsref{PianoStaff}.@internalsref{Arpeggio}. - -@refbugs - -It is not possible to mix connected arpeggios and unconnected -arpeggios in one @internalsref{PianoStaff} at the same time. - -@node Staff switch lines -@subsection Staff switch lines - - -@cindex follow voice -@cindex staff switching -@cindex cross staff - -@cindex @code{followVoice} - -Whenever a voice switches to another staff a line connecting the notes -can be printed automatically. This is enabled if the property -@code{PianoStaff.followVoice} is set to true: - -@lilypond[fragment,relative,verbatim] - \context PianoStaff << - \set PianoStaff.followVoice = ##t - \context Staff \context Voice { - c1 - \change Staff=two - b2 a - } - \context Staff=two { \clef bass \skip 1*2 } - >> -@end lilypond - -@seealso - -The associated object is @internalsref{VoiceFollower}. - -@refcommands - -@cindex @code{\showStaffSwitch} -@code{\showStaffSwitch}, -@cindex @code{\hideStaffSwitch} -@code{\hideStaffSwitch}. - - -@node Vocal music -@section Vocal music - -This section discusses how to enter and print lyrics. - -@menu -* Entering lyrics:: -* The Lyrics context:: -* More stanzas:: -* Ambitus:: -@end menu - -@node Entering lyrics -@subsection Entering lyrics - - -@cindex lyrics -@cindex @code{\lyrics} -@cindex punctuation - -Lyrics are entered in a special input mode. This mode is is introduced -by the keyword @code{\lyrics}. In this mode you can enter lyrics, with -punctuation and accents without any hassle. Syllables are entered like -notes, but with pitches replaced by text. For example, -@example - \lyrics @{ Twin-4 kle4 twin- kle litt- le star2 @} -@end example - -A word in Lyrics mode begins with: an alphabetic character, @code{_}, -@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A} -through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^}, -any 8-bit character with ASCII code over 127, or a two-character -combination of a backslash followed by one of @code{`}, @code{'}, -@code{"}, or @code{^}. - -Subsequent characters of a word can be any character that is not a digit -and not white space. One important consequence of this is that a word -can end with @code{@}}. The following example is usually a bug. The -syllable includes a @code{@}}, and hence the opening brace is not balanced: -@example - \lyrics @{ twinkle@} -@end example - -@cindex @code{\property}, in @code{\lyrics} -Similarly, a period following a alphabetic sequence, is included in -the resulting string. As a consequence, spaces must be inserted around -property commands: -@example - \override Score . LyricText #'font-shape = #'italic -@end example - -@cindex @code{_} -@cindex spaces, in lyrics -@cindex quotes, in lyrics - -Any @code{_} character which appears in an unquoted word is converted -to a space. This provides a mechanism for introducing spaces into words -without using quotes. Quoted words can also be used in Lyrics mode to -specify words that cannot be written with the above rules: - -@example - \lyrics @{ He said: "\"Let" my peo ple "go\"" @} -@end example - -@cindex hyphens - -Centered hyphens are entered as `@code{-}@code{-}' between syllables. -The hyphen will have variable length depending on the space between -the syllables and it will be centered between the syllables. - -@cindex melisma -@cindex extender - -When a lyric is sung over many notes (this is called a melisma), this is -indicated with a horizontal line centered between a syllable and the -next one. Such a line is called an extender line, and it is entered as -@code{__}. - -@seealso - -Program reference: events @internalsref{LyricEvent}, -@internalsref{HyphenEvent}, and @internalsref{ExtenderEvent}. Objects: -@internalsref{LyricHyphen}, @internalsref{LyricExtender} and -@internalsref{LyricText}. - -Examples: @inputfileref{input/test,lyric-hyphen-retain.ly}. - -@refbugs - -The definition of lyrics mode is too complex. - - - -@node The Lyrics context -@subsection The Lyrics context - -Lyrics are printed by interpreting them in a @internalsref{Lyrics} context: -@example - \context Lyrics \lyrics @dots{} -@end example - -@cindex automatic syllable durations -@cindex @code{\lyricsto} -@cindex lyrics and melodies - -This will place the lyrics according to the durations that were -entered. The lyrics can also be aligned under a given melody -automatically. In this case, it is no longer necessary to enter the -correct duration for each syllable. This is achieved by combining the -melody and the lyrics with the @code{\lyricsto} expression: -@example -\lyricsto @var{name} \new Lyrics @dots{} -@end example - -This aligns the lyrics to the -@c -notes of the @internalsref{Voice} context called @var{name}, which has -to exist. Therefore, normally the @code{Voice} is specified first, and -then the lyrics are specified with @code{\lyricsto}. - -For different or more complex orderings, the best way is to setup the -hierarchy of staves and lyrics first, e.g. -@example -\context ChoirStaff \notes << - \context Lyrics = sopranoLyrics @{ s1 @} - \context Voice = soprano @{ @emph{music} @} - \context Lyrics = tenorLyrics @{ s1 @} - \context Voice = tenor @{ @emph{music} @} ->> -@end example -and then combine the appropriate melodies and lyric lines: -@example - \lyricsto "soprano" \context Lyrics = sopranoLyrics - @emph{the lyrics} -@end example - -@noindent -The final input would resemble - -@example - << \context ChoirStaff \notes << @emph{setup the music} >> - \lyricsto "soprano" @emph{etc} - \lyricsto "alto" @emph{etc} - @emph{etc} - >> -@end example - - -The @code{\lyricsto} command detects melismata: it only puts one -syllable under a tied or slurred group of notes. If you want to force -an unslurred group of notes to be a melisma, then insert -@code{\melisma} after the first note of the group, and -@code{\melismaEnd} after the last one, e.g. - -@lilypond[relative=1,raggedright,fragment,verbatim] -<< \context Voice = "lala" { \time 3/4 - f4 g8 - \melisma - f e f - \melismaEnd - e2 } - \lyricsto "lala" \new Lyrics \lyrics { - la di __ daah - } >> -@end lilypond - -In addition, notes are considered a melisma if they are manually -beamed, and automatic beaming (see @ref{Setting automatic beam -behavior}) is switched off. The criteria for deciding melismata can -be tuned with the property @code{melismaBusyProperties}. See -@internalsref{Melisma_translator} in the program reference for more -information. - -When multiple stanzas are put on the same melody, it can happen that -two stanzas have melismata in different locations. This can be -remedied by switching off melismata for one -@internalsref{Lyrics}. This is achieved by setting -the @code{ignoreMelismata} property to @code{#t}. An example is shown -in @inputfileref{input/regression,lyric-combine-new.ly}. - -@cindex SATB -@cindex choral score - -A complete example of a SATB score setup is in the file -@inputfileref{input/template,satb.ly}. - - -@refcommands - -@code{\melisma}, @code{\melismaEnd} -@cindex @code{\melismaEnd} -@cindex @code{\melisma} - -@seealso - -Program reference: Music expressions: @internalsref{LyricCombineMusic}, -Contexts: @internalsref{Lyrics}, @internalsref{Melisma_translator}. - -Examples: @inputfileref{input/template,satb.ly}, -@inputfileref{input/regression,lyric-combine-new.ly}. - -@refbugs - -Melismata are not detected automatically, and extender lines must be -inserted by hand. - - -For proper processing of extender lines, the -@internalsref{Lyrics} and @internalsref{Voice} should be -linked. This can be achieved either by using @code{\lyricsto} or by -setting corresponding names for both contexts. The latter is explained -in @ref{More stanzas}. - -@node More stanzas -@subsection More stanzas - -@cindex phrasing, in lyrics - - -The lyrics should be aligned with the note heads of the melody. To -achieve this, each line of lyrics should be marked to correspond with -the melodic line. This is done automatically when @code{\lyricsto}, -but it can also be done manually. - -To this end, give the @internalsref{Voice} context an identity: -@example -\context Voice = duet @{ - \time 3/4 - g2 e4 a2 f4 g2. @} -@end example - -Then set the @internalsref{Lyrics} contexts to names starting with -that identity followed by a dash. In the preceding example, the -@internalsref{Voice} identity is @code{duet}, so the identities of the -@internalsref{Lyrics}s are marked @code{duet-1} and @code{duet-2}: -@example - \context Lyrics = "duet-1" @{ - Hi, my name is bert. @} - \context Lyrics = "duet-2" @{ - Ooooo, ch\'e -- ri, je t'aime. @} -@end example - -The complete example is shown here: -@lilypond[raggedright,verbatim] -\score { - << \notes \relative c'' \context Voice = duet { \time 3/4 - g2 e4 a2 f4 g2. } - \lyrics << \lyricsto "duet" \new Lyrics { - \set vocNam = "Bert" - Hi, my name is bert. } - \lyricsto "duet" \new Lyrics { - \set vocNam = "Ernie" - Ooooo, ch\'e -- ri, je t'aime. - } - >> >> -} -@end lilypond - -@cindex stanza number -@cindex singer's names -@cindex name of singer - -Stanza numbers can be added by setting @code{stanza}, e.g. - -@lilypond -<< \context Voice = duet { \time 3/4 - g2 e4 a2 f4 g2. } - \lyrics \lyricsto "duet" \new Lyrics { - \set vocNam = "1. " - Hi, my name is bert. - } ->> -@end lilypond - -This example also demonstrates how names of the singers can be added -using @code{vocalName} analogous to instrument annotations for staves. -A short version may be entered as @code{vocNam}. - -To make empty spaces in lyrics, use @code{\skip}. - - -@seealso - -Program reference: Layout objects @internalsref{LyricText} and -@internalsref{VocalName}. Music expressions: -@internalsref{LyricEvent}. - -@refbugs - -@cindex ambiguity - -Input for lyrics introduces a syntactical ambiguity: - -@example -foo = bar -@end example - -@noindent -is interpreted as assigning a string identifier @code{\foo} such that -it contains @code{"bar"}. However, it could also be interpreted as -making or a music identifier @code{\foo} containing the syllable -`bar'. The force the latter interpretation, use -@example - foo = \lyrics bar4 -@end example - - -@node Ambitus -@subsection Ambitus -@cindex ambitus - -The term @emph{ambitus} denotes a range of pitches for a given voice -in a part of music. It also may denote the pitch range that a musical -instrument is capable of playing. Ambituses are printed on vocal -parts, so singers can easily determine if it meets his or her -capabilities. - -It denoted at the beginning of a piece near the initial clef. The -range is graphically specified by two note heads, that represent the -minimum and maximum pitch. To print such ambituses, add the -@internalsref{Ambitus_engraver} to the @internalsref{Voice} context, -for example, - -@example - \paper @{ - \context @{ - \VoiceContext - \consists Ambitus_engraver - @} - @} -@end example - -This results in the following output: - -@lilypond[raggedright] -\score { - \context ChoirStaff - \notes \relative c'' << - \new staff { - as'' c e2 cis,2 - } - \new Staff { - es4 b c f as g - } - >> - \paper { - \context { - \StaffContext - \consists Ambitus_engraver - } - } -} -@end lilypond - -If you have multiple voices in a single staff, and you want a single -ambitus per staff rather than per each voice, then add the -@internalsref{Ambitus_engraver} to the @internalsref{Staff} context -rather than to the @internalsref{Voice} context. - -It is possible to tune individual ambituses for multiple voices on a -single staff, for example by erasing or shifting them horizontally. An -example is in @inputfileref{input/test,ambitus-mixed.ly}. - -@seealso - -Program reference: @internalsref{Ambitus}. - -Examples: @inputfileref{input/regression,ambitus.ly}, -@inputfileref{input/test,ambitus-mixed.ly}. - -@refbugs - -There is no collision handling in the case of multiple per-voice -ambitus. - -@node Tablatures -@section Tablatures - -Tablature notation is used for notating music for plucked string -instruments. It notates pitches not by using note heads, but by -indicating on which string and fret a note must be played. LilyPond -offers limited support for tablature. - -@menu -* Tablatures basic:: -* Non-guitar tablatures:: -@end menu - -@node Tablatures basic -@subsection Tablatures basic -@cindex Tablatures basic - -The string number associated to a note is given as a backslash -followed by a number, e.g. @code{c4\3} for a C quarter on the third -string. By default, string 1 is the highest one, and the tuning -defaults to the standard guitar tuning (with 6 strings). The notes -are printed as tablature, by using @internalsref{TabStaff} and -@internalsref{TabVoice} contexts: - -@lilypond[fragment,verbatim] -\notes \context TabStaff { - a,4\5 c'\2 a\3 e'\1 - e\4 c'\2 a\3 e'\1 -} -@end lilypond - -@cindex minimumFret - -When no string is specified, the first string that does not give a -fret number less than @code{minimumFret} is selected. The default -value for @code{minimumFret} is 0: - - -@example -e16 fis gis a b4 -\set TabStaff.minimumFret = #8 -e16 fis gis a b4 -@end example -@lilypond[noindent,raggedright] -frag = \notes { - \key e \major - e16 fis gis a b4 - \set TabStaff.minimumFret = #8 - e16 fis gis a b4 -} -\score { - \context StaffGroup << - \context Staff { \clef "G_8" \frag } - \context TabStaff { \frag } - >> -} -@end lilypond - -@seealso - -Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}, and -@internalsref{StringNumberEvent}. - -@refbugs - -Chords are not handled in a special way, and hence the automatic -string selector may easily select the same string to two notes in a -chord. - - -@node Non-guitar tablatures -@subsection Non-guitar tablatures -@cindex Non-guitar tablatures - -You can change the number of strings, by setting the number of lines -in the @internalsref{TabStaff}. - -You can change the tuning of the strings. A string tuning is given as -a Scheme list with one integer number for each string, the number -being the pitch (measured in semitones relative to middle C) of an -open string. The numbers specified for @code{stringTuning} are the -numbers of semitones to subtract or add, starting the specified pitch -by default middle C, in string order. Thus, the notes are e, a, d, and -g: - -@lilypond[fragment,verbatim] - \context TabStaff << - \set TabStaff.stringTunings = #'(-5 -10 -15 -20) - - \notes { - a,4 c' a e' e c' a e' - } - >> -@end lilypond - -@refbugs - -No guitar special effects have been implemented. - -@seealso - -Program reference: @internalsref{Tab_note_heads_engraver}. - - -@node Chord names -@section Chord names -@cindex Chords - -LilyPond has support for both printing chord names. Chords may be -entered in musical chord notation, i.e. @code{< .. >}, but they can -also be entered by name. Internally, the chords are represented as a -set of pitches, so they can be transposed: - - -@lilypond[verbatim,raggedright] -twoWays = \notes \transpose c c' { - \chords { - c1 f:sus4 bes/f - } - - - - } - -\score { - << \context ChordNames \twoWays - \context Voice \twoWays >> } -@end lilypond - -This example also shows that the chord printing routines do not try to -be intelligent. The last chord (@code{f bes d}) is not interpreted as -an inversion. - - -@menu -* Chords mode:: -* Printing chord names:: -@end menu - - -@node Chords mode -@subsection Chords mode -@cindex Chords mode - -Chord mode is a mode where you can input sets of pitches using common -names. It is introduced by the keyword @code{\chords}. -In chords mode, a chord is entered by the root, which is entered -like a common pitch: -@lilypond[fragment,verbatim,relative=1] -\chords { es4. d8 c2 } -@end lilypond -@cindex chord entry -@cindex chord mode - -Other chords may be entered by suffixing a colon, and introducing a -modifier, and optionally, a number: -@c -@lilypond[fragment,verbatim] -\chords { e1:m e1:7 e1:m7 } -@end lilypond -The first number following the root is taken to be the `type' of the -chord, thirds are added to the root until it reaches the specified -number: -@lilypond[fragment,verbatim] - \chords { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 } -@end lilypond - -@cindex root of chord -@cindex additions, in chords -@cindex removals, in chords - -More complex chords may also be constructed adding separate steps -to a chord. Additions are added after the number following -the colon, and are separated by dots: -@c -@lilypond[verbatim,fragment] - \chords { c:5.6 c:3.7.8 c:3.6.13 } -@end lilypond -Chord steps can be altered by suffixing a @code{-} or @code{+} sign -to the number: -@lilypond[verbatim,fragment] - \chords { c:7+ c:5+.3- c:3-.5-.7- } -@end lilypond -Removals are specified similarly, and are introduced by a caret. They -must come after the additions: -@lilypond[verbatim,fragment] - \chords { c^3 c:7^5 c:9^3.5 } -@end lilypond - -Modifiers can be used to change pitches. The following modifiers are -supported: -@table @code -@item m - is the minor chord. This modifier lowers the 3rd and (if present) the 7th step. -@item dim - is the diminished chord. This modifier lowers the 3rd, 5th and (if present) - the 7th step. -@item aug - is the augmented chord. This modifier raises the 5th step. -@item maj - is the major 7th chord. This modifier raises the 7th step if present. -@item sus - is the suspended 4th or 2nd. This modifier removes the 3rd -step. Append either @code{2} or @code{4} to add the 2nd or 4th step to -the chord. -@end table -Modifiers can be mixed with additions: -@lilypond[verbatim,fragment] - \chords { c:sus4 c:7sus4 c:dim7 c:m6 } -@end lilypond - -@cindex modifiers, in chords. -@cindex @code{aug} -@cindex @code{dim} -@cindex @code{maj} -@cindex @code{sus} -@cindex @code{m} - -Since an unaltered 11 does not sound good when combined with an -unaltered 13, the 11 is removed in this case (unless it is added -explicitly): -@c -@lilypond[fragment,verbatim] - \chords { c:13 c:13.11 c:m13 } -@end lilypond - -@cindex @code{/} - -An inversion (putting one pitch of the chord on the bottom), as well -as bass notes, can be specified by appending -@code{/}@var{pitch} to the chord: -@lilypond[fragment,verbatim] - \chords { c1 c/g c/f } -@end lilypond -@cindex @code{/+} - -A bass note can be added instead of transposed out of the chord, -by using @code{/+}@var{pitch}. - -@lilypond[fragment,verbatim] - \chords { c1 c/+g c/+f } -@end lilypond - -Chords is a mode similar to @code{\lyrics}, @code{\notes} etc. Most -of the commands continue to work, for example, @code{r} and -@code{\skip} can be used to insert rests and spaces, and property -commands may be used to change various settings. - - - -@refbugs - -Each step can only be present in a chord once. The following -simply produces the augmented chord, since @code{5+} is interpreted -last: -@cindex clusters -@lilypond[verbatim,fragment] - \chords { c:5.5-.5+ } -@end lilypond - - -@node Printing chord names -@subsection Printing chord names - -@cindex printing chord names -@cindex chord names -@cindex chords - -For displaying printed chord names, use the @internalsref{ChordNames} context. -The chords may be entered either using the notation -described above, or directly using @code{<} and @code{>}: - -@lilypond[verbatim,raggedright] -scheme = \notes { - \chords {a1 b c} -} -\score { - \notes<< - \context ChordNames \scheme - \context Staff \scheme - >> -} -@end lilypond - -You can make the chord changes stand out by setting -@internalsref{ChordNames}.@code{chordChanges} to true. This will only -display chord names when there is a change in the chords scheme and at -the start of a new line: - -@lilypond[verbatim,linewidth=9\cm] -scheme = \chords { - c1:m c:m \break c:m c:m d -} -\score { - \notes << - \context ChordNames { - \set chordChanges = ##t - \scheme } - \context Staff \transpose c c' \scheme - >> -} -@end lilypond - -The default chord name layout is a system for Jazz music, proposed by -Klaus Ignatzek (see @ref{Literature list}). It can be tuned through the -following properties: - -@table @code -@cindex chordNameExceptions -@item chordNameExceptions -This is a list that contains the chords that have special formatting. -For an example, see -@inputfileref{input/regression,chord-name-exceptions.ly}. -@cindex exceptions, chord names. - - -@cindex majorSevenSymbol -@item majorSevenSymbol -This property contains the markup object used for the 7th step, when -it is major. Predefined options are @code{whiteTriangleMarkup} and -@code{blackTriangleMarkup}. See -@inputfileref{input/regression,chord-name-major7.ly} for an example. - -@cindex chordNameSeparator -@item chordNameSeparator -Different parts of a chord name are normally separated by a -slash. By setting @code{chordNameSeparator}, you can specify other -separators, e.g. -@lilypond[fragment,verbatim] -\context ChordNames \chords { - c:7sus4 - \set chordNameSeparator - = \markup { \typewriter "|" } - c:7sus4 } -@end lilypond - -@cindex chordRootNamer -@item chordRootNamer -The root of a chord is usually printed as a letter with an optional -alteration. The transformation from pitch to letter is done by this -function. Special note names (for example, the German ``H'' for a -B-chord) can be produced by storing a new function in this property. - -The predefined variables @code{\germanChords}, -@code{\semiGermanChords} set these variables. - - -@cindex chordNoteNamer -@item chordNoteNamer -The default is to print single pitch, e.g. the bass note, using the -@code{chordRootNamer}. The @code{chordNoteNamer} property can be set -to a specialized function to change this behavior. For example, the -base can be printed in lower case. - -@end table - - -There are also two other chord name schemes implemented: an alternate -Jazz chord notation, and a systematic scheme called Banter chords. The -alternate jazz notation is also shown on the chart in @ref{Chord name -chart}. Turning on these styles is described in the input file -@inputfileref{input/test,chord-names-jazz.ly}. - -@cindex Banter -@cindex jazz chords -@cindex chords, jazz - - -@refcommands - -@cindex @code{\germanChords} -@code{\germanChords}, -@cindex @code{\semiGermanChords} -@code{\semiGermanChords}. - - - - -@seealso - -Examples: @inputfileref{input/regression,chord-name-major7.ly}, -@inputfileref{input/regression,chord-name-exceptions.ly}, -@inputfileref{input/test,chord-names-jazz.ly}, -@inputfileref{input/test,chord-names-german.ly}. - -Init files: @file{scm/chords-ignatzek.scm}, and @file{scm/chord-entry.scm}. - - -@refbugs - -Chord names are determined solely from the list of pitches. Chord -inversions are not identified, and neither are added bass notes. This -may result in strange chord names when chords are entered with the -@code{< .. >} syntax. - - - - -@node Orchestral music -@section Orchestral music - -@cindex Writing parts - -Orchestral music involves some special notation, both in the full -score and the individual parts. This section explains how to tackle -some common problems in orchestral music. - - - -@menu -* Multiple staff contexts:: -* Rehearsal marks:: -* Bar numbers:: -* Instrument names:: -* Transpose:: -* Instrument transpositions:: -* Multi measure rests:: -* Automatic part combining:: -* Hiding staves:: -* Different editions from one source:: -* Quoting other voices:: -@end menu - -@node Multiple staff contexts -@subsection Multiple staff contexts - -Polyphonic scores consist of many staves. These staves can be -constructed in three 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. - -@item The group is started with a bracket, and bar lines are connected. This is done with the -@internalsref{StaffGroup} context - - -@item The group is started with a vertical line. Bar lines are not -connected. This is the default for the score. - -@end itemize - -@cindex Staff, multiple -@cindex bracket, vertical -@cindex brace, vertical -@cindex grand staff -@cindex staff group - - - - -@node Rehearsal marks -@subsection Rehearsal marks -@cindex Rehearsal marks -@cindex mark -@cindex @code{\mark} - -To print a rehearsal mark, use the @code{\mark} command: -@lilypond[fragment,verbatim] -\relative c'' { - c1 \mark \default - c1 \mark \default - c1 \mark #8 - c1 \mark \default - c1 \mark \default -} -@end lilypond - -@noindent -(The letter I is skipped in accordance with engraving traditions.) - -The mark is incremented automatically if you use @code{\mark -\default}, but you can also use an integer argument to set the mark -manually. The value to use is stored in the property -@code{rehearsalMark}. - -The style is defined by the property @code{markFormatter}. It is a -function taking the current mark (an integer) and the current context -as argument. It should return a markup object. In the following -example, @code{markFormatter} is set to a canned procedure. After a -few measures, it is set to function that produces a boxed number. - -@lilypond[verbatim,fragment,relative=1] - \set Score.markFormatter = #format-mark-numbers - c1 \mark \default - c1 \mark \default - \set Score.markFormatter - = #(lambda (mark context) - (make-bold-markup (make-box-markup (number->string mark)))) - c1 \mark \default - c1 \mark \default -@end lilypond - -The file @file{scm/translation-functions.scm} contains the definitions -of @code{format-mark-numbers} (the default format) and -@code{format-mark-letters}. They can be used as inspiration for other -formatting functions. - - -@cindex coda on bar line -@cindex segno on bar line -@cindex fermata on bar line -@cindex bar lines, symbols on - -The @code{\mark} command can also be used to put signs like coda, -segno and fermatas on a bar line. Use @code{\markup} to -to access the appropriate symbol: - -@lilypond[fragment,verbatim,relative=1] - c1 \mark \markup { \musicglyph #"scripts-ufermata" } - c1 -@end lilypond - -In the case of a line break, marks must also be printed at the end of -the line, and not at the beginning. Use the following to force that -behavior: -@example -\override Score.RehearsalMark - #'break-visibility = #begin-of-line-invisible -@end example - -@cindex fermatas -@cindex coda -@cindex segno -@cindex bar lines, putting symbols on - -@seealso - -Program reference: @internalsref{MarkEvent}, @internalsref{RehearsalMark}. - -Init files: @file{scm/translation-functions.scm} contains the -definition of @code{format-mark-numbers} and -@code{format-mark-letters}. They can be used as inspiration for other -formatting functions. - -Examples: @inputfileref{input/regression,rehearsal-mark-letter.ly}, -@inputfileref{input/regression,rehearsal-mark-number.ly}. - - -@node Bar numbers -@subsection Bar numbers - - -@cindex bar numbers -@cindex measure numbers -@cindex currentBarNumber - -Bar numbers are printed by default at the start of the line. The -number itself is stored in the -@code{currentBarNumber} property, -which is normally updated automatically for every measure. - -Bar numbers can be typeset at regular intervals instead of at the -beginning of each line. This is illustrated in the following example, -whose source is available as -@inputfileref{input/test,bar-number-regular-interval.ly}: - -@lilypondfile[]{bar-number-regular-interval.ly} - - -@seealso - -Program reference: @internalsref{BarNumber}. - -Examples: @inputfileref{input/test,bar-number-every-five-reset.ly}, -and @inputfileref{input/test,bar-number-regular-interval.ly}. - -@refbugs - -Bar numbers can collide with the @internalsref{StaffGroup} bracket, if -there is one at the top. To solve this, the -@code{padding} property of @internalsref{BarNumber} can be -used to position the number correctly. - -@node Instrument names -@subsection Instrument names - -In an orchestral score, instrument names are printed left side of the -staves. - -This can be achieved by setting @internalsref{Staff}.@code{instrument} -and @internalsref{Staff}.@code{instr}. This will print a string before -the start of the staff. For the first start, @code{instrument} is -used, for the next ones @code{instr} is used. - -@quotation -@lilypond[verbatim,raggedright,relative=2] - \set Staff.instrument = "Ploink " - \set Staff.instr = "Plk " - c1 - \break - c'' -@end lilypond -@end quotation - -You can also use markup texts to construct more complicated instrument -names, for example - -@quotation -@lilypond[fragment,verbatim,raggedright] - \notes { - \set Staff.instrument = \markup { - \column < "Clarinetti" - { "in B" - \smaller \flat - } - > - } - { c''1 } - } -@end lilypond -@end quotation - -@seealso - -Program reference: @internalsref{InstrumentName}. - -@refbugs - -When you put a name on a grand staff or piano staff the width of the -brace is not taken into account. You must add extra spaces to the end of -the name to avoid a collision. - -@node Transpose -@subsection Transpose -@cindex Transpose -@cindex transposition of pitches -@cindex @code{\transpose} - -A music expression can be transposed with @code{\transpose}. The syntax -is -@example - \transpose @var{from} @var{to} @var{musicexpr} -@end example - -This means that @var{musicexpr} is transposed by the interval between -the pitches @var{from} and @var{to}: any note with pitch @code{from} -is changed to @code{to}. - - -For example, consider a piece written in the key of D major. If -this piece is a little too low for its performer, it can be -transposed up to E major with -@example - \transpose d e @dots{} -@end example - -Consider a part written for violin (a C instrument). If -this part is to be played on the A clarinet, the following -transposition will produce the appropriate part - -@example - \transpose a c @dots{} -@end example - -Since @var{from} and @var{to} are pitches, so @code{\transpose} must be -inside a @code{\notes} section. @code{\transpose} distinguishes -between enharmonic pitches: both @code{\transpose c cis} or -@code{\transpose c des} will transpose up half a tone. The first -version will print sharps and the second version will print flats: - -@lilypond[raggedright,verbatim] -mus =\notes { \key d \major cis d fis g } -\score { \notes \context Staff { - \clef "F" \mus - \clef "G" - \transpose c g' \mus - \transpose c f' \mus -}} -@end lilypond - - -@seealso - -Program reference: @internalsref{TransposedMusic}, and -@internalsref{UntransposableMusic}. - -@refbugs - -If you want to use both @code{\transpose} and @code{\relative}, then -you must put @code{\transpose} outside of @code{\relative}, since -@code{\relative} will have no effect music that appears inside a -@code{\transpose}. - -@node Instrument transpositions -@subsection Instrument transpositions - -The key of a transposing instrument can also be specified. This -applies to many wind instruments, for example, clarinets (B-flat, A and -E-flat), horn (F) and trumpet (B-flat, C, D and E-flat). - - -The transposition is entered after the keyword @code{\transposition}: - -@example - \transposition bes %% B-flat clarinet -@end example - -This command sets the property @code{instrumentTuning}. The value of -this property is used for MIDI output and quotations. It does not -affect how notes are printed in the current staff. - -@cindex transposition, MIDI -@cindex transposition, instrument - - -@node Multi measure rests -@subsection Multi measure rests -@cindex multi measure rests -@cindex Rests, multi measure - -@cindex @code{R} - -Multi measure rests are entered using `@code{R}'. It is specifically -meant for full bar rests and for entering parts: the rest can expand -to fill a score with rests, or it can be printed as a single -multimeasure rest. This expansion is controlled by the property -@code{Score.skipBars}. If this is set to true, empty measures will not -be expanded, and the appropriate number is added automatically: - -@lilypond[fragment,verbatim] - \time 4/4 r1 | R1 | R1*2 - \set Score.skipBars = ##t R1*17 R1*4 -@end lilypond - -The @code{1} in @code{R1} is similar to the duration notation used for -notes. Hence, for time signatures other than 4/4, you must enter other -durations. This can be done with augmentation dots or fractions: - -@lilypond[fragment,verbatim] - \set Score.skipBars = ##t - \time 3/4 - R2. | R2.*2 - \time 13/8 - R1*13/8 - R1*13/8*12 -@end lilypond - -An @code{R} spanning a single measure is printed as either a whole rest -or a breve, centered in the measure regardless of the time signature. - -@cindex text on multi-measure rest -@cindex script on multi-measure rest -@cindex fermata on multi-measure rest - -Texts can be added to multi-measure rests by using the -@var{note}-@code{markup} syntax (see @ref{Text markup}). In this case, the number is -replaced. If you need both texts and the number, you must add the -number by hand. A variable (@code{\fermataMarkup}) is provided for -adding fermatas: - - -@lilypond[verbatim,fragment] - \time 3/4 - R2._\markup { "Ad lib" } - R2.^\fermataMarkup -@end lilypond - -If you want to have a text on the left end of a multi-measure rest, -attach the text to a zero-length skip note, i.e. - -@example - s1*0^"Allegro" - R1*4 -@end example - - -@cindex whole rests for a full measure - -@seealso - -Program reference: @internalsref{MultiMeasureRestEvent}, -@internalsref{MultiMeasureTextEvent}, -@internalsref{MultiMeasureRestMusicGroup}, and -@internalsref{MultiMeasureRest}. - -The layout object @internalsref{MultiMeasureRestNumber} is for the -default number, and @internalsref{MultiMeasureRestText} for user -specified texts. - -@refbugs - -It is not possible to use fingerings (e.g. @code{R1-4}) to put numbers -over multi-measure rests. - -@cindex condensing rests - -There is no way to automatically condense multiple rests into a single -multimeasure rest. Multi measure rests do not take part in rest -collisions. - -Be careful when entering multimeasure rests followed by whole -notes. The following will enter two notes lasting four measures each: -@example - R1*4 cis cis -@end example -When @code{skipBars} is set, then the result will look OK, but the -bar numbering will be off. - -@node Automatic part combining -@subsection Automatic part combining -@cindex automatic part combining -@cindex part combiner - - -Automatic part combining is used to merge two parts of music onto a -staff. It is aimed at typesetting orchestral scores. When the two -parts are identical for a period of time, only one is shown. In -places where the two parts differ, they are typeset as separate -voices, and stem directions are set automatically. Also, solo and -@emph{a due} parts are identified and can be marked. - - -The syntax for part combining is - -@example - \partcombine @var{musicexpr1} @var{musicexpr2} -@end example - -The music expressions will be interpreted as @internalsref{Voice} contexts. - -The following example demonstrates the basic functionality of the part -combiner: putting parts on one staff, and setting stem directions and -polyphony: - -@lilypond[verbatim,raggedright,fragment,relative=1] - \new Staff \partcombine - { - g g a( b) c c r r - } - { - g g r4 r e e g g - } -@end lilypond - -The first @code{g} appears only once, although it was -specified twice (once in each part). Stem, slur and tie directions are -set automatically, depending whether there is a solo or unisono. The -first part (with context called @code{one}) always gets up stems, and -`solo', while the second (called @code{two}) always gets down stems and -`Solo II'. - -If you just want the merging parts, and not the textual markings, you -may set the property @var{soloADue} to false: - -@lilypond[verbatim,raggedright,fragment,relative=1] - \new Staff << - \set Staff.soloADue = ##f - \partcombine - { - g a( b) r - } - { - g r4 r f - } >> -@end lilypond - -@seealso - -Program reference: @internalsref{PartCombineMusic}, -@internalsref{SoloOneEvent}, and -@internalsref{SoloTwoEvent}, and -@internalsref{UnisonoEvent}. - -@refbugs - -In @code{soloADue} mode, when the two voices play the same notes on and -off, the part combiner may typeset @code{a2} more than once in a -measure. - -@code{\partcombine} can not be inside @code{\times}. - -Internally, the @code{\partcombine} interprets both arguments as -@code{Voice}s named @code{one} and @code{two}, and then decides when -the parts can be combined. Consequently, if the arguments switch to -differently named @internalsref{Voice} contexts, then the events in -those will be ignored. - -@node Hiding staves -@subsection Hiding staves - -@cindex Frenched scores -@cindex Hiding staves - -In orchestral scores, staff lines that only have rests are usually -removed. This saves some space. This style is called `French Score'. -For @internalsref{Lyrics}, -@internalsref{ChordNames} and @internalsref{FiguredBass}, this is -switched on by default. When these line of these contexts turn out -empty after the line-breaking 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: - - -@lilypond[verbatim] -\score { - \notes \relative c' << - \new Staff { e4 f g a \break c1 } - \new Staff { c4 d e f \break R1 } - >> - \paper { - linewidth = 6.\cm - \context { \RemoveEmptyStaffContext } - } -} -@end lilypond - -The first page shows all staves in full. If empty staves should be -removed from the first page too, set @code{remove-first} to false in -@internalsref{RemoveEmptyVerticalGroup}. - -Another application is making ossia sections, i.e. alternative -melodies on a separate piece of staff, with help of a Frenched -staff. See @inputfileref{input/test,ossia.ly} for an example. - - -@node Different editions from one source -@subsection Different editions from one source - -The @code{\tag} command marks music expressions with a name. These -tagged expressions can be filtered out later. With this mechanism it -is possible to make different versions of the same music source. - -In the following example, we see two versions of a piece of music, one -for the full score, and one with cue notes for the instrumental part: - -@example - c1 - \relative c' << - \tag #'part << - R1 \\ - @{ - \set fontSize = #-1 - c4_"cue" f2 g4 @} - >> - \tag #'score R1 - >> - c1 -@end example - -The same can be applied to articulations, texts, etc.: they are -made by prepending -@example - -\tag #@var{your-tag} -@end example -to an articulation, for example, -@example - c1-\tag #'part ^4 -@end example - -This defines a note with a conditional fingering indication. - -By applying the @code{remove-tag} function, tagged expressions can be -filtered. For example, -@example -\simultaneous @{ - @var{the music} - \apply #(remove-tag 'score) @var{the music} - \apply #(remove-tag 'part) @var{the music} -@} -@end example -would yield - -@lilypondfile[]{tag-filter.ly} - -The argument of the @code{\tag} command should be a symbol, or a list -of symbols, for example, -@example - \tag #'(original-part transposed-part) @dots{} -@end example - -@seealso - -Examples: @inputfileref{input/regression,tag-filter.ly}. - - -@node Quoting other voices -@subsection Quoting other voices - -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 code @code{\addquote} command. The -quotation may then be done with @code{\quote} - -@example - \addquote @var{name} @var{music} - \quote @var{name} @var{duration} -@end example - -@noindent - -Here, @var{name} is an identifying string. The @var{music} is any kind -of music. This is an example of @code{\addquote}: - -@verbatim -\addquote clarinet \notes\relative c' { - f4 fis g gis -} -@end verbatim - -During a part, a piece of music can be quoted with the @code{\quote} -command. - -@verbatim - \quote clarinet 2. -@end verbatim - -This would cite 3 quarter notes (a dotted half note) of the previously -added clarinet voice. - -Quotations take into account the transposition both source and target -instruments, if they are specified using the @code{\transposition} command. - -@lilypond[verbatim,fragment] -\addquote clarinet \notes\relative c' { - \transposition bes - f4 fis g gis -} -\score { - \notes { - e'8 f'8 \quote clarinet 2 -} } -@end lilypond - -@refbugs - -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. - - -@seealso - -In this manual: @ref{Instrument transpositions}. - -Examples: @inputfileref{input/regression,quote.ly} -@inputfileref{input/regression,quote-transposition.ly} - -Program reference: @internalsref{QuoteMusic}. - -@node Ancient notation -@section Ancient notation - -@cindex Vaticana, Editio -@cindex Medicaea, Editio -@cindex hufnagel -@cindex Petrucci -@cindex mensural - -Support for ancient notation includes features for mensural notation -and Gregorian Chant notation. There is also limited support for -figured bass notation. - -Many graphical objects provide a @code{style} property, see -@ref{Ancient note heads}, @ref{Ancient accidentals}, @ref{Ancient -rests}, @ref{Ancient clefs}, @ref{Ancient flags} and @ref{Ancient time -signatures}. By manipulating such a grob property, the typographical -appearance of the affected graphical objects can be accommodated for a -specific notation flavor without need for introducing any new -notational concept. - -Other aspects of ancient notation can not that easily be expressed as -in terms of just changing a style property of a graphical object. -Therefore, some notational concepts are introduced specifically for -ancient notation, see @ref{Custodes}, @ref{Divisiones}, -@ref{Ligatures}, and @ref{Figured bass}. - - -@menu -* Ancient note heads:: -* Ancient accidentals:: -* Ancient rests:: -* Ancient clefs:: -* Ancient flags:: -* Ancient time signatures:: -* Custodes:: -* Divisiones:: -* Ligatures:: -* Figured bass:: -* Vaticana style contexts:: -@end menu - -If this all is way too much of documentation for you, and you just -want to dive into typesetting without worrying too much about the -details on how to customize a context, then you may have a look at the -predefined contexts (see @ref{Vaticana style contexts}). Use them to -set up predefined style-specific voice and staff contexts, and -directly go ahead with the note entry. - -@refbugs - -Ligatures need special spacing that has not yet been implemented. As -a result, there is too much space between ligatures most of the time, -and line breaking often is unsatisfactory. Also, lyrics do not -correctly align with ligatures. - -Accidentals must not be printed within a ligature, but instead need to -be collected and printed in front of it. - -Augmentum dots within ligatures are not handled correctly. - - -@node Ancient note heads -@subsection Ancient note heads - -@cindex note heads - - -For ancient notation, a note head style other than the @code{default} -style may be chosen. This is accomplished by setting the @code{style} -property of the NoteHead object to the desired value (@code{baroque}, -@code{neo_mensural} or @code{mensural}). The @code{baroque} style -differs from the @code{default} style only in using a square shape for -@code{\breve} note heads. The @code{neo_mensural} style differs from -the @code{baroque} style in that it uses rhomboidal heads for whole -notes and all smaller durations. Stems are centered on the note -heads. This style is in particular useful when transcribing mensural -music, e.g. for the incipit. The @code{mensural} style finally -produces note heads that mimic the look of note heads in historic -printings of the 16th century. - -The following example demonstrates the @code{neo_mensural} style: - -@lilypond[fragment,raggedright,verbatim] - \override NoteHead #'style = #'neo_mensural - a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 -@end lilypond - -When typesetting a piece in Gregorian Chant notation, a Gregorian -ligature engraver will automatically select the proper note heads, -such there is no need to explicitly set the note head style. Still, -the note head style can be set e.g. to @code{vaticana_punctum} to -produce punctum neumes. Similarly, a mensural ligature engraver is -used to automatically assemble mensural ligatures. See -@ref{Ligatures} for how ligature engravers work. - -@seealso - -In this manual: -@ref{Percussion staves} use note head styles of their own that are -frequently used in contemporary music notation. - -Examples: @inputfileref{input/regression,note-head-style.ly} gives an -overview over all available note head styles. - - -@node Ancient accidentals -@subsection Ancient accidentals - -@cindex accidentals - - -Use the @code{style} property of grob @internalsref{Accidental} to -select ancient accidentals. Supported styles are -@code{mensural}, @code{vaticana}, @code{hufnagel} and @code{medicaea}. - -@lilypond[raggedright,staffsize=26] -\score { - \notes { - \fatText - s - ^\markup { - \column < - "vaticana" - { " " \musicglyph #"accidentals-vaticana-1" - " " \musicglyph #"accidentals-vaticana0" } - > - \column < - "medicaea" - { " " \musicglyph #"accidentals-medicaea-1" } - > - \column < - "hufnagel" - { " " \musicglyph #"accidentals-hufnagel-1" } - > - \column < - "mensural" - { " " \musicglyph #"accidentals-mensural-1" - " " \musicglyph #"accidentals-mensural1" } - > - } - } - \paper { - raggedright = ##t - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context{ - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \remove "Time_signature_engraver" - \remove "Staff_symbol_engraver" - minimumVerticalExtent = ##f - } - } -} -@end lilypond - -As shown, not all accidentals are supported by each style. When -trying to access an unsupported accidental, LilyPond will switch to a -different style, as demonstrated in -@inputfileref{input/test,ancient-accidentals.ly}. - -Similarly to local accidentals, the style of the key signature can be -controlled by the @code{style} property of the -@internalsref{KeySignature} grob. - -@seealso - -In this manual: @ref{Pitches}, @ref{Chromatic alterations} and -@ref{Accidentals} give a general introduction into the use of -accidentals. @ref{Key signature} gives a general introduction into -the use of key signatures. - -Program reference: @internalsref{KeySignature}. - -Examples: @inputfileref{input/test,ancient-accidentals.ly}. - -@node Ancient rests -@subsection Ancient rests - -@cindex rests - - -Use the @code{style} property of grob @internalsref{Rest} to select -ancient accidentals. Supported styles are @code{classical}, -@code{neo_mensural} and @code{mensural}. @code{classical} differs -from the @code{default} style only in that the quarter rest looks like -a horizontally mirrored 8th rest. The @code{neo_mensural} style suits -well for e.g. the incipit of a transcribed mensural piece of music. -The @code{mensural} style finally mimics the appearance of rests as -in historic prints of the 16th century. - -The following example demonstrates the @code{neo_mensural} style: - -@lilypond[fragment,raggedright,verbatim] - \override Rest #'style = #'neo_mensural - r\longa r\breve r1 r2 r4 r8 r16 -@end lilypond - -There are no 32th and 64th rests specifically for the mensural or -neo-mensural style. Instead, the rests from the default style will be -taken. See @inputfileref{input/test,rests.ly} for a chart of all -rests. - -There are no rests in Gregorian Chant notation; instead, it uses -@ref{Divisiones}. - -@seealso - -In this manual: @ref{Rests} gives a general introduction into the use of rests. - - -@node Ancient clefs -@subsection Ancient clefs - -@cindex clefs - - -LilyPond supports a variety of clefs, many of them ancient. - -The following table shows all ancient clefs that are supported via the -@code{\clef} command. Some of the clefs use the same glyph, but -differ only with respect to the line they are printed on. In such -cases, a trailing number in the name is used to enumerate these clefs. -Still, you can manually force a clef glyph to be typeset on an -arbitrary line, as described in @ref{Clef}. The note printed to the -right side of each clef in the example column denotes the @code{c'} -with respect to that clef. - -@multitable @columnfractions .3 .3 .3 .1 - -@item -@b{Glyph Name} @tab -@b{Description} @tab -@b{Supported Clefs} @tab -@b{Example} - -@item -@code{clefs-neo_mensural_c} @tab -modern style mensural C clef @tab -@code{neo_mensural_c1}, @code{neo_mensural_c2}, -@code{neo_mensural_c3}, @code{neo_mensural_c4} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "neo_mensural_c2" c -@end lilypond - -@item -@code{clefs-petrucci_c1} -@code{clefs-petrucci_c2} -@code{clefs-petrucci_c3} -@code{clefs-petrucci_c4} -@code{clefs-petrucci_c5} - -@tab -petrucci style mensural C clefs, for use on different staff lines -(the examples shows the 2nd staff line C clef). - -@tab -@code{petrucci_c1} -@code{petrucci_c2} -@code{petrucci_c3} -@code{petrucci_c4} -@code{petrucci_c5} - -@tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "petrucci_c2" c -@end lilypond - -@item -@code{clefs-petrucci_f} @tab -petrucci style mensural F clef @tab -@code{petrucci_f} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "petrucci_f" c -@end lilypond - -@item -@code{clefs-petrucci_g} @tab -petrucci style mensural G clef @tab -@code{petrucci_g} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "petrucci_g" c -@end lilypond - -@item -@code{clefs-mensural_c} @tab -historic style mensural C clef @tab -@code{mensural_c1}, @code{mensural_c2}, @code{mensural_c3}, -@code{mensural_c4} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "mensural_c2" c -@end lilypond - -@item -@code{clefs-mensural_f} @tab -historic style mensural F clef @tab -@code{mensural_f} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "mensural_f" c -@end lilypond - -@item -@code{clefs-mensural_g} @tab -historic style mensural G clef @tab -@code{mensural_g} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "mensural_g" c -@end lilypond - -@item -@code{clefs-vaticana_do} @tab -Editio Vaticana style do clef @tab -@code{vaticana_do1}, @code{vaticana_do2}, @code{vaticana_do3} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "vaticana_do2" c -@end lilypond - -@item -@code{clefs-vaticana_fa} @tab -Editio Vaticana style fa clef @tab -@code{vaticana_fa1}, @code{vaticana_fa2} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "vaticana_fa2" c -@end lilypond - -@item -@code{clefs-medicaea_do} @tab -Editio Medicaea style do clef @tab -@code{medicaea_do1}, @code{medicaea_do2}, @code{medicaea_do3} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "medicaea_do2" c -@end lilypond - -@item -@code{clefs-medicaea_fa} @tab -Editio Medicaea style fa clef @tab -@code{medicaea_fa1}, @code{medicaea_fa2} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "medicaea_fa2" c -@end lilypond - -@item -@code{clefs-hufnagel_do} @tab -historic style hufnagel do clef @tab -@code{hufnagel_do1}, @code{hufnagel_do2}, @code{hufnagel_do3} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "hufnagel_do2" c -@end lilypond - -@item -@code{clefs-hufnagel_fa} @tab -historic style hufnagel fa clef @tab -@code{hufnagel_fa1}, @code{hufnagel_fa2} @tab -@lilypond[relative,notime] - \override Staff.StaffSymbol #'line-count = #4 -\override Staff.TimeSignature #'transparent = ##t -\clef "hufnagel_fa2" c -@end lilypond - -@item -@code{clefs-hufnagel_do_fa} @tab -historic style hufnagel combined do/fa clef @tab -@code{hufnagel_do_fa} @tab -@lilypond[relative,notime] -\override Staff.TimeSignature #'transparent = ##t -\clef "hufnagel_do_fa" c -@end lilypond - -@end multitable - - - -@emph{Modern style} means ``as is typeset in contemporary editions of -transcribed mensural music''. - -@emph{Petrucci style} means ``inspired by printings published by the -famous engraver Petrucci (1466-1539)''. - -@emph{Historic style} means ``as was typeset or written in historic -editions (other than those of Petrucci)''. - -@emph{Editio XXX style} means ``as is/was printed in Editio XXX''. - -Petrucci used C clefs with differently balanced left-side vertical -beams, depending on which staff line it is printed. - -@seealso - -In this manual: see @ref{Clef}. - -@refbugs - -The mensural g clef is mapped to the Petrucci g clef, until a new -mensural g clef is implemented. - - - -@node Ancient flags -@subsection Ancient flags - -@cindex flags - - -Use the @code{flag-style} property of grob @internalsref{Stem} to -select ancient flags. Besides the @code{default} flag style, - only @code{mensural} style is supported: - -@lilypond[fragment,raggedright,verbatim] - \override Stem #'flag-style = #'mensural - \override Stem #'thickness = #1.0 - \override NoteHead #'style = #'mensural - \autoBeamOff - c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8 - c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32 -@end lilypond - -Note that the innermost flare of each mensural flag always is -vertically aligned with a staff line. If you do not like this -behavior, you can set the @code{adjust-if-on-staffline} property of -grob @internalsref{Stem} to @code{##f}. Then, the vertical position -of the end of each flare is different between notes on staff lines and -notes between staff lines: - -@lilypond[fragment,raggedright] - \override Stem #'flag-style = #'mensural - \override Stem #'thickness = #1.0 - \override Stem #'adjust-if-on-staffline = ##f - \override NoteHead #'style = #'mensural - \autoBeamOff - c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8 - c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32 -@end lilypond - -There is no particular flag style for neo-mensural notation. Hence, -when typesetting e.g. the incipit of a transcribed piece of mensural -music, the default flag style should be used. There are no flags in -Gregorian Chant notation. - - -@node Ancient time signatures -@subsection Ancient time signatures - -@cindex time signatures - - -There is limited support for mensural time signatures. The -glyphs are hard-wired to particular time fractions. In other words, -to get a particular mensural signature glyph with the @code{\time n/m} -command, @code{n} and @code{m} have to be chosen according to the -following table: - -@lilypond -\score { - \notes { - \set Score.timing = ##f - \set Score.barAlways = ##t - s_\markup { "$\\backslash$time 4/4" } - ^\markup { " " \musicglyph #"timesig-neo_mensural4/4" } - s - s_\markup { "$\\backslash$time 2/2" } - ^\markup { " " \musicglyph #"timesig-neo_mensural2/2" } - s - s_\markup { "$\\backslash$time 6/4" } - ^\markup { " " \musicglyph #"timesig-neo_mensural6/4" } - s - s_\markup { "$\\backslash$time 6/8" } - ^\markup { " " \musicglyph #"timesig-neo_mensural6/8" } - \break - s_\markup { "$\\backslash$time 3/2" } - ^\markup { " " \musicglyph #"timesig-neo_mensural3/2" } - s - s_\markup { "$\\backslash$time 3/4" } - ^\markup { " " \musicglyph #"timesig-neo_mensural3/4" } - s - s_\markup { "$\\backslash$time 9/4" } - ^\markup { " " \musicglyph #"timesig-neo_mensural9/4" } - s - s_\markup { "$\\backslash$time 9/8" } - ^\markup { " " \musicglyph #"timesig-neo_mensural9/8" } - \break - s_\markup { "$\\backslash$time 4/8" } - ^\markup { " " \musicglyph #"timesig-neo_mensural4/8" } - s - s_\markup { "$\\backslash$time 2/4" } - ^\markup { " " \musicglyph #"timesig-neo_mensural2/4" } - \break - } - \paper { - indent = 0.0 - raggedright = ##t - \context { - \StaffContext - \remove Staff_symbol_engraver - \remove Clef_engraver - \remove Time_signature_engraver - } - } -} -@end lilypond - -Use the @code{style} property of grob @internalsref{TimeSignature} to -select ancient time signatures. Supported styles are -@code{neo_mensural} and @code{mensural}. The above table uses the -@code{neo_mensural} style. This style is appropriate e.g. for the -incipit of transcriptions of mensural pieces. The @code{mensural} -style mimics the look of historical printings of the 16th century. - -@inputfileref{input/test,time.ly} gives an overview over all available -ancient and modern styles. - -@seealso - -Program reference: @ref{Time signature} gives a general introduction into the use of time -signatures. - -@refbugs - -Mensural signature glyphs are mapped to time fractions in a hard-wired -way. This mapping is sensible, but still arbitrary: given a mensural -time signature, the time fraction represents a modern meter that -usually will be a good choice when transcribing a mensural piece of -music. For a particular piece of mensural music, however, the mapping -may be unsatisfactory. In particular, the mapping assumes a fixed -transcription of durations (e.g. brevis = half note in 2/2, i.e. 4:1). -Some glyphs (such as the alternate glyph for 6/8 meter) are not at all -accessible through the @code{\time} command. - -Mensural time signatures are supported typographically, but not yet -musically. The internal representation of durations is -based on a purely binary system; a ternary division such as 1 brevis = -3 semibrevis (tempus perfectum) or 1 semibrevis = 3 minima (cum -prolatione maiori) is not correctly handled: event times in ternary -modes will be badly computed, resulting e.g. in horizontally -misaligned note heads, and bar checks are likely to erroneously fail. - -The syntax and semantics of the @code{\time} command for mensural -music is subject to change. - -@node Custodes -@subsection Custodes - -@cindex custos -@cindex custodes - -A @emph{custos} (plural: @emph{custodes}; Latin word for `guard') is a -symbol that appears at the end of a staff. It anticipates the pitch -of the first note(s) of the following line and thus helps the player -or singer to manage line breaks during performance, thus enhancing -readability of a score. - -Custodes were frequently used in music notation until the 17th -century. Nowadays, they have survived only in a few particular forms -of musical notation such as contemporary editions of Gregorian chant -like the @emph{editio vaticana}. There are different custos glyphs -used in different flavors of notational style. - -For typesetting custodes, just put a @internalsref{Custos_engraver} into the -@internalsref{Staff} context when declaring the @code{\paper} block, -as shown in the following example: - -@example -\paper @{ - \context @{ - \StaffContext - \consists Custos_engraver - Custos \override #'style = #'mensural - @} -@} -@end example - -The result looks like this: - -@lilypond[raggedright] -\score { - \notes { - a'1 - \override Staff.Custos #'style = #'mensural - \break - g' - } - \paper { - \context { - \StaffContext - \consists Custos_engraver - } - } -} -@end lilypond - -The custos glyph is selected by the @code{style} property. The styles -supported are @code{vaticana}, @code{medicaea}, @code{hufnagel} and -@code{mensural}. They are demonstrated in the following fragment: - -@lilypond -\score { - \new Lyrics \lyrics { - \markup { - \column < - "vaticana" - { " " \musicglyph #"custodes-vaticana-u0" } - > } - \markup { \column < - "medicaea" - { " " \musicglyph #"custodes-medicaea-u0" } - >} - \markup { - \column < - "hufnagel" - { " " \musicglyph #"custodes-hufnagel-u0" } - >} - \markup { - \column < - "mensural" - { " " \musicglyph #"custodes-mensural-u0" } - >} - } - - \paper { - raggedright = ##t - } -} -@end lilypond - -@seealso - -Program reference: @internalsref{Custos}. - -Examples: @inputfileref{input/regression,custos.ly}. - - -@node Divisiones -@subsection Divisiones - -@cindex divisio -@cindex divisiones -@cindex finalis - -A @emph{divisio} (plural: @emph{divisiones}; Latin word for -`division') is a staff context symbol that is used to structure -Gregorian music into phrases and sections. The musical meaning of -@emph{divisio minima}, @emph{divisio maior} and @emph{divisio maxima} -can be characterized as short, medium and long pause, somewhat like -@ref{Breath marks}. The @emph{finalis} sign not only marks the end of -a chant, but is also frequently used within a single -antiphonal/responsorial chant to mark the end of each section. - - -To use divisiones, include the file @code{gregorian-init.ly}. It -contains definitions that you can apply by just inserting -@code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima}, -and @code{\finalis} at proper places in the input. Some editions use -@emph{virgula} or @emph{caesura} instead of divisio minima. -Therefore, @code{gregorian-init.ly} also defines @code{\virgula} and -@code{\caesura}: - -@lilypondfile[]{divisiones.ly} - -@refcommands - -@cindex @code{\virgula} -@code{\virgula}, -@cindex @code{\caesura} -@code{\caesura}, -@cindex @code{\divisioMinima} -@code{\divisioMinima}, -@cindex @code{\divisioMaior} -@code{\divisioMaior}, -@cindex @code{\divisioMaxima} -@code{\divisioMaxima}, -@cindex @code{\finalis} -@code{\finalis}. - -@seealso - -In this manual: @ref{Breath marks}. - -Program reference: @internalsref{BreathingSign}, @internalsref{BreathingSignEvent}. - -Examples: @inputfileref{input/test,divisiones.ly}. - -@node Ligatures -@subsection Ligatures - -@cindex Ligatures - -@c TODO: Should double check if I recalled things correctly when I wrote -@c down the following paragraph by heart. - -A ligature is a coherent graphical symbol that represents at least two -distinct notes. Ligatures originally appeared in the manuscripts of -Gregorian chant notation roughly since the 9th century to denote -ascending or descending sequences of notes. - -Ligatures are entered by enclosing them in @code{\[} and @code{\]}. -Some ligature styles may need additional input syntax specific for -this particular type of ligature. By default, the -@internalsref{LigatureBracket} engraver just puts a square bracket -above the ligature: - -@lilypond[raggedright,verbatim] -\score { - \notes \transpose c c' { - \[ g c a f d' \] - a g f - \[ e f a g \] - } -} -@end lilypond - -To select a specific style of ligatures, a proper ligature engraver -has to be added to the @internalsref{Voice} context, as explained in -the following subsections. Only white mensural ligatures -are supported with certain limitations. - -@menu -* White mensural ligatures:: -* Gregorian square neumes ligatures:: -@end menu - -@node White mensural ligatures -@subsubsection White mensural ligatures - -@cindex Mensural ligatures -@cindex White mensural ligatures - -There is limited support for white mensural ligatures. - -To engrave white mensural ligatures, in the paper block the -@internalsref{Mensural_ligature_engraver} has to be put into the -@internalsref{Voice} context, and remove the -@internalsref{Ligature_bracket_engraver}: - -@example - \paper @{ - \context @{ - \VoiceContext - \remove Ligature_bracket_engraver - \consists Mensural_ligature_engraver - @} - @} -@end example - -There is no additional input language to describe the shape of a -white mensural ligature. The shape is rather determined solely from -the pitch and duration of the enclosed notes. While this approach may -take a new user a while to get accustomed, it has the great advantage -that the full musical information of the ligature is known internally. -This is not only required for correct MIDI output, but also allows for -automatic transcription of the ligatures. - -For example, - -@example - \set Score.timing = ##f - \set Score.defaultBarType = "empty" - \override NoteHead #'style = #'neo_mensural - \override Staff.TimeSignature #'style = #'neo_mensural - \clef "petrucci_g" - \[ g\longa c\breve a\breve f\breve d'\longa \] - s4 - \[ e1 f1 a\breve g\longa \] -@end example -@lilypond[raggedright] -\score { - \notes \transpose c c' { - \set Score.timing = ##f - \set Score.defaultBarType = "empty" - \override NoteHead #'style = #'neo_mensural - \override Staff.TimeSignature #'style = #'neo_mensural - \clef "petrucci_g" - \[ g\longa c\breve a\breve f\breve d'\longa \] - s4 - \[ e1 f1 a\breve g\longa \] - } - \paper { - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Mensural_ligature_engraver - } - } -} -@end lilypond - -Without replacing @internalsref{Ligature_bracket_engraver} with -@internalsref{Mensural_ligature_engraver}, the same music transcribes -to the following: - -@lilypond[raggedright] -\score { - \notes \transpose c c' { - \set Score.timing = ##f - \set Score.defaultBarType = "empty" - \override NoteHead #'style = #'neo_mensural - \override Staff.TimeSignature #'style = #'neo_mensural - \clef "petrucci_g" - \[ g\longa c\breve a\breve f\breve d'\longa \] - s4 - \[ e1 f1 a\breve g\longa \] - } -} -@end lilypond - -@refbugs - -The implementation is experimental; it may output strange warnings or -even crash in some cases or produce weird results on more complex -ligatures. - -@node Gregorian square neumes ligatures -@subsubsection Gregorian square neumes ligatures - -@cindex Square neumes ligatures -@cindex Gregorian square neumes ligatures - -Gregorian square neumes notation (following the style of the Editio -Vaticana) is under heavy development, but not yet really usable for -production purposes. Core ligatures can already be typeset, but -essential issues for serious typesetting are still under development, -such as (among others) horizontal alignment of multiple ligatures, -lyrics alignment and proper accidentals handling. Still, this section -gives a sneak preview of what Gregorian chant may look like once it -will work. - -The following table contains the extended neumes table of the 2nd -volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published -1983 by the monks of Solesmes. - -@multitable @columnfractions .4 .2 .2 .2 - -@item -@b{Neuma aut@*Neumarum Elementa} @tab -@b{Figurae@*Rectae} @tab -@b{Figurae@*Liquescentes Auctae} @tab -@b{Figurae@*Liquescentes Deminutae} - -@c TODO: \paper block is identical in all of the below examples. -@c Therefore, it should somehow be included rather than duplicated all -@c the time. --jr - -@c why not make identifiers in ly/engraver-init.ly? --hwn - -@c Because it's just used to typeset plain notes without -@c a staff for demonstration purposes rather than something -@c special of Gregorian chant notation. --jr - -@item -@code{1. Punctum} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.5\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Punctum - \[ b \] - \noBreak s^\markup {"a"} \noBreak - - % Punctum Inclinatum - \[ \inclinatum b \] - \noBreak s^\markup {"b"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=2.5\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Punctum Auctum Ascendens - \[ \auctum \ascendens b \] - \noBreak s^\markup {"c"} \noBreak - - % Punctum Auctum Descendens - \[ \auctum \descendens b \] - \noBreak s^\markup {"d"} \noBreak - - % Punctum Inclinatum Auctum - \[ \inclinatum \auctum b \] - \noBreak s^\markup {"e"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Punctum Inclinatum Parvum - \[ \inclinatum \deminutum b \] - \noBreak s^\markup {"f"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{2. Virga} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Virga - \[ \virga b \] - \noBreak s^\markup {"g"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@tab - -@item -@code{3. Apostropha vel Stropha} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Stropha - \[ \stropha b \] - \noBreak s^\markup {"h"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Stropha Aucta - \[ \stropha \auctum b \] - \noBreak s^\markup {"i"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab - -@item -@code{4. Oriscus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Oriscus - \[ \oriscus b \] - \noBreak s^\markup {"j"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@tab - -@item -@code{5. Clivis vel Flexa} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Clivis vel Flexa - \[ b \flexa g \] - s^\markup {"k"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=2.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Clivis Aucta Descendens - \[ b \flexa \auctum \descendens g \] - \noBreak s^\markup {"l"} \noBreak - - % Clivis Aucta Ascendens - \[ b \flexa \auctum \ascendens g \] - \noBreak s^\markup {"m"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Cephalicus - \[ b \flexa \deminutum g \] - s^\markup {"n"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{6. Podatus vel Pes} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Podatus vel Pes - \[ g \pes b \] - s^\markup {"o"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=2.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Pes Auctus Descendens - \[ g \pes \auctum \descendens b \] - \noBreak s^\markup {"p"} \noBreak - - % Pes Auctus Ascendens - \[ g \pes \auctum \ascendens b \] - \noBreak s^\markup {"q"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Epiphonus - \[ g \pes \deminutum b \] - s^\markup {"r"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{7. Pes Quassus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Pes Quassus - \[ \oriscus g \pes \virga b \] - s^\markup {"s"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Pes Quassus Auctus Descendens - \[ \oriscus g \pes \auctum \descendens b \] - s^\markup {"t"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab - -@item -@code{8. Quilisma Pes} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Quilisma Pes - \[ \quilisma g \pes b \] - s^\markup {"u"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Quilisma Pes Auctus Descendens - \[ \quilisma g \pes \auctum \descendens b \] - s^\markup {"v"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab - -@item -@code{9. Podatus Initio Debilis} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Pes Initio Debilis - \[ \deminutum g \pes b \] - s^\markup {"w"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Pes Auctus Descendens Initio Debilis - \[ \deminutum g \pes \auctum \descendens b \] - s^\markup {"x"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab - -@item -@code{10. Torculus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus - \[ a \pes b \flexa g \] - s^\markup {"y"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus Auctus Descendens - \[ a \pes b \flexa \auctum \descendens g \] - s^\markup {"z"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus Deminutus - \[ a \pes b \flexa \deminutum g \] - s^\markup {"A"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{11. Torculus Initio Debilis} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus Initio Debilis - \[ \deminutum a \pes b \flexa g \] - s^\markup {"B"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus Auctus Descendens Initio Debilis - \[ \deminutum a \pes b \flexa \auctum \descendens g \] - s^\markup {"C"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Torculus Deminutus Initio Debilis - \[ \deminutum a \pes b \flexa \deminutum g \] - s^\markup {"D"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{12. Porrectus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Porrectus - \[ a \flexa g \pes b \] - s^\markup {"E"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Porrectus Auctus Descendens - \[ a \flexa g \pes \auctum \descendens b \] - s^\markup {"F"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Porrectus Deminutus - \[ a \flexa g \pes \deminutum b \] - s^\markup {"G"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{13. Climacus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Climacus - \[ \virga b \inclinatum a \inclinatum g \] - s^\markup {"H"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Climacus Auctus - \[ \virga b \inclinatum a \inclinatum \auctum g \] - s^\markup {"I"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Climacus Deminutus - \[ \virga b \inclinatum a \inclinatum \deminutum g \] - s^\markup {"J"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{14. Scandicus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Scandicus - \[ g \pes a \virga b \] - s^\markup {"K"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Scandicus Auctus Descendens - \[ g \pes a \pes \auctum \descendens b \] - s^\markup {"L"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Scandicus Deminutus - \[ g \pes a \pes \deminutum b \] - s^\markup {"M"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond - -@item -@code{15. Salicus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Salicus - \[ g \oriscus a \pes \virga b \] - s^\markup {"N"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Salicus Auctus Descendens - \[ g \oriscus a \pes \auctum \descendens b \] - s^\markup {"O"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab - -@item -@code{16. Trigonus} -@tab -@lilypond[noindent,staffsize=26,nofragment,linewidth=1.0\cm] -\include "gregorian-init.ly" -\score { - \notes \transpose c c' { - % Trigonus - \[ \stropha b \stropha b \stropha a \] - s^\markup {"P"} - } - \paper { - interscoreline = 1 - \context { - \ScoreContext - \remove "Bar_number_engraver" - } - \context { - \StaffContext - \remove "Clef_engraver" - \remove "Key_engraver" - \override StaffSymbol #'transparent = ##t - \remove "Time_signature_engraver" - \remove "Bar_engraver" - minimumVerticalExtent = ##f - } - \context { - \VoiceContext - \remove Ligature_bracket_engraver - \consists Vaticana_ligature_engraver - \override NoteHead #'style = #'vaticana_punctum - \override Stem #'transparent = ##t - } - } -} -@end lilypond -@tab -@tab - -@end multitable - - -Unlike most other neumes notation systems, the input language for -neumes does not necessarily reflect directly the typographical -appearance, but is designed to solely focuse on musical meaning. For -example, @code{\[ a \pes b \flexa g \]} produces a Torculus consisting -of three Punctum heads, while @code{\[ a \flexa g \pes b \]} produces -a Porrectus with a curved flexa shape and only a single Punctum head. -There is no command to explicitly typeset the curved flexa shape; the -decision of when to typeset a curved flexa shape is purely taken from -the musical input. The idea of this approach is to separate the -musical aspects of the input from the notation style of the output. -This way, the same input can be reused to typeset the same music in a -different style of Gregorian chant notation. - -The following table shows the code fragments that produce the -ligatures in the above neumes table. The letter in the first column -in each line of the below table indicates to which ligature in the -above table it refers. The second column gives the name of the -ligature. The third column shows the code fragment that produces this -ligature, using @code{g}, @code{a} and @code{b} as example pitches. - -@multitable @columnfractions .1 .4 .5 - -@item -@b{#} @tab -@b{Name} @tab -@b{Input Language} - -@item -a @tab -Punctum @tab -@code{\[ b \]} - -@item -b @tab -Punctum Inclinatum @tab -@code{\[ \inclinatum b \]} - -@item -c @tab -Punctum Auctum Ascendens @tab -@code{\[ \auctum \ascendens b \]} - -@item -d @tab -Punctum Auctum Descendens @tab -@code{\[ \auctum \descendens b \]} - -@item -e @tab -Punctum Inclinatum Auctum @tab -@code{\[ \inclinatum \auctum b \]} - -@item -f @tab -Punctum Inclinatum Parvum @tab -@code{\[ \inclinatum \deminutum b \]} - -@item -g @tab -Virga @tab -@code{\[ \virga b \]} - -@item -h @tab -Stropha @tab -@code{\[ \stropha b \]} - -@item -i @tab -Stropha Aucta @tab -@code{\[ \stropha \auctum b \]} - -@item -j @tab -Oriscus @tab -@code{\[ \oriscus b \]} - -@item -k @tab -Clivis vel Flexa @tab -@code{\[ b \flexa g \]} - -@item -l @tab -Clivis Aucta Descendens @tab -@code{\[ b \flexa \auctum \descendens g \]} - -@item -m @tab -Clivis Aucta Ascendens @tab -@code{\[ b \flexa \auctum \ascendens g \]} - -@item -n @tab -Cephalicus @tab -@code{\[ b \flexa \deminutum g \]} - -@item -o @tab -Podatus vel Pes @tab -@code{\[ g \pes b \]} - -@item -p @tab -Pes Auctus Descendens @tab -@code{\[ g \pes \auctum \descendens b \]} - -@item -q @tab -Pes Auctus Ascendens @tab -@code{\[ g \pes \auctum \ascendens b \]} - -@item -r @tab -Epiphonus @tab -@code{\[ g \pes \deminutum b \]} - -@item -s @tab -Pes Quassus @tab -@code{\[ \oriscus g \pes \virga b \]} - -@item -t @tab -Pes Quassus Auctus Descendens @tab -@code{\[ \oriscus g \pes \auctum \descendens b \]} - -@item -u @tab -Quilisma Pes @tab -@code{\[ \quilisma g \pes b \]} - -@item -v @tab -Quilisma Pes Auctus Descendens @tab -@code{\[ \quilisma g \pes \auctum \descendens b \]} - -@item -w @tab -Pes Initio Debilis @tab -@code{\[ \deminutum g \pes b \]} - -@item -x @tab -Pes Auctus Descendens Initio Debilis @tab -@code{\[ \deminutum g \pes \auctum \descendens b \]} - -@item -y @tab -Torculus @tab -@code{\[ a \pes b \flexa g \]} - -@item -z @tab -Torculus Auctus Descendens @tab -@code{\[ a \pes b \flexa \auctum \descendens g \]} - -@item -A @tab -Torculus Deminutus @tab -@code{\[ a \pes b \flexa \deminutum g \]} - -@item -B @tab -Torculus Initio Debilis @tab -@code{\[ \deminutum a \pes b \flexa g \]} - -@item -C @tab -Torculus Auctus Descendens Initio Debilis @tab -@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]} - -@item -D @tab -Torculus Deminutus Initio Debilis @tab -@code{\[ \deminutum a \pes b \flexa \deminutum g \]} - -@item -E @tab -Porrectus @tab -@code{\[ a \flexa g \pes b \]} - -@item -F @tab -Porrectus Auctus Descendens @tab -@code{\[ a \flexa g \pes \auctum \descendens b \]} - -@item -G @tab -Porrectus Deminutus @tab -@code{\[ a \flexa g \pes \deminutum b \]} - -@item -H @tab -Climacus @tab -@code{\[ \virga b \inclinatum a \inclinatum g \]} - -@item -I @tab -Climacus Auctus @tab -@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]} - -@item -J @tab -Climacus Deminutus @tab -@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]} - -@item -K @tab -Scandicus @tab -@code{\[ g \pes a \virga b \]} - -@item -L @tab -Scandicus Auctus Descendens @tab -@code{\[ g \pes a \pes \auctum \descendens b \]} - -@item -M @tab -Scandicus Deminutus @tab -@code{\[ g \pes a \pes \deminutum b \]} - -@item -N @tab -Salicus @tab -@code{\[ g \oriscus a \pes \virga b \]} - -@item -O @tab -Salicus Auctus Descendens @tab -@code{\[ g \oriscus a \pes \auctum \descendens b \]} - -@item -P @tab -Trigonus @tab -@code{\[ \stropha b \stropha b \stropha a \]} - -@end multitable - -@refcommands - -The following head prefixes are supported: - -@cindex @code{\virga} -@code{\virga}, -@cindex @code{\stropha} -@code{\stropha}, -@cindex @code{\inclinatum} -@code{\inclinatum}, -@cindex @code{\auctum} -@code{\auctum}, -@cindex @code{\descendens} -@code{\descendens}, -@cindex @code{\ascendens} -@code{\ascendens}, -@cindex @code{\oriscus} -@code{\oriscus}, -@cindex @code{\quilisma} -@code{\quilisma}, -@cindex @code{\deminutum} -@code{\deminutum}. - -Head prefixes can be accumulated, though restrictions apply. For -example, either @code{\descendens} or @code{\ascendens} can be applied -to a head, but not both to the same head. - -@cindex @code{\pes} -@cindex @code{\flexa} -Two adjacent heads can be tied together with the @code{\pes} and -@code{\flexa} infix commands for a rising and falling line of melody, -respectively. - - - -@node Vaticana style contexts -@subsection Vaticana style contexts - -@cindex VaticanaVoiceContext -@cindex VaticanaStaffContext - -The predefined @code{VaticanaVoiceContext} and -@code{VaticanaStaffContext} can be used to easily engrave a piece of -Gregorian Chant in the style of the Editio Vaticana. These contexts -initialize all relevant context properties and grob properties to -proper values. With these contexts, you can immediately go ahead -entering the chant, as the following short excerpt demonstrates: - -@lilypond[raggedright,verbatim,noindent] -\include "gregorian-init.ly" -\score { -<< - \context VaticanaVoice = "cantus" { - \override Score.BarNumber #'transparent = ##t - \notes { - \[ c'\melisma c' \flexa a \] - \[ a \flexa \deminutum g\melismaEnd \] - f \divisioMinima - \[ f\melisma \pes a c' c' \pes d'\melismaEnd \] - c' \divisioMinima \break - \[ c'\melisma c' \flexa a \] - \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima - } - } - \lyricsto "cantus" \new Lyrics \lyrics { - San- ctus, San- ctus, San- ctus - } >> - -} -@end lilypond - -@node Figured bass -@subsection Figured bass - -@cindex Basso continuo - -@c TODO: musicological blurb about FB - - -LilyPond has limited support for figured bass: - -@lilypond[verbatim,fragment] -<< - \context Voice \notes { \clef bass dis4 c d ais} - \context FiguredBass - \figures { - < 6 >4 < 7 >8 < 6+ [_!] > - < 6 >4 <6 5 [3+] > - } - >> -@end lilypond - -The support for figured bass consists of two parts: there is an input -mode, introduced by @code{\figures}, where you can enter bass figures -as numbers, and there is a context called @internalsref{FiguredBass} that -takes care of making @internalsref{BassFigure} objects. - -In figures input mode, a group of bass figures is delimited by -@code{<} and @code{>}. The duration is entered after the @code{>>}: -@example - <4 6> -@end example -@lilypond[fragment] -\context FiguredBass -\figures { <4 6> } -@end lilypond - -Accidentals are added when you append @code{-}, @code{!} and @code{+} -to the numbers: - -@example - <4- 6+ 7!> -@end example -@lilypond[fragment] - \context FiguredBass - \figures { <4- 6+ 7!> } -@end lilypond - -Spaces or dashes may be inserted by using @code{_}. Brackets are -introduced with @code{[} and @code{]}: - -@example - < [4 6] 8 [_! 12]> -@end example -@lilypond[fragment] - \context FiguredBass -\figures { < [4 6] 8 [_! 12]> } -@end lilypond - -Although the support for figured bass may superficially resemble chord -support, it works much simpler. The @code{\figures} mode simply -stores the numbers , and @internalsref{FiguredBass} context prints -them as entered. There is no conversion to pitches, and no -realizations of the bass are played in the MIDI file. - -Internally, the code produces markup texts. You can use any of the -markup text properties to override formatting. For example, the -vertical spacing of the figures may be set with @code{baseline-skip}. - -@seealso - -Program reference: @internalsref{BassFigureEvent} music, @internalsref{BassFigure} object, -and @internalsref{FiguredBass} context. - -@refbugs - -Slash notation for alterations is not supported. - -@node Contemporary notation -@section Contemporary notation - -In the 20th century, composers have greatly expanded the musical -vocabulary. With this expansion, many innovations in musical notation -have been tried. The book by Stone (1980) gives a comprehensive -overview (see @ref{Literature list}). In general, the use of new, -innovative notation makes a piece harder to understand and perform and -its use should therefore be avoided if possible. For this reason, -support for contemporary notation in LilyPond is limited. - - -@menu -* Clusters:: -* Fermatas:: -@end menu - -@node Clusters -@subsection Clusters - -@cindex cluster - -A cluster indicates a continuous range of pitches to be played. They -can be denoted as the envelope of a set of notes. They are entered by -applying the function @code{notes-to-clusters} to a sequence of -chords, e.g. -@c -@lilypond[relative=1,verbatim] - \apply #notes-to-clusters { } -@end lilypond - -The following example (from -@inputfileref{input/regression,cluster.ly}) shows what the result -looks like: - -@lilypondfile[]{cluster.ly} - -Ordinary notes and clusters can be put together in the same staff, -even simultaneously. In such a case no attempt is made to -automatically avoid collisions between ordinary notes and clusters. - -@seealso - -Program reference: @internalsref{ClusterSpanner}, -@internalsref{ClusterSpannerBeacon}, -@internalsref{Cluster_spanner_engraver}, and -@internalsref{ClusterNoteEvent}. - -Examples: @inputfileref{input/regression,cluster.ly}. - -@refbugs - -Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed -accurately. Use @code{8 8} instead. - - - -@node Fermatas -@subsection Fermatas - -@cindex fermatas - - - -Contemporary music notation frequently uses special fermata symbols to -indicate fermatas of differing lengths. - -@syntax - -The following are supported - -@lilypond[raggedright] -\score { - << \addlyrics \notes { - b' - ^\shortfermata - _\shortfermata - r - b' - ^\fermata - _\fermata - - r - b' - ^\longfermata - _\longfermata - - r - b' - ^\verylongfermata - _\verylongfermata - r - } - \context Lyrics \lyrics { - \override LyricText #'font-family = #'typewriter - "shortfermata" "fermata" "longfermata" "verylongfermata" - } >> -} -@end lilypond - -See @ref{Articulations} for general instructions how to apply scripts -such as fermatas to a @code{\notes@{@}} block. - - -@node Special notation -@section Special notation - -@menu -* Balloon help:: -* Easy Notation note heads:: -@end menu - -@node Balloon help -@subsection Balloon help - -Elements of notation can be marked and named with the help of a square -balloon. The primary purpose of this feature is to explain notation. - -The following example demonstrates its use. - -@lilypond[verbatim,fragment,raggedright,relative=1] - \context Voice - \applyoutput - #(add-balloon-text 'NoteHead "heads, or tails?" - '(1 . -3)) - c8 -@end lilypond - -@noindent -The function @code{add-balloon-text} takes the name of a grob, the -label to print and where to put the label relative to the object. In -the above example, the text ``heads or tails?'' ends 3 spaces below -the `balloon.' - -@cindex balloon -@cindex notation, explaining - -@seealso - -Program reference: @internalsref{text-balloon-interface}. - -Examples: @inputfileref{input/regression,balloon.ly}. - -@node Easy Notation note heads -@subsection Easy Notation note heads - -@cindex easy notation -@cindex Hal Leonard - -The `easy play' note head includes a name inside the head. It is -used in music for beginners: - -@lilypond[raggedright,verbatim,staffsize=26] - \setEasyHeads - c'2 e'4 f' | g'1 -@end lilypond - -The command @code{\setEasyHeads} overrides settings for the -@internalsref{NoteHead} object. To make the letters readable, it has -to be printed in a large font size. To print with a larger font, see -@ref{Font Size}. - -@cindex Xdvi -@cindex ghostscript - -If you view the result with Xdvi, then staff lines may show through -the letters. Printing the PostScript file obtained does produce the -correct result. - -@refcommands - -@cindex \setEasyHeads -@code{\setEasyHeads} - -@node Sound -@section Sound -@cindex Sound - -Entered music can also be converted to MIDI output. The performance -is intented for proof-hearing the music for errors. - -Ties, dynamics and tempo changes are interpreted. Dynamic marks, -crescendi and decrescendi translate into MIDI volume levels. Dynamic -marks translate to a fixed fraction of the available MIDI volume -range, crescendi and decrescendi make the volume vary linearly between -their two extremities. The fractions can be adjusted by -@code{dynamicAbsoluteVolumeFunction} in @internalsref{Voice} context. -For each type of MIDI instrument, a volume range can be defined. This -gives a basic equalizer control, which can enhance the quality of -the MIDI output remarkably. The equalizer can be controlled by -setting @code{instrumentEqualizer}. +@c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH -@refbugs + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore -Many musically interesting effects, such as swing, articulation, -slurring, etc., are not translated to MIDI. +@c \version "2.12.0" -The MIDI output allocates a channel for each Staff, and one for global -settings. Hence, the MIDI file should not have more than 15 staves -(or 14 if you do not use drums). Other staves will remain silent. +@node Musical notation +@chapter Musical notation +This chapter explains how to create musical notation. @menu -* MIDI block:: -* MIDI instrument names:: +* Pitches:: Writing and display the pitches of notes. +* Rhythms:: Writing and displaying the durations of notes. +* Expressive marks:: Adding expression to notes. +* Repeats:: Repeat music. +* Simultaneous notes:: More than one note at once. +* Staff notation:: Displaying staves. +* Editorial annotations:: Special notation to increase legibility. +* Text:: Adding text to scores. @end menu +@include pitches.itely +@include rhythms.itely +@include expressive.itely +@include repeats.itely +@include simultaneous.itely +@include staff.itely +@include editorial.itely +@include text.itely -@node MIDI block -@subsection MIDI block -@cindex MIDI block - - -The MIDI block is analogous to the paper block, but it is somewhat -simpler. The @code{\midi} block can contain: -@cindex MIDI block - -@itemize @bullet - @item a @code{\tempo} definition, and - @item context definitions. -@end itemize - -A number followed by a period is interpreted as a real number, so -for setting the tempo for dotted notes, an extra space should be -inserted, for example: - -@example - \midi @{ \tempo 4 . = 120 @} -@end example - - -@cindex context definition - -Context definitions follow precisely the same syntax as within the -\paper block. Translation modules for sound are called performers. -The contexts for MIDI output are defined in @file{ly/performer-init.ly}. - - -@node MIDI instrument names -@subsection MIDI instrument names - -@cindex instrument names -@cindex @code{Staff.midiInstrument} - -The MIDI instrument name is set by the @code{Staff.midiInstrument} -property. The instrument name should be chosen from the list in -@ref{MIDI instruments}. - -@refbugs - -If the selected string does not exactly match, then the default is -used, which is the Grand Piano.