]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/notation.itely
Minor editing.
[lilypond.git] / Documentation / user / notation.itely
index cfe02440596cb014c6f9d4e54b19c0f90cf63d29..8af2acf8afc0a9fe22b5cfba8e64b798c45c1b76 100644 (file)
@@ -107,6 +107,17 @@ cis
 cisis
 @end lilypond
 
+In accordance with standard typsetting rules, a natural sign is printed
+before a sharp or flat if a previous accidental needs to be
+cancelled.  To change this behaviour, use
+@code{\set Staff.extraNatural = ##f}
+
+@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+ceses4 ces cis c
+\set Staff.extraNatural = ##f
+ceses4 ces cis c
+@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
@@ -918,6 +929,24 @@ This command sets the context property
 @internalsref{Staff}.@code{keySignature}.  Non-standard key signatures
 can be specified by setting this property directly.
 
+A natural sign is printed to cancel any previous accidentals.  This
+can be suppressed by setting the @code{Staff.printKeyCancellation}
+property.
+
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+{
+  \key d \major
+  a b cis d
+  \key g \minor
+  a bes c d
+  \set Staff.printKeyCancellation = ##f
+  \key d \major
+  a b cis d
+  \key g \minor
+  a bes c d
+}
+@end lilypond
+
 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}.
@@ -997,18 +1026,21 @@ example,
 
 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
+@code{middleCPosition} and @code{clefOctavation}.  A clef is printed
 when any of these properties are changed.  The following example shows
 possibilities when setting properties manually.
 
+@ignore
+should to be fixed very quickly  -gp
+
 @lilypond[quote,raggedright,verbatim]
 {
-  \set Staff.clefGlyph = #"clefs-F"
+  \set Staff.clefGlyph = #"clefs.F"
   \set Staff.clefPosition = #2
   c'4
-  \set Staff.clefGlyph = #"clefs-G"
+  \set Staff.clefGlyph = #"clefs.G"
   c'4
-  \set Staff.clefGlyph = #"clefs-C"
+  \set Staff.clefGlyph = #"clefs.C"
   c'4
   \set Staff.clefOctavation = #7
   c'4
@@ -1017,9 +1049,12 @@ possibilities when setting properties manually.
   c'4
   \clef "bass"
   c'4
+  \set Staff.middleCPosition = #4
+  c'4
 }
 @end lilypond
 
+@end ignore
 
 @seealso
 
@@ -1336,15 +1371,17 @@ indefinitely.
 Timing can be changed by setting any of these variables explicitly.
 In the next example, the 4/4 time signature is printed, but
 @code{measureLength} is set to 5/4.  After a while, the measure is
-shortened by 1/8, by setting @code{measurePosition} to -3/8 at 2/4 in
-the measure, so the next bar line will fall at 2/4 + 3/8.
+shortened by 1/8, by setting @code{measurePosition} to 7/8 at 2/4
+in the measure, so the next bar line will fall at 2/4 + 3/8.  The
+3/8 arises because 5/4 normally has 10/8, but we have manually
+set the measure position to be 7/8 and 10/8 - 7/8 = 3/8.
 
 @lilypond[quote,raggedright,verbatim,relative,fragment]
 \set Score.measureLength = #(ly:make-moment 5 4)
 c1 c4
 c1 c4
 c4 c4
-\set Score.measurePosition = #(ly:make-moment -3 8)
+\set Score.measurePosition = #(ly:make-moment 7 8)
 b8 b b
 c4 c1
 @end lilypond
@@ -1353,8 +1390,9 @@ c4 c1
 @node Controlling formatting of prefatory matter
 @subsection Controlling formatting of prefatory matter
 
-TODO: Somebody needs to explain this example, but I don't know what
-they're trying to do, so it won't be me.  -gp
+@c  This section will be moved to somewhere else soon. -gp
+This example demonstrates how to place prefatory matter
+(such as the clef and key signature) at the end of a line.
 
 @lilypond[quote,verbatim]
 \transpose c c' {
@@ -1419,7 +1457,21 @@ voices are sometimes called ``layers'' in 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.
+appropriately.  Specifically,
+
+@example
+<< \upper \\ \lower >>
+@end example
+
+@noindent
+is equivalent to
+
+@example
+<<
+  \context Voice = "1" @{ \voiceOne \upper @}
+  \context Voice = "2" @{ \voiceTwo \lower @}
+>>
+@end example
 
 @cindex @code{\voiceOne}
 @cindex @code{\voiceFour}
@@ -1441,6 +1493,11 @@ a stem directions and horizontal shift for each part
 The command @code{\oneVoice} will revert back to the normal setting.
 @cindex @code{\oneVoice}
 
+Defining voices (either with the separator @code{\\} or with
+@code{\voiceXXX}) will set the direction of stems, slurs, ties,
+articulations, text annotations, augmentation dots of dotted
+notes, and fingerings.  @code{\voiceOne} makes these objects
+point upwards, while @code{\voiceTwo} makes them point down.
 
 Normally, note heads with a different number of dots are not merged, but
 when the object property @code{merge-differently-dotted} is set in
@@ -1689,12 +1746,15 @@ 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,
+The value of @code{autoBeamSettings} is changed with three 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}))
+#(score-override-auto-beam-setting
+   '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b})
+#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})
+   [@var{context}])
 @end example
 Here, @var{be} is the symbol @code{begin} or @code{end}, and
 @var{context} is an optional context (default: @code{'Voice}).  It
@@ -1705,7 +1765,9 @@ 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.
+@var{context} argument.  @code{score-override-auto-beam-setting} is
+equal to @code{override-auto-beam-setting} with the argument
+@var{context} set to @code{'Score}.
 
 For example, if automatic beams should end on every quarter note, use
 the following
@@ -2278,6 +2340,7 @@ c\fermata c^\fermata c_\fermata
 @cindex accent
 @cindex marcato
 @cindex staccatissimo
+@cindex espressivo
 @cindex fermata
 @cindex stopped
 @cindex staccato
@@ -2705,9 +2768,13 @@ is an example how to do it
 
 @lilypond[quote,raggedright,fragment,relative=2,verbatim]
 \setTextCresc
-c \< d e f\!
+c\< d e f\!
 \setHairpinCresc
 e\> d c b\!
+\setTextDecresc
+c\> d e f\!
+\setTextDim
+e\> d c b\!
 @end lilypond
 
 @cindex crescendo
@@ -2722,6 +2789,9 @@ a'2\< a a a\!\mf
 
 @cindex diminuendo
 
+To create new dynamic marks or text that should be aligned
+with dynamics, see @ref{New dynamic marks}.
+
 
 @refcommands
 
@@ -2866,8 +2936,10 @@ Examples:
 
 Brackets for the repeat are normally only printed over the topmost
 staff.  This can be adjusted by setting the @code{voltaOnThisStaff}
-property @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly},
-@inputfileref{input/@/regression,volta@/-chord@/-names@/.ly}.
+property; see @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly}.
+
+@c not necessary
+@c @inputfileref{input/@/regression,volta@/-chord@/-names@/.ly}.
 
 
 @refbugs
@@ -3713,6 +3785,7 @@ for complex vocal music.
 * Flexibility in alignment::    
 * More stanzas::                
 * Ambitus::                     
+* Other vocal issues::          
 @end menu
 
 @node Setting simple songs
@@ -3750,7 +3823,7 @@ More stanzas can be added by adding more
 
 The @code{\addlyrics} command is actually just a convienient way
 to write a more complicated LilyPond structure that sets up the
-lyrics.  You should use @code{\addlyrics} unless you need to
+lyrics.  You should use @code{\addlyrics} unless you need to do
 fancy things, in which case you should investigate
 @code{\lyricsto} or @code{\lyricmode}.
 
@@ -3764,9 +3837,13 @@ is the same as
 
 @example
 \context Voice = blah @{ music @}
-\lyricsto "blah" \lyricsmode \new lyrics @{ LYRICS @}
+\lyricsto "blah" \new lyrics @{ LYRICS @}
 @end example
 
+@refbugs
+
+@code{\addlyrics} cannot handle polyphony.
+
 
 @node Entering lyrics
 @subsection Entering lyrics
@@ -3794,7 +3871,7 @@ is that a word can end with @code{@}}.  The following example is
 usually a mistake in the input file.  The syllable includes a @code{@}}, so the
 opening brace is not balanced
 @example
-\lyricmode @{ twinkle @}
+\lyricmode @{ twinkle@}
 @end example
 
 @cindex @code{\property}, in @code{\lyricmode}
@@ -3865,6 +3942,50 @@ 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{__}.
 
+@ignore
+FIXME: check that this compiles and displays correctly.  I don't want
+to commit this part blindly.
+
+In tighly engraved music, hyphens can be removed.  In some languages
+(e.g. German and Hungarian), hyphens should not disappear, since
+spelling depends on hyphenation.  For that purpose, hyphens can be
+forced to remain by overriding @code{minimum-length} of
+the @code{LyricHyphen} grob.
+
+(code from 2.2)
+\score {
+<<    \notes \new Staff \relative c'' { \time 1/4 c16[ c c  c]
+\time 1/4
+c16[ c c c]
+\time 1/4
+c16[ c c c]
+
+}
+    \lyrics \new Lyrics \with {
+       % Otherwise lyrics are so far apart that hyphens don't disappear
+       \override SeparationItem #'padding = #0.0
+       }{ bla -- bla -- bla -- bla --
+          bla -- bla -- bla -- bla --
+
+          \override LyricHyphen  #'minimum-length = #0.7
+          \override LyricHyphen  #'spacing-procedure =
+                  #Hyphen_spanner::set_spacing_rods
+
+          bla -- bla -- bla -- bla 
+       }>>
+    \paper   {
+       indent = 0.0 \cm
+       linewidth = 3.4 \cm
+
+       \context {
+           \StaffContext \remove "Time_signature_engraver"
+       }
+       
+    }
+      
+}
+@end ignore
+
 
 @seealso
 
@@ -3872,8 +3993,6 @@ Program reference: @internalsref{HyphenEvent},
 @internalsref{ExtenderEvent}, @internalsref{LyricHyphen}, and
 @internalsref{LyricExtender}
 
-Examples: @inputfileref{input/@/test,lyric@/-hyphen@/-retain@/.ly}.
-
 
 
 @node The Lyrics context
@@ -4007,7 +4126,7 @@ Here is an example demonstrating manual lyric durations,
 @cindex choral score
 
 A complete example of a SATB score setup is in section
-@ref{Small ensembles}.
+@ref{Vocal ensembles}.
 
 
 @refcommands
@@ -4021,11 +4140,13 @@ A complete example of a SATB score setup is in section
 Program reference: @internalsref{LyricCombineMusic},
 @internalsref{Lyrics}, @internalsref{Melisma_translator}.
 
-Examples: @ref{Small ensembles},
-@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly},
+
+@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
 @c TODO: make separate section for melismata
-@inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
-@inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
+
+@c  I can't find these examples in 2.0 or 2.2; remove. -gp
+@c @inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
+@c @inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
 
 @refbugs
 
@@ -4268,9 +4389,12 @@ ambitus per staff rather than per each voice, add the
 rather than to the @internalsref{Voice} context.  Here is an example,
 
 @lilypond[verbatim,raggedright,quote]
-\new Staff <<
+\new Staff \with {
+  \consists "Ambitus_engraver"
+}
+<<
   \new Voice \with {
-    \consists "Ambitus_engraver"
+    \remove "Ambitus_engraver"
   } \relative c'' {
     \override Ambitus #'X-offset-callbacks
       = #(list (lambda (grob axis) -1.0))
@@ -4278,7 +4402,7 @@ rather than to the @internalsref{Voice} context.  Here is an example,
     c4 a d e f2
   }
   \new Voice \with {
-    \consists "Ambitus_engraver"
+    \remove "Ambitus_engraver"
   } \relative c' {
     \voiceTwo
     es4 f g as b2
@@ -4312,6 +4436,61 @@ Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
 There is no collision handling in the case of multiple per-voice
 ambitus.
 
+@node Other vocal issues
+@subsection Other vocal issue
+
+@ignore
+yeah, I'm giving up somewhat by stuffing a bunch of things in
+here.  But at least they're in the manual now; it's easier to
+move them around in the manual once they're already here.
+
+Besides, if users complain about everything stuffed in here, I
+can ask them for specific instructions about where to move these
+examples, and that might get them more involved in the docs.  -gp
+@end ignore
+
+You can display alternate (or divisi) lyrics by naming voice
+contexts and attaching lyrics to those specific contexts.
+
+@lilypond[verbatim,raggedright,quote]
+\score{ <<
+  \context Voice = "melody" {
+    \relative c' {
+      c4
+      <<
+        { \voiceOne c8 e }
+        \context Voice = splitpart { \voiceTwo c4 }
+      >>
+      \oneVoice c4 c | c
+    }
+  }
+  \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
+  \new Lyrics \lyricsto "splitpart" { shall }
+>> }
+@end lilypond
+
+
+You can use this trick to display different lyrics for a repeated
+section.
+
+@lilypond[verbatim,raggedright,quote]
+\score{ <<
+  \context Voice = melody \relative c' {
+    c2 e | g e | c1 |
+    \context Voice = verse \repeat volta 2 {c4 d e f | g1 | }
+    a2 b | c1}
+  \lyricsto melody  \context Lyrics = mainlyrics \lyricmode {
+    do mi sol mi do
+    la si do }
+  \lyricsto verse \context Lyrics = mainlyrics \lyricmode {
+   do re mi fa sol }
+  \lyricsto verse \context Lyrics = repeatlyrics \lyricmode {
+   dodo rere mimi fafa solsol }
+>>
+}
+@end lilypond
+
+
 @node Other instrument specific notation, Tablatures, Vocal music, Notation manual
 @section Other instrument specific notation
 
@@ -4779,8 +4958,7 @@ chart}.  Turning on these styles is described in the input file
 
 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,chords@/-without@/-melody@/.ly}.
+@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
 
 
 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
@@ -5017,8 +5195,6 @@ c1 \mark \default
 @c umm, is the manual the right place for feature requests?  :)  -gp
 @c FIXME - should make that tunable.
 
-To use boxed bar numbers instead of letters, see @ref{Bar numbers}.
-
 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
@@ -5034,19 +5210,16 @@ few measures, it is set to function that produces a boxed number.
 \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))))
+\set Score.markFormatter = #format-mark-box-numbers
 c1 \mark \default
 c1 \mark \default
 c1
 @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}.  These can be used as inspiration for other
-formatting functions.
+of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
+@code{format-mark-letters} and @code{format-mark-box-letters}.
+These can be used as inspiration for other formatting functions.
 
 
 @cindex coda on bar line
@@ -5063,9 +5236,13 @@ 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
+If the mark occurs at a line break, the mark will be printed at the
+beginning of the next line.
+@c  IMO this is a bug; hopefully it'll be fixed soon, so I can
+@c  delete this sentence.   -gp
+If there is no next line, then the mark will not be printed at all.
+To print the mark at the end of the current line, use
+
 @example
 \override Score.RehearsalMark
   #'break-visibility = #begin-of-line-invisible
@@ -5176,7 +5353,7 @@ names, for example
 @lilypond[quote,fragment,verbatim,raggedright]
 \set Staff.instrument = \markup {
   \column { "Clarinetti"
-            { "in B" \smaller \flat } } }
+            \line { "in B" \smaller \flat } } }
 c''1
 @end lilypond
 
@@ -5449,7 +5626,7 @@ 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', 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
@@ -5464,6 +5641,20 @@ may set the property @code{printPartCombineTexts} to false
 >>
 @end lilypond
 
+To change the text that is printed for solos or merging, you may
+set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
+properties.
+
+@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+\new Staff <<
+  \set Score.soloText = #"ichi"
+  \set Score.soloIIText = #"ni"
+  \set Score.aDueText = #"tachi"
+  \partcombine
+    \relative g' { g4 g a( b) r }
+    \relative g' { g4 g r r f }
+>>
+@end lilypond
 
 Both arguments to @code{\partcombine} will be interpreted as
 @internalsref{Voice} contexts.  If using relative octaves,
@@ -5546,6 +5737,7 @@ staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
 @node Different editions from one source
 @subsection Different editions from one source
 
+@cindex tag
 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.
@@ -5579,6 +5771,8 @@ c1-\tag #'part ^4
 
 This defines a note with a conditional fingering indication.
 
+@cindex keepWithTag
+@cindex removeWithTag
 By applying the @code{\keepWithTag} and @code{\removeWithTag}
 commands, tagged expressions can be filtered.  For example,
 @example
@@ -5946,21 +6140,21 @@ select ancient accidentals.   Supported styles are
   s^\markup {
     \column {
       "vaticana"
-      { " " \musicglyph #"accidentals-vaticana-1"
-      " " \musicglyph #"accidentals-vaticana0" }
+      \line { " " \musicglyph #"accidentals-vaticana-1"
+        " " \musicglyph #"accidentals-vaticana0" }
     }
     \column {
       "medicaea"
-      { " " \musicglyph #"accidentals-medicaea-1" }
+      \line { " " \musicglyph #"accidentals-medicaea-1" }
     }
     \column {
       "hufnagel"
-      { " " \musicglyph #"accidentals-hufnagel-1" }
+      \line { " " \musicglyph #"accidentals-hufnagel-1" }
     }
     \column {
       "mensural"
-      { " " \musicglyph #"accidentals-mensural-1"
-      " " \musicglyph #"accidentals-mensural1" }
+      \line { " " \musicglyph #"accidentals-mensural-1"
+        " " \musicglyph #"accidentals-mensural1" }
     }
   }
 }
@@ -6005,7 +6199,7 @@ Examples: @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
 
 
 Use the @code{style} property of grob @internalsref{Rest} to select
-ancient accidentals.   Supported styles are @code{classical},
+ancient rests.   Supported styles are @code{classical},
 @code{neomensural}, 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{neomensural} style suits
@@ -6460,19 +6654,19 @@ supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
 \new Lyrics \lyricmode {
   \markup { \column {
     \typewriter "vaticana"
-    { " " \musicglyph #"custodes-vaticana-u0" }
+    \line { " " \musicglyph #"custodes-vaticana-u0" }
   } }
   \markup { \column {
     \typewriter "medicaea"
-    { " " \musicglyph #"custodes-medicaea-u0" }
+    \line { " " \musicglyph #"custodes-medicaea-u0" }
   }}
   \markup { \column {
     \typewriter "hufnagel"
-    { " " \musicglyph #"custodes-hufnagel-u0" }
+    \line { " " \musicglyph #"custodes-hufnagel-u0" }
   }}
   \markup { \column {
     \typewriter "mensural"
-    { " " \musicglyph #"custodes-mensural-u0" }
+    \line { " " \musicglyph #"custodes-mensural-u0" }
   }}
 }
 @end lilypond
@@ -7660,10 +7854,11 @@ LilyPond has limited support for figured bass
 
 @lilypond[quote,raggedright,verbatim,fragment]
 <<
-  \context Voice { \clef bass dis4 c d ais }
+  \context Voice { \clef bass dis4 c d ais g fis}
   \context FiguredBass \figuremode {
     < 6 >4 < 7 >8 < 6+ [_!] >
     < 6 >4 <6 5 [3+] >
+    < _ >4 < 6 >4
   }
 >>
 @end lilypond