]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into lilypond/translation
authorJohn Mandereau <john.mandereau@gmail.com>
Sun, 15 Jun 2008 06:21:37 +0000 (08:21 +0200)
committerJohn Mandereau <john.mandereau@gmail.com>
Sun, 15 Jun 2008 06:21:37 +0000 (08:21 +0200)
* master: (21 commits)
  Update for expressive.itely
  update from Kurt.
  Update from Carl.
  Ignore lsr-unsafe.txt.
  LSR: Update.
  Remove @bullet in NR 1.8
  Second half of Kurt's update.
  First half of Kurt's update.
  Update from Valentin.
  Update from Valentin.
  Update from Carl.
  Correct documentation following fix to Issue 552
  MusicXML: Fix major-minor, add power chord as noted by Carl Sorensen
  Bump version.
  Typo
  New markup command snippets.
  Update from Valentin.
  Preventing LilyPond to delete PDF files on *nix systems
  GDP: Move Useful concepts and properties to Changing defaults
  Fix #313 (2).
  ...

56 files changed:
.gitignore
Documentation/user/ancient.itely
Documentation/user/changing-defaults.itely
Documentation/user/chords.itely
Documentation/user/expressive.itely
Documentation/user/input.itely
Documentation/user/staff.itely
Documentation/user/text.itely
Documentation/user/tweaks.itely
VERSION
input/lsr/adding-bar-lines-to-chordnames-context.ly [new file with mode: 0644]
input/lsr/adding-bars-to-chordnames.ly [deleted file]
input/lsr/adding-drum-parts.ly
input/lsr/adding-the-current-date-to-a-score.ly
input/lsr/additional-voices-to-avoid-collisions.ly [new file with mode: 0644]
input/lsr/adjusting-lyrics-vertical-spacing.ly
input/lsr/aligning-and-centering-instrument-names.ly
input/lsr/alignment-vertical-spacing.ly
input/lsr/ancient-notation.snippet-list
input/lsr/bar-counter.ly [deleted file]
input/lsr/breaks.snippet-list
input/lsr/caesura-railtracks-with-fermata.ly
input/lsr/changing-chord-separator.ly [new file with mode: 0644]
input/lsr/changing-midi-output-to-one-channel-per-voice.ly [new file with mode: 0644]
input/lsr/changing-properties-for-individual-grobs.ly
input/lsr/chords.snippet-list
input/lsr/contexts-and-engravers.snippet-list
input/lsr/demonstrating-all-headers.ly
input/lsr/editorial-annotations.snippet-list
input/lsr/expressive-marks.snippet-list
input/lsr/forcing-horizontal-shift-of-notes.ly [new file with mode: 0644]
input/lsr/measure-counter.ly [new file with mode: 0644]
input/lsr/midi.snippet-list
input/lsr/proportional-strict-notespacing.ly
input/lsr/repeats.snippet-list
input/lsr/rhythms.snippet-list
input/lsr/score-for-diatonic-accordion.ly
input/lsr/simultaneous-notes.snippet-list
input/lsr/spacing.snippet-list
input/lsr/staff-notation.snippet-list
input/lsr/template.snippet-list
input/lsr/text.snippet-list
input/lsr/time-signature-in-parentheses.ly
input/lsr/tweaks-and-overrides.snippet-list
input/lsr/unfretted-strings.snippet-list
input/lsr/vertically-aligned-dynamics-and-textscripts.ly [new file with mode: 0644]
input/lsr/vertically-aligning-ossias-and-lyrics.ly
input/lsr/vertically-centered-dynamics-and-textscripts.ly [deleted file]
input/lsr/vocal-music.snippet-list
input/manual/ancient-headword.ly [new file with mode: 0644]
input/regression/markup-music-glyph.ly [new file with mode: 0644]
lily/font-metric-scheme.cc
lily/line-interface.cc
scm/backend-library.scm
scm/define-markup-commands.scm
scripts/musicxml2ly.py

index ad4f7605c342ed3d5ba1c2b541989653db523a74..af5ebb54061e07bfbf74378c2032640ac5e5c9be 100644 (file)
@@ -63,6 +63,7 @@ config.status.lineno
 configure
 gcstat*.scm
 lily-[0-9a-f][0-9a-f][0-9a-f]*
+lsr-unsafe.txt
 nohup.out
 out
 out-cov
index b314edef96e9b0833b99f06a12959e15d9d81504..6aae8623d7f8f1c8ecbde6876676ba6763a12369 100644 (file)
@@ -11,6 +11,8 @@
 @node Ancient notation
 @section Ancient notation
 
+@lilypondfile[quote]{ancient-headword.ly}
+
 @cindex Vaticana, Editio
 @cindex Medicaea, Editio
 @cindex hufnagel
 @cindex mensural
 
 @menu
-* Introduction to ancient notation::
-* Alternative note signs::
-* Additional note signs::
-* Pre-defined contexts::
-* Transcribing ancient music::
-* Editorial markings::
+* Introduction to ancient notation::  
+* Alternative note signs::      
+* Additional note signs::       
+* Pre-defined contexts::        
+* Transcribing ancient music::  
+* Editorial markings::          
 @end menu
 
+
 @node Introduction to ancient notation
 @subsection Introduction to ancient notation
 
 @menu
-* Ancient notation supported::
+* Ancient notation supported::  
 @end menu
 
+
 @node Ancient notation supported
 @subsubsection Ancient notation supported
 
-Support for ancient notation includes features for mensural notation
-and Gregorian Chant notation.  There is also limited support for
-figured bass notation, see @ref{Figured bass}.
+Support for ancient notation includes features for mensural notation and
+Gregorian chant notation, as well as limited support for figured bass notation.
 
 Many graphical objects provide a @code{style} property, see
+
 @itemize
-@item
-@ref{Ancient note heads},
-@item
-@ref{Ancient accidentals},
-@item
-@ref{Ancient rests},
-@item
-@ref{Ancient clefs},
-@item
-@ref{Ancient flags},
-@item
-@ref{Ancient time signatures}.
+@item @ref{Ancient note heads},
+@item @ref{Ancient accidentals},
+@item @ref{Ancient rests},
+@item @ref{Ancient clefs},
+@item @ref{Ancient flags},
+@item @ref{Ancient time signatures}.
 @end itemize
 
-By manipulating such a grob property, the typographical appearance of
-the affected graphical objects can be accommodated for a specific
-notation flavor without the need for introducing any new notational
-concept.
+By manipulating these grob properties, the typographical appearance of a
+specific type of notation can be accommodated without needing to introduce any
+new notational concepts.
 
 In addition to the standard articulation signs described in
-section @ref{Articulations and ornamentations}, specific
-articulation signs for ancient notation are provided.
+@ref{Articulations and ornamentations}, specific articulation signs for
+Gregorian chant are provided.
 
 @itemize
-@item
-@ref{Ancient articulations}
+@item @ref{Ancient articulations}
 @end itemize
 
-Other aspects of ancient notation can not that easily be expressed
-in terms of just changing a style property of a graphical object or
-adding articulation signs.  Some notational concepts are introduced
-specifically for ancient notation,
+Other aspects of ancient notation cannot be easily expressed by changing a
+style property of a graphical object or by adding articulation signs.  Some
+notational concepts are introduced specifically for ancient notation,
 
 @itemize
-@item
-@ref{Custodes},
-@item
-@ref{Divisiones},
-@item
-@ref{Ligatures}.
+@item @ref{Custodes},
+@item @ref{Divisiones},
+@item @ref{Ligatures}.
 @end itemize
 
-If this all is 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, you may have a look at the predefined
-contexts.  Use them to set up predefined style-specific voice and
-staff contexts, and directly go ahead with the note entry,
+To start typesetting without worrying too much about the details on how to
+customize a context, there are predefined contexts for Gregorian chant and
+mensural notation.  They set up predefined style-specific voice and staff
+contexts, and allow one to proceed directly with note entry:
 
 @itemize
-@item
-@ref{Gregorian Chant contexts},
-@item
-@ref{Mensural contexts}.
+@item @ref{Gregorian chant contexts},
+@item @ref{Mensural contexts}.
 @end itemize
 
-There is limited support for figured bass notation which came
-up during the baroque period.
+There is limited support for figured bass notation from the Baroque period:
 
 @itemize
-@item
-@ref{Figured bass}
+@item @ref{Figured bass}
 @end itemize
 
 @c Here are all subtopics at a glance:
 
+
 @node Alternative note signs
 @subsection Alternative note signs
 
 @menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
+* Ancient note heads::          
+* Ancient accidentals::         
+* Ancient rests::               
+* Ancient clefs::               
+* Ancient flags::               
+* Ancient time signatures::     
 @end menu
 
+
 @node Ancient note heads
 @subsubsection Ancient note heads
 
 @cindex note heads, ancient
 
-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 @rinternals{NoteHead} object to @code{baroque},
-@code{neomensural}, @code{mensural} or @code{petrucci}.  The
-@code{baroque} style differs from the @code{default} style only in
-using a square shape for @code{\breve} note heads.  The
-@code{neomensural} 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 particularly
-useful when transcribing mensural music, e.g., for the incipit.  The
-@code{mensural} style produces note heads that mimic the look of note
-heads in historic printings of the 16th century.  Finally, the
-@code{petrucci} style also mimics historic printings, but uses bigger
-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 @rinternals{NoteHead} object to @code{baroque}, @code{neomensural},
+@code{mensural} or @code{petrucci}.
 
-The following example demonstrates the @code{neomensural} style
+The @code{baroque} style differs from the @code{default} style by:
+
+@itemize 
+@item Providing a @code{maxima} notehead, and
+@item Using a square shape for @code{\breve} note heads.
+@end itemize
+
+The @code{neomensural}, @code{mensural}, and @code{petrucci} styles differ from
+the @code{baroque} style by:
+
+@itemize
+@item Using rhomboidal heads for semibreves and all smaller durations, and
+@item Centering the stems on the note heads.
+@end itemize
+
+The @code{mensural} and @code{petrucci} styles aim to emulate the appearance
+of historic printed music.  The @code{petrucci} style uses larger note
+heads.
+
+The following example demonstrates the @code{petrucci} style
+
+@c Renaissance music doesn't use bar lines ... but they do help to
+@c separate the notes for easier identification.
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
-\override NoteHead #'style = #'neomensural
-a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
+\autoBeamOff
+\override NoteHead #'style = #'petrucci
+a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
 @end lilypond
 
-When typesetting a piece in Gregorian Chant notation, the
-@rinternals{Gregorian_ligature_engraver} will automatically select
-the proper note heads, so 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
-@rinternals{Mensural_ligature_engraver} is used to automatically
-assemble mensural ligatures.  See @ref{Ligatures}, for how ligature
-engravers work.
+When typesetting a piece in Gregorian chant notation, the
+@rinternals{Gregorian_ligature_engraver} automatically selects the proper
+note heads, so 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, the
+@rinternals{Mensural_ligature_engraver} automatically assembles mensural
+ligatures.  See @ref{Ligatures}, for how ligature engravers work.
 
 @seealso
 
-@ref{Note head styles}, gives an overview over all available note head styles.
+@ref{Note head styles}, gives an overview of all available note head styles.
 
 
 @node Ancient accidentals
@@ -166,10 +167,8 @@ engravers work.
 
 @cindex accidentals
 
-
-Use the @code{glyph-name-alist} property of grob
-@rinternals{Accidental} and @rinternals{KeySignature} to select
-ancient accidentals.
+Use the @code{glyph-name-alist} property of grob @rinternals{Accidental} and
+@rinternals{KeySignature} to select ancient accidentals.
 
 @lilypond[quote,ragged-right,staffsize=26]
 \score {
@@ -234,7 +233,6 @@ Internals Reference: @rinternals{KeySignature}.
 
 @cindex rests, ancient
 
-
 Use the @code{style} property of grob @rinternals{Rest} to select
 ancient rests.   Supported styles are @code{classical},
 @code{neomensural}, and @code{mensural}.  @code{classical} differs
@@ -256,7 +254,7 @@ 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 @c @lsr{pitches,rests} for a chart of all rests.
 
-There are no rests in Gregorian Chant notation; instead, it uses
+There are no rests in Gregorian chant notation; instead, it uses
 @ref{Divisiones}.
 
 @seealso
@@ -270,7 +268,6 @@ rests.
 
 @cindex clefs
 
-
 LilyPond supports a variety of clefs, many of them ancient.
 
 The following table shows all ancient clefs that are supported via the
@@ -478,16 +475,14 @@ historic style hufnagel combined do/fa clef
 @end lilypond
 @end multitable
 
+@emph{Modern} or @emph{Neo-mensural style} means @qq{as is typeset in
+modern editions of transcribed mensural music.}
 
-
-@emph{Modern style} means @qq{as is typeset in contemporary editions of
-transcribed mensural music.}
-
-@emph{Petrucci style} means @qq{inspired by printings published by the
-famous engraver Petrucci (1466-1539).}
+@emph{Petrucci style} means @qq{inspired by music published by the famous
+engraver Petrucci (1466-1539).}
 
 @emph{Historic style} means @qq{as was typeset or written in historic
-editions (other than those of Petrucci).}
+editions other than those of Petrucci.}
 
 @emph{Editio XXX style} means @qq{as is/was printed in Editio XXX.}
 
@@ -503,13 +498,11 @@ Notation Reference: see @ref{Clef}.
 The mensural g clef is mapped to the Petrucci g clef.
 
 
-
 @node Ancient flags
 @subsubsection Ancient flags
 
 @cindex flags
 
-
 Use the @code{flag-style} property of grob @rinternals{Stem} to
 select ancient flags.  Besides the @code{default} flag style,
 only the @code{mensural} style is supported
@@ -529,7 +522,11 @@ vertically aligned with a staff line.
 There is no particular flag style for neo-mensural notation.  Hence,
 when typesetting the incipit of a transcribed piece of mensural
 music, the default flag style should be used.  There are no flags in
-Gregorian Chant notation.
+Gregorian chant notation.
+
+@seealso
+
+TODO: nothing here yet ...
 
 @knownissues
 
@@ -542,17 +539,18 @@ staff lines.  This may not always be true when using advanced layout
 features of classical notation (which however are typically out of
 scope for mensural notation).
 
+
 @node Ancient time signatures
 @subsubsection Ancient time signatures
 
+@cindex mensuration sign
 @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
+There is limited support for mensuration signs (which are similar to, but
+not exactly the same as time signatures).  The glyphs are hard-wired to
+particular time fractions.  In other words, to get a particular mensuration
+sign with the @code{\time n/m} command, @code{n} and @code{m} have to be
+chosen according to the following table
 
 @lilypond[quote,ragged-right]
 \layout {
@@ -634,13 +632,13 @@ The following examples show the differences in style,
 
 @seealso
 
-This manual: @ref{Time signature}, gives a general introduction to
+Notation Reference: @ref{Time signature}, gives a general introduction to
 the use of time signatures.
 
 @knownissues
 
 Ratios of note durations do not change with the time signature.  For
-example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must
+example, the ratio of 1 breve = 3 semibreves (@emph{tempus perfectum}) must
 be made by hand, by setting
 
 @example
@@ -660,12 +658,12 @@ addressable with @code{\time}.  Use a @code{\markup} instead
 @subsection Additional note signs
 
 @menu
-* Ancient articulations::
-* Custodes::
-* Divisiones::
-* Ligatures::
-* White mensural ligatures::
-* Gregorian square neumes ligatures::
+* Ancient articulations::       
+* Custodes::                    
+* Divisiones::                  
+* Ligatures::                   
+* White mensural ligatures::    
+* Gregorian square neumes ligatures::  
 @end menu
 
 
@@ -695,6 +693,10 @@ designed for use with notation in Editio Vaticana style.
 }
 @end lilypond
 
+@seealso
+
+TODO: nothing here yet ...
+
 @knownissues
 
 Some articulations are vertically placed too closely to the
@@ -703,6 +705,7 @@ corresponding note heads.
 The episem line is not displayed in many cases.  If it is displayed,
 the right end of the episem line is often too far to the right.
 
+
 @node Custodes
 @subsubsection Custodes
 
@@ -799,7 +802,6 @@ the breathmarks from @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 @file{gregorian@/-init@/.ly}.  It
 contains definitions that you can apply by just inserting
 @code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima},
@@ -865,7 +867,9 @@ has to be added to the @rinternals{Voice} context, as explained in
 the following subsections.   Only white mensural ligatures
 are supported with certain limitations.
 
+@seealso
 
+TODO: nothing here yet ...
 
 @knownissues
 
@@ -892,6 +896,7 @@ with the same effect and is believed to be stable.
 * Gregorian square neumes ligatures::
 @end menu
 
+
 @node White mensural ligatures
 @subsubsection White mensural ligatures
 
@@ -977,10 +982,15 @@ to the following
 }
 @end lilypond
 
+@seealso
+
+TODO: nothing here yet ...
+
 @knownissues
 
 Horizontal spacing is poor.
 
+
 @node Gregorian square neumes ligatures
 @subsubsection Gregorian square neumes ligatures
 
@@ -1515,7 +1525,6 @@ Deminutae}
 
 @end multitable
 
-
 Unlike most other neumes notation systems, the input language for
 neumes does not reflect the typographical appearance, but is designed
 to focus on musical meaning.  For example, @code{\[ a \pes b
@@ -1922,6 +1931,10 @@ respectively.
 @funindex \augmentum
 Use the unary music function @code{\augmentum} to add augmentum dots.
 
+@seealso
+
+TODO: nothing here yet ...
+
 @knownissues
 
 When an @code{\augmentum} dot appears at the end of the last staff
@@ -1938,20 +1951,20 @@ with head prefixes in arbitrary order.
 @subsection Pre-defined contexts
 
 @menu
-* Gregorian Chant contexts::
-* Mensural contexts::
+* Gregorian chant contexts::    
+* Mensural contexts::           
 @end menu
 
 
-@node Gregorian Chant contexts
-@subsubsection Gregorian Chant contexts
+@node Gregorian chant contexts
+@subsubsection Gregorian chant contexts
 
 @cindex VaticanaVoiceContext
 @cindex VaticanaStaffContext
 
 The predefined @code{VaticanaVoiceContext} and
 @code{VaticanaStaffContext} can be used to engrave a piece of
-Gregorian Chant in the style of the Editio Vaticana.  These contexts
+Gregorian chant in the style of the Editio Vaticana.  These contexts
 initialize all relevant context properties and grob properties to
 proper values, so you can immediately go ahead entering the chant, as
 the following excerpt demonstrates
@@ -1976,6 +1989,9 @@ the following excerpt demonstrates
 }
 @end lilypond
 
+@seealso
+
+TODO: nothing here yet ...
 
 @node Mensural contexts
 @subsubsection Mensural contexts
@@ -2010,14 +2026,19 @@ demonstrates
 }
 @end lilypond
 
+@seealso
+
+TODO: nothing here yet ...
+
+
 @node Transcribing ancient music
 @subsection Transcribing ancient music
 
 @menu
-* Ancient and modern from one source::
-* Incipits::
-* Mensurstriche layout::
-* Transcribing Gregorian chant::
+* Ancient and modern from one source::  
+* Incipits::                    
+* Mensurstriche layout::        
+* Transcribing Gregorian chant::  
 @end menu
 
 
@@ -2028,6 +2049,10 @@ demonstrates
 @c Here among others the snippets about reducing note length
 TBC
 
+@seealso
+
+@c ... and reference to other sections ...
+
 
 @node Incipits
 @subsubsection Incipits
@@ -2035,9 +2060,11 @@ TBC
 @c TODO Add text
 @c clefs, mensuration signs etc from lsr and -user
 @c use snippet Transcription-of-ancient-music-with-incipit
-
 TBC
 
+@seealso
+
+@c ... and reference to other sections ...
 
 @node Mensurstriche layout
 @subsubsection Mensurstriche layout
@@ -2046,6 +2073,10 @@ TBC
 @c from lsr and -user
 TBC
 
+@seealso
+
+@c ... and reference to other sections ...
+
 
 @node Transcribing Gregorian chant
 @subsubsection Transcribing Gregorian chant
@@ -2054,13 +2085,17 @@ TBC
 @c extract from 1.6.1.1
 TBC
 
+@seealso
+
+@c ... and reference to other sections ...
+
 
 @node Editorial markings
 @subsection Editorial markings
 
 @menu
-* Annotational accidentals::
-* Baroque rhythmic notation::
+* Annotational accidentals::    
+* Baroque rhythmic notation::   
 @end menu
 
 
@@ -2069,7 +2104,7 @@ TBC
 
 In European music from before about 1600, singers were often
 expected to chromatically alter notes at their own initiative.
-This is called @q{Musica Ficta}.  In modern transcriptions, these
+This is called @notation{musica ficta}.  In modern transcriptions, these
 accidentals are usually printed over the note.
 
 @cindex Accidental, musica ficta
@@ -2086,10 +2121,9 @@ fis gis
 ais bis
 @end lilypond
 
-This will treat @emph{every} subsequent accidentals as
-@emph{musica ficta} until it is unset with @code{\set
-suggestAccidentals = ##f}.  A more convenient way is to use
-@code{\once}:
+This will treat @emph{every} subsequent accidental as @emph{musica ficta}
+until it is unset with @code{\set suggestAccidentals = ##f}.  A more
+convenient way is to use @code{\once}:
 
 @lilypond[verbatim,fragment,relative=1]
 fis gis
@@ -2121,3 +2155,7 @@ the @rinternals{AccidentalSuggestion} object.
 
 
 TBC
+
+@seealso
+
+@c ... and reference to other sections ...
index a6876f470d73864c4457d503ca53b463602f9dcb..551c56d91ae0a9424e8e8e5b8e98010b60b95d11 100644 (file)
@@ -70,13 +70,14 @@ on entering numbers, lists, strings, and symbols in Scheme.}
 
 
 @menu
-* Interpretation contexts::     
-* Explaining the Internals Reference::  
-* Modifying properties::        
-* Common properties::           
-* Advanced tweaks::             
-* old The \override command::   
-* Discussion of specific tweaks::  
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Common properties::
+* Advanced tweaks::
+* old The \override command::
+* Discussion of specific tweaks::
 @end menu
 
 
@@ -86,19 +87,19 @@ on entering numbers, lists, strings, and symbols in Scheme.}
 This section describes what contexts are, and how to modify them.
 
 @menu
-* Contexts explained::          
-* Creating contexts::           
-* Modifying context plug-ins::  
-* Changing context default settings::  
-* Defining new contexts::       
-* Aligning contexts::           
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
 @end menu
 
 
 @node Contexts explained
 @subsection Contexts explained
 
->> > > - list of contexts: my *danger unmaintainable* 
+>> > > - list of contexts: my *danger unmaintainable*
 >> > > alarm just went off.  I'm 
 
 I knew it would... And leaving out some of them is perfectly fine
@@ -1456,15 +1457,233 @@ does not change color.  See @ref{Displaying music expressions}, for
 details.
 
 
+@node Useful concepts and properties
+@section Useful concepts and properties
+
+
+@menu
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
+@end menu
+
+@node Input modes
+@subsection Input modes
+
+The way in which the notation contained within an input file is
+interpreted is determined by the current input mode.
+
+@strong{Chord mode}
+
+This is activated with the @code{\chordmode} command, and causes
+input to be interpreted with the syntax of chord notation, see
+@ref{Chord notation}.  Chords are rendered as notes on a staff.
+
+Chord mode is also activated with the @code{\chords} command.
+This also creates a new @code{ChordNames} context and
+causes the following input to be interpreted with the syntax of
+chord notation and rendered as chord names in the @code{ChordNames}
+context, see @ref{Printing chord names}.
+
+@strong{Drum mode}
+
+This is activated with the @code{\drummode} command, and causes
+input to be interpreted with the syntax of drum notation, see
+@ref{Basic percussion notation}.
+
+Drum mode is also activated with the @code{\drums} command.
+This also creates a new @code{DrumStaff} context and causes the
+following input to be interpreted with the syntax of drum notation
+and rendered as drum symbols on a drum staff, see @ref{Basic
+percussion notation}.
+
+@strong{Figure mode}
+
+This is activated with the @code{\figuremode} command, and causes
+input to be interpreted with the syntax of figured bass, see
+@ref{Entering figured bass}.
+
+Figure mode is also activated with the @code{\figures} command.
+This also creates a new @code{FiguredBass} context and causes the
+following input to be interpreted with the figured bass syntax
+and rendered as figured bass symbols in the @code{FiguredBass}
+context, see @ref{Introduction to figured bass}.
+
+@strong{Fret and tab modes}
+
+There are no special input modes for entering fret and tab symbols.
+
+To create tab diagrams, enter notes or chords in note mode and
+render them in a @code{TabStaff} context, see
+@ref{Default tablatures}.
+
+To create fret diagrams above a staff, enter them as markup
+above the notes using the @code{\fret-diagram} command, see
+@ref{Fret diagrams}.
+
+@strong{Lyrics mode}
+
+This is activated with the @code{\lyricmode} command, and causes
+input to be interpreted as lyric syllables with optional durations
+and associated lyric modifiers, see @ref{Vocal music}.
+
+Lyric mode is also activated with the @code{\addlyrics} command.
+This also creates a new @code{Lyrics} context and an implicit
+@code{\lyricsto} command which associates the following lyrics
+with the preceding music.
+
+@strong{Markup mode}
+
+This is activated with the @code{\markup} command, and causes
+input to be interpreted with the syntax of markup, see
+@ref{Text markup commands}.
+
+@c silly work-around for texinfo broken-ness
+@c (@strong{Note...} causes a spurious cross-reference in Info)
+@b{Note mode}
+
+This is the default mode or it may be activated with the
+@code{\notemode} command.  Input is interpreted as pitches,
+durations, markup, etc and typeset as musical notation on a staff.
+
+It is not normally necessary to specify note mode explicitly, but
+it may be useful to do so in certain situations, for example if you
+are in lyric mode, chord mode or any other mode and want to insert
+something that only can be done with note mode syntax.
+
+For example, to indicate dynamic markings for the verses of a
+choral pieces it is necessary to enter note mode to interpret
+the markings:
+
+@lilypond[verbatim,relative=2,quote]
+{ c4 c4 c4 c4 }
+\addlyrics {
+  \notemode{\set stanza = \markup{ \dynamic f 1. } }
+  To be sung loudly
+}
+\addlyrics {
+  \notemode{\set stanza = \markup{ \dynamic p 2. } }
+  To be sung quietly
+}
+@end lilypond
+
+
+
+@node Direction and placement
+@subsection Direction and placement
+
+In typesetting music the direction and placement of many items is
+a matter of choice.  For example, the stems of notes can
+be directed up or down; lyrics, dynamics, and other expressive
+marks may be placed above or below the staff; text may be aligned
+left, right or center; etc.  Most of these choices may be left to
+be determined automatically by LilyPond, but in some cases it may
+be desirable to force a particular direction or placement.
+
+@strong{Default actions}
+
+By default some directions are always up or always down (e.g.
+dynamics or fermata), while other things can alternate between
+up or down based on the stem direction (like slurs or accents).
+
+@c TODO Add table showing these
+
+@strong{Context layout}
+
+Contexts are positioned in a system from top to bottom in the
+order in which they are encountered.  Note, however, that a
+context will be created implicitly if a command is encountered
+when there is no suitable context available to contain it.
+
+@c TODO Add example ?
+
+The default order in which contexts are laid out can be changed,
+see @ref{Aligning contexts}
+
+@strong{Articulation direction indicators}
+
+When adding articulations to notes the direction indicator,
+@code{^} (meaning @qq{up}), @code{_} (meaning @qq{down}) or
+@code{-} (meaning @qq{use default direction}), can usually be
+omitted, in which case @code{-} is assumed.  But a direction
+indicator is @strong{always} required before
+
+@itemize
+@item @code{\tweak} commands
+@item @code{\markup} commands
+@item @code{\tag} commands
+@item string markups, e.g. -"string"
+@item fingering instructions, e.g. @code{-1}
+@item articulation shortcuts, e.g. @code{-.}, @code{->}, @code{--}
+@end itemize
+
+@strong{The direction property}
+
+The position or direction of many layout objects is controlled
+by the @code{direction} property.
+
+The value of the @code{direction} property may be
+set to @code{1}, meaning @qq{up} or @qq{above}, or to @code{-1},
+meaning @qq{down} or @qq{below}.  The symbols @code{UP} and
+@code{DOWN} may be used instead of @code{1} and @code{-1}
+respectively.  The default direction may be specified by setting
+@code{direction} to @code{0} or @code{CENTER}.  Alternatively,
+in many cases predefined commands
+exist to specify the direction.  These are all of the form
+
+@noindent
+@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
+
+@noindent
+where @code{xxxNeutral} means @qq{use the default direction}.
+See @rlearning{Within-staff objects}.
+
+In a few cases, arpeggio being the only common example, the value
+of the @code{direction} property specifies whether the object
+is to be placed to the right or left of the parent object.  In
+this case @code{-1} or @code{LEFT} means @qq{to the left} and
+@code{1} or @code{RIGHT} means @qq{to the right}.  @code{0}
+or @code{CENTER} means @qq{use the default} direction, as before.
+
+@ignore
+These all have side-axis set to #X
+AmbitusAccidental - direction has no effect
+Arpeggio - works
+StanzaNumber - not tried
+TrillPitchAccidental - not tried
+TrillPitchGroup - not tried
+@end ignore
+
+
+
+@node Distances and measurements
+@subsection Distances and measurements
+
+DISCUSS after working on other sections.
+
+TODO: staff spaces.  Maybe move into tweaks?
+
+
+@node Spanners
+@subsection Spanners
+
+Many objects of musical notation extend over several notes or even
+several bars.  Examples are crescendi, trills, tuplet brackets, and
+volta repeat brackets.  Such objects are called @qq{spanners}, and
+have special properties to control their appearance and behaviour.
+Some of these properties are common to all spanners; others are
+restricted to a sub-set of the spanners.
+
 
 @node Common properties
 @section Common properties
 
 @menu
-* Controlling visibility of objects::  
-* Line styles::                 
-* Rotating objects::            
-* Aligning objects::            
+* Controlling visibility of objects::
+* Line styles::
+* Rotating objects::
+* Aligning objects::
 @end menu
 
 @node Controlling visibility of objects
index e6bd3c8a21caa877294ea677a93555dc6935a300..a6a163e0ed9f2dba31161f1767835cd59c04f1b3 100644 (file)
@@ -194,6 +194,9 @@ larger value is interpreted as 13.
 }
 @end lilypond
 
+@noindent
+Note that @code{c:5} is identical to @code{c} -- both produce a C major triad.
+
 Since an unaltered 11 does not sound good when combined with an
 unaltered 13, the 11 is removed from a @code{:13} chord (unless it
 is added explicitly).
@@ -239,8 +242,8 @@ as part of the basic chode structure, add it as an altered step.
 
 @funindex ^
 
-A step to be removed from the chord  must come at the end of a
-modifier string and be prefixed by @code{^}.  Only one removal with @code{^}
+A step to be removed from the chord indicated in a
+modifier string with a prefix of @code{^}.  Only one removal with @code{^}
 is allowed in a modifier string.
 
 @lilypond[quote,verbatim,fragment,relative=1]
@@ -310,6 +313,14 @@ Only one step can be removed from a chord.  If a chord with multiple
 removed steps is desired, it must be built through addition of
 multiple steps.
 
+Only the first inversion can be created by adding a bass note.  The
+second inversion requires changing the root of the chord.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\chordmode {
+  c'1: c':/g e:6-3-^5 e:m6-^5
+}
+@end lilypond
 
 @node Displaying chords
 @subsection Displaying chords
@@ -343,7 +354,7 @@ Chords can be entered as simultaneous notes or through the use of
 chord mode.  The displayed chord name will be the same, regardless
 of the mode of entry, unless there are inversions or added bass notes:
 
-@lilypond[quote,ragged-right,verbatim,relative=1]
+@lilypond[verbatim,quote,relative=1]
 <<
   \new ChordNames {
     <c e g>2  <f bes c>
@@ -383,53 +394,15 @@ of the mode of entry, unless there are inversions or added bass notes:
 
 @snippets
 
-@c TODO -- replace this with a snippet
-Chord names can be displayed only at the start of lines and when
-the chord changes.
-
-@lilypond[quote,verbatim,ragged-right]
-harmonies = \chordmode {
-  c1:m c:m \break c:m c:m d
-}
-<<
-  \new ChordNames {
-    \set chordChanges = ##t
-    \harmonies
-  }
-  \new Staff {
-    \relative c' { \harmonies }
-  }
->>
-@end lilypond
-
-@c TODO -- replace this with a snippet
-To add bar indications in the @code{ChordNames}
-context, add @rinternals{Bar_engraver}.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{showing-chords-at-changes.ly}
 
-@lilypond[ragged-right,verbatim]
-\new ChordNames \with {
-  \override BarLine #'bar-size = #4
-  \consists "Bar_engraver"
-}
-\chordmode {
-  f1:maj7 f:7 bes:7 c:maj7 ees e
-}
-@end lilypond
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {adding-bar-lines-to-chordnames-context.ly}
 
-@c TODO -- replace this with a snippet
-When put together, chord names, a melody, and lyrics form a lead
-sheet:
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{simple-lead-sheet.ly}
 
-@lilypond[verbatim,quote,ragged-right]
-<<
-  \chords { c2 g:sus4 f e }
-  \relative c'' {
-    a4 e c8 e r4
-    b2 c4( d)
-  }
-  \addlyrics { One day this shall be free __ }
->>
-@end lilypond
 
 @seealso
 
@@ -476,6 +449,10 @@ notation, and a systematic scheme called Banter chords.  The
 alternate Jazz notation is also shown on the chart in @ref{Chord
 name chart}.
 
+@c TODO --  Change this so we don't have a non-verbatim example.
+@c  Make short example in docs, then move longer example to
+@c  appendix, where the length of the snippet won't matter.
+
 In addition to the different naming systems, different note names
 are used for the root in different languages.  The predefined
 variables @code{\germanChords}, @code{\semiGermanChords},
@@ -563,11 +540,11 @@ and @q{m}.  The spacer is not used when the root is altered.
 
 @snippets
 
-@c TODO fix indentation of snippet -- lots of tabs!
 @cindex exceptions, chord names.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {chord-name-exceptions.ly}
 
+@c TODO - tweak snippet to use \blackTriangleMarkup as well
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {chord-name-major7.ly}
 
@@ -578,6 +555,9 @@ and @q{m}.  The spacer is not used when the root is altered.
 @c {volta-brackets-over-chord-names.ly}
 
 @c TODO  convert to snippet
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {changing-chord-separator.ly}
+
 The separator between different parts of a chord name
 can be set to any markup.
 
@@ -699,21 +679,20 @@ In figure mode, a group of bass figures is delimited by
 @lilypond[verbatim,quote,ragged-right,fragment]
 \new FiguredBass {
   \figuremode {
-    <4 6>2
+    <6 4>2
   }
 }
 @end lilypond
 
-Accidentals can be added to figures:
+Accidentals (including naturals) can be added to figures:
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \figures {
-  <4- 6+ 7!> <5++> <3-->
+  <7! 6+ 4-> <5++> <3-->
 }
 @end lilypond
 
-Plus signs, diminished fifths, and diminished sevenths
-can be notated.
+Augmented and diminished steps can be indicated.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \figures {
@@ -721,60 +700,87 @@ can be notated.
 }
 @end lilypond
 
-Vertical spaces and brackets can be be included in figures:
+A backward slash through a figure (typically used for raised
+sixth steps) can be created.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \figures {
-  < [4 6] 8 [_! 12] >
+<6>
+% FIXME: broken.
+  %<6\\>
 }
 @end lilypond
 
 
-Any text markup can be inserted as a figure:
+Vertical spaces and brackets can be be included in figures:
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \figures {
-  < 5 \markup{ \tiny \number 6 \super (1)} >
+  <[12 _!] 8 [6  4]>
 }
 @end lilypond
 
-Continuation lines can be used to indicate repeated figures:
 
-@c  \set to be replaced with predefined command once it is
-@c   included in property-init.ly
+Any text markup can be inserted as a figure:
+
 @lilypond[verbatim,quote,ragged-right,fragment]
 \figures {
-  \set useBassFigureExtenders = ##t
-  <4 6> <3 6> <3 7>
+  <  \markup{ \tiny \number 6 \super (1)} 5 >
 }
 @end lilypond
 
-@noindent
-In this case, the extender lines always replace existing figures.
+@c TODO We need to include notes any time we use extenders to
+@c avoid extraneous staff creation due to Staff.use... in
+@c \bassFigureExtendersOn
 
-@c @predefined
+Continuation lines can be used to indicate repeated figures:
 
-@c @snippets
-@c  This probably isn't notation, but rather adjusting output.  I guess this
-@c  should be converted to a snippet?  -cds
-Accidentals and plus signs can appear before or after the numbers,
-depending on the @code{figuredBassAlterationDirection} and
-@code{figuredBassPlusDirection}
-properties
+@lilypond[verbatim,quote,ragged-right,fragment]
+<<
+  {
+    \clef bass
+    e d c b,
+    e d c b,
+  }
+  \figures {
+    \bassFigureExtendersOn
+    <6 4> <6 3> <7 3> <7 3>
+    \bassFigureExtendersOff
+    <6 4> <6 3> <7 3> <7 3>
+  }
+>>
+@end lilypond
+
+@noindent
+In this case, the extender lines replace existing figures,
+unless the continuation lines have been explicitly terminated.
 
-@c  TODO Need to set predefined commands for these directions as well. -cs
-@lilypond
+@lilypond[verbatim,quote,ragged-right,fragment]
+<<
   \figures {
-    <6\+> <5+> <6 4-> r
-    \set figuredBassAlterationDirection = #RIGHT
-    <6\+> <5+> <6 4-> r
-    \set figuredBassPlusDirection = #LEFT
-    <6\+> <5+> <6 4-> r
-    \set figuredBassAlterationDirection = #LEFT
-    <6\+> <5+> <6 4-> r
+    \bassFigureExtendersOn
+    <6 4> <6 4> <6\! 4\!> <6 4>
   }
+  {
+    \clef bass
+    d d c c
+  }
+>>
 @end lilypond
 
+
+
+@predefined
+@cindex figured bass extender lines
+@code{\bassFigureExtendersOn},
+@code{\bassFigureExtendersOff}.
+
+
+@snippets
+@c TODO  Fix this snippet -- Plus direction should be RIGHT.
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-positions-of-figured-bass-alterations.ly}
+
 @seealso
 @c Music Glossary:
 @c @rglos{}.
@@ -792,9 +798,9 @@ properties
 @c @file{}.
 
 Snippets:
-@rlsr{Figured Bass}.
+@rlsr{Chords}.
 
-@c Internals Reference:
+Internals Reference:
 @rinternals{NewBassFigure},
 @rinternals{BassFigureAlignment},
 @rinternals{BassFigureLine},
@@ -820,8 +826,8 @@ of the figures is independent of the notes on the staff.
   }
   \new FiguredBass {
     \figuremode {
-      <4>4 <6 10>8 s8
-      <4 6>4 <4 6>
+      <4>4 <10 6>8 s8
+      <6 4>4 <6 4>
     }
   }
 >>
@@ -836,20 +842,44 @@ Figured bass can also be added to @code{Staff} contexts
 directly.  In this case, the vertical position of the
 figures is adjusted automatically.
 
+@c TODO add a second paragraph to show direction change.  First
+@c   example should be UP (default), second should be DOWN.
+
 @c  TODO change to use predefined command once it is added to
 @c  property-init.ly  -cds
 @lilypond[verbatim,ragged-right,fragment,quote]
 <<
   \new Staff = myStaff
   \figuremode {
-    \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
-    <4>4 <6 10>8 s8
-    <4 6>4 <4 6>
+    <4>4 <10 6>8 s8
+    <6 4>4 <6 4>
   }
   %% Put notes on same Staff as figures
   \context Staff = myStaff
-  \relative c'' {
-    c4 c'8 r8 c,4 c'
+  {
+    \clef bass
+    c4 c'8 r8 c4 c'
+  }
+>>
+@end lilypond
+
+
+When added in a Staff context, figured bass can be displayed above
+or below the staff.
+
+@lilypond[verbatim,ragged-right,fragment,quote]
+<<
+  \new Staff = myStaff
+  \figuremode {
+    <4>4 <10 6>8 s8
+    \bassFigureStaffAlignmentDown
+    <6 4>4 <6 4>
+  }
+  %% Put notes on same Staff as figures
+  \context Staff = myStaff
+  {
+    \clef bass
+    c4 c'8 r8 c4 c'
   }
 >>
 @end lilypond
@@ -863,7 +893,7 @@ The rest will clear any previous alignment.  For
 example, you can write
 
 @example
-<4 6>8 r8
+<6 4>8 r8
 @end example
 
 @noindent
@@ -873,9 +903,13 @@ instead of
 @end example
 @end ignore
 
-@c @predefined
+@predefined
+@cindex figured bass alignment
+@code{\bassFigureStaffAlignmentDown},
+@code{\bassFigureStaffAlignmentUp},
+@code{\bassFigureStaffAlignmentNeutral}.
 
-@c @snippets
+@snippets
 
 @seealso
 @c Music Glossary:
@@ -917,7 +951,7 @@ the bass line.
     \repeat unfold 4 {f16. g32} f8. es16 d8 es
   }
   \figures {
-    \set useBassFigureExtenders = ##t
+    \bassFigureExtendersOn
     % The extenders are correct here, with the same rhythm as the bass
     \repeat unfold 4 {<6 4->16. <6 4->32}
     <5>8. r16 <6>8 <6\! 5->
@@ -929,7 +963,7 @@ the bass line.
     \repeat unfold 4 {f16. g32} f8. es16 d8 es
   }
   \figures {
-    \set useBassFigureExtenders = ##t
+    \bassFigureExtendersOn
     % The extenders are incorrect here, even though the timing is the same
     <6 4->4 <6 4->4
     %\repeat unfold 4 {<6 4->16. <6 4->32}
@@ -940,6 +974,7 @@ the bass line.
 
 @c I have no idea what this means -cds
 @c A predefined command for changing this has been proposed -cds
+@c TODO -- put stacking direction snippet here -cds
 When using figured bass above the staff with extender lines and
 @code{implicitBassFigures} the lines may become swapped around.
 Maintaining order consistently will be impossible when multiple figures
index 78e83fc526cd33568e66726fab66a553c5d60761..3321f2e93215da456bfdba37979fab0db138fb2d 100644 (file)
@@ -93,7 +93,7 @@ follows:
 
 @lilypond[verbatim,quote,relative=2]
 c4-^  c-+  c--  c-|
-c->   c-.  c-_
+c4->  c-.  c-_
 @end lilypond
 
 The rules for the default placement of articulations are defined
@@ -175,8 +175,8 @@ be manually placed above or below the staff, see
 
 @lilypond[verbatim,quote,relative=2]
 c2\ppp c\mp
-c\rfz c^\mf
-c_\spp c^\ff
+c2\rfz c^\mf
+c2_\spp c^\ff
 @end lilypond
 
 @cindex hairpin
@@ -243,14 +243,14 @@ that enable these text modes are @code{\setTextCresc},
 revert to hairpins again:
 
 @lilypond[verbatim,quote,relative=2]
-c\< d e f\!
-e\> d c b\!
+c4\< d e f\!
+e4\> d c b\!
 \setTextCresc
-c\< d e f\!
+c4\< d e f\!
 \setTextDecresc
-e\> d c b\!
+e4\> d c b\!
 \setHairpinCresc
-c\< d e f\!
+c4\< d e f\!
 @end lilypond
 
 To create new absolute dynamic marks or text that should be
@@ -287,41 +287,11 @@ Vertical positioning of dynamics is handled by
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {vertically-aligning-dynamics-across-multiple-notes.ly}
 
-@c I can't figure this one out.  Consider removing this.  -pm
-
-@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.
-To change this behavior, use
-
-@example
-\override Score.Hairpin #'after-line-breaking = ##t
-@end example
-
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {hiding-the-extender-line-for-text-dynamics.ly}
 
-@c The following snippet goes in input/new/
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-@c {changing-text-and-spanner-styles-for-text-dynamics.ly}
-
-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
-@code{'style} property of @code{DynamicTextSpanner}.  The default
-value is @code{'hairpin}, and other possible values include
-@code{'line}, @code{'dashed-line}, and @code{'dotted-line}:
-
-@lilypond[verbatim,quote,relative=2]
-\set crescendoText = \markup { \italic "cresc. poco" }
-\set crescendoSpanner = #'text
-\override DynamicTextSpanner #'style = #'dotted-line
-a2\< a
-a2 a
-a2 a
-a2 a\mf
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-text-and-spanner-styles-for-text-dynamics.ly}
 
 
 @seealso
@@ -353,45 +323,76 @@ Internals Reference:
 @cindex new dynamic marks
 @cindex dynamic marks, new
 
-It is possible to print new dynamic marks or text that should be
-aligned with dynamics.  Use @code{make-dynamic-script} to create
-these marks.  Note that the dynamic font only contains the
-characters @code{f,m,p,r,s} and @code{z}.
-
-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.
-
-@cindex make-dynamic-script
+The easiest way to create dynamic indications is to use
+@code{\markup} objects.
 
 @lilypond[verbatim,quote]
-sfzp = #(make-dynamic-script "sfzp")
+moltoF = \markup { molto \dynamic f }
+
 \relative c' {
-  c4 c c\sfzp c
+  <d e>16 <d e>
+  <d e>2.._\moltoF
 }
 @end lilypond
 
 @cindex dynamics, editorial
 @cindex dynamics, parenthesis
 
-It is also possible to print dynamics in round parenthesis or
-square brackets.  These are often used for adding editorial
-dynamics.
+Markup mode makes possible, for instance, to add
+editorial dynamics, printed in round parenthesis or square
+brackets.  Its syntax is described in @ref{Formatting text}.
 
 @lilypond[verbatim,quote]
-rndf = \markup { \center-align { \line { \bold { \italic ( }
+roundf = \markup { \center-align { \line { \bold { \italic ( }
          \dynamic f \bold { \italic ) } } } }
 boxf = \markup { \bracket { \dynamic f } }
 \relative c' {
-  c1_\rndf
+  c1_\roundf
   c1_\boxf
 }
 @end lilypond
 
+Markup objects are treated differently from authentic dynamic marks.
+Defining dynamic objects that will be entered and printed exactly like
+standard dynamic marks is also possible, using the following function:
+
+@cindex make-dynamic-script
+
+@lilypond[verbatim,quote]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+  c4 c c\sfzp c
+}
+@end lilypond
+
+@noindent
+Note that the dynamic font only contains the characters 
+@code{f,m,p,r,s} and @code{z}.  To switch to other font families,
+it is necessary to use markup mode in its Scheme form, as
+explained in @ref{Markup construction in Scheme}.
+
+@lilypond[verbatim,quote]
+moltoF = #(make-dynamic-script (markup 
+                      #:normal-text "molto"
+                      #:dynamic "f"))
+\relative c' {
+  <d e>16 <d e>
+  <d e>2..\moltoF
+}
+@end lilypond
+
+@noindent
+Font settings in markup mode are described in
+@ref{Common markup commands}.
+
 
 @seealso
 
+Notation Reference:
+@ref{Formatting text},
+@ref{Common markup commands},
+@ref{Markup construction in Scheme}.
+
 Snippets:
 @rlsr{Expressive marks}.
 
@@ -411,26 +412,46 @@ Snippets:
 
 @cindex slurs
 
-A @notation{slur} indicates that notes are to be played bound or
-@emph{legato}.  They are entered using parentheses:
+@notation{Slurs} are entered using parentheses:
 
 @lilypond[verbatim,quote,relative=2]
-f( g a) a8 b( a4 g2 f4)
+f4( g a) a8 b(
+a4 g2 f4)
 <c e>2( <b d>2)
 @end lilypond
 
-Just as with ties, the direction of a slur can be specified with
-@code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
-@code{Up}, @code{Down}, or @code{Neutral} (@code{Neutral} is the
-default).  Slurs may be manually placed above or below the staff,
+The direction of a @notation{slur} can be specified with
+@code{\slurUp} or @code{\slurDown}.  The @code{\slurNeutral}
+command reverts back to the default slur direction.
+@notation{Slurs} may be manually placed above or below the staff,
 see @ref{Direction and placement}.
 
 @lilypond[verbatim,quote,relative=2]
-c4_( c) c^( c)
+c2( d)
+\slurDown
+c2( d)
+\slurNeutral
+c2( d)
 @end lilypond
 
-Using this method, only one slur can be printed at once.  To print
-a long slur over a few small slurs, see @ref{Phrasing slurs}.
+Different styles of @notation{slurs} may be created with the
+commands @code{\slurDashed} and @code{slurDotted};
+@code{\slurSolid} reverts back to the default @notation{slur}
+style:
+
+@lilypond[verbatim,quote,relative=1]
+c4( e g2)
+\slurDashed
+g4( e c2)
+\slurDotted
+c4( e g2)
+\slurSolid
+g4( e c2)
+@end lilypond
+
+Using this method, only one slur can be printed at once.
+@notation{Phrasing slurs} must be used to print a long slur over
+one or more small slurs.  For details, see @ref{Phrasing slurs}.
 
 
 @predefined
@@ -478,23 +499,30 @@ Internals Reference:
 @funindex \(
 @funindex \)
 
-A phrasing slur (or phrasing mark) connects notes and is used to
-indicate a musical sentence.  It is written using @code{\(} and
-@code{\)} respectively:
+@notation{Phrasing slurs} (or @notation{phrasing marks}) that
+indicate a musical sentence are written using the commands
+@code{\(} and @code{\)} respectively:
 
 @lilypond[verbatim,quote,relative=2]
-\time 6/4 c\( d( e) f( e) d\)
+c4\( d( e) f(
+e2) 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,
-use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
-@code{\phrasingSlurNeutral}.  Phrasing slurs may be manually
-placed above or below the staff, see @ref{Direction
-and placement}.
+Typographically, a @notation{phrasing slur} behaves almost exactly
+like a normal @notation{slur}.  However, they are treated as
+different objects; a @code{\slurUp} will have no effect on a
+@notation{phrasing slur}.  The commands @code{\phrasingSlurUp},
+@code{\phrasingSlurDown}, and @code{\phrasingSlurNeutral} are used
+instead.  Phrasing slurs may be manually placed above or below the
+staff, see @ref{Direction and placement}.
+
+@lilypond[verbatim,quote,relative=1]
+c4\( g' c,( b) | c1\)
+\phrasingSlurUp
+c4\( g' c,( b) | c1\)
+@end lilypond
 
-You cannot have simultaneous phrasing slurs.
+Simultaneous phrasing slurs are not permitted.
 
 
 @predefined
@@ -528,7 +556,7 @@ Internals Reference:
 Breath marks are entered using @code{\breathe}:
 
 @lilypond[verbatim,quote,relative=2]
-c4 \breathe d4
+c2. \breathe d4
 @end lilypond
 
 
@@ -560,13 +588,14 @@ the @code{\bendAfter} command:
 
 @lilypond[verbatim,quote,relative=2]
 c2-\bendAfter #+4
-c-\bendAfter #-4
-c-\bendAfter #+8
-c-\bendAfter #-8
+c2-\bendAfter #-4
+c2-\bendAfter #+8
+c2-\bendAfter #-8
 @end lilypond
 
-The dash (@tie{-}) following the note name is @emph{required} when
-writing @notation{falls} and @notation{doits}.
+The dash (@tie{-}) immediately preceding the @code{\bendAfter}
+command is @emph{required} when writing @notation{falls} and
+@notation{doits}.
 
 
 @snippets
@@ -601,10 +630,8 @@ Snippets:
 @cindex glissando
 @funindex \glissando
 
-A @notation{glissando} is a smooth change in pitch.  It is denoted
-by a line or a wavy line between two notes.  A
-@notation{glissando} is created by attaching @code{\glissando} to
-a note:
+A @notation{glissando} is created by attaching @code{\glissando}
+to a note:
 
 @lilypond[verbatim,quote,relative=2]
 c2\glissando c'
@@ -658,43 +685,58 @@ supported.
 @cindex broken chord
 @cindex chord, broken
 
-@c Add documentation for new 'parenthesis' style arpeggio.  Maybe
-@c create a new \arpeggioParen command, or something similar. -pm
+An @notation{arpeggio} on a chord (also known as a
+@notation{broken chord}) is denoted by appending @code{\arpeggio}
+to the chord construct:
+
+@lilypond[verbatim,quote,relative=1]
+<c e g c>1\arpeggio
+@end lilypond
 
-You can specify an @notation{arpeggio} (also known as a
-@notation{broken chord}) on a chord by attaching an
-@code{\arpeggio} to the chord:
+The direction of an @notation{arpeggio} is indicated by adding an
+arrowhead to the wiggly line.  The commands @code{\arpeggioUp} and
+@code{\arpeggioDown} are used for this task.
+@code{\arpeggioNeutral} reverts back to an arrow-less
+@notation{arpeggio}:
 
 @lilypond[verbatim,quote,relative=1]
-<c e g c>\arpeggio
+\arpeggioUp
+<c e g c>2\arpeggio
+\arpeggioDown
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
 @end lilypond
 
-A square bracket on the left, denoted by @code{\arpeggioBracket},
-is used to indicate that the chord should @emph{not} be
-arpeggiated:
+The command @code{\arpeggioBracket} can be used to create a square
+bracket on the left of a chord, indicating that the chord should
+@emph{not} be arpeggiated.  @code{\arpeggioNeutral} reverts back
+to a regular arpeggio:
 
 @lilypond[verbatim,quote,relative=1]
+<c e g c>2
 \arpeggioBracket
-<c e g c>\arpeggio
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
 @end lilypond
 
-The direction of the arpeggio can be denoted by adding an
-arrowhead to the wiggly line.  This is done with the commands
-@code{arpeggioUp} and @code{arpeggioDown}.  @code{arpeggioNeutral}
-reverts to the arrow-less version:
+A @emph{parenthesis} style bracket may be attached to an
+@notation{arpeggio} instead of a square bracket.
+
+@c Maybe create a new \arpeggioParen command, or something
+@c like that. -pm
 
 @lilypond[verbatim,quote,relative=1]
-\new Voice {
-  \arpeggioUp
-  <c e g c>\arpeggio
-  \arpeggioDown
-  <c e g c>\arpeggio
-  \arpeggioNeutral
-  <c e g c>\arpeggio
-}
+<c e g c>2
+\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
+\override Arpeggio #'X-extent = #ly:grob::stencil-width
+<c e g c>2\arpeggio
+\arpeggioNeutral
+<c e g c>1\arpeggio
 @end lilypond
 
-@notation{Arpeggios} can be explicitly written out using
+@notation{Arpeggios} can be explicitly written out with
 @notation{ties}.  For more information, see @ref{Ties}.
 
 @predefined
index f1e44d7ed88122125692aa788d8af10c94d1c94f..519b03cfc4627b465d0de5f4447eedc429f7ec50 100644 (file)
@@ -19,12 +19,11 @@ FIXME: don't complain about anything in this chapter.  It's still
 under heavy development.
 
 @menu
-* Input structure::             
-* Useful concepts and properties::  
-* Titles and headers::          
-* Working with input files::    
-* Controlling output::          
-* MIDI output::                 
+* Input structure::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
 @end menu
 
 
@@ -35,9 +34,9 @@ The main format of input for LilyPond are text files.  By convention,
 these files end with @code{.ly}.
 
 @menu
-* Structure of a score::        
-* Multiple scores in a book::   
-* File structure::              
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
 @end menu
 
 
@@ -334,224 +333,6 @@ A multi-line comment delimited by @code{%@{ .. %@}}.
 Learning Manual:
 @rlearning{How LilyPond input files work}.
 
-@node Useful concepts and properties
-@section Useful concepts and properties
-
-
-@menu
-* Input modes::                 
-* Direction and placement::     
-* Distances and measurements::  
-* Spanners::                    
-@end menu
-
-@node Input modes
-@subsection Input modes
-
-The way in which the notation contained within an input file is
-interpreted is determined by the current input mode.
-
-@strong{Chord mode}
-
-This is activated with the @code{\chordmode} command, and causes
-input to be interpreted with the syntax of chord notation, see
-@ref{Chord notation}.  Chords are rendered as notes on a staff.
-
-Chord mode is also activated with the @code{\chords} command.
-This also creates a new @code{ChordNames} context and
-causes the following input to be interpreted with the syntax of
-chord notation and rendered as chord names in the @code{ChordNames}
-context, see @ref{Printing chord names}.
-
-@strong{Drum mode}
-
-This is activated with the @code{\drummode} command, and causes
-input to be interpreted with the syntax of drum notation, see
-@ref{Basic percussion notation}.
-
-Drum mode is also activated with the @code{\drums} command.
-This also creates a new @code{DrumStaff} context and causes the
-following input to be interpreted with the syntax of drum notation
-and rendered as drum symbols on a drum staff, see @ref{Basic
-percussion notation}.
-
-@strong{Figure mode}
-
-This is activated with the @code{\figuremode} command, and causes
-input to be interpreted with the syntax of figured bass, see
-@ref{Entering figured bass}.
-
-Figure mode is also activated with the @code{\figures} command.
-This also creates a new @code{FiguredBass} context and causes the
-following input to be interpreted with the figured bass syntax
-and rendered as figured bass symbols in the @code{FiguredBass}
-context, see @ref{Introduction to figured bass}.
-
-@strong{Fret and tab modes}
-
-There are no special input modes for entering fret and tab symbols.
-
-To create tab diagrams, enter notes or chords in note mode and
-render them in a @code{TabStaff} context, see
-@ref{Default tablatures}.
-
-To create fret diagrams above a staff, enter them as markup
-above the notes using the @code{\fret-diagram} command, see
-@ref{Fret diagrams}.
-
-@strong{Lyrics mode}
-
-This is activated with the @code{\lyricmode} command, and causes
-input to be interpreted as lyric syllables with optional durations
-and associated lyric modifiers, see @ref{Vocal music}.
-
-Lyric mode is also activated with the @code{\addlyrics} command.
-This also creates a new @code{Lyrics} context and an implicit
-@code{\lyricsto} command which associates the following lyrics
-with the preceding music.
-
-@strong{Markup mode}
-
-This is activated with the @code{\markup} command, and causes
-input to be interpreted with the syntax of markup, see
-@ref{Text markup commands}.
-
-@c silly work-around for texinfo broken-ness
-@c (@strong{Note...} causes a spurious cross-reference in Info)
-@b{Note mode}
-
-This is the default mode or it may be activated with the
-@code{\notemode} command.  Input is interpreted as pitches,
-durations, markup, etc and typeset as musical notation on a staff.
-
-It is not normally necessary to specify note mode explicitly, but
-it may be useful to do so in certain situations, for example if you
-are in lyric mode, chord mode or any other mode and want to insert
-something that only can be done with note mode syntax.
-
-For example, to indicate dynamic markings for the verses of a
-choral pieces it is necessary to enter note mode to interpret
-the markings:
-
-@lilypond[verbatim,relative=2,quote]
-{ c4 c4 c4 c4 }
-\addlyrics {
-  \notemode{\set stanza = \markup{ \dynamic f 1. } }
-  To be sung loudly
-}
-\addlyrics {
-  \notemode{\set stanza = \markup{ \dynamic p 2. } }
-  To be sung quietly
-}
-@end lilypond
-
-
-
-@node Direction and placement
-@subsection Direction and placement
-
-In typesetting music the direction and placement of many items is
-a matter of choice.  For example, the stems of notes can
-be directed up or down; lyrics, dynamics, and other expressive
-marks may be placed above or below the staff; text may be aligned
-left, right or center; etc.  Most of these choices may be left to
-be determined automatically by LilyPond, but in some cases it may
-be desirable to force a particular direction or placement.
-
-@strong{Default actions}
-
-By default some directions are always up or always down (e.g.
-dynamics or fermata), while other things can alternate between
-up or down based on the stem direction (like slurs or accents).
-
-@c TODO Add table showing these
-
-@strong{Context layout}
-
-Contexts are positioned in a system from top to bottom in the
-order in which they are encountered.  Note, however, that a
-context will be created implicitly if a command is encountered
-when there is no suitable context available to contain it.
-
-@c TODO Add example ?
-
-The default order in which contexts are laid out can be changed,
-see @ref{Aligning contexts}
-
-@strong{Articulation direction indicators}
-
-When adding articulations to notes the direction indicator,
-@code{^} (meaning @qq{up}), @code{_} (meaning @qq{down}) or
-@code{-} (meaning @qq{use default direction}), can usually be
-omitted, in which case @code{-} is assumed.  But a direction
-indicator is @strong{always} required before
-
-@itemize
-@item @code{\tweak} commands
-@item @code{\markup} commands
-@item @code{\tag} commands
-@item string markups, e.g. -"string"
-@item fingering instructions, e.g. @code{-1}
-@item articulation shortcuts, e.g. @code{-.}, @code{->}, @code{--}
-@end itemize
-
-@strong{The direction property}
-
-The position or direction of many layout objects is controlled
-by the @code{direction} property.
-
-The value of the @code{direction} property may be
-set to @code{1}, meaning @qq{up} or @qq{above}, or to @code{-1},
-meaning @qq{down} or @qq{below}.  The symbols @code{UP} and
-@code{DOWN} may be used instead of @code{1} and @code{-1}
-respectively.  The default direction may be specified by setting
-@code{direction} to @code{0} or @code{CENTER}.  Alternatively,
-in many cases predefined commands
-exist to specify the direction.  These are all of the form
-
-@noindent
-@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
-
-@noindent
-where @code{xxxNeutral} means @qq{use the default direction}.
-See @rlearning{Within-staff objects}.
-
-In a few cases, arpeggio being the only common example, the value
-of the @code{direction} property specifies whether the object
-is to be placed to the right or left of the parent object.  In
-this case @code{-1} or @code{LEFT} means @qq{to the left} and
-@code{1} or @code{RIGHT} means @qq{to the right}.  @code{0}
-or @code{CENTER} means @qq{use the default} direction, as before.
-
-@ignore
-These all have side-axis set to #X
-AmbitusAccidental - direction has no effect
-Arpeggio - works
-StanzaNumber - not tried
-TrillPitchAccidental - not tried
-TrillPitchGroup - not tried
-@end ignore
-
-
-
-@node Distances and measurements
-@subsection Distances and measurements
-
-DISCUSS after working on other sections.
-
-TODO: staff spaces.  Maybe move into tweaks?
-
-
-@node Spanners
-@subsection Spanners
-
-Many objects of musical notation extend over several notes or even
-several bars.  Examples are crescendi, trills, tuplet brackets, and
-volta repeat brackets.  Such objects are called @qq{spanners}, and
-have special properties to control their appearance and behaviour.
-Some of these properties are common to all spanners; others are
-restricted to a sub-set of the spanners.
-
 @node Titles and headers
 @section Titles and headers
 
@@ -1189,8 +970,8 @@ lilypond file.ly >display.txt
 @section Controlling output
 
 @menu
-* Extracting fragments of music::  
-* Skipping corrected music::    
+* Extracting fragments of music::
+* Skipping corrected music::
 @end menu
 
 @node Extracting fragments of music
index d9f8e151a489cb9851b11274dc7b6da442559bab..c013f4b2f34d141c5b1b91fb149086cf5da80218 100644 (file)
@@ -121,7 +121,7 @@ in the score.  This is done with the commands @code{\startStaff} and
 Music Glossary: @rglos{staff}, @rglos{staves}.
 
 Notation Reference: @ref{Percussion staves}, 
-@ref{Guitar tablatures}, @ref{Gregorian Chant contexts},
+@ref{Guitar tablatures}, @ref{Gregorian chant contexts},
 @ref{Mensural contexts}.
 
 Snippets:
index a2daa9837f0d1e7bce66826d008e8b8be2a67d60..6730c5f547ff9142aeec2874a106619e95de6b98 100644 (file)
@@ -53,10 +53,11 @@ This section introduces different ways of adding text to a score.
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
+@cindex quoted text
 
-It is possible to add arbitrary text indications
+Simple @q{quoted text} indications may be added
 to a score, as demonstrated in the following example.
-Such indications can also be manually placed
+Such indications can be manually placed
 above or below the staff, using the
 simple syntax described in @ref{Direction and
 placement}.
@@ -65,8 +66,7 @@ placement}.
 d8^"pizz." e f g a4-"scherz." f
 @end lilypond
 
-In LilyPond, such text strings are called @command{markup}
-objects.  This syntax is actually a shorthand; more complex text
+This syntax is actually a shorthand; more complex text
 formatting may be added to a note by explicitly using a
 @code{\markup} block, as described in @ref{Formatting text}.
 
@@ -229,9 +229,7 @@ Snippets:
 Internals Reference: @rinternals{RehearsalMark}.
 
 @knownissues
-@c  IMO this is a bug; hopefully it'll be fixed soon, so I can
-@c  delete this sentence.   -gp
-@c  A workaround is suggested in the first @snippets item -vv
+@c  To be removed when Issue 69 in the tracker gets fixed. -vv
 
 If a mark is entered at the end of the last bar of the score (where
 there is no next line), then the mark will not be printed at
@@ -283,7 +281,6 @@ use LilyPond as a word processor.  This syntax is described in
 
 @predefined
 
-@funindex \markup
 @code{\markup},
 @funindex \markuplines
 @code{\markuplines}
@@ -329,6 +326,7 @@ using the @code{\markup} mode specific syntax.
 @cindex text markup
 @cindex markup text
 @cindex typeset text
+@funindex \markup
 
 A @code{\markup} block is used to typeset text with an extensible
 specific syntax called @qq{markup mode}.
@@ -340,15 +338,10 @@ 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.
-
-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.
+Unlike simple @q{quoted text} indications, @code{\markup} blocks
+may contain nested expressions or specific commands,
+entered using the backslash @code{\} character.
+Such commands only affect the first following expression.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 e1-\markup "intenso"
@@ -364,11 +357,12 @@ c
 @cindex markup mode, special characters
 @cindex reserved characters, printing
 @cindex printing special characters
+@cindex quoted text in markup mode
 
-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:
+A @code{\markup} block may also contain quoted text, which
+can be useful to print special characters (such as @code{\} and @code{#}).
+Quoted text even allows to print double quotation marks, by preceding
+them with backslashes:
 
 @lilypond[quote,verbatim,fragment,relative=1]
 \clef bass
@@ -389,7 +383,7 @@ c1^\markup { \line { a b c } }
 @end lilypond
 
 Lists of words that are not enclosed with double quotes
-or preceded by a previous command are not kept distinct.  In
+or preceded by a command are not kept distinct.  In
 the following example, the first two @code{\markup} expressions
 are equivalent:
 
@@ -432,154 +426,157 @@ 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
-
-
-
-@ignore
-TODO: here are some commands that could be described here.
-I'm putting them in bulk, prior to working on this section. -vv
-
-\simple
-
-\char
-\fraction
-
-\combine
-\concat
-\put-adjacent
-
-
-\page-ref (see also "Table of contents")
-\fromproperty
-\verbatim-file
-\with-url
-
-\on-the-fly 
-\override
-
-
-\null
-\hspace
-
-\lower
-\raise 
-\translate 
-\translate-scaled
-\rotate
-\transparent
-\whiteout
-
-@end ignore
-
-
+Markup text may be formatted using simple commands.
 
 @cindex font switching
+@funindex \italic
+@funindex \bold
+@funindex \underline
 
-Some font switching commands are demonstrated here.
+Basic font switching is supported:
 
-\italic 
-\upright
-\bold 
-\medium        
-\underline
-       
+@lilypond[quote,verbatim,relative=2]
+{
+  d1^\markup { 
+      \bold { Più mosso } 
+      \italic { non troppo \underline Vivo } 
+    }
+  r2 r4 r8
+  d,_\markup { \italic quasi \smallCaps Tromba }
+  f1 d2 r
+}
+@end lilypond
 
-@c TODO: what's the difference between the following commands? -vv
-\smallCaps     
-\caps 
-\fontCaps
+@cindex font size
+@cindex text size
+@funindex \fontsize
+@funindex \small
+@funindex \large
+@funindex \smaller
+@funindex \larger
+@funindex \magnify
+
+The size of the characters can also be altered in different ways:
+@itemize
+@item
+the font size can be defined to an absolute value,
 
+@item
+predefined commands allow to easily select standard sizes,
 
-Some alternate font families can easily be selected:
+@item
+other commands allow to change the size relatively to its previous value.
+@end itemize
 
-\sans
-\typewriter
-\roman
-\number (only for numbers, such as fingerings and time signatures)
-@c TODO: add \slashed-digit here? -vv
+@noindent
+The following example demonstrates these three methods:
 
-The size can be blah blah blah
+@lilypond[quote,verbatim,relative=2]
+{
+  f1^\markup { \fontsize #5 Sinfonia } 
+  a,_\markup { 
+         \tiny espressivo
+         \large e
+         \normalsize intenso 
+         }
+  bes^\markup { (con 
+         \larger grande 
+         \smaller emozione 
+         \magnify #0.6 { e sentimento } )
+         }
+  d c2 r8 c bes a g1
+}
+@end lilypond
 
-\fontsize
+@cindex subscript
+@cindex superscript
+@funindex \super
+@funindex \sub
 
-Some predefined font sizes can be used blah blah
+Text may be printed as subscript or superscript. By default
+these are printed in a smaller size, but a normal size can be used as well:
 
-\teeny
-\tiny
-\small 
-\normalsize
-\large
-\huge
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { 1 \super st movement }
+    \line { 1 \normal-size-super st movement 
+      \sub { (part two) }  }
+  }
+}
+@end lilypond
 
-Some shorcuts allow to change the font size relatively to its previous value 
+The markup mode provides an easy way to select alternate
+font families.  The default serif font, of roman type, is automatically
+selected unless specified otherwise: on the last line of the following example,
+there is no difference between the first word and the following words.
 
-\smaller
-\bigger
-\larger
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { Act \number 1 }
+    \line { \sans { Scene I. } }
+    \line { \typewriter { Verona. An open place. } }
+    \line { \roman Enter Valentine and Proteus. }
+  }
+}
+@end lilypond
+
+@noindent
+Some of these font families, used for specific items
+such as numbers or dynamics, do not provide all
+characters, as mentioned in @ref{New dynamic marks} and
+@ref{Manual repeat marks}.
 
-\magnify
 
-Text may be printed as subscript or superscript:
+Defining custom font sets is also possible, as explained in
+@ref{Fonts}.
 
-\sub 
-\super
+An exhaustive list of font-switching, font-size and font-families related
+commands can be found in @ref{Font}.
 
-To obtain subscripts or superscripts in a normal text size, use
-\normal-size-sub
-\normal-size-super
+@c TODO: add @seealso
 
-All these settings (except the size) can be reverted to the default font:
+@knownissues
+When used inside a word, some of these commands may produce an unwanted
+blank space.  This can easily be solved by concatenating the text
+elements together, using a specific command
+described in @ref{Text alignment}.
 
-\normal-text 
 
 
 @node Text alignment
 @subsubsection Text alignment
 
+@warning{This subsection discusses how to place text in markup mode,
+inside a @code{\markup} block.  However, markup objects can also
+be moved as a whole using the syntax described in
+@rlearning{Moving objects}.}
 
-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}).
+Markup objects can be aligned in different ways.  By default,
+a text indication is aligned on its left edge: in the following
+example, there's no difference between the first and the second
+markup.
 
 @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 }
+a1-\markup { poco }
+e'
+a,-\markup { \left-align poco }
+e'
+a,-\markup { \center-align { poco } }
+e'
+a,-\markup { \right-align poco }
 @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
-\right-align
+@c FIXME: \center-align actually doesn't belong here
+@c \center-align vs \column
+@c \center-align vs \hcenter
 
 Horizontal alignment:
 \hcenter
@@ -587,6 +584,17 @@ Horizontal alignment:
 \halign 
 
 
+\null
+\hspace
+
+\lower
+\raise 
+\translate 
+\translate-scaled
+\rotate
+\transparent
+\whiteout
+
 Vertical alignment: 
 \vcenter
 \column 
@@ -615,6 +623,42 @@ Alignment inside a "large" markup:
 \wordwrap
 \wordwrap-string
 
+
+@ignore
+TODO: here are some commands that could be described here.
+I'm putting them in bulk, prior to working on this section. -vv
+
+\simple
+
+\char
+\fraction
+
+\combine
+\concat
+\put-adjacent
+
+
+\page-ref (see also "Table of contents")
+\fromproperty
+\verbatim-file
+\with-url
+
+\on-the-fly 
+\override
+
+
+
+@end ignore
+
+
+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.
+
+
+
 @node Graphic notation inside markup
 @subsubsection Graphic notation inside markup
 Graphics around text:
@@ -750,9 +794,6 @@ Snippets:
 @code{\markuplines}
 
 
-
-@c TODO: move the following subsubsec into NR3 -vv
-@c maybe.  -gp
 @node Fonts
 @subsection Fonts
 
index ef09ea66d762c1003a23e41d58dfb674966ab37c..9c2ba9ff99bd3de65c108531b6513c29854d7a60 100644 (file)
@@ -836,7 +836,7 @@ to the front of these values when they are entered in the
   @tab @code{2.5}, @code{0.34}
 @item Direction
   @tab A valid direction constant or its numerical equivalent
-  @tab @code{#LEFT}, @code{#CENTER}, @code{#UP},
+  @tab @code{LEFT}, @code{CENTER}, @code{UP},
        @code{1}, @code{-1}
 @item Integer
   @tab A positive whole number
@@ -3071,8 +3071,8 @@ For example, if we wished to change the metronome setting in order
 to simulate a fermata in the MIDI output we would not want the
 metronome markings to appear in the printed output, and we would
 not want it to influence the spacing between the two systems or
-the spacing of the notes on the staff.  So setting its
-@code{stencil} property to @code{#f} would be the best way.
+the positions of adjacent annotations on the staff.  So setting
+its @code{stencil} property to @code{#f} would be the best way.
 We show here the effect of the two methods:
 
 @lilypond[quote,verbatim,ragged-right]
@@ -3082,12 +3082,30 @@ We show here the effect of the two methods:
     \tempo 4=120
     a4 a a
     \once \override Score.MetronomeMark #'transparent = ##t
-    % Invisible tempo marking to lengthen fermata note in MIDI
+    % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a\fermata
-    \once \override Score.MetronomeMark #'stencil = ##f
-    % Invisible tempo marking to restore tempo in MIDI
+    % New tempo for next section
+    \tempo 4=100
+    a a a a
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \relative c'' {
+    % Visible tempo marking
     \tempo 4=120
+    a4 a a
+    \once \override Score.MetronomeMark #'stencil = ##f
+    % Invisible tempo marking to lengthen fermata in MIDI
+    \tempo 4=80
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
     a a a a
   }
   \layout { }
@@ -3096,10 +3114,11 @@ We show here the effect of the two methods:
 @end lilypond
 
 @noindent
-Both methods remove the metronome mark from the printed output,
-and both affect the MIDI timing as required, but the first
-(transparent) metronome mark still influences the note spacing
-while the second (with no stencil) does not.
+Both methods remove the metronome mark which lengthens the fermata
+from the printed output, and both affect the MIDI timing as 
+required, but the transparent metronome mark in the first line
+forces the following tempo indication too high while the
+second (with the stencil removed) does not.
 
 @node Using variables for tweaks
 @subsection Using variables for tweaks
diff --git a/VERSION b/VERSION
index c4607d3a627ad4bed78a1d399cdeb79de0cdca6b..bdbfd91eb6efb24fb9e160d9bfd0addc1d8a5f41 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=11
-PATCH_LEVEL=48
+PATCH_LEVEL=49
 MY_PATCH_LEVEL=
 
diff --git a/input/lsr/adding-bar-lines-to-chordnames-context.ly b/input/lsr/adding-bar-lines-to-chordnames-context.ly
new file mode 100644 (file)
index 0000000..955215e
--- /dev/null
@@ -0,0 +1,22 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "chords"
+
+  texidoc = "
+To add bar line indications in the @code{ChordNames} context, add the
+@code{Bar_engraver}.
+
+"
+  doctitle = "Adding bar lines to ChordNames context"
+} % begin verbatim
+\new ChordNames \with {
+  \override BarLine #'bar-size = #4
+  \consists "Bar_engraver"
+}
+\chordmode {
+  f1:maj7 f:7 bes:7 
+}
+
diff --git a/input/lsr/adding-bars-to-chordnames.ly b/input/lsr/adding-bars-to-chordnames.ly
deleted file mode 100644 (file)
index eb303fa..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
-  lsrtags = "chords"
-
-  texidoc = "
-To add bar indications in the @@code@{ChordNames@} context, add
-@@code@{Bar_engraver@}. 
-
-"
-  doctitle = "Adding bars to ChordNames"
-} % begin verbatim
-\new ChordNames \with {
-  \override BarLine #'bar-size = #4
-  \consists "Bar_engraver"
-}
-\chordmode {
-  f1:maj7 f:7 bes:7 
-}
-
index 149bb31e31abe2acc6d3ba8d8cf4ce8c422cc37f..15ddb7960840d733c98ff78105820b9bcb2218fa 100644 (file)
@@ -36,7 +36,7 @@ timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
       \new DrumVoice { \stemDown \drl }
     >>
   >>
-  \layout {}
+  \layout { }
   \midi {
     \context {
       \Score
index c60ad80efa437b80c35755d7e19993f751359fb4..c4df90943157bc65c9c1105fcde7b71471d2e981 100644 (file)
@@ -6,28 +6,12 @@
   lsrtags = "titles"
 
   texidoc = "
-I often find it useful to include a date on printed music, so that I
-can see if I'm using the latest version, or tell someone else that he
-should only use the version after a certain date. A simple solution is
-to enter the date manually to the @code{.ly} file. But that's very
-error prone. It's easy to forget updating the date. So i thought it
-would be useful if you can add the date on which the PDF file is
-generated automatically. I did't figure it out myself, but I asked on
-lilypond-user mailing list. And guess what? Someone came with an
-excellent solution! So thank you very much Toine Schreurs for sending
-this solution to the user mailing list. I post it here for future
-reference.
-
-The solution is to use two scheme functions called @code{strftime} and
-@code{localtime}, as shown in the snippet. It is a very flexible
-solution, you can format the date just as you like it by adapting the
-@code{\"%d-%m-%Y\"} string. See the Guile documentation for more
-details on this format string: Formatting Calendar Time. 
+With a little Scheme code, the current date can easily be added to a
+score.
 
 "
   doctitle = "Adding the current date to a score"
 } % begin verbatim
-\version "2.11.48"
 % first, define a variable to hold the formatted date:
 date = #(strftime "%d-%m-%Y" (localtime (current-time)))
 
diff --git a/input/lsr/additional-voices-to-avoid-collisions.ly b/input/lsr/additional-voices-to-avoid-collisions.ly
new file mode 100644 (file)
index 0000000..3300551
--- /dev/null
@@ -0,0 +1,42 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "simultaneous-notes"
+
+  texidoc = "
+In some instances of complex polyphonic music, additional voices are
+necessary to avoid collisions between notes.  Additional voices are
+added by defining a variable using the Scheme function
+@code{context-spec-music}.
+
+"
+  doctitle = "Additional voices to avoid collisions"
+} % begin verbatim
+voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+\relative c'' {
+  \time 3/4 \key d \minor \partial 2
+  <<
+    { \voiceOne
+      a4. a8
+      e'4 e4. e8
+      f4 d4. c8
+    } \\ {
+      \voiceThree
+      f,2
+      bes4 a2
+      a4 s2
+    } \\ {
+      \voiceFive
+      s2
+      g4 g2
+      f4 f2
+    } \\ {
+      \voiceTwo
+      d2
+      d4 cis2
+      d4 bes2
+    }
+  >>
+}
index 8920e6b8fbc298178f2f74af84c01f14f5866448..cf93efd452e1e6773be39241724c47c05533e6ca 100644 (file)
@@ -6,22 +6,31 @@
   lsrtags = "text, vocal-music, spacing"
 
   texidoc = "
-This snippet shows you how to bring the lyrics line closer to the
-staff.
+This snippet shows how to bring the lyrics line closer to the staff.
 
 "
   doctitle = "Adjusting lyrics vertical spacing"
 } % begin verbatim
 % Default layout:
 <<
-  \new Staff \new Voice = melody \relative c '{ c4 d e f g f e d c1 }
+  \new Staff \new Voice = melody \relative c' {
+    c4 d e f
+    g4 f e d
+    c1
+  }
   \new Lyrics \lyricsto melody { aa aa aa aa aa aa aa aa aa }
 
 % Reducing the minimum space below the staff and above the lyrics:
   \new Staff \with {
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 4) }
-  \new Voice = melody \relative c' { c4 d e f g f e d c1 }
+    \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 4)
+  }
+  \new Voice = melody \relative c' {
+    c4 d e f
+    g4 f e d
+    c1
+  }
   \new Lyrics \with {
-    \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 1) }
+    \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 1)
+  }
   \lyricsto melody { aa aa aa aa aa aa aa aa aa }
 >>
index 86e931e16e656817a9e6e38511c14b3e853fae77..3593b47fdfbe8c4e87ee9e32aa994dec670c59f0 100644 (file)
@@ -6,22 +6,22 @@
   lsrtags = "text, paper-and-layout, titles"
 
   texidoc = "
-Instrument names are generally printed at the left side of the staves.
-To align the names of several different intruments, you can put them in
-@code{\\markup} block and use one of the following possibilites:
+Instrument names are generally printed to the left of the staves. To
+align the names of several different intruments, put them in a
+@code{\\markup} block and use one of the following possibilites:
 
 * 
     Right-aligned instrument names: this is the default behavior
   
 * 
-    Center-aligned instrument names: with the @code{\\hcenter-in #n}
-command, you
-    can place the instrument names inside a padded box (@code{n} being the
-width
-    of the box)
+    Center-aligned instrument names: using the @code{\\hcenter-in #n}
+command
+    places the instrument names inside a padded box, with @code{n} being
+the width
+    of the box
   
 * 
-    Left-aligned instrument names: you have to print the names on top of an
+    Left-aligned instrument names: the names are printed on top of an
     empty box, using the @code{\\combine} command
     with an @code{\\hspace #n} object.
   
@@ -36,21 +36,21 @@ width
   line-width = #160
 }
 
-\new StaffGroup \relative <<
+\new StaffGroup \relative c' <<
   \new Staff {
-    \set Staff.instrumentName = "Piccolo"
-    c1^"default" c \break
-    \set Staff.instrumentName = \markup { \hcenter-in #10 "Piccolo" }
-    c1^"centered" c \break
-    \set Staff.instrumentName = \markup { \combine \hspace #8 "Piccolo" }
-    c1^"left-aligned" c
+    \set Staff.instrumentName = #"Piccolo"
+    c1^"default" c \break
+    \set Staff.instrumentName = \markup { \hcenter-in #10 Piccolo }
+    c1^"centered" c \break
+    \set Staff.instrumentName = \markup { \combine \hspace #8 Piccolo }
+    c1^"left-aligned" c
   } 
   \new Staff {
-    \set Staff.instrumentName = "Flute"
-    c1 c \break
-    \set Staff.instrumentName = \markup { \hcenter-in #10 "Flute" }
-    c1 c \break
-    \set Staff.instrumentName = \markup { \combine \hspace #8 "Flute" }
-    c1 c
+    \set Staff.instrumentName = #"Flute"
+    c1 c \break
+    \set Staff.instrumentName = \markup { \hcenter-in #10 Flute }
+    c1 c \break
+    \set Staff.instrumentName = \markup { \combine \hspace #8 Flute }
+    c1 c
   }
 >>
index 701298908763b07a747702cc631f0752576b2272..0ba6757cdd6211679e9b9fb4f232e4133acfcc81 100644 (file)
@@ -7,7 +7,7 @@
 
   texidoc = "
 By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
-of alignments can be adjusted per system.
+can be adjusted per system.
 
 
 By setting @code{alignment-extra-space} or
@@ -15,8 +15,8 @@ By setting @code{alignment-extra-space} or
 stretched vertically.
 
 
-For technical reasons, @code{\\overrideProperty} has to be used for
-setting properties on individual objects. @code{\\override} in a
+For technical reasons, @code{\\overrideProperty} must be used for
+changing these properties within a staff; @code{\\override} in a
 @code{\\context} block may still be used for global overrides. 
 
 "
@@ -27,12 +27,12 @@ setting properties on individual objects. @code{\\override} in a
 \relative c''
 \new StaffGroup <<
   \new Staff {
-    c1\break 
-    c\break 
-    c\break
+    c1 \break
+    c1 \break
+    c\break
   }
-  \new Staff { 
-    c1 c c 
+  \new Staff {
+    c1 | c | c
   }
   \new PianoStaff <<
     \new Voice  {
@@ -52,8 +52,6 @@ setting properties on individual objects. @code{\\override} in a
         #'((alignment-extra-space . 15))
       c_"aligment-extra-space"
     }
-    { c1 c c }
+    { c1 | c | c }
   >>
 >>
-
-
index 5cc01498c384b6768ce0fa2304d2c7c150e11b52..87c0c5ba9c3ec4edbe8d83942da21631ea355bfe 100644 (file)
@@ -1,11 +1,11 @@
-ancient-fonts.ly
-chant-or-psalms-notation.ly
+transcription-of-ancient-music-with-incipit.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
 incipit.ly
+chant-or-psalms-notation.ly
 ancient-notation-template----modern-transcription-of-mensural-music.ly
-transcription-of-ancient-music-with-incipit.ly
+ancient-fonts.ly
 ancient-time-signatures.ly
 custodes.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
 ancient-notation-template----modern-transcription-of-gregorian-music.ly
 rest-styles.ly
diff --git a/input/lsr/bar-counter.ly b/input/lsr/bar-counter.ly
deleted file mode 100644 (file)
index dead05b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
-  lsrtags = "repeats, staff-notation, editorial-annotations"
-
-  texidoc = "
-This snippet provides an example how to emit bar counters which
-LilyPond doesn't provide currently. 
-
-"
-  doctitle = "Bar counter"
-} % begin verbatim
-
-<<
- \context Voice = "foo" {
-   \clef bass
-   c4 r g r |
-   c4 r g r |
-   c4 r g r |
-   c4 r g r |
- }
- \context Voice = "foo" {
-   \set countPercentRepeats = ##t
-   \override PercentRepeat #'transparent = ##t
-   \repeat percent 4 { s1 }
- }
->>
index 3d1579ba3c293026a0e3350b31c3f9126f9b1eb9..7a61860912d46afd7754621c5909d96822d2a18b 100644 (file)
@@ -1,4 +1,4 @@
-positioning-segno-and-coda-with-line-break.ly
 removing-the-first-empty-line.ly
+positioning-segno-and-coda-with-line-break.ly
 beams-across-line-breaks.ly
 adding-an-extra-staff-at-a-line-break.ly
index bd677ab75a9cb189ac0d209fe13f08d34d1de32c..232fbd12f12fbfaa51696bcbc85065d8fbd2e02a 100644 (file)
@@ -7,9 +7,8 @@
 
   texidoc = "
 A caesura is sometimes denoted with a double \"railtracks\" breath mark
-with a fermata sign positioned over the top of the railtracks. This
-snippet should present an optically pleasing combination of railtracks
-and a fermata.
+with a fermata sign positioned above. This snippet should present an
+optically pleasing combination of railtracks and a fermata.
 
 "
   doctitle = "Caesura (\"railtracks\") with fermata"
@@ -19,7 +18,9 @@ and a fermata.
   % construct the symbol
   \override BreathingSign #'text = \markup {
     \line {
-      \musicglyph #"scripts.caesura.curved" \translate #'(-1.75 . 1.6) \musicglyph #"scripts.ufermata"
+      \musicglyph #"scripts.caesura.curved"
+      \translate #'(-1.75 . 1.6)
+      \musicglyph #"scripts.ufermata"
     }
   }
   \breathe c''4
diff --git a/input/lsr/changing-chord-separator.ly b/input/lsr/changing-chord-separator.ly
new file mode 100644 (file)
index 0000000..878cb70
--- /dev/null
@@ -0,0 +1,20 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "chords"
+
+  texidoc = "
+The separator between different parts of a chord name can be set to any
+markup.
+
+"
+  doctitle = "Changing chord separator"
+} % begin verbatim
+\chords {
+  c:7sus4
+  \set chordNameSeparator
+    = \markup { \typewriter | }
+  c:7sus4
+}
diff --git a/input/lsr/changing-midi-output-to-one-channel-per-voice.ly b/input/lsr/changing-midi-output-to-one-channel-per-voice.ly
new file mode 100644 (file)
index 0000000..09d24b3
--- /dev/null
@@ -0,0 +1,59 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "contexts-and-engravers, midi"
+
+  texidoc = "
+When outputting MIDI, the default behavior is for each staff to
+represent one MIDI channel, with all the voices on a staff amalgamated.
+This minimizes the risk of running out of MIDI channels, since there
+are only 16 available per track.
+
+However, by moving the @code{Staff_performer} to the @code{Voice}
+context, each voice on a staff can have its own MIDI channel, as is
+demonstrated by the following example: despite being on the same staff,
+two MIDI channels are created, each with a different
+@code{midiInstrument}. 
+
+"
+  doctitle = "Changing MIDI output to one channel per voice"
+} % begin verbatim
+\score {
+  \new Staff <<
+    \new Voice \relative c''' {
+      \set midiInstrument = #"flute"
+      \voiceOne
+      \key g \major
+      \time 2/2
+      r2 g-"Flute" ~
+      g fis ~
+      fis4 g8 fis e2 ~
+      e4 d8 cis d2
+    }
+    \new Voice \relative c'' {
+      \set midiInstrument = #"clarinet"
+      \voiceTwo
+      b1-"Clarinet"
+      a2. b8 a
+      g2. fis8 e
+      fis2 r
+    }
+  >>
+  \layout { }
+  \midi {
+    \context {
+      \Staff
+      \remove "Staff_performer"
+    }
+    \context {
+      \Voice
+      \consists "Staff_performer"      
+    }
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 72 2)
+    }
+  }
+}
index 250e003e1d3721b5727833ae5af05f4f2c033c53..c357e46ce83c2b7bc9fcadfa00d1dfd36aac0d6c 100644 (file)
@@ -6,34 +6,28 @@
   lsrtags = "tweaks-and-overrides"
 
   texidoc = "
-The @code{\\applyOutput} command gives you the ability to tune any
-layout object, in any context. It requires a Scheme function with three
-arguments; advanced users can write it quite easily, whereas new users
-may want to use pre-defined functions such as this snippet, or the
-example in the manual.
+The @code{\\applyOutput} command allows the tuning of any layout
+object, in any context. It requires a Scheme function with three
+arguments.
 
 "
   doctitle = "Changing properties for individual grobs"
 } % begin verbatim
-% ****************************************************************
-% ly snippet:
-% ****************************************************************
-
 \layout {
   ragged-right = ##t
 }
 
-#(define (mc-squared gr org cur)
+#(define (mc-squared grob grob-origin context)
   (let*
    (
-     (ifs (ly:grob-interfaces gr))
-     (sp (ly:grob-property gr 'staff-position))
+     (ifs (ly:grob-interfaces grob))
+     (sp (ly:grob-property grob 'staff-position))
    )
    (if (memq 'note-head-interface ifs)
     (begin
-     (ly:grob-set-property! gr 'stencil ly:text-interface::print)
-     (ly:grob-set-property! gr 'font-family 'roman)
-     (ly:grob-set-property! gr 'text
+     (ly:grob-set-property! grob 'stencil ly:text-interface::print)
+     (ly:grob-set-property! grob 'font-family 'roman)
+     (ly:grob-set-property! grob 'text
       (make-raise-markup -0.5
        (case sp
        ((-5) (make-simple-markup "m"))
@@ -43,17 +37,8 @@ example in the manual.
       ))))
   )))
 
-\context Voice \relative c' {
-  \stemUp
-  \set autoBeaming = ##f
-
-  { <d f g b>8
-
-    \applyOutput #'Voice #mc-squared
-    <d f g b>
-  }
+\relative c' {
+  <d f g b>2
+  \applyOutput #'Voice #mc-squared
+  <d f g b>
 }
-
-% ****************************************************************
-% end ly snippet
-% ****************************************************************
index 0742ed134c949a1776dee2578e3c4b4f39fa262e..07612456a64396f36756a3e7279a441dc93815cf 100644 (file)
@@ -1,13 +1,14 @@
 changing-the-positions-of-figured-bass-alterations.ly
-changing-the-chord-names-to-german-or-semi-german-notation.ly
+clusters.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
 single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+changing-chord-separator.ly
+volta-below-chords.ly
 showing-chords-at-changes.ly
-single-staff-template-with-notes-and-chords.ly
+chord-name-exceptions.ly
 controlling-the-placement-of-chord-fingerings.ly
-clusters.ly
+changing-the-chord-names-to-german-or-semi-german-notation.ly
 single-staff-template-with-notes,-lyrics,-and-chords.ly
-adding-bars-to-chordnames.ly
-chord-name-exceptions.ly
-volta-below-chords.ly
+single-staff-template-with-notes-and-chords.ly
+adding-bar-lines-to-chordnames-context.ly
 simple-lead-sheet.ly
index 85119e85766aea7fe08a7d05964a9412ee10c4ac..0e75806eaa2eb5e8dfb1de844ba22be67863617a 100644 (file)
@@ -1,11 +1,12 @@
 creating-blank-staves.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+chant-or-psalms-notation.ly
 changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
 adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
-chant-or-psalms-notation.ly
-use-square-bracket-at-the-start-of-a-staff-group.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
+changing-midi-output-to-one-channel-per-voice.ly
 engravers-one-by-one.ly
+use-square-bracket-at-the-start-of-a-staff-group.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 nesting-staves.ly
index 69c968a18677474ebc48a859e041d7acd0d4bb0c..bdb8a7186c61aa1e3cc59fa4da31b9e23ed846e6 100644 (file)
@@ -28,12 +28,16 @@ A demonstration of all headers.
   source = "urtext"
 }
 
+\layout {
+  ragged-right = ##f
+}
+
 \score {
-  \relative c'' { c1 c c c }
+  \relative c'' { c1 | c | c | c }
 }
 
 \score {
-   \relative c'' { c1 c c c }
+   \relative c'' { c1 | c | c | c }
    \header {
      title = "localtitle"
      subtitle = "localsubtitle"
index 050ea6c42d662282591dbd75b85ed406796b40bd..880ada097f9cdda0685314c519d8873f6db75797 100644 (file)
@@ -1,13 +1,13 @@
+measure-counter.ly
 creating-blank-staves.ly
+controlling-the-placement-of-chord-fingerings.ly
 making-some-staff-lines-thicker-than-the-others.ly
 applying-note-head-styles-depending-on-the-step-of-the-scale.ly
 embedding-native-postscript-in-a--markup-block.ly
 changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
-default-direction-of-stems-on-the-center-line-of-the-staff.ly
-changing-a-single-notes-size-in-a-chord.ly
 grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
+changing-a-single-notes-size-in-a-chord.ly
 grid-lines--changing-their-appearance.ly
-controlling-the-placement-of-chord-fingerings.ly
+default-direction-of-stems-on-the-center-line-of-the-staff.ly
 allowing-fingerings-to-be-printed-inside-the-staff.ly
 blanking-staff-lines-using-the--whiteout-command.ly
-bar-counter.ly
index afde7a40a1028140ecafbd0d5d645760b324e76b..dd13fa7fbd6d5916b40ad2a1c63d0590fba00920 100644 (file)
@@ -22,10 +22,10 @@ broken-crescendo-hairpin.ly
 combining-dynamics-with-markup-texts.ly
 creating-slurs-across-voices.ly
 caesura-railtracks-with-fermata.ly
-adjusting-the-shape-of-falls-and-doits.ly
+changing-the-breath-mark-symbol.ly
 creating-simultaneous-rehearsal-marks.ly
 suppressing-compiler-warnings-when-two-glissandos-intersect.ly
 setting-hairpin-behavior-at-bar-lines.ly
 changing--flageolet-mark-size.ly
 piano-template-with-centered-dynamics.ly
-changing-the-breath-mark-symbol.ly
+adjusting-the-shape-of-falls-and-doits.ly
diff --git a/input/lsr/forcing-horizontal-shift-of-notes.ly b/input/lsr/forcing-horizontal-shift-of-notes.ly
new file mode 100644 (file)
index 0000000..da7d3ce
--- /dev/null
@@ -0,0 +1,25 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "simultaneous-notes, tweaks-and-overrides"
+
+  texidoc = "
+When the typesetting engine cannot cope, the @code{force-hshift}
+property of the @code{NoteColumn} object can be used to override
+typesetting decisions. The measure units used here are staff spaces.
+
+"
+  doctitle = "Forcing horizontal shift of notes"
+} % begin verbatim
+\relative c' <<
+  {
+    <d g>2 <d g>
+  }
+  \\
+  { <b f'>2
+    \once \override NoteColumn #'force-hshift = #1.7
+    <b f'>2
+  }
+>>
diff --git a/input/lsr/measure-counter.ly b/input/lsr/measure-counter.ly
new file mode 100644 (file)
index 0000000..a5b7fc8
--- /dev/null
@@ -0,0 +1,30 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "repeats, staff-notation, editorial-annotations"
+
+  texidoc = "
+This snippet provides an workaround for emitting measure counters using
+transparent percent repeats. 
+
+"
+  doctitle = "Measure counter"
+} % begin verbatim
+
+<<
+  \context Voice = "foo" {
+    \clef bass
+    c4 r g r
+    c4 r g r
+    c4 r g r
+    c4 r g r
+  }
+  \context Voice = "foo" {
+    \set countPercentRepeats = ##t
+    \override PercentRepeat #'transparent = ##t
+    \override PercentRepeatCounter #'staff-padding = #1
+    \repeat percent 4 { s1 }
+  }
+>>
index 8eab597a2ac596b800ec279c785977e38efed1c6..34b23248e5d6c1558355f0481b68477b409a7446 100644 (file)
@@ -1 +1,2 @@
+changing-midi-output-to-one-channel-per-voice.ly
 demo-midiinstruments.ly
index 6d6746ca32c5ddf283cbaffad74a9418abb759d2..dff19e4099ee5e0071dae7b68cc0eeaa8efbd110 100644 (file)
@@ -7,33 +7,25 @@
 
   texidoc = "
 If @code{strict-note-spacing} is set spacing of notes is not influenced
-by bars or clefs part way along the system. Rather, they are put just
-before the note that occurs at the same time. This may cause
-collisions. 
+by bars or clefs within a system. Rather, they are placed just before
+the note that occurs at the same time. This may cause collisions. 
 
 "
   doctitle = "Proportional strict notespacing"
 } % begin verbatim
 \paper {
   ragged-right = ##t
-  indent = 0
-}
-\layout {
-  \context {
-    \Score
-  }
 }
 
 \relative c'' <<
   \override Score.SpacingSpanner #'strict-note-spacing = ##t 
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
   \new Staff {
-    c8[ c \clef alto c c \grace { d16 }  c8 c]  c4 c2
-    \grace { c16[ c16] }
-    c2 }
+    c8[ c \clef alto c c \grace { d16 } c8 c] c4
+    c2 \grace { c16[ c16] } c2
+  }
   \new Staff {
-    c2  \times 2/3 { c8 \clef bass cis,, c } 
-    c4
+    c2 \times 2/3 { c8 \clef bass cis,, c } c4
     c1
   }
 >>
index 01c31d2f09cf3fec34ff3f8049a69fa7776e08d7..7c2159b0ff13538ed553c11f07ddc0b5fd86707f 100644 (file)
@@ -1,7 +1,7 @@
+measure-counter.ly
 positioning-segno-and-coda-with-line-break.ly
-volta-below-chords.ly
-adding-volta-brackets-to-additional-staves.ly
+shortening-volta-brackets.ly
 volta-multi-staff.ly
-bar-counter.ly
+volta-below-chords.ly
 volta-text-markup-using-repeatcommands.ly
-shortening-volta-brackets.ly
+adding-volta-brackets-to-additional-staves.ly
index d0697943fa279e0022211a82fa144f3470af66ac..3e1218d3717bb9038db7b531b9b01aad66d5283c 100644 (file)
@@ -16,7 +16,7 @@ changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
 modifying-tuplet-bracket-length.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
 making-an-object-invisible-with-the-transparent-property.ly
-merging-multi-measure-rests-in-a-polyphonic-part.ly
+permitting-line-breaks-within-beamed-tuplets.ly
 automatic-beam-subdivisions.ly
 changing-the-tuplet-number.ly
 entering-several-tuplets-using-only-one--times-command.ly
@@ -26,7 +26,7 @@ changing-form-of-multi--measure-rests.ly
 rhythmic-slashes.ly
 automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
 three-sided-box.ly
-permitting-line-breaks-within-beamed-tuplets.ly
-skips-in-lyric-mode.ly
-engraving-ties-manually.ly
+merging-multi-measure-rests-in-a-polyphonic-part.ly
 printing-music-with-different-time-signatures.ly
+engraving-ties-manually.ly
+skips-in-lyric-mode.ly
index bd49c1cb31258f51a5a90fb65691c40310a06420..9e89aafc4c79404ca55189d3618dda44f7f9f14d 100644 (file)
@@ -55,23 +55,28 @@ editor.
 "
   doctitle = "Score for diatonic accordion"
 } % begin verbatim
-% Created on Sat Aug 17 2007 by ak
 
-verse= \lyricmode { Wie gross bist du! Wie gross bist du! }
+verse = \lyricmode { Wie gross bist du! Wie gross bist du! }
 
-harmonies =  \new ChordNames \chordmode {
-       \germanChords \set chordChanges = ##t
-       bes8 bes8 bes8 es2 f bes1
+harmonies = \new ChordNames \chordmode {
+  \germanChords
+  \set chordChanges = ##t
+       bes8 bes8 bes8
+  es2 f
+  bes1
 }
 
 NoStem = \override Stem #'transparent = ##t
-NoNoteHead= \override NoteHead #'transparent = ##t
+NoNoteHead = \override NoteHead #'transparent = ##t
 ZeroBeam = \override Beam  #'positions = #'(0 . 0)
 
-staffTabLine = \new Staff  \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } {
-       \override Staff.StaffSymbol #'line-positions = #'( 0 ) 
+staffTabLine = \new Staff \with {
+  \remove "Time_signature_engraver"
+  \remove "Clef_engraver"
+} {
+  \override Staff.StaffSymbol #'line-positions = #'(0)
 % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline
-       \set Staff.midiInstrument="choir aahs"
+       \set Staff.midiInstrument = #"choir aahs"
        \key c \major
        \relative c''
                {  
@@ -98,16 +103,11 @@ staffTabLine = \new Staff  \with { \remove "Time_signature_engraver" \remove "Cl
                        %       10. re-enable the line \NoNoteHead
                        \autoBeamOff
                        \ZeroBeam 
-                        s8 s s e[ c c c c c c e] | s s s s s 
+                        s8 s s e[ c c c c c c e] | s s s s s 
                }
 }
 
 %{
-notePush= {    e       f       fis     g       a        c'     c'      d'      ees'    e'      f'      fis'    g'      a'      bes'    c''     c''     d''     ees''   e''     f''     fis''   g''     a''     c'''    c'''    ees'''  e'''    f'''    g'''    a''' }
-tabPush=  {    g       f       e       b       a        d'     c'      bisis   disis'  f'      e'      aisis'  a'      g'      fisis'  b'      c''     eisis'' cisis'' e''     d''     gisis'' g''     f''     a''     b''     bisis'' d'''    c'''    f'''    e''' }
-
-notePull= {    g       aes     bes     b       c'      cis'    d'      ees'    e'      f'      fis'    g'      aes'    a'      bes'    b'      c''     cis''   d''     ees''   e''     f''     g''     aes''   a''     bes''   b''     c'''    cis'''  d'''    e''' }
-tabPull=  {    g       e       f       b       a       disis'  d'      bisis   c'      f'      fisis'  e'      aisis'  a'      g'      c''     b'      cisis'' e''     eisis'' d''     g''     f''     gisis'' b''     a''     d'''    f'''    bisis'' c'''    e''' }
 %}
 
 % Accordion melody in tabulator score          
@@ -118,7 +118,7 @@ tabPull=  { g       e       f       b       a       disis'  d'      bisis   c'      f'      fisis'  e'      aisis'  a'      g'      c''     b'      cisis'
 % Tips:
 % - In jEdit Search & Replace mark the Option 'Keep Dialog'
 
-AccordionTabTwoCBesDur= {      
+AccordionTabTwoCBesDur = {
  % pull 1
  %<f' bes'>8 <f' a'>8 <d' bes'>8 | 
 <g'' a''>8 <g'' b''>8 <e'' a''>8 | 
@@ -230,200 +230,4 @@ staffBassRhytm = \new Staff=staffbass  \with { \remove "Clef_engraver" } {
                \staffBassRhytm
        \context Lyrics = "lBassRhytmAboveI" \with {alignAboveContext=staffbass} \lyricsto VoiceBassRhytm \LyricBassRhythmI
        >>
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                            APPENDIX                          %
-%     macro 'macro_conv2diaton_push.bsh' for jedit editor      %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%{ 
-// original saved in 'Handorg_Adria_Diaton_III.xls'
-// Save this buffer, to the other recorded macros in the jedit editor
-// and the macro should appear in the
-// Macros menu.
-
-// /ak 17.8.07 This macro from converts lilypond piano notation into 
-// lilypond tabulator notation for the push-part (at the bottom the pull-part) of a diatonic accordion
-// It replaces the piano notes of the line where the cursor is by the accordion notation
-
-
-
-// Known issues: 1) A note at the end of line is not replaced
-
-textArea.goToEndOfWhiteSpace(false);
-textArea.goToStartOfWhiteSpace(true);
-
-
-String firstName, lastName; 
-
-int ReplaceTextInSelection(String sfind, String sreplace)
-{
-//MsgConcat = new StringBuffer(512);
-//MsgConcat.append("Ha");
-
-//Macros.message(view, "On that line replace \"" + sfind + "\" by \"" + sreplace+ "\"");
-SearchAndReplace.setSearchString(sfind.toString());
-SearchAndReplace.setReplaceString(sreplace.toString());
-SearchAndReplace.setBeanShellReplace(false);
-SearchAndReplace.setIgnoreCase(true);
-SearchAndReplace.replace(view);
-SearchAndReplace.setRegexp(true);
-return 1;
-}
-
-
-String smainfind;
-String smainrepl;
-
-
-// Push-part tmp
-smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpr$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(as\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-
-smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl );
-*/
-
-/*
-// Pull-part tmp
-smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpa-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpc\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpd\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpc\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpc\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpb\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpg\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpb\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl );
-smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl );
-
-smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl );
-*/
-
-
 %}
-
index b52edebe6b7b2633e759185973ee270beb7b25f3..1eecf7f98bd043c61abcc12ff827c77896d147b1 100644 (file)
@@ -1,3 +1,5 @@
+forcing-horizontal-shift-of-notes.ly
 clusters.ly
+additional-voices-to-avoid-collisions.ly
 changing-a-single-notes-size-in-a-chord.ly
 combining-two-parts-on-the-same-staff.ly
index 682482ccac2152041257113830e180173f5d4f87..b5c62998fa791fc428a91407bc46cc33fbd4b36d 100644 (file)
@@ -1,4 +1,4 @@
-vertically-centered-dynamics-and-textscripts.ly
+vertically-aligned-dynamics-and-textscripts.ly
 proportional-strict-notespacing.ly
 vertically-aligning-ossias-and-lyrics.ly
 allowing-fingerings-to-be-printed-inside-the-staff.ly
index 4bc85e9b9ba2a293dc64be6f8a82f97ea407c660..680bc199c4c7aeed4a7b479d7c3bed480780b0b5 100644 (file)
@@ -1,20 +1,20 @@
-removing-the-first-empty-line.ly
+creating-blank-staves.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
 changing-the-number-of-lines-in-a-staff.ly
 incipit.ly
 display-bracket-with-only-one-staff-in-a-system.ly
-time-signature-in-parentheses.ly
+adding-an-extra-staff.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
 tweaking-clef-properties.ly
+removing-the-first-empty-line.ly
 quoting-another-voice.ly
 volta-multi-staff.ly
-bar-counter.ly
 non-traditional-key-signatures.ly
-creating-blank-staves.ly
+measure-counter.ly
 adding-ambitus-per-voice.ly
 making-some-staff-lines-thicker-than-the-others.ly
 adding-an-extra-staff-at-a-line-break.ly
-adding-an-extra-staff.ly
+time-signature-in-parentheses.ly
 changing-the-staff-size.ly
 use-square-bracket-at-the-start-of-a-staff-group.ly
 quoting-another-voice-with-transposition.ly
index a1604d79feb235dd31afc50dc497d192fca9c930..0c20366e0f1213257c0dd4e62634eba102369446 100644 (file)
@@ -1,18 +1,18 @@
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-single-staff-template-with-notes-and-lyrics.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
 single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
 single-staff-template-with-only-notes.ly
 piano-template-with-centered-lyrics.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
+score-for-diatonic-accordion.ly
 piano-template-simple.ly
 ancient-notation-template----modern-transcription-of-mensural-music.ly
-ancient-notation-template----modern-transcription-of-gregorian-music.ly
 vocal-ensemble-template.ly
 piano-template-with-melody-and-lyrics.ly
-string-quartet-template-with-separate-parts.ly
-single-staff-template-with-notes,-lyrics,-and-chords.ly
 string-quartet-template-simple.ly
+single-staff-template-with-notes-and-lyrics.ly
+single-staff-template-with-notes,-lyrics,-and-chords.ly
 single-staff-template-with-notes-and-chords.ly
-piano-template-with-centered-dynamics.ly
+string-quartet-template-with-separate-parts.ly
 jazz-combo-template.ly
-score-for-diatonic-accordion.ly
+ancient-notation-template----modern-transcription-of-gregorian-music.ly
+piano-template-with-centered-dynamics.ly
index 86aa0a24d5f3c1fc64b901ef125f22b65f9bbf9d..3b0f61d4c03e4e243d99b2bd59180c8399ca5b68 100644 (file)
@@ -14,8 +14,8 @@ creating-text-spanners.ly
 creating-real-parenthesized-dynamics.ly
 center-text-below-hairpin-dynamics.ly
 demonstrating-all-headers.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
 combining-two-parts-on-the-same-staff.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
 combining-dynamics-with-markup-texts.ly
 aligning-marks-with-various-notation-objects.ly
 piano-template-with-centered-lyrics.ly
index e79f93f666f4a931245224bbdd05c758ffde2f1d..24d5bc4653f07d8ca6746cd900d04b216aa2f93a 100644 (file)
@@ -12,7 +12,8 @@ The time signature can be enclosed within parentheses.
   doctitle = "Time signature in parentheses"
 } % begin verbatim
 tsMarkup = \markup {
-  \override #'(baseline-skip . 2) \number {
+  \override #'(baseline-skip . 0)
+  \number {
     \bracket \column { 2 4 }
   }
 }
index 20bcff63c35c3b8bf8a512164328b3c8a3e81053..abfcade347d6045efb80fb2d3b5f1b90abfb4e83 100644 (file)
@@ -1,10 +1,12 @@
+forcing-horizontal-shift-of-notes.ly
 display-bracket-with-only-one-staff-in-a-system.ly
-time-signature-in-parentheses.ly
+rhythmic-slashes.ly
 changing-the-default-text-font-family.ly
 drawing-boxes-around-grobs.ly
 manually-controlling-beam-positions.ly
 custodes.ly
 move-specific-text.ly
+creating-text-spanners.ly
 rest-styles.ly
 using-the--tweak-command-to-tweak-individual-grobs.ly
 controlling-tuplet-bracket-visibility.ly
@@ -14,20 +16,19 @@ changing-text-and-spanner-styles-for-text-dynamics.ly
 controlling-the-vertical-ordering-of-scripts.ly
 vertically-aligning-ossias-and-lyrics.ly
 changing-properties-for-individual-grobs.ly
-removing-the-first-empty-line.ly
+vertically-aligned-dynamics-and-textscripts.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
 tweaking-clef-properties.ly
-vertically-centered-dynamics-and-textscripts.ly
 proportional-strict-notespacing.ly
 making-an-object-invisible-with-the-transparent-property.ly
 transcription-of-ancient-music-with-incipit.ly
 alignment-vertical-spacing.ly
 drawing-circles-around-various-objects.ly
-creating-text-spanners.ly
+removing-the-first-empty-line.ly
 caesura-railtracks-with-fermata.ly
 changing-form-of-multi--measure-rests.ly
-rhythmic-slashes.ly
+time-signature-in-parentheses.ly
 changing-a-single-notes-size-in-a-chord.ly
 creating-simultaneous-rehearsal-marks.ly
 nesting-staves.ly
index 4afa6824c0c09f4915245d91b5c3c67787c4e771..5ee803315fbd918d46e2093cc65ad6afbba92b11 100644 (file)
@@ -1,5 +1,5 @@
 string-quartet-template-with-separate-parts.ly
+string-quartet-template-simple.ly
 changing--flageolet-mark-size.ly
 creating-slurs-across-voices.ly
-string-quartet-template-simple.ly
 demo-midiinstruments.ly
diff --git a/input/lsr/vertically-aligned-dynamics-and-textscripts.ly b/input/lsr/vertically-aligned-dynamics-and-textscripts.ly
new file mode 100644 (file)
index 0000000..905b36f
--- /dev/null
@@ -0,0 +1,31 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+  lsrtags = "tweaks-and-overrides, spacing"
+
+  texidoc = "
+By setting the @code{Y-extent} property to a suitable value, all
+@code{DynamicLineSpanner} objects (hairpins and dynamic texts) can be
+aligned to a common reference point, regardless of their actual extent.
+This way, every element will be vertically aligned, thus producing a
+more pleasing output.
+
+The same idea is used to align the text scripts along their baseline.
+
+"
+  doctitle = "Vertically aligned dynamics and textscripts"
+} % begin verbatim
+music = \relative c'' {
+  c2\p^\markup { gorgeous } c\f^\markup { fantastic }
+  c4\p c\f\> c c\!\p
+}
+
+{
+  \music \break
+  \override DynamicLineSpanner #'staff-padding = #2.0
+  \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
+  \override TextScript #'Y-extent = #'(-1.5 . 1.5)
+  \music
+}
index db2261c836a1afc4ad5814a62228b135872bef08..384cb442a1e9db29475122a97b40276759420a9d 100644 (file)
@@ -6,9 +6,9 @@
   lsrtags = "vocal-music, tweaks-and-overrides, spacing"
 
   texidoc = "
-This snippet demonstrates the use of the @code{alignBelowContext} and
-@code{alignAboveContext} properties to control the positioning of
-lyrics and ossias.
+This snippet demonstrates the use of the context properties
+@code{alignBelowContext} and @code{alignAboveContext} to control the
+positioning of lyrics and ossias.
 
 "
   doctitle = "Vertically aligning ossias and lyrics"
@@ -17,22 +17,27 @@ lyrics and ossias.
   ragged-right = ##t
 }
 
-\relative <<
+\relative c' <<
   \new Staff = "1" { c4 c s2 }
   \new Staff = "2" { c4 c s2 }
   \new Staff = "3" { c4 c s2 }
   { \skip 2
     <<
       \lyrics {
-       \set alignBelowContext = #"1"
-       below8 first staff
+        \set alignBelowContext = #"1"
+        lyrics4 below
       }
-      \new Staff {
-       \set Staff.alignAboveContext = #"3"
-       \times 4/6 {
-         \override TextScript #'padding = #3
-         c8^"this" d_"staff" e^"above" d_"last" e^"staff" f
-       }
+      \new Staff \with {
+        alignAboveContext = #"3"
+        fontSize = #-2
+        \override StaffSymbol #'staff-space = #(magstep -2)
+        \remove "Time_signature_engraver"
+      } {
+        \times 4/6 {
+          \override TextScript #'padding = #3
+          c8^"ossia above" d e d e f
+        }
       }
-    >> }
+    >>
+  }
 >>
diff --git a/input/lsr/vertically-centered-dynamics-and-textscripts.ly b/input/lsr/vertically-centered-dynamics-and-textscripts.ly
deleted file mode 100644 (file)
index a4f4fab..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.11.48"
-
-\header {
-  lsrtags = "tweaks-and-overrides, spacing"
-
-  texidoc = "
-By setting the @code{Y-extent} property to a fixed value, all
-@code{DynamicLineSpanner} objects (hairpins and dynamic texts) are
-aligned to a common reference point, regardless of their actual extent.
-This way, every element will be vertically centered, for a nicer output
-(you can compare the first and the second line in this example; the
-trick is only applied on the second line).
-
-The same idea is used to align the text scripts along their baseline.
-
-"
-  doctitle = "Vertically centered dynamics and textscripts"
-} % begin verbatim
-music = \relative c'' {
-  c2\p^\markup { gorgeous } c\f^\markup { fantastic }
-  c4\p c\f\> c c\!\p
-}
-
-{
-  \music \break
-  \override DynamicLineSpanner #'staff-padding = #2.0
-  \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
-  \override TextScript #'Y-extent = #'(-1.5 . 1.5)
-  \music
-}
index 14754e6d084ccea5e014e488fbf8d4a81567853c..3933610301a2a4cc6e033a327576954328a83d04 100644 (file)
@@ -1,18 +1,18 @@
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+chant-or-psalms-notation.ly
 single-staff-template-with-notes-and-lyrics.ly
 adding-ambitus-per-voice.ly
 single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
 skips-in-lyric-mode-2.ly
-skips-in-lyric-mode.ly
 vocal-ensemble-template-with-automatic-piano-reduction.ly
 ambitus-with-multiple-voices.ly
+aligning-lyrics.ly
 how-to-put-ties-between-syllables-in-lyrics.ly
-vertically-aligning-ossias-and-lyrics.ly
+piano-template-with-melody-and-lyrics.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 single-staff-template-with-notes,-lyrics,-and-chords.ly
 formatting-lyrics-syllables.ly
-piano-template-with-melody-and-lyrics.ly
+vertically-aligning-ossias-and-lyrics.ly
 demo-midiinstruments.ly
-chant-or-psalms-notation.ly
 vocal-ensemble-template.ly
 adjusting-lyrics-vertical-spacing.ly
-aligning-lyrics.ly
+skips-in-lyric-mode.ly
diff --git a/input/manual/ancient-headword.ly b/input/manual/ancient-headword.ly
new file mode 100644 (file)
index 0000000..b79865c
--- /dev/null
@@ -0,0 +1,128 @@
+\version "2.11.48"
+
+#(set-global-staff-size 15)
+\paper{
+  ragged-right=##t
+  line-width=17\cm
+  indent=0\cm
+}
+
+\include "gregorian-init.ly" 
+
+\score {
+  <<
+    \new VaticanaVoice = "cantus" {
+      \clef "vaticana-do3"
+      % Verse 1 — Salve, Regína
+      a\melisma \[ a \flexa g \pes a\melismaEnd \] d
+      \divisioMinima
+      \[ a\melisma \flexa g\melismaEnd \]
+      \[ f\melisma \flexa e f \pes g \flexa f\melismaEnd \]
+      \[ e\melisma \flexa d\melismaEnd \]
+      \divisioMaior
+      c d \[d\melisma \flexa c\melismaEnd \] d
+      \[ e\melisma \pes f\melismaEnd\] g
+      \[d\melisma \pes e \flexa c\melismaEnd \] d
+      \finalis
+      % Verse 2 — Vita, dulcédo
+      % a\melisma \[ a \flexa g \pes a\melismaEnd \] d
+      % \divisioMinima
+      % \[ a\melisma \flexa g\melismaEnd \]
+      % \[ f\melisma \flexa e f \pes g \flexa f\melismaEnd \]
+      % \[ e\melisma \flexa d\melismaEnd \]
+      % \divisioMaior
+      % c d \[e\melisma \pes f\melismaEnd \] g
+      % \[d\melisma \pes e \flexa c\melismaEnd \] d
+      % \finalis
+      % Verse 3 — Ad te clamámus
+      \[ d\melisma \pes f\melismaEnd\] a g
+      \[ g\melisma \flexa f \pes a\melismaEnd\] e
+      \divisioMaior
+      g f \[ e\melisma \flexa d \pes g\melismaEnd \]
+      \divisioMinima
+      c d \[ e\melisma \flexa d \pes g\melismaEnd \]
+      \[ f\melisma \flexa e\melismaEnd \] d
+      \finalis
+      % Verse 4 — Ad te suspirámus
+      \[ d\melisma \pes f\melismaEnd \] a c' g
+      \[ g\melisma \flexa f \pes g\melismaEnd \] a
+      \divisioMaior
+      d \[ f\melisma \pes \deminutum g\melismaEnd \] g d
+      \[ \virga f\melisma \inclinatum e \inclinatum d\melismaEnd \]
+      c \divisioMaior
+      d \[ d\melisma \flexa c \pes f\melismaEnd \]
+      \[ g\melisma \pes a\melismaEnd \]
+      g \[ f\melisma \flexa e\melismaEnd \] g
+      \[ f\melisma \flexa \deminutum e\melismaEnd \]
+      \[ d\melisma \flexa c \pes d\melismaEnd \]
+      \finalis
+      % Verse 5 — Eia ergo, Advocáta nostra
+      f\melisma \[ f \pes g\melismaEnd \] f
+      \[ g\melisma \pes \deminutum a\melismaEnd \] a
+      \divisioMinima
+      c' g \[ \virga a\melisma \inclinatum g \inclinatum f\melismaEnd \] d g a
+      \divisioMaior
+      d' d' \[ c'\melisma \flexa b c' \pes d'\melismaEnd \] a
+      \divisioMinima
+      d' c' a \[ g\melisma \flexa f \pes a\melismaEnd \] g
+      \[ d\melisma \pes e\melismaEnd \] f
+      \[ \virga e\melisma \inclinatum d \inclinatum c\melismaEnd \]
+      \divisioMaior
+      \[ c\melisma \pes d\melismaEnd \]
+      f \[ g\melisma \flexa \deminutum f\melismaEnd \]
+      \[ d\melisma \flexa c \pes d\melismaEnd \] d
+      \finalis
+      % Verse 6 — Et Jesum
+      d a, \[ c\melisma \pes d\melismaEnd \]
+      \divisioMinima
+      d \[ d\melisma \pes e\melismaEnd \] \[ e\melisma \flexa d d\melismaEnd \]
+      c g f \[ e\melisma \flexa \deminutum d\melismaEnd \] g
+      \[ f\melisma \flexa e\melismaEnd \]
+      \[ d\melisma \flexa c \pes d\melismaEnd \]
+      \[ d\melisma \pes a \] \virga bes\melismaEnd a
+      \divisioMinima
+      \[ \virga a\melisma \inclinatum g \inclinatum f\melismaEnd \] g d f
+      \[ f\melisma \flexa e\melismaEnd \] \[ d\melisma \flexa c\melismaEnd \]
+      \divisioMinima
+      \[ e\melisma \pes f \flexa e\melismaEnd \] d d
+      \finalis
+      % Verse 7 ad finem — O clemens: O pia: O dulcis Virgo María
+      a\melisma \[a \flexa g a \quilisma b \pes c'\melismaEnd \]
+      \[ \virga b\melisma \inclinatum a \inclinatum g\melismaEnd \] a
+      \finalis
+      \[ g\melisma \pes a \quilisma b \pes c' \] \[ c' \flexa b\melismaEnd \]
+      \[ a\melisma \flexa g\melismaEnd \] \[ g\melisma \pes a\melismaEnd \]
+      \finalis
+      \[ a\melisma \flexa d \virga f \inclinatum e \inclinatum d \inclinatum c d \]
+      \divisioMinima
+      \[ d \pes e f \pes g\melismaEnd \]
+      \[ g\melisma \flexa \deminutum f\melismaEnd \]
+      \[ g\melisma \pes a\melismaEnd \]
+      d c d \[ d\melisma \pes g \flexa f f\melismaEnd \]
+      \[ e\melisma \flexa d\melismaEnd \]
+      \finalis
+    }
+    \new Lyrics \lyricsto "cantus" {
+      Sal- ve, Re- gí- na, ma- ter mi- se- ri- cór- di- ae:
+      % Vi- ta, dul- cé- do, et spes no- stra, sal- ve.
+      Ad te cla- má- mus, éx- su- les, fi- li- i He- vae.
+      Ad te su- spi- rá- mus, ge- mén- tes et flen- tes in hac la- cri- má- rum
+      val- le.
+      E- ia er- go, Ad- vo- cá- ta no- stra, il- los tu- os mi- se- ri- cór- des
+      ó- cu- los ad nos con- vér- te.
+      Et Je- sum, be- ne- díc- tum fruc- tum ven- tris tu- i, no- bis post hoc
+      ex- sí- li- um os- tén- de.
+      O cle- mens:
+      O pi- a:
+      O dul- cis Vir- go Ma- rí- a.
+    }
+  >>
+}
+
+\layout {
+  \context {
+    \Staff
+    \consists Custos_engraver
+  }
+}
+
diff --git a/input/regression/markup-music-glyph.ly b/input/regression/markup-music-glyph.ly
new file mode 100644 (file)
index 0000000..3afe426
--- /dev/null
@@ -0,0 +1,17 @@
+\header {
+
+  texidoc = "Reset fontname for musicglyph. For unknown glyphs, we print a warning."
+
+}
+
+\version "2.11.47"
+
+{
+  c'^\markup
+  {
+    \override #'(font-name . "Sans")
+    { c'est un B \flat \musicglyph #"UNKNOWN-GLYPH" }
+                               % to get \flat, do:
+                               %  \normal-text \flat
+  }
+}
index 88cfc58e2b707662fd496719b98db9aaf8641d03..b06d419b99e4342e52d5ca8b7f4bdd55ba3cfbc2 100644 (file)
@@ -16,8 +16,7 @@ LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph",
           2, 0, 0,
           (SCM font, SCM name),
           "Return a stencil from @var{font} for the glyph named @var{name}."
-          "  @var{font} must be available as an AFM file.  If the glyph"
-          " is not available, return @code{#f}.")
+          " If the glyph is not available, return an empty stencil.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
index 13f5a8cdef59e6d863e4745d379712eb75ae52e1..c662d77d9f84f42b97e62d71f2c17b7320f113fc 100644 (file)
@@ -210,7 +210,7 @@ Line_interface::line (Grob *me, Offset from, Offset to)
   else if (type == ly_symbol2scm ("trill"))
     return make_trill_line (me, from, to);
   
-  Stencil stil;
+  Stencil stencil;
 
   if (type == ly_symbol2scm ("dashed-line") || type == ly_symbol2scm ("dotted-line"))
     {
@@ -239,12 +239,12 @@ Line_interface::line (Grob *me, Offset from, Offset to)
           */
          period = ((to-from).length () - period * fraction) / n;
        }
-      stil = make_dashed_line (thick, from, to, period, fraction);
+      stencil = make_dashed_line (thick, from, to, period, fraction);
     }
   else
-    stil = make_line (thick, from, to);
+    stencil = make_line (thick, from, to);
 
-  return stil;
+  return stencil;
 }
 
 ADD_INTERFACE (Line_interface,
index 8963fe15caf9b344f55ec26cd19a1aba39d0bcfa..c2c89eed77ed71f90a327b2f9b77f502636850c3 100644 (file)
     (if (eq? PLATFORM 'windows)
        (begin
          (set! cmd (string-regexp-substitute "=" "#" cmd))
-         (set! cmd (string-regexp-substitute "-dSAFER " "" cmd))))
-
-    (if (access? pdf-name W_OK)
-       (delete-file pdf-name))
+         (set! cmd (string-regexp-substitute "-dSAFER " "" cmd))
+         (if (access? pdf-name W_OK)
+             (delete-file pdf-name))))
 
     (ly:message (_ "Converting to `~a'...") pdf-name)
     (ly:progress "\n")
index 36d981b06eb28b0f800c51e61f6b6dd927fb050d..eb96aee8453df5bc8840ee03715b2869f529f5a7 100644 (file)
   "
 @cindex drawing lines within text
 
-A simple line."
+A simple line.
+@lilypond[verbatim,quote]
+\\markup {
+  \\draw-line #'(4 . 4)
+  \\override #'(thickness . 5)
+  \\draw-line #'(-3 . 0)
+}
+@end lilypond"
   (let ((th (* (ly:output-def-lookup layout 'line-thickness)
                thickness))
         (x (car dest))
@@ -54,7 +61,11 @@ A circle of radius @var{radius}, thickness @var{thickness} and
 optionally filled.
 
 @lilypond[verbatim,quote]
-\\markup { \\draw-circle #2 #0.5 ##f \\hspace #2 \\draw-circle #2 #0 ##t }
+\\markup {
+  \\draw-circle #2 #0.5 ##f
+  \\hspace #2
+  \\draw-circle #2 #0 ##t
+}
 @end lilypond"
   (make-circle-stencil radius thickness fill))
 
@@ -70,7 +81,11 @@ optionally filled.
 A triangle, either filled or empty.
 
 @lilypond[verbatim,quote]
-\\markup { \\triangle ##t \\hspace #2 \\triangle ##f }
+\\markup {
+  \\triangle ##t
+  \\hspace #2
+  \\triangle ##f
+}
 @end lilypond"
   (let ((ex (* (magstep font-size) 0.8 baseline-skip)))
     (ly:make-stencil
@@ -94,7 +109,11 @@ A triangle, either filled or empty.
 
 Draw a circle around @var{arg}.  Use @code{thickness},
 @code{circle-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."
+thickness and padding around the markup.
+
+@lilypond[verbatim,quote]
+\\markup \\circle { Hi }
+@end lilypond"
   (let ((th (* (ly:output-def-lookup layout 'line-thickness)
                thickness))
          (pad (* (magstep font-size) circle-padding))
@@ -133,7 +152,10 @@ the PDF backend.
   "
 @cindex drawing beams within text
 
-Create a beam with the specified parameters."
+Create a beam with the specified parameters.
+@lilypond[verbatim,quote]
+\\markup \\beam #5 #1 #2
+@end lilypond"
   (let* ((y (* slope width))
         (yext (cons (min 0 y) (max 0 y)))
         (half (/ thickness 2)))
@@ -158,7 +180,11 @@ Create a beam with the specified parameters."
 @cindex underlining text
 
 Underline @var{arg}.  Looks at @code{thickness} to determine line
-thickness and y offset."
+thickness and y offset.
+
+@lilypond[verbatim,quote]
+\\markup \\underline { CONTENTS }
+@end lilypond"
   (let* ((thick (* (ly:output-def-lookup layout 'line-thickness)
                    thickness))
          (markup (interpret-markup layout props arg))
@@ -182,7 +208,15 @@ thickness and y offset."
 
 Draw a box round @var{arg}.  Looks at @code{thickness},
 @code{box-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."  
+thickness and padding around the markup.
+
+@lilypond[verbatim,quote]
+\\markup {
+  \\override #'(box-padding . 0.5)
+  \\box
+  \\line { V. S. }
+}
+@end lilypond"
   (let* ((th (* (ly:output-def-lookup layout 'line-thickness)
                 thickness))
          (pad (* (magstep font-size) box-padding))
@@ -211,7 +245,8 @@ circle of diameter@tie{}0 (i.e. sharp corners).
   \\filled-box #'(0 . 4) #'(0 . 4) #0
   \\filled-box #'(0 . 2) #'(-4 . 2) #0.4
   \\filled-box #'(1 . 8) #'(0 . 7) #0.2
-  \\with-color #white \\filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7
+  \\with-color #white
+  \\filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7
 }
 @end lilypond"
   (ly:round-filled-box
@@ -232,7 +267,7 @@ thickness and padding around the markup; the @code{corner-radius} property
 makes possible to define another shape for the corners (default is 1).
 
 @lilypond[quote,verbatim,fragment,relative=2]
-c^\\markup{ \\rounded-box Overtura }
+c^\\markup \\rounded-box { Overtura }
 c,8. c16 c4 r
 @end lilypond" 
   (let ((th (* (ly:output-def-lookup layout 'line-thickness)
@@ -856,7 +891,9 @@ Print two markups on top of each other.
 \\markup {
   \\fontsize #5
   \\override #'(thickness . 2)
-  \\combine \\draw-line #'(0 . 4) \\arrow-head #Y #DOWN ##f
+  \\combine
+  \\draw-line #'(0 . 4)
+  \\arrow-head #Y #DOWN ##f
 }
 @end lilypond"
   (let* ((s1 (interpret-markup layout props m1))
@@ -874,7 +911,12 @@ Print two markups on top of each other.
 @cindex stacking text in a column
 
 Stack the markups in @var{args} vertically.  The property
-@code{baseline-skip} determines the space between each markup in @var{args}."
+@code{baseline-skip} determines the space between each
+markup in @var{args}.
+
+@lilypond[verbatim,quote]
+\\markup \\column { one two three }
+@end lilypond"
   (let ((arg-stencils (interpret-markup-list layout props args)))
     (stack-lines -1 0.0 baseline-skip
                  (remove ly:stencil-empty? arg-stencils))))
@@ -888,7 +930,15 @@ Stack the markups in @var{args} vertically.  The property
 @cindex changing direction of text columns
 
 Make a column of args, going up or down, depending on the setting
-of the @code{#'direction} layout property."
+of the @code{#'direction} layout property.
+
+@lilypond[verbatim,quote]
+\\markup {
+  \\override #'(direction . 1)
+  \\dir-column { going up }
+  \\dir-column { going down }
+}
+@end lilypond"
   (stack-lines (if (number? direction) direction -1)
                0.0
                baseline-skip
@@ -901,7 +951,11 @@ of the @code{#'direction} layout property."
   "
 @cindex centering a column of text
 
-Put @code{args} in a centered column."
+Put @code{args} in a centered column.
+
+@lilypond[verbatim,quote]
+\\markup \\center-align { one two three }
+@end lilypond"
   (let* ((mols (interpret-markup-list layout props args))
          (cmols (map (lambda (x) (ly:stencil-aligned-to x X CENTER)) mols)))
     (stack-lines -1 0.0 baseline-skip cmols)))
@@ -1128,7 +1182,13 @@ any sort of property supported by @rinternals{font-interface} and
   (markup?)
   font
   ()
-  "Increase the font size relative to current setting."
+  "Increase the font size relative to current setting.
+
+@lilypond[verbatim,quote]
+\\markup \\bigger {
+  Voici venir les temps où vibrant sur sa tige
+}
+@end lilypond"
   (interpret-markup layout props
    `(,fontsize-markup 1 ,arg)))
 
@@ -1195,7 +1255,13 @@ Use @code{\\fontsize} otherwise."
   (markup?)
   font
   ()
-  "Switch to bold font-series."
+  "Switch to bold font-series.
+  
+@lilypond[verbatim,quote]
+\\markup \\bold {
+  Chaque fleur s'évapore ainsi qu'un encensoir
+}
+@end lilypond"
   (interpret-markup layout (prepend-alist-chain 'font-series 'bold props) arg))
 
 (define-builtin-markup-command (sans layout props arg)
@@ -1271,7 +1337,7 @@ some punctuation.  It doesn't have any letters.
   (markup?)
   font
   ()
-  "Set @code{font-shape} to @code{caps}."
+  "Set @code{font-shape} to @code{caps}"
   (interpret-markup layout (prepend-alist-chain 'font-shape 'caps props) arg))
 
 ;; Poor man's caps
@@ -1320,7 +1386,13 @@ Note: @code{\\smallCaps} does not support accented characters."
   (markup?)
   font
   ()
-  "Emit @var{arg} as small caps."
+  "Emit @var{arg} as small caps.
+
+@lilypond[verbatim,quote]
+\\markup \\caps {
+  Les sons et les parfums tournent dans l'air du soir
+}
+@end lilypond"
   (interpret-markup layout props (make-smallCaps-markup arg)))
 
 (define-builtin-markup-command (dynamic layout props arg)
@@ -1561,10 +1633,17 @@ the possible glyphs.
   \\musicglyph #\"clefs.G_change\"
 }
 @end lilypond"
-  (ly:font-get-glyph
-   (ly:paper-get-font layout (cons '((font-encoding . fetaMusic))
-                                  props))
-   glyph-name))
+  (let* ((font (ly:paper-get-font layout
+                                 (cons '((font-encoding . fetaMusic)
+                                         (font-name . #f))
+                                       
+                                                props)))
+        (glyph (ly:font-get-glyph font glyph-name)))
+    (if (null? (ly:stencil-expr glyph))
+       (ly:warning (_ "Cannot find glyph ~a") glyph-name))
+
+    glyph))
+
 
 (define-builtin-markup-command (lookup layout props glyph-name)
   (string?)
@@ -1683,7 +1762,7 @@ figured bass notation.
               (ly:stencil-add number-stencil slash-stencil))
         (ly:warning "invalid number for slashed digit ~a" num))
     number-stencil))
-\f
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; the note command.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1699,8 +1778,15 @@ figured bass notation.
 @cindex notes within text by log and dot-count
 
 Construct a note symbol, with stem.  By using fractional values for
-@var{dir}, you can obtain longer or shorter stems."
+@var{dir}, you can obtain longer or shorter stems.
 
+@lilypond[verbatim,quote]
+\\markup {
+  \\note-by-number #3 #0 #DOWN
+  \\hspace #1
+  \\note-by-number #1 #2 #0.8
+}
+@end lilypond"
   (define (get-glyph-name-candidates dir log style)
     (map (lambda (dir-name)
      (format "noteheads.~a~a~a" dir-name (min log 2)
@@ -1803,7 +1889,16 @@ Construct a note symbol, with stem.  By using fractional values for
 This produces a note with a stem pointing in @var{dir} direction, with
 the @var{duration} for the note head type and augmentation dots.  For
 example, @code{\\note #\"4.\" #-0.75} creates a dotted quarter note, with
-a shortened down stem."
+a shortened down stem.
+
+@lilypond[verbatim,quote]
+\\markup {
+  \\override #'(style . cross)
+  \\note #\"4..\" #UP
+  \\hspace #1
+  \\note #\"breve\" #0
+}
+@end lilypond"
   (let ((parsed (parse-simple-duration duration)))
     (note-by-number-markup layout props (car parsed) (cadr parsed) dir)))
 \f
@@ -2004,7 +2099,11 @@ Draw horizontal brackets around @var{arg}."
   "
 @cindex placing vertical brackets around text
   
-Draw vertical brackets around @var{arg}."  
+Draw vertical brackets around @var{arg}.
+
+@lilypond[verbatim,quote]
+\\markup \\bracket \\note #\"2.\" #UP
+@end lilypond"
   (let ((th 0.1) ;; todo: take from GROB.
         (m (interpret-markup layout props arg)))
     (bracketify-stencil m Y th (* 2.5 th) th)))
index 5b2a59ccb6234ace564191e3cbe59c6ac4523341..c6e7dd53c226d427d32aa9f160714aa67cfd4404 100644 (file)
@@ -1328,7 +1328,7 @@ chordkind_dict = {
     'diminished-seventh': 'dim7',
     'augmented-seventh': 'aug7',
     'half-diminished': 'dim5m7',
-    'major-minor': '7m5',
+    'major-minor': 'maj7m5',
         # Sixths:
     'major-sixth': '6',
     'minor-sixth': 'm6',
@@ -1355,7 +1355,7 @@ chordkind_dict = {
     #'German': '???',
         # Other:
     #'pedal': '???',(pedal-point bass)
-    #'power': '???',(perfect fifth)
+    'power': '5^3',
     #'Tristan': '???',
     'other': '1',
     'none': None,
@@ -1385,6 +1385,19 @@ def musicxml_harmony_to_lily_chordname (n):
         inversion = n.get_maybe_exist_named_child ('inversion')
         if inversion:
             # TODO: Lilypond does not support inversions, does it?
+
+            # Mail from Carl Sorensen on lilypond-devel, June 11, 2008:
+            # 4. LilyPond supports the first inversion in the form of added 
+            # bass notes.  So the first inversion of C major would be c:/g.   
+            # To get the second inversion of C major, you would need to do 
+            # e:6-3-^5 or e:m6-^5.  However, both of these techniques 
+            # require you to know the chord and calculate either the fifth 
+            # pitch (for the first inversion) or the third pitch (for the 
+            # second inversion) so they may not be helpful for musicxml2ly.
+            inversion_count = string.atoi (inversion.get_text ())
+            if inversion_count == 1:
+              # TODO: Calculate the bass note for the inversion...
+              pass
             pass
         for deg in n.get_named_children ('degree'):
             d = musicexp.ChordModification ()