]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
authorJohn Mandereau <john.mandereau@gmail.com>
Thu, 8 May 2008 12:03:03 +0000 (14:03 +0200)
committerJohn Mandereau <john.mandereau@gmail.com>
Thu, 8 May 2008 12:03:03 +0000 (14:03 +0200)
* 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond:
  minor updates.
  Update from Francisco.
  Update from Patrick.
  Update from Valentin.
  GDP: Process comments from JK
  Fix from Han-Wen testimony on bug-lilypond.
  Small updates.
  Update from Valentin.

Documentation/user/ancient.itely
Documentation/user/chords.itely
Documentation/user/expressive.itely
Documentation/user/fretted-strings.itely
Documentation/user/fundamental.itely
Documentation/user/simultaneous.itely
Documentation/user/text.itely
scm/define-grob-properties.scm

index 752a5ac860b36fa8dabae40aee68df6ff333c457..b314edef96e9b0833b99f06a12959e15d9d81504 100644 (file)
@@ -228,7 +228,6 @@ the use of key signatures.
 
 Internals Reference: @rinternals{KeySignature}.
 
-Examples: @c @lsrdir{ancient}
 
 @node Ancient rests
 @subsubsection Ancient rests
index 6dcff43c23d59660921e59fa0610e12bdb3c9f04..a7b5b35a1d93e998c61422587d453e8b76a697b6 100644 (file)
@@ -460,7 +460,6 @@ chart}.  Turning on these styles is demonstrated in
 @seealso
 
 Examples:
-@c @lsrdir{chords}
 
 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
 @file{scm/@/chord@/-entry@/.scm}.
index 50d9e322c4f78c10041b86ab78d6810844b38c86..dd018b422fe0a7948058fdbe17083289904a14f4 100644 (file)
@@ -144,13 +144,23 @@ a4^\prall^\markup { \sharp }
 
 @seealso
 
-Music Glossary: @rglos{tenuto}, @rglos{accent}, @rglos{staccato},
+Music Glossary:
+@rglos{tenuto},
+@rglos{accent},
+@rglos{staccato},
 @rglos{portato}.
 
+Notation Reference:
+@ref{Controlling direction and placement}.
+
+Installed Files:
+@file{scm/@/script@/.scm}.
+
 Snippets:
 @rlsr{Expressive marks}.
 
-Internals Reference: @rinternals{Script},
+Internals Reference:
+@rinternals{Script},
 @rinternals{TextScript}.
 
 
@@ -163,7 +173,9 @@ MIDI rendering of the music.
 @node Dynamics
 @subsubsection Dynamics
 
+@cindex absolute dynamics
 @cindex dynamics
+@cindex dynamics, absolute
 @funindex \ppppp
 @funindex \pppp
 @funindex \ppp
@@ -224,15 +236,6 @@ d2\> d\>
 c1\!
 @end lilypond
 
-A @notation{hairpin} normally starts at the left edge of the
-beginning note and ends on the right edge of the ending note.  If
-the ending note falls on the downbeat, the @notation{hairpin} ends
-on the immediately preceding bar line.  The following example
-illustrates this behavior:
-
-@c This example currently does not work. -pm
-@c TODO: Add link to new snippet for #'to-barline
-
 Spacer notes are needed to engrave multiple marks on one note.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
@@ -240,37 +243,17 @@ c4\< c\! d\> e\!
 << f1 { s4 s4\< s4\> s4\! } >>
 @end lilypond
 
-If hairpins are too short, they can be lengthened using the
-following method:
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4\< c\! d\> e\!
-\override Voice.Hairpin #'minimum-length = #5
-<< f1 { s4 s4\< s4\> s4\! } >>
-@end lilypond
-
-@cindex espressivo, articulation
+@cindex espressivo articulation
 
 In some situations the @code{\espressivo} articulation mark may be
-the appropriate choice to indicate a crescendo and decrescendo on
-one note:
+the appropriate choice to indicate a @notation{crescendo} and
+@notation{decrescendo} on one note:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c2 b4 a
 g1\espressivo
 @end lilypond
 
-@cindex al niente
-@cindex niente, al
-
-Hairpins may be printed with a circled tip (al niente notation):
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override Hairpin #'circled-tip = ##t
-c2\< c\!
-c4\> c\< c2\!
-@end lilypond
-
 @cindex crescendo
 @cindex decrescendo
 @cindex diminuendo
@@ -282,38 +265,38 @@ c4\> c\< c2\!
 @funindex \setHairpinDim
 @funindex \setHairpinDecresc
 
-Crescendos and decrescendos can be engraved as @notation{cresc.},
-@notation{decresc.}, @notation{decr.}, or @notation{dim.} instead
-of using hairpins with the commands @code{\setTextCresc},
+@notation{Crescendos} and @notation{decrescendos} can be engraved
+as textual markings instead of hairpins.  The built-in commands
+that enable these text modes are @code{\setTextCresc},
 @code{\setTextDecresc}, @code{\setTextDecr}, and
 @code{\setTextDim}.  The corresponding @code{\setHairpinCresc},
-@code{\setHairpinDim}, and @code{\setHairpinDecresc} will revert
-to hairpins again:
+@code{\setHairpinDim}, and @code{\setHairpinDecresc} commands will
+revert to hairpins again:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\setTextCresc
 c\< d e f\!
-\setHairpinCresc
 e\> d c b\!
+\setTextCresc
+c\< d e f\!
 \setTextDecresc
-e\> d e f\!
-\setTextDecr
-c\> d e f\!
-\setTextDim
 e\> d c b\!
+\setHairpinCresc
+c\< d e f\!
 @end lilypond
 
-You can also supply your own texts and change the style of the
-spanner line with the properties @code{crescendoText},
-@code{crescendoSpanner}, @code{decrescendoText}, and
-@code{decrescendoSpanner}.  Available values for the spanner
-properties are @code{hairpin}, @code{line}, @code{dashed-line},
-and @code{dotted-line}.  If unset, a hairpin crescendo is used:
+The text used for @notation{crescendos} and
+@notation{decrescendos} can be changed by modifying the context
+properties @code{crescendoText} and @code{decrescendoText}.  The
+style of the spanner line can be changed by modifying the context
+properties @code{crescendoSpanner} and @code{decrescendoSpanner}.
+Available values for the spanner properties are @code{'hairpin},
+@code{'line}, @code{'dashed-line}, and @code{'dotted-line}.  If
+unset, a hairpin crescendo is used:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \set crescendoText = \markup { \italic "cresc. poco" }
 \set crescendoSpanner = #'dotted-line
-a'2\< a a a a a a a\!\mf
+a'2\< a a a a a a a\mf
 @end lilypond
 
 To create new absolute dynamic marks or text that should be
@@ -337,6 +320,34 @@ Vertical positioning of dynamics is handled by
 
 @c Add LilyPond examples to these snippets. -pm
 
+@c A @notation{hairpin} normally starts at the left edge of the
+@c beginning note and ends on the right edge of the ending note.  If
+@c the ending note falls on the downbeat, the @notation{hairpin} ends
+@c on the immediately preceding bar line.  The following example
+@c illustrates this behavior:
+@c 
+@c TODO: Add link to new snippet for #'to-barline
+
+If hairpins are too short, they can be lengthened using the
+following method:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\< c\! d\> e\!
+\override Voice.Hairpin #'minimum-length = #5
+<< f1 { s4 s4\< s4\> s4\! } >>
+@end lilypond
+
+@cindex al niente
+@cindex niente, al
+
+Hairpins may be printed with a circled tip (al niente notation):
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+\override Hairpin #'circled-tip = ##t
+c2\< c\!
+c4\> c\< c2\!
+@end lilypond
+
 Dynamics that occur at, begin on, or end on the same note will be
 vertically aligned.  If you want to ensure that dynamics are
 aligned when they do not occur on the same note, you can increase
@@ -346,10 +357,6 @@ the @code{staff-padding} property.
 \override DynamicLineSpanner #'staff-padding = #4
 @end example
 
-@noindent
-You may also use this property if the dynamics are colliding with
-other notation.
-
 @notation{Crescendi} and @notation{decrescendi} that cross a line
 break will be continued on the second line.  If they end on the
 first note of a new line, nothing will be printed on that line.
@@ -379,6 +386,9 @@ Music Glossary:
 Learning Manual:
 @rlearning{Articulation and dynamics}.
 
+Notation Reference:
+@ref{Controlling direction and placement}.
+
 Snippets:
 @rlsr{Expressive marks}.
 
@@ -496,12 +506,17 @@ can be achieved in LilyPond by setting @code{doubleSlurs},
 
 @seealso
 
-Music Glossary: @rglos{slur}
+Music Glossary:
+@rglos{slur}.
+
+Notation Reference:
+@ref{Controlling direction and placement}.
 
 Snippets:
 @rlsr{Expressive marks}.
 
-Internals Reference: @rinternals{Slur}.
+Internals Reference:
+@rinternals{Slur}.
 
 
 @node Phrasing slurs
@@ -543,10 +558,14 @@ You cannot have simultaneous phrasing slurs.
 
 @seealso
 
+Notation Reference:
+@ref{Controlling direction and placement}.
+
 Snippets:
 @rlsr{Expressive marks}.
 
-Internals Reference: @rinternals{PhrasingSlur}
+Internals Reference:
+@rinternals{PhrasingSlur}.
 
 
 @node Breath marks
@@ -583,7 +602,8 @@ Snippets:
 @rlsr{Expressive marks}.
 @c @lsr{expressive,breathing-sign.ly}.
 
-Internals Reference: @rinternals{BreathingSign}
+Internals Reference:
+@rinternals{BreathingSign}.
 
 
 @node Falls and doits
@@ -624,7 +644,9 @@ c4-\bendAfter #-3
 @seealso
 
 @c TODO: add falls and doits to glossary.
-@c Music Glossary: @rglos{falls}, @rglos{doits}.
+@c Music Glossary:
+@c @rglos{falls},
+@c @rglos{doits}.
 
 Snippets:
 @rlsr{Expressive marks}.
@@ -671,7 +693,8 @@ I = \once \override NoteColumn #'ignore-collision = ##t
 
 @seealso
 
-Music Glossary: @rglos{glissando}
+Music Glossary:
+@rglos{glissando}.
 
 Snippets:
 @rlsr{Expressive marks}.
@@ -680,7 +703,8 @@ Snippets:
 @c @lsr{expressive,glissando.ly},
 @c @lsr{expressive,line-styles.ly}
 
-Internals Reference: @rinternals{Glissando}
+Internals Reference:
+@rinternals{Glissando}.
 
 
 @knownissues
@@ -695,6 +719,9 @@ supported.
 @cindex arpeggio
 @cindex broken chord
 
+@c Add documentation for new 'parenthesis' style arpeggio.  Maybe
+@c create a new \arpeggioParen command, or something similar. -pm
+
 You can specify an @notation{arpeggio} (also known as a
 @notation{broken chord}) on a chord by attaching an
 @code{\arpeggio} to the chord:
@@ -807,14 +834,17 @@ moved to the Staff context:
 
 @c TODO: Add 'broken chord' to glossary.
 
-Music Glossary: @rglos{arpeggio}
+Music Glossary:
+@rglos{arpeggio}.
 
-Notation Reference: @ref{Ties}, for writing out arpeggios.
+Notation Reference:
+@ref{Ties}, for writing out arpeggios.
 
 Snippets:
 @rlsr{Expressive marks}.
 
-Internals Reference: @rinternals{Arpeggio},
+Internals Reference:
+@rinternals{Arpeggio},
 @rinternals{PianoStaff}.
 
 
@@ -877,9 +907,11 @@ printed as a stemless note head in parentheses.
 
 @seealso
 
-Music Glossary: @rglos{trill}
+Music Glossary:
+@rglos{trill}.
 
 Snippets:
 @rlsr{Expressive marks}.
 
-Internals Reference: @rinternals{TrillSpanner}
+Internals Reference:
+@rinternals{TrillSpanner}.
index 9f4945eb66125bb8c80e568dc6c193d2919a7146..34915ce0d480640bbd704135f4de08ebbb535f51 100644 (file)
@@ -239,7 +239,6 @@ Details about the property interface to fret diagrams are found at
 
 @seealso
 
-Examples: @c @lsrdir{guitar}
 
 
 @node Right hand fingerings
index 77b4d49346306a5e63ab3fa2524ca52b9dd506b8..71cb6c751466790b787073f120531e4a12b36697 100644 (file)
@@ -110,10 +110,12 @@ commands, leaving them to be created implicitly.  For simple
 examples this works well, but for more complex examples, especially
 when additional commands are used, the implicit creation of contexts
 can give surprising results, maybe creating extra unwanted staves.
-When entering more than a few lines of music it is advisable to
-always create staves and voices explicitly, see
+The way to create contexts explicitly is explained in 
 @ref{Contexts and engravers}.
 
+@warning{When entering more than a few lines of music it is
+advisable to always create staves and voices explicitly.}
+
 For now, though, let us return to the first example and examine the
 @code{\score} command, leaving the others to default.
 
@@ -261,7 +263,8 @@ there @emph{is} no mystery.  This line explains it all:
 @end quotation
 
 @noindent
-You may find it useful to review
+To understand what is meant by a music expression and a compound
+music expression you may find it useful to review
 @ref{Music expressions explained}.  In that section, we saw how to
 build big music expressions from small pieces -- we started from
 notes, then chords, etc.  Now we're going to start from a big
@@ -976,11 +979,15 @@ markup, ties, slurs, and dynamics:
 }
 @end lilypond
 
+Now let's look at three different ways to notate the same passage
+of polyphonic music, each of which is advantageous in different
+circumstances, using the example from the previous section.
+
 An expression that appears directly inside a @code{<< >>} belongs
 to the main voice (but, note, @strong{not} in a @code{<< \\ >>}
 construct).  This is useful when extra voices appear while the
-main voice is playing.  Here is a more correct rendition of the
-example from the previous section.  The red diamond-shaped notes
+main voice is playing.  Here is a more correct rendition of our
+example.  The red diamond-shaped notes
 demonstrate that the main melody is now in a single voice context,
 permitting a phrasing slur to be drawn over them.
 
@@ -1017,7 +1024,7 @@ permitting a phrasing slur to be drawn over them.
 
 More deeply nested polyphony constructs are possible, and if a
 voice appears only briefly this might be a more natural way to
-typeset the music.
+typeset the music:
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative c' {
@@ -1070,6 +1077,8 @@ as here:
 >>
 @end lilypond
 
+@subsubheading Note columns
+
 @cindex note column
 @cindex shift commands
 @funindex \shiftOff
@@ -1212,7 +1221,11 @@ in separate files should they become too long.
 
 Here is a example of the first line of a hymn with four
 verses, set for SATB.  In this case the words for all four
-parts are the same.
+parts are the same.  Note how we use variables to separate the
+music notation and words from the staff structure.  See too
+how a variable, which we have chosen to call @q{TimeKey}, is used
+to hold several commands for use within the two staves.  In other
+examples this is often called @q{global}.
 
 @lilypond[quote,verbatim]
 TimeKey = { \time 4/4 \partial 4 \key c \major}
@@ -1560,6 +1573,60 @@ Note that there is no @code{\new Score} command;
 the single top-level @code{Score} context is introduced
 with @code{\score}.
 
+You have seen many practical examples which created new
+@code{Staff} and @code{Voice} contexts in earlier sections, but
+to remind you how these commands are used in practice, here's an
+annotated real-music example:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {  % start single compound music expression
+  <<  % start of simultaneous staves section
+    \time 2/4
+    \new Staff {  % create RH staff
+      \key g \minor
+      \clef "treble"
+      \new Voice {  % create voice for RH notes
+        \relative c'' {  % start of RH notes
+          d4 ees16 c8. |
+          d4 ees16 c8. |
+        }  % end of RH notes
+      }  % end of RH voice
+    }  % end of RH staff
+    \new Staff <<  % create LH staff; needs two simultaneous voices
+      \key g \minor
+      \clef "bass"
+      \new Voice {  % create LH voice one
+        \voiceOne
+        \relative g {  % start of LH voice one notes
+          g8 <bes d> ees, <g c> |
+          g8 <bes d> ees, <g c> |
+        }  % end of LH voice one notes
+      }  % end of first LH voice
+      \new Voice {  % create LH voice two
+        \voiceTwo
+        \relative g {  % start of LH voice two notes
+          g4 ees |
+          g4 ees |
+        }  % end of LH voice two notes
+      }  % end of LH voice two
+    >>  % end of LH staff
+  >>  % end of simultaneous staves section
+}  % end of single compound music expression
+@end lilypond
+
+(Note how all the statements which open a block with either a
+curly bracket, @code{@{}, or double angle brackets, @code{<<},
+are indented by two further spaces, and the corresponding
+closing bracket is indented by exactly the same amount.  While
+this is not required, following this practice will greatly
+reduce the number of @q{unmatched bracket} errors, and is
+strongly recommended.  It enables the structure of the music to
+be seen at a glance, and any unmatched brackets will be obvious.
+Note too how the LH staff is created using double angle brackets
+because it requires two voices for its music, whereas the RH staff
+is created with a single music expression surrounded by curly
+brackets because it requires only one voice.)
+
 @cindex contexts, naming
 @cindex naming contexts
 
@@ -2311,7 +2378,7 @@ lower = \relative c, {
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano  "
+      \set PianoStaff.instrumentName = "Piano"
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2409,7 +2476,7 @@ stacked one above the other:
   >>  % end ChoirStaff
 
   \new PianoStaff <<
-    \set PianoStaff.instrumentName = "Piano  "
+    \set PianoStaff.instrumentName = "Piano"
     \new Staff = "upper" \upper
     \new Staff = "lower" \lower
   >>
@@ -2561,7 +2628,7 @@ part just one.
 Next we need to add a staff for the pedal organ.
 This goes underneath the PianoStaff, but it must
 be simultaneous with it, so we need angle brackets
-round the two.  Missing these out would generate
+around the two.  Missing these out would generate
 an error in the log file.  It's a common mistake
 which you'll make sooner or later!  Try copying
 the final example at the end of this section,
@@ -2640,7 +2707,7 @@ ManualOneVoiceOneMusic = \relative g' {
   g4 g f ees | d2 c2 |
 }
 ManualOneVoiceTwoMusic = \relative c' {
-  ees16 d ees8~ ees16 f ees s c8 d~ d c~ |
+  ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
   c c4 b8 c8. g16 c b c d |
 }
 ManualTwoMusic = \relative c' {
index 0948c91b01a1be1df298b2552ea09d163c9e9218..b625af91075b68d05fcd24e3831fcfa162df7254 100644 (file)
@@ -45,7 +45,7 @@ A chord is formed by a enclosing a set of pitches between @code{<} and
 articulations, just like simple notes:
 
 @lilypond[verbatim,ragged-right,fragment,quote,relative=1]
-<c e g>1 <c e g>->
+<c e g>2 <c f a>4-> <e g c>-.
 @end lilypond
 
 For more information about chords, see @ref{Modern chords}.
@@ -62,12 +62,14 @@ Notation Reference:
 @ref{Modern chords}.
 
 Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
 @knownissues
 
-Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
-accurately.  Use @code{<g a>8 <e a>8} instead.
+For some reason, music expressions like @code{<< @{ g8 e8 @} a4 >>}
+that should automatically turn into chords, appear splitted in two
+staves.  To avoid this, use explicit chords instead as in
+@code{<g a>8 <e a>8}.
 
 
 @node Clusters
@@ -95,14 +97,14 @@ Music Glossary:
 @rglos{cluster}.
 
 Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
 Internals Reference:
-@internalsref{ClusterSpanner},
-@internalsref{ClusterSpannerBeacon},
-@internalsref{Cluster_spanner_engraver}.
+@rinternals{ClusterSpanner},
+@rinternals{ClusterSpannerBeacon},
+@rinternals{Cluster_spanner_engraver}.
 
-@c Examples: @lsr{contemporary,cluster@/.ly}.
+@c Examples: @rlsr{contemporary,cluster@/.ly}.
 
 @knownissues
 
@@ -131,7 +133,7 @@ them.
 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:
+@rinternals{NoteCollision} object, they are merged:
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
 \new Voice << {
@@ -253,7 +255,7 @@ inner voices (three and four) have @code{\shiftOn}.
 levels.
 
 When LilyPond cannot cope, the @code{force-hshift} property of the
-@internalsref{NoteColumn} object and pitched rests can be used to
+@rinternals{NoteColumn} object and pitched rests can be used to
 override typesetting decisions.
 
 @lilypond[quote,verbatim,ragged-right]
@@ -272,12 +274,12 @@ override typesetting decisions.
 @seealso
 
 Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
 Internals Reference: the objects responsible for resolving collisions
 are
-@internalsref{NoteCollision} and
-@internalsref{RestCollision}.
+@rinternals{NoteCollision} and
+@rinternals{RestCollision}.
 
 
 @knownissues
@@ -357,7 +359,7 @@ properties.
 @end lilypond
 
 Both arguments to @code{\partcombine} will be interpreted as
-@internalsref{Voice} contexts.  If using relative octaves,
+@rinternals{Voice} contexts.  If using relative octaves,
 @code{\relative} should be specified for both music expressions,
 i.e.,
 
@@ -378,11 +380,11 @@ Music Glossary:
 @rglos{a due}.
 
 Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
 Internals Reference:
-@internalsref{PartCombineMusic},
-@internalsref{Voice}.
+@rinternals{PartCombineMusic},
+@rinternals{Voice}.
 
 @knownissues
 
@@ -397,7 +399,7 @@ more than once in a measure.
 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, the
+switch to differently named @rinternals{Voice} contexts, the
 events in those will be ignored.
 
 
@@ -424,42 +426,37 @@ Music for multiple parts can be interleaved:
 
 This works quite well for piano music.
 
-@c  It would be nice if the first bar fit onto one 66-char line.
-@c  Maybe simplify the example?  -gp
 @lilypond[quote,verbatim]
+global = { \key g \major  \time 2/4 }
 music = {
-  \key c \major
-  \time 4/4
   \parallelMusic #'(voiceA voiceB voiceC voiceD) {
-    % Bar 1
-    r8  g'16[ c''] e''[ g' c'' e'']
-      r8 g'16[ c''] e''[ g' c'' e''] |
-    c'2
-      c'2 |
-    r8  a16[ d'] f'[ a d' f']
-      r8  a16[ d'] f'[ a d' f'] |
-    c2
-      c2 |
+    % Bar 1 
+    a'8 b'      c'' d''   |
+    d'4         e'        |
+    c16 d e f   d e f g   |
+    a,4         a,4       |
 
     % Bar 2
-    a'8 b'      c'' d''    e'' f''    g'' a'' |
-    d'4         d'         d'         d' |
-    c16 d e f   d e f g    e f g a    f g a b |
-    a,4         a,4        a,4        a,4 |
+    e''8 f''    g'' a''   |
+    f'4         g'        |
+    e16 f g a   f g a b   |
+    a,4         a,4       |
 
     % Bar 3 ...
   }
 }
 
-\score {
+\score {      
   \new PianoStaff <<
-    \music
-    \new Staff <<
-      \voiceA \\
-      \voiceB
-    >>
     \new Staff {
-      \clef bass
+      \global
+      <<
+        \voiceA \\
+        \voiceB
+      >>
+    }
+    \new Staff {
+      \global \clef bass
       <<
         \voiceC \\
         \voiceD
@@ -472,5 +469,5 @@ music = {
 @seealso
 
 Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
 
index 3c2c2a4d20aa1a17a2b445ff5466ca705328c94d..01626800de567d3db148003886e429b00d64ffa0 100644 (file)
@@ -330,71 +330,57 @@ using the @code{\markup} mode specific syntax.
 @cindex markup text
 @cindex typeset text
 
-A @code{\markup} block is used to typeset text with an extensible syntax,
-called @qq{markup mode}.
-Specific commands can be entered in this mode, using the
-backslash @code{\} character.
-@c TODO: move the following sentence (and add an example?) -vv
-To @emph{print} such characters as
-@code{\} and @code{#} in the output, use double
-quotation marks.
+A @code{\markup} block is used to typeset text with an extensible
+specific syntax called @qq{markup mode}.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-c1^\markup { hello }
-c1_\markup { hi there }
-c1^\markup { hi \bold there, is \italic {anyone home?} }
-c1_\markup { "\special {weird} #characters" }
-@end lilypond
+@cindex markup expressions
+@cindex markup syntax
 
-@noindent
-An exhaustive list of @code{\markup}-specific commands can be found in
-@ref{Text markup commands}.
+The markup syntax is similar to LilyPond's usual syntax: a
+@code{\markup} expression is enclosed in curly braces @code{@{
+@dots{} @}}.
 
+In markup mode, specific commands are entered using the backslash
+@code{\} character.  Such commands only affect the first following
+expression.
 
-@lilypond[quote,verbatim]
-\header{ title = \markup{ \bold { foo \italic { bar! } } } }
-\score{
-  \relative c'' {
-    \override Score.RehearsalMark
-      #'break-visibility = #begin-of-line-invisible
-    \override Score.RehearsalMark #'self-alignment-X = #right
-
-    \set Staff.instrumentName = \markup{ \column{ Alto solo } }
-    c2^\markup{ don't be \flat }
-    \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
-    b2\startTextSpan
-    a2\mark \markup{ \large \bold Fine }
-    r2\stopTextSpan
-    \bar "||"
-  }
-  \addlyrics { bar, foo \markup{ \italic bar! } }
-}
-@end lilypond
+Markup expressions may also be enclosed in double quotes
+@code{"..."}. Such expressions are treated as text strings
+and may not contain nested expressions or commands.
+Therefore, braces are generally prefered to double quotes;
+the following example demonstrates both syntaxes.
 
+@lilypond[quote,verbatim,fragment,relative=1]
+e1-\markup "intenso"
+a2^\markup { poco \italic piĆ¹ forte  }
+c e1
+d2_\markup { \italic "string. assai" }
+e 
+b1^\markup { \bold { molto \italic  agitato } }
+c
+@end lilypond
 
+@cindex special characters in markup mode
+@cindex markup mode, special characters
+@cindex reserved characters, printing
+@cindex printing special characters
 
-@cindex font switching
-
-Some font switching commands are demonstrated here. Such commands
-apply only to the first following word; several words may be affected
-by enclosing them in braces.
-
-@example
-\markup @{ \bold @{ hi there @} @}
-@end example
+Special characters such as @code{\} and @code{#}
+can be printed in the output simply using double
+quotes.  Double quotation marks are only printed
+in the output when preceded by backslashes:
 
-@c TODO: remove the following line and example? -vv
-@noindent
-For clarity, you can also do this for single arguments, e.g.,
-
-@example
-\markup @{ is \italic @{ anyone @} home @}
-@end example
+@lilypond[quote,verbatim,fragment,relative=1]
+\clef bass
+a^\markup "##\ LEPORELLO \##"
+a_\markup "Bravi! \"Cosa rara\"!"
+r a8 d
+cis a r4 r2
+@end lilypond
 
-The markup mode can be used to compose expressions, similar to
-mathematical expressions, XML documents, and music expressions.
-Such expressions can be vertically stacked, horizontally centered, 
-or aligned in different ways:
+The way markup expressions are defined affects 
+how these expressions will stacked, centered and aligned
+when using the commands explained in @ref{Text alignment}.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 c1^\markup { \column { a bbbb \line { c d } } }
@@ -402,62 +388,65 @@ c1^\markup { \center-align { a bbbb c } }
 c1^\markup { \line { a b c } }
 @end lilypond
 
-Lists with no previous command are not kept distinct.  In
-the following example, the two @code{\markup} expressions
+Lists of words that are not enclosed with double quotes
+or preceded by a previous command are not kept distinct.  In
+the following example, the first two @code{\markup} expressions
 are equivalent:
 
-@c TODO: merge these two examples in a @lilypond example -vv
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup { \center-align { a bbb c } }
+c1^\markup { \center-align { a { bbb c } } }
+c1^\markup { \center-align { a \line { bbb c } } }
+@end lilypond
 
-@example
-\center-align @{ @{ a b @} @{ c d @} @}
-\center-align @{ a b c d @}
-@end example
 
-@noindent
+Markups can be stored in variables.  These variables may be
+directly attached to notes:
 
-To keep lists of words distinct, please use quotes @code{"} or
-the @code{\line} command
+@lilypond[quote,verbatim]
+allegro = \markup { \bold \large Allegro }
 
-@lilypond[quote,verbatim,fragment,relative=1]
-\textLengthOn
-c4^\markup{ \center-align { on three lines } }
-c4^\markup{ \center-align { "all one line" } }
-c4^\markup{ \center-align { { on three lines } } }
-c4^\markup{ \center-align { \line { on one line } } }
+{
+  d''8.^\allegro
+  d'16 d'4 r2
+}
 @end lilypond
 
-Markups can be stored in variables and these variables may be
-attached to notes, like
 
-@example
-allegro = \markup @{ \bold \large @{ Allegro @} @}
- @{ a^\allegro b c d @}
-@end example
+@noindent
+An exhaustive list of @code{\markup}-specific commands can be found in
+@ref{Text markup commands}.
 
-Some objects have alignment procedures of their own, which cancel
-out any effects of alignments applied to their markup arguments as
-a whole.  For example, the @rinternals{RehearsalMark} is
-horizontally centered, so using @code{\mark \markup @{ \left-align
-.. @}} has no effect.
 
-In addition, vertical placement is performed after creating the
-text markup object.  If you wish to move an entire piece of
-markup, you need to use the #'padding property or create an
-@q{anchor} point inside the markup (generally with @code{\hspace
-#0}).
+@seealso
+
+This manual: @ref{Text markup commands}.
+
+Snippets:
+@rlsr{Text}.
+
+Internals Reference: @rinternals{TextScript}.
+
+Init files: @file{scm/@/new@/-markup@/.scm}.
+
+
+@knownissues
+
+@c FIXME: this is totally deprecated, isn't it? -vv
+Kerning or generation of ligatures is only done when the @TeX{}
+backend is used.  In this case, LilyPond does not account for them
+so texts will be spaced slightly too wide.
+
+@c is the following sentence really relevant? -vv
+Syntax errors for markup mode are confusing.
+
+
+@node Common markup commands
+@subsubsection Common markup commands
+
+Some basic formatting can be used blah blah
 
-@lilypond[quote,verbatim,fragment,relative=1]
-\textLengthOn
-c'4^\markup{ \raise #5 "not raised" }
-\once \override TextScript #'padding = #3
-c'4^\markup{ raised }
-c'4^\markup{ \hspace #0 \raise #1.5 raised }
-@end lilypond
 
-Some situations (such as dynamic marks) have preset font-related
-properties.  If you are creating text in such situations, it is
-advisable to cancel those properties with @code{normal-text}.  See
-@ref{Text markup commands}, for more details.
 
 @ignore
 TODO: here are some commands that could be described here.
@@ -495,30 +484,11 @@ I'm putting them in bulk, prior to working on this section. -vv
 
 @end ignore
 
-@seealso
-
-This manual: @ref{Text markup commands}.
-
-Snippets:
-@rlsr{Text}.
-
-Internals Reference: @rinternals{TextScript}.
-
-Init files: @file{scm/@/new@/-markup@/.scm}.
-
-
-@knownissues
-
-Kerning or generation of ligatures is only done when the @TeX{}
-backend is used.  In this case, LilyPond does not account for them
-so texts will be spaced slightly too wide.
 
-Syntax errors for markup mode are confusing.
 
-@node Common markup commands
-@subsubsection Common markup commands
+@cindex font switching
 
-Some basic formatting can be used blah blah
+Some font switching commands are demonstrated here.
 
 \italic 
 \upright
@@ -579,6 +549,33 @@ All these settings (except the size) can be reverted to the default font:
 @node Text alignment
 @subsubsection Text alignment
 
+
+Some objects have alignment procedures of their own, which cancel
+out any effects of alignments applied to their markup arguments as
+a whole.  For example, the @rinternals{RehearsalMark} is
+horizontally centered, so using @code{\mark \markup @{ \left-align
+.. @}} has no effect.
+
+In addition, vertical placement is performed after creating the
+text markup object.  If you wish to move an entire piece of
+markup, you need to use the #'padding property or create an
+@q{anchor} point inside the markup (generally with @code{\hspace
+#0}).
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\textLengthOn
+c'4^\markup{ \raise #5 "not raised" }
+\once \override TextScript #'padding = #3
+c'4^\markup{ raised }
+c'4^\markup{ \hspace #0 \raise #1.5 raised }
+@end lilypond
+
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it is
+advisable to cancel those properties with @code{normal-text}.  See
+@ref{Text markup commands}, for more details.
+
+
 Alignment basics:
 \left-align
 \center-align
index 3fb91c199e76d461901b443133095ea102f8c738..a533278fb539fba74a3e01d7003ffdf482fd4e40 100644 (file)
@@ -460,8 +460,8 @@ shortest playing here.")
      (shortest-starter-duration ,ly:moment? "The duration of the
 shortest note that starts here.")
      (side-axis ,number? "If the value is @code{#X} (or
-equivalently@tie{}@code{1}), the object is placed horizontally next
-to the other object.  If the value is @code{#Y} or@tie{}@code{0}, it
+equivalently@tie{}@code{0}), the object is placed horizontally next
+to the other object.  If the value is @code{#Y} or@tie{}@code{1}, it
 is placed vertically.")
      (side-relative-direction ,ly:dir? "Multiply direction of
 @code{direction-source} with this to get the direction of this