]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into dev...
authorReinhold Kainhofer <reinhold@kainhofer.com>
Mon, 18 Aug 2008 20:59:38 +0000 (22:59 +0200)
committerReinhold Kainhofer <reinhold@kainhofer.com>
Mon, 18 Aug 2008 20:59:38 +0000 (22:59 +0200)
23 files changed:
Documentation/es/user/chords.itely
Documentation/es/user/specialist.itely
Documentation/index.html.in
Documentation/user/changing-defaults.itely
Documentation/user/input.itely
Documentation/user/introduction.itely
Documentation/user/notation-appendices.itely
Documentation/user/percussion.itely
Documentation/user/simultaneous.itely
Documentation/user/text.itely
VERSION
input/manual/display-predefined-fretboards.ly
input/manual/percussion-chart.ly [new file with mode: 0644]
input/regression/predefined-fretboards.ly
input/regression/spacing-to-empty-barline.ly [new file with mode: 0644]
input/regression/staff-online-symbol-absence.ly [new file with mode: 0644]
lily/note-spacing.cc
ly/predefined-fretboards-init.ly
ly/predefined-guitar-fretboards.ly
make/lilypond-vars.make
po/lilypond.pot
scm/define-grobs.scm
scm/define-markup-commands.scm

index 4f7836ca0e89801fb7a8b846c4edda0b949220c9..5140c8c4f0ee29105fad2ca1d59b88a349ea551e 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: d1124e0293b22f1d8accf4d418015b754d581fcf
+    Translation of GIT committish: 3d99a5d10c306d8ad13e536bf886cf49da2c0d2c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -482,11 +482,9 @@ través de las siguientes propiedades.
 
 El nombre de acorde se imprime normalmente como una letra para la
 fundamental con una alteración opcional.  La transformación de la nota
-en la letra se realiza por parte de esta funcióne la nota hThe
-transformation from pitch to letter is done by this function.  Los
-nombres de nota especiales (por ejemplo, la @q{H} alemana para un
-acorde de Si) se pueden producir almacenando una cunción nueva en esta
-propiedad.
+en la letra se realiza por parte de esta función.  Los nombres de nota
+especiales (por ejemplo, la @q{H} alemana para un acorde de Si) se
+pueden producir almacenando una cunción nueva en esta propiedad.
 
 @funindex majorSevenSymbol
 
index b5239967caf365e9f6aab2e575d17e3c57e9358f..948ca681a18e748500b4b4cdc19503e5b13fe6fe 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b9526773cf95ca29e3d3352c524718fc8e91c599
+    Translation of GIT committish: 3d99a5d10c306d8ad13e536bf886cf49da2c0d2c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -11,8 +11,8 @@
 @node Specialist notation
 @chapter Specialist notation
 
-This chapter explains how to create musical notation for specific
-types of instrument or in specific styles.
+Este capítulo explica cómo crear notación musical para instrumentos de
+un tipo específico o dentro de estilos específicos.
 
 @menu
 * Vocal music::
index 05de5724b0a30cd39c311a3602615f00f8d4bd0c..3822b3a2bfa9721a2020e2658c3666fb304413b8 100644 (file)
          <ul>
            <li>
            <a class="title"
-href="user/lilypond-learning/index.html">Learning Manual (LM)</a>
+href="user/lilypond-learning/index.html">Learning Manual</a>
 (in <a class="title" href="user/lilypond-learning-big-page.html">one big page</a> ~ 1.5 MB,
 in <a class="title" href="user/lilypond-learning.pdf">PDF</a>)
              <br>(start here)
 
           <li><a class="title"
-href="user/music-glossary/index.html">Music Glossary (MG)</a>
+href="user/music-glossary/index.html">Music Glossary</a>
 (in <a class="title" href="user/music-glossary-big-page.html">one big page</a> ~ 500 kB,
 in <a class="title" href="user/music-glossary.pdf">PDF</a>)
 
@@ -80,14 +80,14 @@ in <a class="title" href="user/music-glossary.pdf">PDF</a>)
          <ul>
            <li>
 <a class="title" href="user/lilypond/index.html">Notation
-Reference (NR)</a>
+Reference</a>
 (in <a class="title" href="user/lilypond-big-page.html">one big page</a> ~ 4 MB,
 in <a class="title" href="user/lilypond.pdf">PDF</a>)
      <br>(writing music in LilyPond)
 
        <li>
  <a  class="title"
-href="user/lilypond-internals/index.html">Internals Reference (IR)</a>
+href="user/lilypond-internals/index.html">Internals Reference</a>
  (in <a class="title" href="user/lilypond-internals-big-page.html">one big page</a> ~ 1 MB)
      <br>(definitions for tweaking)
         
@@ -98,12 +98,12 @@ href="user/lilypond-internals/index.html">Internals Reference (IR)</a>
          <ul>
               <li>
            <a class="title"
-href="user/lilypond-program/index.html">Application Usage (AU)</a>
+href="user/lilypond-program/index.html">Application Usage</a>
 (in <a class="title" href="user/lilypond-program-big-page.html">one big page</a>,
 in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
            <br>(how to install and run the program)
 
-<li><a class="title"href="../input/lsr/lilypond-snippets/index.html">Snippets List (SL)</a>
+<li><a class="title"href="../input/lsr/lilypond-snippets/index.html">Snippets List</a>
 (in <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">one big page</a> ~ 2MB,
 in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
      <br>(Short tricks, tips, and examples)
index 0ba8be5d8377497587899420e86b2a402b3c308d..a6a4087d975a20106ffadd037f2611c69e42678e 100644 (file)
@@ -26,14 +26,7 @@ particular effect.
 @cindex Internals Reference
 
 The controls available for tuning are described in a separate
-document, the
-@iftex
-Internals Reference manual.
-@end iftex
-@ifnottex
-@ref{Top,Internals Reference,,lilypond-internals}.
-@end ifnottex
-That manual
+document: @rinternalsnamed{Top,the Internals Reference}.  That manual
 lists all different variables, functions and options available in
 LilyPond.  It is written as a HTML document, which is available
 @c leave the @uref as one long line.
index 8be7691a178112175a77abc4dae540e0f7c9499b..65ad79a2dd13b759156e95c503c73b76b8a5ee4c 100644 (file)
@@ -16,11 +16,11 @@ This section deals with general LilyPond input and output issues,
 rather than specific notation.
 
 @menu
-* Input structure::
-* 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
 
 
@@ -31,9 +31,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
 
 
@@ -337,10 +337,10 @@ Almost all printed music includes a title and the composer's name;
 some pieces include a lot more information.
 
 @menu
-* Creating titles::
-* Custom titles::
-* Reference to page numbers::
-* Table of contents::
+* Creating titles::             
+* Custom titles::               
+* Reference to page numbers::   
+* Table of contents::           
 @end menu
 
 
@@ -760,10 +760,10 @@ Init files: @file{../ly/@/toc@/-init@/.ly}.
 @section Working with input files
 
 @menu
-* Including LilyPond files::
-* Different editions from one source::
-* Text encoding::
-* Displaying LilyPond notation::
+* Including LilyPond files::    
+* Different editions from one source::  
+* Text encoding::               
+* Displaying LilyPond notation::  
 @end menu
 
 
@@ -885,8 +885,8 @@ the structure of the score will make it easier to change the
 structure while leaving the notation untouched.
 
 @menu
-* Using variables::
-* Using tags::
+* Using variables::             
+* Using tags::                  
 @end menu
 
 @node Using variables
@@ -1224,8 +1224,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
@@ -1332,11 +1332,12 @@ settings.  Therefore the midi file should not have more than 15 staves
 (or 14 if you do not use drums).  Other staves will remain silent.
 
 @menu
-* Creating MIDI files::
-* MIDI block::
-* What goes into the MIDI output?::
-* Repeats in MIDI::
-* Controlling MIDI dynamics::
+* Creating MIDI files::         
+* MIDI block::                  
+* What goes into the MIDI output?::  
+* Repeats in MIDI::             
+* Controlling MIDI dynamics::   
+* Percussion in MIDI::          
 @end menu
 
 @node Creating MIDI files
@@ -1866,4 +1867,34 @@ copied out and compiled to test microtones in your MIDI player.
 @end ignore
 
 
+@node Percussion in MIDI
+@subsection Percussion in MIDI
+
+Percussion instruments are generally notated in a @code{DrumStaff}
+context and when notated in this way they are outputted correctly
+to MIDI channel@tie{}10, but some pitched percussion instruments,
+like the xylophone, marimba, vibraphone, timpani, etc., are
+treated like @qq{normal} instruments and music for these instruments
+should be entered in a normal @code{Staff} context, not a
+@code{DrumStaff} context, to obtain the correct MIDI output.
+
+Some non-pitched percussion sounds included in the general MIDI
+standard, like melodic tom, taiko drum, synth drum, etc., cannot
+be reached via MIDI channel@tie{}10, so the notation for such
+instruments should also be entered in a normal @code{Staff}
+context, using suitable normal pitches.
+
+Many percussion instruments are not included in the general MIDI
+standard, e.g. castanets.  The easiest, although unsatisfactory,
+method of producing some MIDI output when writing for such
+instruments is to substitute the nearest sound from the standard
+set.
+
+@c TODO Expand with examples, and any other issues
+
+@knownissues
+
+Because the general MIDI standard does not contain rim shots, the
+sidestick is used for this purpose instead.
+
 
index 1dbd05b929ecf512e7011a345f86a280b0698027..4f576c458f0fc2525c5c476f47a27dbdfec07b66 100644 (file)
@@ -791,25 +791,18 @@ This section explains the different portions of the documentation.
 @c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
 @c This is actually a limitation of texi2html. -jm
 @menu
-* About the Learning Manual (LM)::  this manual introduces LilyPond, giving in-depth explanations of how to create notation.
-
-* About the Music Glossary (MG)::  this manual explains musical terms and gives translations of terms in other languages.
-
-* About the Notation Reference (NR)::  this manual is the main portion of the documentation.  It provides detailed information about creating notation.  This book assumes that the reader knows basic material covered in the LM and is familiar with the English musical terms presented in the MG.
-
-* About the Application Usage (AU)::  this discusses the actual programs and operating system-specific issues.
-
-* About the Snippet List (SL)::  this is a collection of short LilyPond examples.
-
-* About the Internals Reference (IR)::  this document gives reference information about LilyPond's internal structures, which is required for constructing tweaks.
-
+* About the Learning Manual::  this manual introduces LilyPond, giving in-depth explanations of how to create notation.
+* About the Music Glossary::  this manual explains musical terms and gives translations of terms in other languages.
+* About the Notation Reference::  this manual is the main portion of the documentation.  It provides detailed information about creating notation.  This book assumes that the reader knows basic material covered in the LM and is familiar with the English musical terms presented in the MG.
+* About the Application Usage::  this discusses the actual programs and operating system-specific issues.
+* About the Snippet List::  this is a collection of short LilyPond examples.
+* About the Internals Reference::  this document gives reference information about LilyPond's internal structures, which is required for constructing tweaks.
 * Other documentation::         there are a few other portions of the documentation, such as News items and the mailist archives.
-
 @end menu
 
 
-@node About the Learning Manual (LM)
-@unnumberedsubsec About the Learning Manual (LM)
+@node About the Learning Manual
+@unnumberedsubsec About the Learning Manual
 
 This book explains how to begin learning LilyPond, as well as
 explaining some key concepts in easy terms.  You should read these
@@ -847,7 +840,7 @@ undertaking large projects!
 
 @end itemize
 
-The LM also contains appendices which are not part of the
+The Learning Manual also contains appendices which are not part of the
 recommended linear reading.  They may be useful for later
 viewing:
 
@@ -867,8 +860,8 @@ all.
 @end itemize
 
 
-@node About the Music Glossary (MG)
-@unnumberedsubsec About the Music Glossary (MG)
+@node About the Music Glossary
+@unnumberedsubsec About the Music Glossary
 
 @cindex idiom
 @cindex jargon
@@ -883,12 +876,12 @@ terminology (especially if you are a non-native English speaker),
 it is highly advisable to consult the glossary.
 
 
-@node About the Notation Reference (NR)
-@unnumberedsubsec About the Notation Reference (NR)
+@node About the Notation Reference
+@unnumberedsubsec About the Notation Reference
 
 This book explains all the LilyPond commands which produce
 notation.  It assumes that readers are familiar with the concepts
-in the Learning manual.
+in the Learning Manual.
 
 @itemize
 
@@ -925,7 +918,8 @@ explains how to create music functions with scheme.
 
 @end itemize
 
-The NR also contains appendices with useful reference charts.
+The Notation Reference also contains appendices with useful
+reference charts.
 
 @itemize
 
@@ -954,8 +948,8 @@ a complete index.
 @end itemize
 
 
-@node About the Application Usage (AU)
-@unnumberedsubsec About the Application Usage (AU)
+@node About the Application Usage
+@unnumberedsubsec About the Application Usage
 
 This book explains how to execute the programs and how to integrate
 LilyPond notation with other programs.
@@ -964,8 +958,8 @@ LilyPond notation with other programs.
 
 @item
 @rprogram{Install}:
-explains how to install LilyPond (including compilation if
-desired).
+explains how to install LilyPondincluding compilation if
+desired.
 
 @item
 @rprogram{Setup}:
@@ -993,8 +987,8 @@ formats to the @code{.ly} format.
 @end itemize
 
 
-@node About the Snippet List (SL)
-@unnumberedsubsec About the Snippet List (SL)
+@node About the Snippet List
+@unnumberedsubsec About the Snippet List
 
 @cindex snippets
 @cindex LSR
@@ -1014,8 +1008,8 @@ The list of snippets for each subsection of the Notation Reference
 (NR) are also linked from the @strong{See also} portion.
 
 
-@node About the Internals Reference (IR)
-@unnumberedsubsec About the Internals Reference (IR)
+@node About the Internals Reference
+@unnumberedsubsec About the Internals Reference
 
 @rinternalsnamed{Top,Internals Reference}: this is a set
 of heavily cross linked HTML pages which document the nitty-gritty
@@ -1041,7 +1035,19 @@ very valuable.
 
 @itemize
 
-@item News: This is a summary of important changes
+@item
+@ifhtml
+@ifset bigpage
+@uref{../topdocs/NEWS.html,News}:
+@end ifset
+@ifclear bigpage
+@uref{../../topdocs/NEWS.html,News}:
+@end ifclear
+@end ifhtml
+@ifnothtml
+News:
+@end ifnothtml
+this is a summary of important changes
 and new features in LilyPond since the previous version.
 
 @item @uref{http://lists.gnu.org/archive/html/lilypond-user/, The
@@ -1060,20 +1066,19 @@ internals, the answer might be in these archives.
 music fragments embedded, the exact LilyPond input that was used
 to produce that image can be viewed by clicking the image.
 
-@item Init files: The location of the documentation files that are
+@item Init files: the location of the documentation files that are
 mentioned here can vary from system to system.  On occasion, this
-manual refers to initialization and example files.  Throughout
-this manual, we refer to input files relative to the top-directory
-of the source archive.  For example,
-@file{input/@/lsr/@/dirname/@/bla@/.ly} may refer to the file
-@file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly}.  On
-binary packages for the UNIX platform, the documentation and
-examples can typically be found somewhere below
+manual refers to initialization and example files.  Throughout this
+manual, we refer to input files relative to the top-directory of the
+source archive.  For example, @file{input/@/lsr/@/dirname/@/bla@/.ly}
+may refer to the file
+@file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly}.  On binary
+packages for the UNIX platform, the documentation and examples can
+typically be found somewhere below
 @file{/usr/@/share/@/doc/@/lilypond/}.  Initialization files, for
-example @file{scm/@/lily@/.scm}, or
-@file{ly/@/engraver@/-init@/.ly}, are usually found in the
-directory @file{/usr/@/share/@/lilypond/}.
+example @file{scm/@/lily@/.scm}, or @file{ly/@/engraver@/-init@/.ly},
+are usually found in the directory @file{/usr/@/share/@/lilypond/}.
+For more details, see @ref{Other sources of information}.
 
 @end itemize
 
-
index 399657042985084bbef6c8355e2756db6654be77..987df7f8fbfd1fe943258108e928566bbd816689 100644 (file)
 
 @menu
 * Chord name chart::            
-* Common chord modifiers::
-* Predefined fretboard diagrams::
+* Common chord modifiers::      
+* Predefined fretboard diagrams::  
 * MIDI instruments::            
 * List of colors::              
 * The Feta font::               
 * Note head styles::            
 * Text markup commands::        
-* Text markup list commands::   
+* Text markup list commands::
 * List of articulations::       
+* Percussion notes::            
 * All context properties::      
 * Layout properties::           
 * Identifiers::                 
@@ -593,9 +594,14 @@ The following styles may be used for note heads.
 
 Here is a chart showing all scripts available,
 
-@lilypondfile[ragged-right,quote]{script-chart.ly}
+@lilypondfile[quote]{script-chart.ly}
 
 
+@node Percussion notes
+@appendixsec Percussion notes
+
+@lilypondfile[quote]{percussion-chart.ly}
+
 
 @node All context properties
 @appendixsec All context properties
index 049411d20ae455ef9b7a0dfe66c65510db9bd45c..717e924df397bcccadb5861fa5d3038f5e321127 100644 (file)
@@ -12,7 +12,7 @@
 @section Percussion
 
 @menu
-* Common notation for percussion::
+* Common notation for percussion::  
 @end menu
 
 @node Common notation for percussion
@@ -22,22 +22,39 @@ Rhythmic music is primarily used for percussion and drum notation, but it can
 also be used to show the rhythms of melodies.
 
 @menu
-* References for percussion::
-* Basic percussion notation::
-* Percussion staves::
-* Ghost notes::
+* References for percussion::   
+* Basic percussion notation::   
+* Drum rolls::                  
+* Pitched percussion::          
+* Percussion staves::           
+* Custom percussion staves::    
+* Ghost notes::                 
 @end menu
 
 @node References for percussion
 @subsubsection References for percussion
 
-@c TODO Add refs
-TBC
+TODO add more.
 
+@itemize
+
+@item Some percussion may be notated on a rhythmic staff; this is
+discussed in @ref{Showing melody rhythms}, and
+@ref{Instantiating new staves}.
+
+@item MIDI output is discussed in a separate section; please see
+@ref{Percussion in MIDI}.
+
+@end itemize
 
 @seealso
 
-Internals Reference: @rinternals{RhythmicStaff}.
+Notation Reference:
+@ref{Showing melody rhythms},
+@ref{Instantiating new staves}.
+@ref{Percussion in MIDI}.
+
+Snippets: @rlsr{Percussion}.
 
 
 @node Basic percussion notation
@@ -46,138 +63,66 @@ Internals Reference: @rinternals{RhythmicStaff}.
 @cindex percussion
 @cindex drums
 
-
 Percussion notes may be entered in @code{\drummode} mode, which is
-similar to the standard mode for entering notes.  Each piece of
-percussion has a full name and an abbreviated name, and both can
-be used in input files.  The simplest way to enter percussion notes
-is to use the @code{\drums} command, which creates the correct
-context and entry mode for percussion:
+similar to the standard mode for entering notes.  The simplest way
+to enter percussion notes is to use the @code{\drums} command,
+which creates the correct context and entry mode for percussion:
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \drums {
-  hihat hh bassdrum bd
+  hihat4 hh bassdrum bd
 }
 @end lilypond
 
 This is shorthand for:
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \new DrumStaff {
   \drummode {
-    hihat hh bassdrum bd
+    hihat4 hh bassdrum bd
   }
 }
 @end lilypond
 
-Note, that percussion clefs are added automatically in a
-@code{DrumStaff} context.  But it is possible to use other clefs
-if you want.
-
-
-The complete list of drum names is in the init file
-@file{ly/@/drumpitch@/-init@/.ly}.
-
-Here is the list of abbreviations You can use in a drum Staff:
-
-@example
-   bda  acousticbassdrum
-   bd  bassdrum
-   ssh  hisidestick
-   ss  sidestick
-   ssl  losidestick
-   sna  acousticsnare
-   sn  snare
-   hc  handclap
-   sne  electricsnare
-   tomfl  lowfloortom
-   hhc  closedhihat
-   hh  hihat
-   tomfh  highfloortom
-   hhp  pedalhihat
-   toml  lowtom
-   hho  openhihat
-   hhho  halfopenhihat
-   tomml  lowmidtom
-   tommh  himidtom
-   cymca  crashcymbala
-   cymc  crashcymbal
-   tomh  hightom
-   cymra  ridecymbala
-   cymr  ridecymbal
-   cymch  chinesecymbal
-   rb  ridebell
-   tamb  tambourine
-   cyms  splashcymbal
-   cb  cowbell
-   cymcb  crashcymbalb
-   vibs  vibraslap
-   cymrb  ridecymbalb
-   bohm  mutehibongo
-   boh  hibongo
-   boho  openhibongo
-   bolm  mutelobongo
-   bol  lobongo
-   bolo  openlobongo
-   cghm  mutehiconga
-   cglm  muteloconga
-   cgho  openhiconga
-   cgh  hiconga
-   cglo  openloconga
-   cgl  loconga
-   timh  hitimbale
-   timl  lotimbale
-   agh  hiagogo
-   agl  loagogo
-   cab  cabasa
-   mar  maracas
-   whs  shortwhistle
-   whl  longwhistle
-   guis  shortguiro
-   guil  longguiro
-   gui  guiro
-   cl  claves
-   wbh  hiwoodblock
-   wbl  lowoodblock
-   cuim  mutecuica
-   cuio  opencuica
-   trim  mutetriangle
-   tri  triangle
-   trio  opentriangle
-   tt  tamtam
-   ua  oneup
-   ub  twoup
-   uc  threeup
-   ud  fourup
-   ue  fiveup
-   da  onedown
-   db  twodown
-   dc  threedown
-   dd  fourdown
-   de  fivedown
-@end example
-
-Note that the normal notation of pitches in a @code{DrumStaff}
-will cause an error message.
-
-
-
-Drum rolls are indicated with three slashes across the stem.
-For quarter notes or longer the three slashes are shown explicitly,
-eighth notes are shown with two slashes (the beam being the third),
-and drum rolls shorter than eighths have one stem slash to
+Each piece of percussion has a full name and an abbreviated name,
+and both can be used in input files.  The full list of percussion
+note names may be found in @ref{Percussion notes}.
+
+Note that the normal notation of pitches (such as @code{cis4}) in
+a @code{DrumStaff} context will cause an error message.
+Percussion clefs are added automatically to a @code{DrumStaff}
+contex, but other clefs may also be used.
+
+There are a few issues concerning MIDI support for percussion
+instruments; for details please see @ref{Percussion in MIDI}.
+
+@seealso
+
+Notation Reference: @ref{Percussion in MIDI}, @ref{Percussion notes}.
+
+File: @file{ly/@/drumpitch@/-init@/.ly}
+
+Snippets: @rlsr{Percussion}.
+
+
+@node Drum rolls
+@subsubsection Drum rolls
+
+Drum rolls are indicated with three slashes across the stem.  For
+quarter notes or longer the three slashes are shown explicitly,
+eighth notes are shown with two slashes (the beam being the
+third), and drum rolls shorter than eighths have one stem slash to
 supplement the beams.  This is achieved with the tremolo notation,
-@code{:32}, see @ref{Tremolo repeats}.  Here's an example of
-some snare rolls:
+@code{:32}, as described in @ref{Tremolo repeats}.  Here is an
+example of some snare rolls:
 
-@lilypond[quote,ragged-right,verbatim]
-\new DrumStaff
-\drummode {
+@lilypond[quote,verbatim]
+\drums {
   \time 2/4
-  sn16 sn8 sn16 sn8 sn8:32~ |
-  sn8 sn8 sn4:32~ |
-  sn4 sn8 sn16 sn16 |
-  sn4 r4 |
+  sn16 sn8 sn16 sn8 sn8:32 ~
+  sn8 sn8 sn4:32 ~
+  sn4 sn8 sn16 sn16
+  sn4 r4
 }
 @end lilypond
 
@@ -185,68 +130,90 @@ Sticking can be indicated by placing @code{^"R"} or @code{^"L"}
 after the note.  The @code{staff-padding} property may be
 overridden to achieve a pleasing baseline.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \drums {
-       \repeat "unfold" 2 { sn16 ^"L" sn^"R" sn^"L" sn^"L" sn^"R" sn^"L"  sn^"R" sn^"R" }
-                               
+  \repeat unfold 2 {
+    sn16 ^"L" sn^"R" sn^"L" sn^"L" sn^"R" sn^"L"  sn^"R" sn^"R"
+  }
 }
 @end lilypond
 
+@seealso
+
+Snippets: @rlsr{Percussion}.
+
+
+@node Pitched percussion
+@subsubsection Pitched percussion
+
+Certain pitched percussion instruments (e.g. xylophone,
+vibraphone, and timpani) are written using with normal staffs.
+This is covered in other sections of the manual.
 
 @seealso
 
-Internals Reference: @rinternals{note-event}.
+@c TODO: possibly link to an alternate section of NR 3.5, if
+@c "percussion in MIDI" gets a separate subsubsection for
+@c pitched percussion sounds.  -gp
+Notation Reference: @ref{Percussion in MIDI}.
+
+Snippets: @rlsr{Percussion}.
+
 
 @node Percussion staves
 @subsubsection Percussion staves
+
 @cindex percussion
 @cindex drums
 
 A percussion part for more than one instrument typically uses a
-multiline staff where each position in the staff refers to one piece
-of percussion.
-
-
-To typeset the music, the notes must be interpreted in a
-@rinternals{DrumStaff} and @rinternals{DrumVoice} contexts
+multiline staff where each position in the staff refers to one
+piece of percussion.  To typeset the music, the notes must be
+interpreted in @code{DrumStaff} and @code{DrumVoice} context.
 
-@lilypond[quote,ragged-right,verbatim]
-up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
-down = \drummode { bassdrum4 snare8 bd r bd sn4 }
-  \new DrumStaff <<
-    \new DrumVoice { \voiceOne \up }
-    \new DrumVoice { \voiceTwo \down }
-  >>
+@lilypond[quote,verbatim]
+up = \drummode {
+  crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat
+}
+down = \drummode {
+  bassdrum4 snare8 bd r bd sn4
+}
+\new DrumStaff <<
+  \new DrumVoice { \voiceOne \up }
+  \new DrumVoice { \voiceTwo \down }
+>>
 @end lilypond
 
 The above example shows verbose polyphonic notation.  The short
 polyphonic notation, described in @rlearning{I'm hearing Voices},
-can also be used if the @rinternals{DrumVoice}s are instantiated
-by hand first.  For example,
+can also be used if the voices are instantiated by hand first.
+For example,
 
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,verbatim]
 \new DrumStaff <<
-  \new DrumVoice = "1" { s1 *2 }
-  \new DrumVoice = "2" { s1 *2 }
+  \new DrumVoice = "1" { s1*2 }
+  \new DrumVoice = "2" { s1*2 }
   \drummode {
     bd4 sn4 bd4 sn4
-    <<
-      { \repeat unfold 16 hh16 }
-      \\
-      { bd4 sn4 bd4 sn4 }
-    >>
+    << {
+      \repeat unfold 16 hh16
+    } \\ {
+      bd4 sn4 bd4 sn4
+    >>
   }
 >>
 @end lilypond
 
-
 There are also other layout possibilities.  To use these, set the
-property @code{drumStyleTable} in context @rinternals{DrumVoice}.
-The following variables have been predefined
+property @code{drumStyleTable} in context @code{DrumVoice}.  The
+following variables have been predefined:
 
+@c FIXME: decide what to do about this table.  (ie verbatim or not)
 @table @code
+
 @item drums-style
-This is the default.  It typesets a typical drum kit on a five-line staff
+This is the default.  It typesets a typical drum kit on a
+five-line staff:
 
 @lilypond[quote,line-width=10.0\cm]
 nam = \lyricmode {
@@ -275,13 +242,13 @@ mus = \drummode {
 }
 @end lilypond
 
-The drum scheme supports six different toms.  When there are fewer toms,
-simply select the toms that produce the desired result, i.e., to get toms
-on the three middle lines you use @code{tommh}, @code{tomml}, and
-@code{tomfh}.
+The drum scheme supports six different toms.  When there are fewer
+toms, simply select the toms that produce the desired result.  For
+example, to get toms on the three middle lines you use
+@code{tommh}, @code{tomml}, and @code{tomfh}.
 
 @item timbales-style
-This typesets timbales on a two line staff
+This typesets timbales on a two line staff:
 
 @lilypond[quote,ragged-right]
 nam = \lyricmode { timh ssh timl ssl cb }
@@ -306,7 +273,7 @@ mus = \drummode { timh ssh timl ssl cb s16 }
 @end lilypond
 
 @item congas-style
-This typesets congas on a two line staff
+This typesets congas on a two line staff:
 
 @lilypond[quote,ragged-right]
 nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
@@ -332,7 +299,7 @@ mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
 @end lilypond
 
 @item bongos-style
-This typesets bongos on a two line staff
+This typesets bongos on a two line staff:
 
 @lilypond[quote,ragged-right]
 nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
@@ -358,7 +325,7 @@ mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
 @end lilypond
 
 @item percussion-style
-To typeset all kinds of simple percussion on one line staves.
+To typeset all kinds of simple percussion on one line staves:
 
 @lilypond[quote,ragged-right]
 nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
@@ -381,10 +348,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
 @end lilypond
 @end table
 
-If you do not like any of the predefined lists you can define your own
-list at the top of your file
 
-@lilypond[quote,ragged-right,verbatim]
+@node Custom percussion staves
+@subsubsection Custom percussion staves
+
+If you do not like any of the predefined lists you can define your
+own list at the top of your file.
+
+@lilypond[quote,verbatim]
 #(define mydrums '(
          (bassdrum     default   #f         -1)
          (snare        default   #f         0)
@@ -402,16 +373,149 @@ down = \drummode { bd4 sn bd toml8 toml }
 @end lilypond
 
 
+@snippets
+
+FIXME: MOVE ALL THESE TO LSR!  -gp
+
+Here are some examples:
+
+Two Woodblocks, entered with wbh (high woodblock) and wbl (low woodblock)
+
+@lilypond[quote,verbatim]
+#(define mydrums '(
+         (hiwoodblock     default   #t        3)
+         (lowoodblock       default   #t        -2)))
+        %% These lines define the position of the woodblocks in the stave, if You like, You can change it 
+        % or You can use  special note heads for the woodblocks.
+        woodstaff = { \override Staff.StaffSymbol #'line-positions = #'(-2 3)  
+% this defines a staff with only two lines. It also defines the positions of the two lines
+        \override Staff.BarLine #'bar-size  = #3 }
+        %% this is neccessary. If not entered, the barline wuld be too short!
+ \new DrumStaff  {
+        \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
+        %% with this You load Your new drum style table
+        \woodstaff 
+        \drummode {
+       \time 2/4
+       wbl8 wbl16 wbl wbh 8 -> wbl |
+       wbl 8 wbl16  wbh ~ -> wbh wbl 16 r8 |
+        }
+}
+@end lilypond
+
+@seealso
+
+Note that in this special case the length of the barline must
+altered with @code{\override Staff.BarLine #'bar-size #number}.
+Otherwise it would be too short. And You have also to define the
+positions of the to stafflines.  For more information about these
+delicate things have a look at @ref{Staff symbol}.
+
+
+A tambourine, entered with "tamb":
+
+@lilypond[quote,verbatim]
+ % tambourine-music is entered with "tamb"
+       tambustaff = { \override Staff.StaffSymbol #'line-positions = #'( 0 )   
+               \override Staff.BarLine #'bar-size  = #3 
+       \set DrumStaff.instrumentName="Tambourine"}
+ \new DrumStaff {
+        \tambustaff 
+% broken
+%       \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
+        \drummode { \time 6/8
+               \repeat "unfold" 2 { tamb8. tamb16 tamb8 tamb tamb tamb | }
+               tamb4. tamb8 tamb tamb | tamb2.*5/6 \startTrillSpan s8 \stopTrillSpan |
+               %% the trick with the scaled duration and the shorter rest is neccessary for the correct ending of the trill-span!
+                                }
+                                        }
+
+@end lilypond 
+Music for Tam-Tam (entered with "tt"):
+
+@lilypond[quote,verbatim]
+ #(define mydrums '(
+         (tamtam     default   #t      0) ) )
+       tamtamstaff = { \override Staff.StaffSymbol #'line-positions = #'( 0 )   
+               \override Staff.BarLine #'bar-size  = #3 
+       \set DrumStaff.instrumentName="Tamtam"}
+ \new DrumStaff {
+        \tamtamstaff
+        \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
+        \drummode { tt 1 \pp \laissezVibrer 
+                                } 
+                                        }
+@end lilypond
+
+Two different bells, entered with "cb" (cowbell) and "rb" (ridebell)" 
+
+@lilypond[quote,verbatim]
+%% bells are enterd with:
+% "cb" (cowbell) and "rb" (ridebell)" 
+ #(define mydrums '(
+         (ridebell     default   #t        3 )
+         (cowbell       default   #t        -2)))
+       
+        bellstaff = { \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)  
+                \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
+        \override Staff.BarLine #'bar-size  = #3   
+        \set DrumStaff.instrumentName="Different Bells"}
+ \new DrumStaff  {
+        \bellstaff
+        \drummode {
+       \time 2/4
+       \repeat "unfold" 2 { rb 8 rb cb cb16  rb ~ -> | rb16  rb 8 rb 16 cb 8 cb | }
+        }
+}
+@end lilypond
+
+Here an short example by maestro Stravinsky (from "L'hostire du Soldat")
+
+@lilypond[quote,verbatim]
+ #(define mydrums '(
+         (bassdrum         default #t 4 ) 
+        (snare              default #t -4 )
+         (tambourine     default   #t      0) ) )
+        
+ global = { \time 3/8 s 4. \time 2/4 s 2 *2 \time 3/8 s 4. \time 2/4 s 2 }
+        
+drumsA = { \context DrumVoice << {  \global }
+       {\drummode { 
+  \autoBeamOff 
+\stemDown sn 8 \stemUp tamb s8 |
+                sn4 \stemDown sn4  |
+\stemUp tamb 8 \stemDown sn8 \stemUp sn16 \stemDown sn \stemUp sn8   |
+\stemDown sn 8 \stemUp tamb s8 |
+\stemUp sn4 s8 \stemUp tamb |
+       } } >> }
+drumsB = { \drummode { s 4 bd 8 s 2*2 s 4 bd8 s 4 bd8 s 8 } }
+        
+\layout {
+               indent = #40
+} 
+
+ \score { 
+ \new StaffGroup
+ <<
+ \new DrumStaff 
+ {  \set DrumStaff.instrumentName= \markup { \column { "Tambourine" "et" "caisse claire s. timbre" } }
+ \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \drumsA } 
+ \new DrumStaff 
+ { \set DrumStaff.instrumentName= "Grosse Caisse"
+ \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \drumsB } 
+ >> 
+
+ }
+@end lilypond
+
 @seealso
 
-Init files: @file{ly/@/drumpitch@/-init@/.ly}.
+Snippets: @rlsr{Percussion}.
 
 Internals Reference: @rinternals{DrumStaff}, @rinternals{DrumVoice}.
 
-@knownissues
-
-Because general MIDI does not contain rim shots, the sidestick is used
-for this purpose instead.
 
 
 @c TODO: check name -gp
@@ -419,10 +523,9 @@ for this purpose instead.
 @subsubsection Ghost notes
 
 Ghost notes for drums and percussion may be created using the
-@code{\parenthesize} command detailed in @ref{Parentheses}.  However,
-the default @code{\drummode} does
-not include the @code{Parenthesis_engraver} plugin which allows
-this.
+@code{\parenthesize} command detailed in @ref{Parentheses}.
+However, the default @code{\drummode} does not include the
+@code{Parenthesis_engraver} plugin which allows this.
 
 @lilypond[quote,ragged-right,verbatim,fragment]
 \new DrumStaff \with {
@@ -434,8 +537,8 @@ this.
     <<
       {
         hh8[ hh] <hh sn> hh16
-        < \parenthesize sn > hh < \parenthesize
-        sn > hh8 <hh sn> hh
+        < \parenthesize sn > hh
+        < \parenthesize sn > hh8 <hh sn> hh
       } \\ {
         bd4 r4 bd8 bd r8 bd
       }
@@ -448,5 +551,8 @@ this.
 Also note that you must add chords (@code{< >} brackets)
 around each @code{\parenthesize} statement.
 
+@seealso
+
+Snippets: @rlsr{Percussion}.
 
 
index 3a6c66fefcc167e9001b804b940b3ea213c63871..62618eb377efc8ef96a8b26837f95c2bce12da80 100644 (file)
@@ -52,6 +52,11 @@ articulations, just like simple notes:
 <c e g>2 <c f a>4-> <e g c>-.
 @end lilypond
 
+Relative mode can be used for pitches in chords; the preceding pitch
+into the same chord is still used as a reference for relative pitches,
+but when a chord is completed, the reference pitch for relative mode
+is the first note of this chord --not the last note of the chord.
+
 For more information about chords, see @ref{Chord notation}.
 
 @seealso
@@ -138,23 +143,63 @@ multiple staves.
 @node Single-staff polyphony
 @unnumberedsubsubsec Single-staff polyphony
 
-To typeset parallel pieces of music that have the same rhythm, they
-can be combined into a single @code{Voice} context, thus forming
-chords.  To achieve this, enclose them in a simultaneous music
-construction:
+@c Already reordered as Carl suggested --FV
+The basic structure of code needed to achieve multiple, independent
+voices in a single staff is illustrated in the following example:
 
-@lilypond[quote,relative=2,verbatim]
-\new Voice <<
-  { e4 f8 d e16 f g8 d4 }
-  { c4 d8 b c16 d e8 b4 }
+@lilypond[quote,relative=3,verbatim]
+\new Staff <<
+  \new Voice = "first"
+    { \voiceOne r8 r16 g e8. f16 g8[ c,] f e16 d }
+  \new Voice= "second"
+    { \voiceTwo d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
 >>
 @end lilypond
 
-This method leads to strange beamings and warnings if the pieces of
-music do not have the same rhythm.  To typeset multiple, truly
-independent voices in a single staff, the @code{<<@{...@} \\
-@{...@}>>} construction is used, where the two (or more) voices are
-separated by double backslashes.
+Here, voices are instantiated explicitly and are given a name. The
+@code{\voiceOne} ... @code{\voiceFour} commands set up the voices so
+that first and third voices get stems up, second and fourth voices get
+stems down, third and fourth voice note heads are horizontally
+shifted, and rests in the respective voices move to avoid collisions.
+
+Using the @code{\oneVoice} command, we can make a voice to be into the
+same @code{Voice} context before and after a temporary polyphonic
+passage.  For example:
+
+@example
+<< @{ \voiceOne ... @} \new Voice @{ \voiceTwo ... @} >> \oneVoice
+@end example
+
+This construct keeps a voice alive throughout the polyphonic section.
+Using the name given when created, this allows lyrics to be assigned
+to one consistent voice.
+
+@lilypond[quote, verbatim, relative=2]
+<<
+  \new Voice = "melody" {
+    a4
+    <<
+      {
+        \voiceOne
+        g f
+      }
+      \new Voice {
+        \voiceTwo
+        e d
+      }
+    >>
+    \oneVoice
+    e
+  }
+  \new Lyrics \lyricsto "melody" {
+  This is my song.
+  }
+>>
+@end lilypond
+
+The @code{<<@{...@} \\ @{...@}>>} construction can be used as a
+simplified method, where the two (or more) voices are separated by
+double backslashes.  Our first example could be typeset as follows:
 
 @lilypond[quote,relative=3,verbatim]
 <<
@@ -164,11 +209,13 @@ separated by double backslashes.
 >>
 @end lilypond
 
-First and third voices get stems up, second and fourth voices get
-stems down, third and fourth voice note heads are horizontally shifted,
-and rests move to avoid collisions.  In the following example, the
-intermediate voice has stems up, therefore we enter it in the third
-place, so it becomes voice three which has the stems up as desired.
+This syntax is simpler and can be used where it does not care that
+temporary voices are created and then discarded.  These implicitly
+created voices are given the settings equivalent to the effect of the
+@code{\voiceOne} ... @code{\voiceFour} commands, in the order in which
+they appear in the code.  In the following example, the intermediate
+voice has stems up, therefore we enter it in the third place, so it
+becomes voice three which has the stems up as desired.
 
 @lilypond[quote,relative=3,verbatim]
 <<
@@ -183,20 +230,26 @@ place, so it becomes voice three which has the stems up as desired.
 Spacing rests are often used to avoid too many rests, as seen in the
 example above.
 
-Each music expression in the @code{<<@{...@} \\ @{...@}>>} construct
-is placed in a new voice, distinct from the voice for single-voice
-music; to temporarily add only one additional voice to an existing
-one, it is necessary to instantiate that voice explicitly.  For
-these purposes, the @code{\voiceOne} ... @code{\voiceFour}, and
-@code{\oneVoice} commands can be used:
+In all but simplest works it is advised to create explicit
+@code{Voice} contexts using the @code{\new} and @code{\context}
+commands as it is explained in @rlearning{Contexts and engravers} and
+@rlearning{Explicitly instantiating voices}.
 
-@example
-<< @{ \voiceOne ... @} \new Voice @{ \voiceTwo ... @} >> \oneVoice
-@end example
+In the special case that we want to typeset parallel pieces of music
+that have the same rhythm, we can combine them into a single
+@code{Voice} context, thus forming chords.  To achieve this, enclose
+them in a simple simultaneous music construction and make it to be an
+explicit voice:
 
-This is a better construct to keep the control of the voices, for
-example, to ease a consistent assign of lyrics to the proper voice
-context.
+@lilypond[quote,relative=2,verbatim]
+\new Voice <<
+  { e4 f8 d e16 f g8 d4 }
+  { c4 d8 b c16 d e8 b4 }
+>>
+@end lilypond
+
+This method leads to strange beamings and warnings if the pieces of
+music do not have the same rhythm.
 
 @predefined
 
index 43f4e942278624dff03208331c3bac84febbc0e2..db7f770ebbea91b10cfd63e3dd0f702388aba102 100644 (file)
@@ -284,8 +284,8 @@ several music pieces, as described in
 
 Using a specific syntax, text blocks can be spread
 over multiple pages, making possible to print
-text documents or books -- and therefore to
-use LilyPond as a word processor.  This syntax is described in
+text documents or books (and therefore to
+use LilyPond as a word processor).  This syntax is described in
 @ref{Multi-page markup}.
 
 @predefined
@@ -345,7 +345,8 @@ specific syntax called @qq{markup mode}.
 
 The markup syntax is similar to LilyPond's usual syntax: a
 @code{\markup} expression is enclosed in curly braces @code{@{
-@dots{} @}}.
+@dots{} @}}.  A single word is regarded as a minimal expression,
+and therefore does not need to be enclosed with braces.
 
 Unlike simple @q{quoted text} indications, @code{\markup} blocks
 may contain nested expressions or specific commands,
@@ -353,7 +354,7 @@ entered using the backslash @code{\} character.
 Such commands only affect the first following expression.
 
 @lilypond[quote,verbatim,fragment,relative=1]
-e1-\markup "intenso"
+e1-\markup intenso
 a2^\markup { poco \italic più forte  }
 c e1
 d2_\markup { \italic "string. assai" }
@@ -368,17 +369,17 @@ c
 @cindex printing special characters
 @cindex quoted text in markup mode
 
-A @code{\markup} block may also contain quoted text, which
-can be useful to print special characters such as @code{\} and @code{#},
-or even double quotation marks -- these have to be preceded
-with backslashes:
+A @code{\markup} block may also contain quoted text strings.
+Such strings are treated as minimal text expressions, and
+therefore any markup command or special character (such as
+@code{\} and @code{#}) will be printed verbatim without affecting
+the formatting of the text.  This syntax even allows to print
+double quotation marks, by preceding them with backslashes
 
 @lilypond[quote,verbatim,fragment,relative=1]
-\clef bass
-a^\markup "##\ LEPORELLO \##"
-a_\markup "Bravi! \"Cosa rara\"!"
-r a8 d
-cis a r4 r2
+d1^"\italic markup..."
+d_\markup \italic "... prints \"italic\" letters!"
+d d
 @end lilypond
 
 The way markup expressions are defined affects 
@@ -611,7 +612,7 @@ be moved as a whole, using the syntax described in
 
 Markup objects may be aligned in different ways.  By default,
 a text indication is aligned on its left edge: in the following
-example, there's no difference
+example, there is no difference
 between the first and the second markup.
 
 @lilypond[quote,verbatim,fragment,relative=1]
@@ -697,6 +698,9 @@ d,^\markup {
 a'4 a g2 a
 @end lilypond
 
+@funindex \column
+@funindex \center-align
+
 @cindex multi-line markup
 @cindex multi-line text
 @cindex columns, text
@@ -721,9 +725,13 @@ is placed on its own line, either left-aligned or centered:
 }
 @end lilypond
 
+@funindex \fill-line
+
+@cindex centering text on the page
+
 Similarly, a list of elements or expressions may be
-spread to fill the entire horizontal line width -- if there
-is only one element, it will be centered on the page.
+spread to fill the entire horizontal line width (if there
+is only one element, it will be centered on the page).
 These expressions can, in turn, include multi-line text
 or any other markup expression:
 
@@ -744,6 +752,12 @@ or any other markup expression:
 }
 @end lilypond
 
+@funindex \wordwrap
+@funindex \justify
+
+@cindex wordwrapped text
+@cindex justified text
+
 Long text indications can also be automatically wrapped
 accordingly to the given line width.  These will be
 either left-aligned or justified, as shown in
@@ -783,34 +797,142 @@ can be found in @ref{Align}.
 @node Graphic notation inside markup
 @subsubsection Graphic notation inside markup
 
-Graphics around text:
-\box
-\circle
+@cindex graphics, embedding
+@cindex drawing graphic objects
+
+Various graphic objects may be added to a score,
+using specific markup commands.
+
+@funindex \box
+@funindex \circle
+@funindex \rounded-box
+@funindex \bracket
+@funindex \hbracket
+
+@cindex decorating text
+@cindex framing text
+
+Some markup commands allow to decorate text elements
+with graphics, as demonstrated in the following example.
+
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-align {
+    \circle Jack
+    \box "in the box"
+    \null
+    \line {
+      Erik Satie
+      \hspace #3
+      \bracket "1866 - 1925"
+    }
+    \null
+    \rounded-box \bold Prelude
+  }
+}
+@end lilypond
+
+@funindex \pad-markup
+@funindex \pad-x
+@funindex \pad-to-box
+@funindex \pad-around
+
+@cindex padding around text
+@cindex text padding
+
+Some commands may require to increase the padding around
+the text: this is achieved with some specific commands
+exhaustively described in @ref{Align}.
 
-(TODO: document padding commands here)
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-align {
+    \box "Charles Ives (1874 - 1954)"
+    \null
+    \box \pad-markup #2 "THE UNANSWERED QUESTION"
+    \box \pad-x #8 "A Cosmic Landscape"
+    \null
+  }
+}
+\markup \column {
+  \line {
+    \hspace #10
+    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
+      \bold "Largo to Presto"
+  }
+  \pad-around #3
+      "String quartet keeps very even time,
+Flute quartet keeps very uneven time."
+}
+@end lilypond
+
+@funindex \combine
+@funindex \draw-circle
+@funindex \filled-box
+@funindex \triangle
+@funindex \draw-line
+@funindex \arrow-head
+
+@cindex graphic notation
+@cindex symbols, non-musical
+
+Other graphic elements or symbols may be printed
+without requiring any text.  As with any markup
+expression, such objects can be combined together:
 
-\bracket
-\hbracket
+@lilypond[quote,verbatim]
+\markup {
+  \combine
+    \draw-circle #4 #0.4 ##f
+    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
+  \hspace #5
 
-"Standalone" graphics:
+  \center-align {
+    \triangle ##t
+    \combine
+      \draw-line #'(0 . 4)
+      \arrow-head #Y #DOWN ##f
+  }
+}
+@end lilypond
 
-\arrow-head
-\draw-line
-\draw-circle
-\filled-box
-\triangle
-\strut
+@funindex \epsfile
+@funindex \postscript
 
-\with-color
+@cindex embedded graphics
+@cindex images, embedding
+@cindex graphics, embedding
+@cindex postscript
 
+Advanced graphic features include the ability to
+include external image files converted to the
+Encapsulated PostScript format (@emph{eps}), or
+to directly embed graphics into the input file,
+using native PostScript code.
 
-Advanced graphics:
-\stencil
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup {
+  \combine
+    \epsfile #X #10 #"./context-example.eps"
+    \postscript #"
+      -2 3 translate
+      2.7 2 scale
+      newpath
+      2 -1 moveto
+      4 -2 4 1 1 arct
+      4 2 3 3 1 arct
+      0 4 0 3 1 arct
+      0 0 1 -1 1 arct
+      closepath
+      stroke"
+  }
+c
+@end lilypond
 
-\postscript
-\epsfile
+An exhaustive list of graphics-specific commands
+can be found in @ref{Graphic}.
 
-\with-dimensions
+@c TODO: add @seealso (and link with NR Editorial)
 
 @node Music notation inside markup
 @subsubsection Music notation inside markup
diff --git a/VERSION b/VERSION
index 832beec80674bf9eb8f091ae81487ca39d45daf2..581effe7462d24bd0168f3227be43b00a4e49d40 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=11
-PATCH_LEVEL=55
+PATCH_LEVEL=56
 MY_PATCH_LEVEL=
 
index a53fb372b4a73b74a2dc99b1a89959dda24855f3..df78a94fe3824b0ba5515f5aa40e606bd9465096 100644 (file)
@@ -1,4 +1,6 @@
 \include "predefined-guitar-fretboards.ly"
+\version "2.11.56"
+
 
 mychords = \chordmode {c1 c:m c:aug c:dim c:7 c:maj7 c:m7 \break }
 
diff --git a/input/manual/percussion-chart.ly b/input/manual/percussion-chart.ly
new file mode 100644 (file)
index 0000000..cc0b304
--- /dev/null
@@ -0,0 +1,68 @@
+\version "2.11.51"
+
+% yes, I know this is a mess.  But I'm not going to fuss with
+% it one day before I leave.  -gp
+
+% this chart is used in the manual too.
+
+\header {
+    texidoc ="@cindex Percussion notes
+
+This chart shows all percussion and drum notes."
+}
+
+myBreak = { \bar " " \break }
+
+\new Score \with {
+  \remove "Bar_number_engraver"
+} \new DrumStaff \with {
+  \remove "Time_signature_engraver"
+} \context DrumVoice {
+
+%% this stuff set up nice || bar lines to divide percussion notes
+%% into related fields, but it should be placed in the actual
+%% music, not as a separate voice.  -gp
+%{
+barlines = {  
+\repeat "unfold" 4 {s 1 \bar" " } s 1 \bar "||" 
+\repeat "unfold" 2 { s 1 \bar" "  s 1 \bar" " s 1 \bar "||" }
+\repeat "unfold" 4 {s 1 \bar" " } s 1 \bar "||" 
+\repeat "unfold" 7  {s 1 \bar" " }  s 1 \bar "||" 
+s 1 \bar" "  s 1 \bar "||" 
+\repeat "unfold" 2 { \repeat "unfold" 5 {s 1 \bar" " } s 1 \bar "||" }         
+\repeat "unfold" 2 { s 1 \bar" "  s 1 \bar "||" }
+\repeat "unfold" 2 {s 1 \bar" " } s 1 \bar "||" 
+\repeat "unfold" 4 {s 1 \bar" " } s 1 \bar "||" 
+s 1 \bar" "  s 1 \bar "||" 
+\repeat "unfold" 3 {s 1 \bar" " } s 1 \bar "||" 
+\repeat "unfold" 2 {s 1 \bar" " } s 1 \bar "||" 
+\repeat "unfold" 3 {\repeat "unfold" 4 {s 1 \bar" " } s 1 \bar "||"  }
+}
+%}
+
+\drummode { 
+\textLengthOn
+\cadenzaOn
+bda1 ^"acousticbassdrum: bda" bd   ^"bassdrum: bd" sn  ^"snare: sn" sne  ^"electricsnare: sne" sna  ^"acousticsnare: sna" \myBreak
+tomfl  ^"lowfloortom: tomfl" tomfh  ^"highfloortom: tomfh" toml  ^"lowtom: toml"  tomh  ^"hightom: tomh" 
+tomml  ^"lowmidtom: tomml" tommh  ^"himidtom: tommh" \myBreak
+hhc  ^"closedhihat: hhc"  hh  ^"hihat: hh" hhp  ^"pedalhihat: hhp" hho  ^"openhihat: hho" hhho  ^"halfopenhihat: hhho" \myBreak
+cymca  ^"crashcymbala: cymca" cymc  ^"crashcymbal: cymc" cymra  ^"ridecymbala: cymra" cymr  ^"ridecymbal: cymr"  \myBreak cymch  ^"chinesecymbal: cymch" cyms  ^"splashcymbal: cyms"
+cymcb  ^"crashcymbalb: cymcb"  cymrb  ^"ridecymbalb: cymrb" 
+rb  ^"ridebell: rb" cb  ^"cowbell: cb" \myBreak
+bohm  ^"mutehibongo: bohm" boh  ^"hibongo: boh" boho  ^"openhibongo: boho" bolm  ^"mutelobongo: bolm" bol  ^"lobongo: bol" bolo  ^"openlobongo: bolo"\myBreak
+cghm  ^"mutehiconga: cghm" cglm  ^"muteloconga: cglm" cgho  ^"openhiconga: cgho" cgh  ^"hiconga: cgh" cglo  ^"openloconga: cglo" cgl  ^"loconga: cgl" \myBreak
+timh  ^"hitimbale: timh" timl  ^"lotimbale: timl"  
+agh  ^"hiagogo: agh" agl  ^"loagogo: agl" \myBreak
+ssh ^"hisidestick: ssh" ss  ^"sidestick: ss" ssl  ^"losidestick: ssl" \myBreak
+guis  ^"shortguiro: guis" guil  ^"longguiro: guil" gui  ^"guiro: gui" cab  ^"cabasa: cab" mar  ^"maracas: mar" \myBreak
+whs  ^"shortwhistle: whs" whl  ^"longwhistle: whl"  \myBreak
+hc  ^"handclap: hc" tamb  ^"tambourine: tamb" vibs  ^"vibraslap: vibs" tt ^"tamtam: tt"  \myBreak
+cl  ^"claves: cl" wbh  ^"hiwoodblock: wbh" wbl  ^"lowoodblock: wbl"  \myBreak
+cuim  ^"mutecuica: cuim" cuio  ^"opencuica: cuio"
+trim  ^"mutetriangle: trim" tri  ^"triangle: tri" trio  ^"opentriangle: trio"  \myBreak
+ua  ^"oneup: ua" ub  ^"twoup: ub" uc  ^"threeup: uc" ud  ^"fourup: ud" ue  ^"fiveup: ue"  \myBreak
+da  ^"onedown: da" db  ^"twodown: db" dc  ^"threedown: dc" dd  ^"fourdown: dd" de ^"fivedown: de"  \myBreak
+}
+}
+
index daa88bd03fc7be54ce9d7e3588ca7405b36cff6c..379eb8f6a77fc35c65ccdabb0e5ef630d6ab2702 100644 (file)
@@ -1,4 +1,5 @@
 % add a chord shape
+\version "2.11.56"
 
 \addChordShape #'bes #"x;1-1-(;3-2;3-3;3-4;1-1-);"
 
diff --git a/input/regression/spacing-to-empty-barline.ly b/input/regression/spacing-to-empty-barline.ly
new file mode 100644 (file)
index 0000000..ac8bced
--- /dev/null
@@ -0,0 +1,42 @@
+\version "2.11.50"
+
+\header {
+  texidoc = "An empty barline does not confuse the spacing engine too much.
+The two scores should look approximately the same."
+}
+
+\layout {
+  \context {
+    \Score
+    \accepts "Top"
+  }
+
+  \context {
+    \name "Top"
+    \alias "Staff"
+    \type "Engraver_group"
+    \consists "Output_property_engraver"
+    \consists "Bar_engraver"
+    \consists "Skip_event_swallow_translator"
+    \consists "Axis_group_engraver"
+
+    \override VerticalAxisGroup #'Y-extent = ##f
+    \override VerticalAxisGroup #'minimum-Y-extent = ##f
+    \override BarLine #'transparent = ##t
+  }
+}
+
+\paper {
+  ragged-right = ##t
+}
+
+\score {
+  <<
+    \new Top { s1 }
+    \new Staff { c''2 c''4 c''4 }
+  >>
+}
+
+\score {
+  { c''2 c''4 c''4 }
+}
diff --git a/input/regression/staff-online-symbol-absence.ly b/input/regression/staff-online-symbol-absence.ly
new file mode 100644 (file)
index 0000000..85bc4e8
--- /dev/null
@@ -0,0 +1,16 @@
+\version "2.11.55"
+\header {
+
+  texidoc = "Symbols that need on-staffline info (like dots and ties)
+  continue to work in absence of a staff-symbol."
+
+}
+
+\new Staff \with {
+  \remove Staff_symbol_engraver
+}
+\relative c' {
+  \time 5/8
+  f4 ~ f4 
+  f4 f4.
+}
index 90db07a7e82ab1159a3804c4308b3f9bccc21fcb..730a3fe7d747178b8d0d5c7a40279ea825770b86 100644 (file)
 #include "output-def.hh"
 #include "pointer-group-interface.hh"
 
+static bool
+non_empty_barline (Grob *me)
+{
+  return Bar_line::has_interface (me) && !me->extent (me, X_AXIS).is_empty ();
+}
+
 /*
   TODO: detect hshifts due to collisions, and account for them in
   spacing?
@@ -80,7 +86,7 @@ Note_spacing::get_spacing (Grob *me, Item *right_col,
     {
       Grob *bar = Pointer_group_interface::find_grob (right_col,
                                                      ly_symbol2scm ("elements"),
-                                                     Bar_line::has_interface);
+                                                     non_empty_barline);
 
       if (bar)
        {
index c8b7ff073146d47b562c8ceca88effa8e8a53b45..353c015b8c8bb4f203e957bf35aca03e560f01d5 100644 (file)
@@ -4,6 +4,8 @@
 %%%%
 %%%% (c) 2008 Carl D. Sorensen <c_sorensen@byu.edu>
 
+\version "2.11.56"
+
 %%%%% define storage structures
 
 % base-chord-shapes is an alist of chord shapes
index 2a08c4f0022907d9a777da9dac7251ee0fae58cd..a448f34ba159003dcac7c246074e11faec8b7bea 100644 (file)
@@ -6,6 +6,8 @@
 
 %%%  Add basic chordshapes
 
+\version "2.11.56"
+
 \addChordShape #'f #"1-1-(;3-3;3-4;2-2;1-1;1-1-);"
 \addChordShape #'f:m #"1-1-(;3-3;3-4;1-1;1-1;1-1-);"
 \addChordShape #'f:7 #"1-1-(;3-3;1-1;2-2;1-1;1-1-);"
index f655cf6177ee9a43833ca485fa87220de8cd4ffb..2736eb5069cb65c2441bd5775af114c162984d5c 100644 (file)
@@ -27,10 +27,9 @@ CONVERT_LY = $(script-dir)/convert-ly.py
 LILYPOND_BOOK = $(script-dir)/lilypond-book.py
 
 LILYPOND_BOOK_INCLUDES = -I $(src-dir)/ -I $(outdir) -I $(input-dir)   \
- -I $(input-dir)/regression/ -I $(input-dir)/manual/ -I                        \
- $(input-dir)/tutorial/ -I $(top-build-dir)/mf/$(outconfbase)/ -I      \
- $(top-build-dir)/mf/out/ -I $(input-dir)/lsr/ -I                      \
- $(top-src-dir)/input/manual 
+ -I $(input-dir)/lsr/ -I $(input-dir)/regression/ -I $(input-dir)/manual/ \
+ -I $(input-dir)/tutorial/ -I $(top-build-dir)/mf/$(outconfbase)/      \
+ -I $(top-build-dir)/mf/out/ -I $(top-src-dir)/input/manual
 
 ## override from cmd line to speed up. 
 ANTI_ALIAS_FACTOR=2
index 85b41ceb59e5c05f7d99bd37b9dac9b41ed25f1e..ee7942b1a534e9867ab370ad8b08f233934a59a7 100644 (file)
@@ -4,9 +4,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.39\n"
+"Project-Id-Version: lilypond 2.11.56\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-02-14 15:55+0100\n"
+"POT-Creation-Date: 2008-08-17 15:57+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -28,138 +28,144 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr ""
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:47 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
 msgstr ""
 
-#: convertrules.py:33 convertrules.py:103
+#: convertrules.py:49 convertrules.py:99
 msgid "\\header { key = concat + with + operator }"
 msgstr ""
 
-#: convertrules.py:48
+#: convertrules.py:58
 #, python-format
 msgid "deprecated %s"
 msgstr ""
 
-#: convertrules.py:61
+#: convertrules.py:70
 msgid "deprecated \\textstyle, new \\key syntax"
 msgstr ""
 
-#: convertrules.py:80 convertrules.py:2124 convertrules.py:2337
-#: convertrules.py:2512 convertrules.py:2889
+#: convertrules.py:86 convertrules.py:1906 convertrules.py:2085
+#: convertrules.py:2237 convertrules.py:2567
 msgid "bump version for release"
 msgstr ""
 
-#: convertrules.py:99
+#: convertrules.py:103
 msgid "new \\header format"
 msgstr ""
 
-#: convertrules.py:133
+#: convertrules.py:132
 msgid "\\translator syntax"
 msgstr ""
 
-#: convertrules.py:211
+#: convertrules.py:184
 msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative"
 msgstr ""
 
-#: convertrules.py:254 convertrules.py:828 convertrules.py:1584
-#: convertrules.py:2685
+#: convertrules.py:216 convertrules.py:699 convertrules.py:1383
+#: convertrules.py:2379
 #, python-format
 msgid "deprecate %s"
 msgstr ""
 
-#: convertrules.py:361
+#: convertrules.py:290
 #, python-format
 msgid "deprecate %s "
 msgstr ""
 
-#: convertrules.py:384
+#: convertrules.py:319
 msgid "new \\notenames format"
 msgstr ""
 
-#: convertrules.py:404
+#: convertrules.py:337
 msgid "new tremolo format"
 msgstr ""
 
-#: convertrules.py:417
+#: convertrules.py:342
 msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver"
 msgstr ""
 
-#: convertrules.py:536
+#: convertrules.py:395
 msgid "change property definiton case (eg. onevoice -> oneVoice)"
 msgstr ""
 
-#: convertrules.py:544
+#: convertrules.py:457
 msgid "new \\textscript markup text"
 msgstr ""
 
-#: convertrules.py:638
+#: convertrules.py:530
 #, python-format
 msgid "identifier names: %s"
 msgstr ""
 
-#: convertrules.py:679
+#: convertrules.py:569
 msgid "point-and-click argument changed to procedure."
 msgstr ""
 
-#: convertrules.py:739
+#: convertrules.py:611
 msgid "semicolons removed"
 msgstr ""
 
 #. 40 ?
-#: convertrules.py:795
+#: convertrules.py:654
 #, python-format
 msgid "%s property names"
 msgstr ""
 
-#: convertrules.py:865
+#: convertrules.py:724
 msgid "automaticMelismata turned on by default"
 msgstr ""
 
-#: convertrules.py:1131 convertrules.py:1893 convertrules.py:2166
-#: convertrules.py:2472
+#: convertrules.py:963 convertrules.py:1682 convertrules.py:1943
+#: convertrules.py:2190
 #, python-format
 msgid "remove %s"
 msgstr ""
 
-#: convertrules.py:1164 convertrules.py:1173
+#: convertrules.py:1001 convertrules.py:1005
 msgid "cluster syntax"
 msgstr ""
 
-#: convertrules.py:1182
+#: convertrules.py:1014
 msgid "new Pedal style syntax"
 msgstr ""
 
-#: convertrules.py:1451
+#: convertrules.py:1273
 msgid ""
 "New relative mode,\n"
 "Postfix articulations, new text markup syntax, new chord syntax."
 msgstr ""
 
-#: convertrules.py:1475
+#: convertrules.py:1286
 msgid "Remove - before articulation"
 msgstr ""
 
-#: convertrules.py:1515
+#: convertrules.py:1324
 #, python-format
 msgid "%s misspelling"
 msgstr ""
 
-#: convertrules.py:1521
-msgid "attempting automatic \\figures conversion.  Check results!"
+#: convertrules.py:1346
+msgid "Swap < > and << >>"
 msgstr ""
 
-#: convertrules.py:1550
-msgid "Swap < > and << >>"
+#: convertrules.py:1349
+msgid "attempting automatic \\figures conversion.  Check results!"
 msgstr ""
 
-#: convertrules.py:1576
+#: convertrules.py:1400
 msgid "Use Scheme code to construct arbitrary note events."
 msgstr ""
 
-#: convertrules.py:1609
+#: convertrules.py:1407
+msgid ""
+"use symbolic constants for alterations,\n"
+"remove \\outputproperty, move ly:verbose into ly:get-option"
+msgstr ""
+
+#: convertrules.py:1432
 #, python-format
 msgid ""
 "\\outputproperty found,\n"
@@ -171,7 +177,7 @@ msgid ""
 "as a substitution text."
 msgstr ""
 
-#: convertrules.py:1623
+#: convertrules.py:1446
 msgid ""
 "The alteration field of Scheme pitches was multiplied by 2\n"
 "to support quarter tone accidentals.  You must update the following "
@@ -181,75 +187,69 @@ msgid ""
 "* keySignature settings made with \\property\n"
 msgstr ""
 
-#: convertrules.py:1633
-msgid ""
-"use symbolic constants for alterations,\n"
-"remove \\outputproperty, move ly:verbose into ly:get-option"
-msgstr ""
-
-#: convertrules.py:1692
+#: convertrules.py:1493
 msgid "removal of automaticMelismata; use melismaBusyProperties instead."
 msgstr ""
 
-#: convertrules.py:1807
+#: convertrules.py:1600
 msgid "\\partcombine syntax change to \\newpartcombine"
 msgstr ""
 
-#: convertrules.py:1824
+#: convertrules.py:1628
+msgid ""
+"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
+"Harmonic notes. Thread context removed. Lyrics context removed."
+msgstr ""
+
+#: convertrules.py:1632
 msgid "Drums found. Enclose drum notes in \\drummode"
 msgstr ""
 
-#: convertrules.py:1835 convertrules.py:1842 convertrules.py:1853
+#: convertrules.py:1643 convertrules.py:1650 convertrules.py:1661
 #, python-format
 msgid ""
 "\n"
 "%s found. Check file manually!\n"
 msgstr ""
 
-#: convertrules.py:1835
+#: convertrules.py:1643
 msgid "Drum notation"
 msgstr ""
 
-#: convertrules.py:1863
-msgid ""
-"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
-"Harmonic notes. Thread context removed. Lyrics context removed."
-msgstr ""
-
-#: convertrules.py:1924
+#: convertrules.py:1702
 msgid "new syntax for property settings:"
 msgstr ""
 
-#: convertrules.py:1957
+#: convertrules.py:1728
 msgid "Property setting syntax in \\translator{ }"
 msgstr ""
 
-#: convertrules.py:1978
-#, python-format
-msgid "use %s"
+#: convertrules.py:1767
+msgid "Scheme grob function renaming"
 msgstr ""
 
-#: convertrules.py:1995
-msgid "Scheme grob function renaming"
+#: convertrules.py:1780
+#, python-format
+msgid "use %s"
 msgstr ""
 
-#: convertrules.py:2008
+#: convertrules.py:1797
 msgid "More Scheme function renaming"
 msgstr ""
 
-#: convertrules.py:2140
+#: convertrules.py:1925
 msgid ""
 "Page layout has been changed, using paper size and margins.\n"
 "textheight is no longer used.\n"
 msgstr ""
 
-#: convertrules.py:2259
+#: convertrules.py:2011
 msgid ""
 "\\foo -> \\foomode (for chords, notes, etc.)\n"
 "fold \\new FooContext \\foomode into \\foo."
 msgstr ""
 
-#: convertrules.py:2285
+#: convertrules.py:2049
 msgid ""
 "staff size should be changed at top-level\n"
 "with\n"
@@ -258,79 +258,79 @@ msgid ""
 "\n"
 msgstr ""
 
-#: convertrules.py:2320
+#: convertrules.py:2069
 msgid "regularize other identifiers"
 msgstr ""
 
-#: convertrules.py:2411
+#: convertrules.py:2137
+msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+msgstr ""
+
+#: convertrules.py:2150
 msgid "LilyPond source must be UTF-8"
 msgstr ""
 
-#: convertrules.py:2414
+#: convertrules.py:2153
 msgid "Try the texstrings backend"
 msgstr ""
 
-#: convertrules.py:2417
+#: convertrules.py:2156
 #, python-format
 msgid "Do something like: %s"
 msgstr ""
 
-#: convertrules.py:2420
+#: convertrules.py:2159
 msgid "Or save as UTF-8 in your editor"
 msgstr ""
 
-#: convertrules.py:2452
-msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+#: convertrules.py:2213
+msgid "warn about auto beam settings"
 msgstr ""
 
-#: convertrules.py:2485
+#: convertrules.py:2218
 msgid "auto beam settings"
 msgstr ""
 
-#: convertrules.py:2487
+#: convertrules.py:2220
 msgid ""
 "\n"
 "Auto beam settings must now specify each interesting moment in a measure\n"
 "explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n"
 msgstr ""
 
-#: convertrules.py:2498
-msgid "warn about auto beam settings"
-msgstr ""
-
-#: convertrules.py:2624
+#: convertrules.py:2334
 msgid "verticalAlignmentChildCallback has been deprecated"
 msgstr ""
 
-#: convertrules.py:2652
+#: convertrules.py:2338
 msgid "Remove callbacks property, deprecate XY-extent-callback."
 msgstr ""
 
-#: convertrules.py:2663
+#: convertrules.py:2359
 msgid "Use grob closures iso. XY-offset-callbacks."
 msgstr ""
 
-#: convertrules.py:2770
+#: convertrules.py:2421
 msgid "foobar -> foo-bar for \\paper, \\layout"
 msgstr ""
 
-#: convertrules.py:2877
+#: convertrules.py:2531
 msgid "deprecate \\tempo in \\midi"
 msgstr ""
 
-#: convertrules.py:2912
+#: convertrules.py:2578
 msgid "deprecate cautionary-style. Use AccidentalCautionary properties"
 msgstr ""
 
-#: convertrules.py:2941
+#: convertrules.py:2591
 msgid "Rename accidental glyphs, use glyph-name-alist."
 msgstr ""
 
-#: convertrules.py:2973
+#: convertrules.py:2646
 msgid "edge-text settings for TextSpanner."
 msgstr ""
 
-#: convertrules.py:2974
+#: convertrules.py:2647
 #, python-format
 msgid ""
 "Use\n"
@@ -338,82 +338,111 @@ msgid ""
 "%s"
 msgstr ""
 
-#: convertrules.py:3020
+#: convertrules.py:2686
+msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+msgstr ""
+
+#: convertrules.py:2692
 msgid "all settings related to dashed lines.\n"
 msgstr ""
 
-#: convertrules.py:3021
+#: convertrules.py:2693
 msgid "Use \\override ... #'style = #'line for solid lines and\n"
 msgstr ""
 
-#: convertrules.py:3022
+#: convertrules.py:2694
 msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
 msgstr ""
 
-#: convertrules.py:3027
-msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+#: convertrules.py:2730
+msgid ""
+"metronomeMarkFormatter uses text markup as second argument,\n"
+"fret diagram properties moved to fret-diagram-details."
+msgstr ""
+
+#: convertrules.py:2735
+msgid "metronomeMarkFormatter got an additional text argument.\n"
+msgstr ""
+
+#: convertrules.py:2736
+#, python-format
+msgid ""
+"The function assigned to Score.metronomeMarkFunction now uses the signature\n"
+"%s"
+msgstr ""
+
+#: convertrules.py:2799
+msgid "\\put-adjacent argument order.\n"
+msgstr ""
+
+#: convertrules.py:2800
+msgid "Axis and direction now come before markups:\n"
+msgstr ""
+
+#: convertrules.py:2801
+msgid "\\put-adjacent axis dir markup markup."
 msgstr ""
 
-#: fontextract.py:26
+#: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
 msgstr ""
 
-#: fontextract.py:71
+#: fontextract.py:70
 #, python-format
 msgid "Extracted %s"
 msgstr ""
 
-#: fontextract.py:86
+#: fontextract.py:85
 #, python-format
 msgid "Writing fonts to %s"
 msgstr ""
 
-#: lilylib.py:102 lilylib.py:153
+#: lilylib.py:101 lilylib.py:152
 #, python-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: lilylib.py:104 lilylib.py:155
+#: lilylib.py:103 lilylib.py:154
 #, python-format
 msgid "Running %s..."
 msgstr ""
 
-#: lilylib.py:220
+#: lilylib.py:219
 #, python-format
 msgid "Usage: %s"
 msgstr ""
 
-#: musicexp.py:577
+#: musicexp.py:585
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr ""
 
-#: musicexp.py:586
+#: musicexp.py:594
 msgid "encountered repeat without body"
 msgstr ""
 
-#: musicxml.py:13 convert-ly.py:50 lilypond-book.py:85 warn.cc:54 input.cc:96
+#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr ""
 
-#: musicxml.py:272
+#: musicxml.py:298
 msgid "requested time signature, but time sig is unknown"
 msgstr ""
 
-#: musicxml.py:338
+#: musicxml.py:354
 #, python-format
 msgid "Encountered note at %s with %s duration (no <type> element):"
 msgstr ""
 
-#: musicxml.py:372
+#: musicxml.py:388
 #, python-format
-msgid "Unable to find find instrument for ID=%s\n"
+msgid "Unable to find instrument for ID=%s\n"
 msgstr ""
 
-#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:109 midi2ly.py:849
+#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr ""
@@ -422,127 +451,129 @@ msgstr ""
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
-"%s) to LilyPond input."
+"%s) to LilyPond input.\n"
 msgstr ""
 
-#: abc2ly.py:1350 convert-ly.py:78 etf2ly.py:1190 lilypond-book.py:175
-#: midi2ly.py:885 musicxml2ly.py:1824 main.cc:161
+#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
+#: midi2ly.py:882 musicxml2ly.py:2170 main.cc:161
 msgid "show version number and exit"
 msgstr ""
 
-#: abc2ly.py:1354 convert-ly.py:82 etf2ly.py:1186 lilypond-book.py:125
-#: midi2ly.py:864 musicxml2ly.py:1808 main.cc:150
+#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
+#: midi2ly.py:861 musicxml2ly.py:2152 main.cc:150
 msgid "show this help and exit"
 msgstr ""
 
-#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:868
+#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
 msgid "write output to FILE"
 msgstr ""
 
-#: abc2ly.py:1358
-msgid "be strict about succes"
+#: abc2ly.py:1359
+msgid "be strict about success"
 msgstr ""
 
-#: abc2ly.py:1360
+#: abc2ly.py:1361
 msgid "preserve ABC's notion of beams"
 msgstr ""
 
-#: abc2ly.py:1361 convert-ly.py:111 etf2ly.py:1198 lilypond-book.py:180
-#: midi2ly.py:897 musicxml2ly.py:1872
-msgid "Bugs"
-msgstr ""
-
-#: abc2ly.py:1362 convert-ly.py:112 etf2ly.py:1199 lilypond-book.py:181
-#: midi2ly.py:898 musicxml2ly.py:1873
+#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
+#: midi2ly.py:894 musicxml2ly.py:2225
 msgid "Report bugs via"
 msgstr ""
 
-#: convert-ly.py:32
+#: convert-ly.py:31
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
 
-#: convert-ly.py:34 lilypond-book.py:59
+#: convert-ly.py:33 lilypond-book.py:59
 msgid "Examples:"
 msgstr ""
 
-#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:105 midi2ly.py:79
+#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
 msgid "Distributed under terms of the GNU General Public License."
 msgstr ""
 
-#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:106 midi2ly.py:80
+#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
 msgid "It comes with NO WARRANTY."
 msgstr ""
 
-#: convert-ly.py:86 convert-ly.py:106
+#: convert-ly.py:87 convert-ly.py:114
 msgid "VERSION"
 msgstr ""
 
-#: convert-ly.py:88
+#: convert-ly.py:89
 msgid "start from VERSION [default: \\version found in file]"
 msgstr ""
 
-#: convert-ly.py:91
+#: convert-ly.py:92
 msgid "edit in place"
 msgstr ""
 
-#: convert-ly.py:94
+#: convert-ly.py:96
 msgid "do not add \\version command if missing"
 msgstr ""
 
-#: convert-ly.py:100
-msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
+#: convert-ly.py:102
+#, python-format
+msgid "force updating \\version number to %s"
 msgstr ""
 
-#: convert-ly.py:105
-msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
+#: convert-ly.py:108
+#, python-format
+msgid "show rules [default: -f 0, -t %s]"
 msgstr ""
 
-#: convert-ly.py:153
+#: convert-ly.py:113
+#, python-format
+msgid "convert to VERSION [default: %s]"
+msgstr ""
+
+#: convert-ly.py:160
 msgid "Applying conversion: "
 msgstr ""
 
-#: convert-ly.py:166
+#: convert-ly.py:173
 msgid "Error while converting"
 msgstr ""
 
-#: convert-ly.py:168
+#: convert-ly.py:175
 msgid "Stopping at last succesful rule"
 msgstr ""
 
-#: convert-ly.py:190
+#: convert-ly.py:196
 #, python-format
 msgid "Processing `%s'... "
 msgstr ""
 
-#: convert-ly.py:277 relocate.cc:362 source-file.cc:54
+#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr ""
 
-#: convert-ly.py:284
+#: convert-ly.py:293
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr ""
 
-#: etf2ly.py:1180
+#: etf2ly.py:1179
 #, python-format
 msgid "%s [OPTION]... ETF-FILE"
 msgstr ""
 
-#: etf2ly.py:1181
+#: etf2ly.py:1180
 msgid ""
 "Enigma Transport Format is a format used by Coda Music Technology's\n"
 "Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond "
-"file."
+"file.\n"
 msgstr ""
 
-#: etf2ly.py:1192 midi2ly.py:869 musicxml2ly.py:1866 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2218 main.cc:154 main.cc:159
 msgid "FILE"
 msgstr ""
 
-#: etf2ly.py:1194 lilypond-book.py:178 midi2ly.py:886 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
 msgid "show warranty and copyright"
 msgstr ""
 
@@ -570,7 +601,7 @@ msgid "FILTER"
 msgstr ""
 
 #: lilypond-book.py:116
-msgid "pipe snippets through FILTER [convert-ly -n -]"
+msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr ""
 
 #: lilypond-book.py:120
@@ -578,380 +609,422 @@ msgid ""
 "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr ""
 
-#: lilypond-book.py:127
+#: lilypond-book.py:121
+msgid "FORMAT"
+msgstr ""
+
+#: lilypond-book.py:128
 msgid "add DIR to include path"
 msgstr ""
 
-#: lilypond-book.py:128 lilypond-book.py:135 lilypond-book.py:147 main.cc:153
+#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
+#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
 msgid "DIR"
 msgstr ""
 
-#: lilypond-book.py:133
+#: lilypond-book.py:134
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr ""
 
-#: lilypond-book.py:140
-msgid "PAD"
+#: lilypond-book.py:141
+msgid "run executable PROG instead of latex"
 msgstr ""
 
 #: lilypond-book.py:142
+msgid "PROG"
+msgstr ""
+
+#: lilypond-book.py:147
+msgid "PAD"
+msgstr ""
+
+#: lilypond-book.py:149
 msgid ""
 "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr ""
 
-#: lilypond-book.py:146
+#: lilypond-book.py:153
 msgid "write output to DIR"
 msgstr ""
 
-#: lilypond-book.py:151
+#: lilypond-book.py:159
+msgid "do not fail if no lilypond output is found"
+msgstr ""
+
+#: lilypond-book.py:165
+msgid "do not fail if no PNG images are found for EPS files"
+msgstr ""
+
+#: lilypond-book.py:171
+msgid "write lily-XXX files to DIR, link into --output dir"
+msgstr ""
+
+#: lilypond-book.py:176
 msgid "COMMAND"
 msgstr ""
 
-#: lilypond-book.py:152
+#: lilypond-book.py:177
 msgid "process ly_files using COMMAND FILE..."
 msgstr ""
 
-#: lilypond-book.py:159
+#: lilypond-book.py:184
 msgid "create PDF files for use with PDFTeX"
 msgstr ""
 
-#: lilypond-book.py:163
-msgid ""
-"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
-"must use this with dvips -h INPUT.psfonts"
-msgstr ""
-
-#: lilypond-book.py:167 midi2ly.py:879 musicxml2ly.py:1829 main.cc:162
+#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2175 main.cc:162
 msgid "be verbose"
 msgstr ""
 
-#: lilypond-book.py:788
+#: lilypond-book.py:825
 #, python-format
 msgid "file not found: %s"
 msgstr ""
 
-#: lilypond-book.py:1022
+#: lilypond-book.py:1087
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1025
+#: lilypond-book.py:1089
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1029
+#: lilypond-book.py:1092
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: lilypond-book.py:1032
+#: lilypond-book.py:1094
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: lilypond-book.py:1051
+#: lilypond-book.py:1112
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: lilypond-book.py:1422
+#: lilypond-book.py:1538
 #, python-format
 msgid "Opening filter `%s'"
 msgstr ""
 
-#: lilypond-book.py:1439
+#: lilypond-book.py:1555
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: lilypond-book.py:1440
+#: lilypond-book.py:1556
 msgid "The error log is as follows:"
 msgstr ""
 
-#: lilypond-book.py:1512
+#: lilypond-book.py:1618
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr ""
 
-#: lilypond-book.py:1623
+#: lilypond-book.py:1718
 msgid "Writing snippets..."
 msgstr ""
 
-#: lilypond-book.py:1628
+#: lilypond-book.py:1724
 msgid "Processing..."
 msgstr ""
 
-#: lilypond-book.py:1632
+#: lilypond-book.py:1730
 msgid "All snippets are up to date..."
 msgstr ""
 
-#: lilypond-book.py:1642
+#: lilypond-book.py:1764
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr ""
 
-#: lilypond-book.py:1653
+#: lilypond-book.py:1775
 #, python-format
 msgid "%s is up to date."
 msgstr ""
 
-#: lilypond-book.py:1659
+#: lilypond-book.py:1789
 #, python-format
 msgid "Writing `%s'..."
 msgstr ""
 
-#: lilypond-book.py:1714
+#: lilypond-book.py:1847
 msgid "Output would overwrite input file; use --output."
 msgstr ""
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1851
 #, python-format
 msgid "Reading %s..."
 msgstr ""
 
-#: lilypond-book.py:1737
+#: lilypond-book.py:1870
 msgid "Dissecting..."
 msgstr ""
 
-#: lilypond-book.py:1753
+#: lilypond-book.py:1886
 #, python-format
 msgid "Compiling %s..."
 msgstr ""
 
-#: lilypond-book.py:1762
+#: lilypond-book.py:1895
 #, python-format
 msgid "Processing include: %s"
 msgstr ""
 
-#: lilypond-book.py:1776
+#: lilypond-book.py:1907
 #, python-format
 msgid "Removing `%s'"
 msgstr ""
 
-#: lilypond-book.py:1809
-msgid "option --psfonts not used"
-msgstr ""
-
-#: lilypond-book.py:1810
-msgid "processing with dvips will have no fonts"
-msgstr ""
-
-#: lilypond-book.py:1813
-msgid "DVIPS usage:"
-msgstr ""
-
-#: lilypond-book.py:1869
-#, python-format
-msgid "Writing fonts to %s..."
-msgstr ""
-
-#: midi2ly.py:87 lily-library.scm:615 lily-library.scm:624
+#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
 msgid "warning: "
 msgstr ""
 
-#: midi2ly.py:90 midi2ly.py:911
+#: midi2ly.py:88 midi2ly.py:907
 msgid "error: "
 msgstr ""
 
-#: midi2ly.py:91
+#: midi2ly.py:89
 msgid "Exiting... "
 msgstr ""
 
-#: midi2ly.py:837
+#: midi2ly.py:834
 #, python-format
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:850 musicxml2ly.py:1803
+#: midi2ly.py:847
 #, python-format
-msgid "Convert %s to LilyPond input."
+msgid "Convert %s to LilyPond input.\n"
 msgstr ""
 
-#: midi2ly.py:855
+#: midi2ly.py:852
 msgid "print absolute pitches"
 msgstr ""
 
-#: midi2ly.py:857 midi2ly.py:872
+#: midi2ly.py:854 midi2ly.py:869
 msgid "DUR"
 msgstr ""
 
-#: midi2ly.py:858
+#: midi2ly.py:855
 msgid "quantise note durations on DUR"
 msgstr ""
 
-#: midi2ly.py:861
+#: midi2ly.py:858
 msgid "print explicit durations"
 msgstr ""
 
-#: midi2ly.py:865
+#: midi2ly.py:862
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr ""
 
-#: midi2ly.py:866
+#: midi2ly.py:863
 msgid "ALT[:MINOR]"
 msgstr ""
 
-#: midi2ly.py:871
+#: midi2ly.py:868
 msgid "quantise note starts on DUR"
 msgstr ""
 
-#: midi2ly.py:874
+#: midi2ly.py:871
 msgid "DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:877
+#: midi2ly.py:874
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:889
+#: midi2ly.py:886
 msgid "treat every text as a lyric"
 msgstr ""
 
-#: midi2ly.py:892
+#: midi2ly.py:889
 msgid "Examples"
 msgstr ""
 
-#: midi2ly.py:912
+#: midi2ly.py:908
 msgid "no files specified on command line."
 msgstr ""
 
-#: musicxml2ly.py:193 musicxml2ly.py:195
+#: musicxml2ly.py:213
+msgid ""
+"Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming "
+"information. All beaming information in the MusicXML file will be ignored"
+msgstr ""
+
+#: musicxml2ly.py:229 musicxml2ly.py:231
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr ""
 
-#: musicxml2ly.py:426
+#: musicxml2ly.py:471
 #, python-format
 msgid ""
 "Encountered rational duration with denominator %s, unable to convert to "
 "lilypond duration"
 msgstr ""
 
-#: musicxml2ly.py:609
+#: musicxml2ly.py:654
 #, python-format
 msgid "unknown mode %s, expecting 'major' or 'minor'"
 msgstr ""
 
-#: musicxml2ly.py:647
+#: musicxml2ly.py:692
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr ""
 
-#: musicxml2ly.py:741
+#: musicxml2ly.py:786
 #, python-format
 msgid "unknown span event %s"
 msgstr ""
 
-#: musicxml2ly.py:751
+#: musicxml2ly.py:796
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr ""
 
-#: musicxml2ly.py:1259
+#: musicxml2ly.py:1207
+msgid "Unknown metronome mark, ignoring"
+msgstr ""
+
+#. TODO: Implement the other (more complex) way for tempo marks!
+#: musicxml2ly.py:1212
+msgid ""
+"Metronome marks with complex relations (<metronome-note> in MusicXML) are "
+"not yet implemented."
+msgstr ""
+
+#: musicxml2ly.py:1368
+#, python-format
+msgid "Unable to convert chord type %s to lilypond."
+msgstr ""
+
+#: musicxml2ly.py:1514
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr ""
 
-#: musicxml2ly.py:1263
+#: musicxml2ly.py:1518
 msgid "cannot find suitable event"
 msgstr ""
 
-#: musicxml2ly.py:1346
+#: musicxml2ly.py:1608
 #, python-format
 msgid "Negative skip %s"
 msgstr ""
 
-#: musicxml2ly.py:1480
+#: musicxml2ly.py:1760
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr ""
 
-#: musicxml2ly.py:1505
+#: musicxml2ly.py:1787
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr ""
 
-#: musicxml2ly.py:1583
+#: musicxml2ly.py:1897
 msgid "cannot have two simultaneous slurs"
 msgstr ""
 
-#: musicxml2ly.py:1711
+#: musicxml2ly.py:2035
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr ""
 
-#: musicxml2ly.py:1791
+#: musicxml2ly.py:2133
 msgid "Converting to LilyPond expressions..."
 msgstr ""
 
-#: musicxml2ly.py:1802
-msgid "musicxml2ly [options] FILE.xml"
+#: musicxml2ly.py:2144
+msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr ""
 
-#: musicxml2ly.py:1812
-#, python-format
+#: musicxml2ly.py:2146
 msgid ""
-"This program is free software.  It is covered by the GNU General Public\n"
-"License and you are welcome to change it and/or distribute copies of it\n"
-"under certain conditions.  Invoke as `%s --warranty' for more\n"
-"information."
+"Convert MusicXML from FILE.xml to LilyPond input.\n"
+"If the given filename is -, musicxml2ly reads from the command line.\n"
 msgstr ""
 
-#: musicxml2ly.py:1835
+#: musicxml2ly.py:2156
+msgid ""
+"Copyright (c) 2005--2008 by\n"
+"    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
+"    Jan Nieuwenhuizen <janneke@gnu.org> and\n"
+"    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
+msgstr ""
+
+#: musicxml2ly.py:2181
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr ""
 
-#: musicxml2ly.py:1841
+#: musicxml2ly.py:2187
 msgid "input file is a zip-compressed MusicXML file"
 msgstr ""
 
-#: musicxml2ly.py:1847
+#: musicxml2ly.py:2193
 msgid "convert pitches in relative mode (default)"
 msgstr ""
 
-#: musicxml2ly.py:1852
+#: musicxml2ly.py:2198
 msgid "convert pitches in absolute mode"
 msgstr ""
 
-#: musicxml2ly.py:1855
+#: musicxml2ly.py:2201
 msgid "LANG"
 msgstr ""
 
-#: musicxml2ly.py:1857
+#: musicxml2ly.py:2203
 msgid ""
 "use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
 "'deutsch' for deutsch.ly"
 msgstr ""
 
-#: musicxml2ly.py:1863
+#: musicxml2ly.py:2209
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr ""
 
-#: musicxml2ly.py:1871
-msgid "set output filename to FILE"
+#: musicxml2ly.py:2215
+msgid ""
+"do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr ""
 
-#: musicxml2ly.py:1929
+#: musicxml2ly.py:2223
+msgid "set output filename to FILE, stdout if -"
+msgstr ""
+
+#: musicxml2ly.py:2305
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr ""
 
-#: musicxml2ly.py:1985
+#: musicxml2ly.py:2367
+msgid "Input is compressed, extracting raw MusicXML data from stdin"
+msgstr ""
+
+#: musicxml2ly.py:2370
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr ""
 
-#: musicxml2ly.py:2011
+#: musicxml2ly.py:2400
+msgid "Reading MusicXML from Standard input ..."
+msgstr ""
+
+#: musicxml2ly.py:2402
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr ""
 
-#: musicxml2ly.py:2039 musicxml2ly.py:2053
+#: musicxml2ly.py:2435
 #, python-format
 msgid "Output to `%s'"
 msgstr ""
 
-#: musicxml2ly.py:2096
+#: musicxml2ly.py:2497
 #, python-format
 msgid "Unable to find input file %s"
 msgstr ""
@@ -985,17 +1058,17 @@ msgstr ""
 msgid "continuing, cross fingers"
 msgstr ""
 
-#: accidental-engraver.cc:250
+#: accidental-engraver.cc:249
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr ""
 
-#: accidental-engraver.cc:277
+#: accidental-engraver.cc:276
 #, c-format
 msgid "ignoring unknown accidental rule: %s"
 msgstr ""
 
-#: accidental-engraver.cc:293
+#: accidental-engraver.cc:292
 #, c-format
 msgid "pair or context-name expected for accidental rule, found %s"
 msgstr ""
@@ -1009,7 +1082,7 @@ msgstr ""
 msgid "natural alteration glyph not found"
 msgstr ""
 
-#: align-interface.cc:325
+#: align-interface.cc:305
 msgid "tried to get a translation for something that is no child of mine"
 msgstr ""
 
@@ -1039,7 +1112,7 @@ msgstr ""
 msgid "removing this vertical group"
 msgstr ""
 
-#: axis-group-interface.cc:524
+#: axis-group-interface.cc:532
 msgid "an outside-staff object should have a direction, defaulting to up"
 msgstr ""
 
@@ -1076,7 +1149,7 @@ msgstr ""
 msgid "removing beam with no stems"
 msgstr ""
 
-#: beam.cc:1069
+#: beam.cc:1078
 msgid "no viable initial configuration found: may not find good beam slope"
 msgstr ""
 
@@ -1143,7 +1216,7 @@ msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
 msgstr ""
 
 #. if we get to here, just put everything on one line
-#: constrained-breaking.cc:167 constrained-breaking.cc:184
+#: constrained-breaking.cc:176 constrained-breaking.cc:193
 msgid "cannot find line breaking that satisfies constraints"
 msgstr ""
 
@@ -1152,26 +1225,26 @@ msgstr ""
 msgid "program has no such type: `%s'"
 msgstr ""
 
-#: context-property.cc:30
+#: context-property.cc:32
 msgid "need symbol arguments for \\override and \\revert"
 msgstr ""
 
-#: context.cc:144
+#: context.cc:139
 #, c-format
 msgid "cannot find or create new `%s'"
 msgstr ""
 
-#: context.cc:206
+#: context.cc:197
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr ""
 
-#: context.cc:268
+#: context.cc:259
 #, c-format
 msgid "Invalid CreateContext event: Cannot create %s context"
 msgstr ""
 
-#: context.cc:380
+#: context.cc:390
 #, c-format
 msgid "cannot find or create: `%s'"
 msgstr ""
@@ -1195,23 +1268,23 @@ msgstr ""
 msgid "dot `%s' not found"
 msgstr ""
 
-#: dynamic-engraver.cc:192
+#: dynamic-engraver.cc:186
 msgid "cannot find start of (de)crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:201
+#: dynamic-engraver.cc:195
 msgid "already have a decrescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:197
 msgid "already have a crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:206
+#: dynamic-engraver.cc:200
 msgid "cresc starts here"
 msgstr ""
 
-#: dynamic-engraver.cc:335
+#: dynamic-engraver.cc:328
 msgid "unterminated (de)crescendo"
 msgstr ""
 
@@ -1238,15 +1311,15 @@ msgstr ""
 msgid "adding font directory: %s"
 msgstr ""
 
-#: general-scheme.cc:201
+#: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
 msgstr ""
 
-#: general-scheme.cc:202
+#: general-scheme.cc:203
 msgid "setting to zero"
 msgstr ""
 
-#: general-scheme.cc:421 output-ps.scm:61
+#: general-scheme.cc:422 output-ps.scm:61
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr ""
 
@@ -1278,12 +1351,12 @@ msgid "implied \\%s added"
 msgstr ""
 
 #. ligature may not start with 2nd head of pes or flexa
-#: gregorian-ligature-engraver.cc:212
+#: gregorian-ligature-engraver.cc:213
 msgid "cannot apply `\\~' on first head of ligature"
 msgstr ""
 
 #. (pitch == prev_pitch)
-#: gregorian-ligature-engraver.cc:224
+#: gregorian-ligature-engraver.cc:225
 msgid "cannot apply `\\~' on heads with identical pitch"
 msgstr ""
 
@@ -1311,15 +1384,15 @@ msgstr ""
 msgid "Infinity or NaN encountered"
 msgstr ""
 
-#: hairpin.cc:187
+#: hairpin.cc:186
 msgid "decrescendo too small"
 msgstr ""
 
-#: horizontal-bracket-engraver.cc:59
+#: horizontal-bracket-engraver.cc:68
 msgid "do not have that many brackets"
 msgstr ""
 
-#: horizontal-bracket-engraver.cc:68
+#: horizontal-bracket-engraver.cc:77
 msgid "conflicting note group events"
 msgstr ""
 
@@ -1331,17 +1404,17 @@ msgstr ""
 msgid "unterminated hyphen; removing"
 msgstr ""
 
-#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:117
+#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:110
 #, c-format
 msgid "cannot find file: `%s'"
 msgstr ""
 
-#: includable-lexer.cc:55 lily-parser-scheme.cc:108
+#: includable-lexer.cc:55 lily-parser-scheme.cc:101
 #, c-format
 msgid "(search path: `%s')"
 msgstr ""
 
-#: input.cc:112 source-file.cc:168 source-file.cc:183
+#: input.cc:112 source-file.cc:173 source-file.cc:188
 msgid "position unknown"
 msgstr ""
 
@@ -1387,20 +1460,20 @@ msgstr ""
 msgid "(load path: `%s')"
 msgstr ""
 
-#: lily-guile.cc:438
+#: lily-guile.cc:428
 #, c-format
 msgid "cannot find property type-check for `%s' (%s)."
 msgstr ""
 
-#: lily-guile.cc:441
+#: lily-guile.cc:431
 msgid "perhaps a typing error?"
 msgstr ""
 
-#: lily-guile.cc:448
+#: lily-guile.cc:438
 msgid "doing assignment anyway"
 msgstr ""
 
-#: lily-guile.cc:460
+#: lily-guile.cc:450
 #, c-format
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
@@ -1424,17 +1497,17 @@ msgstr ""
 msgid "deprecated function called: %s"
 msgstr ""
 
-#: lily-parser-scheme.cc:89
+#: lily-parser-scheme.cc:83
 #, c-format
 msgid "Changing working directory to: `%s'"
 msgstr ""
 
-#: lily-parser-scheme.cc:107
+#: lily-parser-scheme.cc:100
 #, c-format
 msgid "cannot find init file: `%s'"
 msgstr ""
 
-#: lily-parser-scheme.cc:126
+#: lily-parser-scheme.cc:119
 #, c-format
 msgid "Processing `%s'"
 msgstr ""
@@ -1447,12 +1520,12 @@ msgstr ""
 msgid "braces do not match"
 msgstr ""
 
-#: lyric-combine-music-iterator.cc:327
+#: lyric-combine-music-iterator.cc:329
 #, c-format
 msgid "cannot find Voice `%s'"
 msgstr ""
 
-#: lyric-engraver.cc:158
+#: lyric-engraver.cc:162
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr ""
 
@@ -1566,7 +1639,7 @@ msgstr ""
 msgid "relocate using directory of lilypond program"
 msgstr ""
 
-#: main.cc:203
+#: main.cc:226
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1574,82 +1647,82 @@ msgid ""
 msgstr ""
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:230
+#: main.cc:254
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr ""
 
-#: main.cc:232
+#: main.cc:256
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr ""
 
-#: main.cc:234
+#: main.cc:258
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr ""
 
-#: main.cc:236
+#: main.cc:260
 #, c-format
 msgid "For more information, see %s"
 msgstr ""
 
-#: main.cc:238
+#: main.cc:262
 #, c-format
 msgid "Options:"
 msgstr ""
 
-#: main.cc:242
+#: main.cc:266
 #, c-format
 msgid "Report bugs via %s"
 msgstr ""
 
-#: main.cc:288
+#: main.cc:312
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr ""
 
-#: main.cc:302
+#: main.cc:326
 #, c-format
 msgid "no such user: %s"
 msgstr ""
 
-#: main.cc:304
+#: main.cc:328
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 
-#: main.cc:319
+#: main.cc:343
 #, c-format
 msgid "no such group: %s"
 msgstr ""
 
-#: main.cc:321
+#: main.cc:345
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 
-#: main.cc:329
+#: main.cc:353
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr ""
 
-#: main.cc:336
+#: main.cc:360
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr ""
 
-#: main.cc:342
+#: main.cc:366
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr ""
 
-#: main.cc:348
+#: main.cc:372
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr ""
 
-#: main.cc:594
+#: main.cc:619
 #, c-format
 msgid "exception caught: %s"
 msgstr ""
@@ -1746,6 +1819,13 @@ msgstr ""
 msgid "transposition by %s makes alteration larger than double"
 msgstr ""
 
+#: new-dynamic-engraver.cc:128
+#, c-format
+msgid ""
+"unknown crescendo style: %s\n"
+"defaulting to hairpin."
+msgstr ""
+
 #: new-fingering-engraver.cc:96
 msgid "cannot add text scripts to individual note heads"
 msgstr ""
@@ -1758,7 +1838,7 @@ msgstr ""
 msgid "placing below"
 msgstr ""
 
-#: note-collision.cc:463
+#: note-collision.cc:484
 msgid "ignoring too many clashing note columns"
 msgstr ""
 
@@ -1815,21 +1895,21 @@ msgstr ""
 msgid "Finding the ideal number of pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:71
+#: optimal-page-breaking.cc:76
 msgid "Fitting music on 1 page..."
 msgstr ""
 
-#: optimal-page-breaking.cc:73
+#: optimal-page-breaking.cc:78
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:75
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:152 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr ""
@@ -1915,7 +1995,7 @@ msgstr ""
 msgid "Preprocessing graphical objects..."
 msgstr ""
 
-#: parse-scm.cc:87
+#: parse-scm.cc:93
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr ""
 
@@ -1944,18 +2024,18 @@ msgstr ""
 msgid "unterminated phrasing slur"
 msgstr ""
 
-#: piano-pedal-engraver.cc:286
+#: piano-pedal-engraver.cc:287
 #, c-format
 msgid "expect 3 strings for piano pedals, found: %ld"
 msgstr ""
 
-#: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
+#: piano-pedal-engraver.cc:302 piano-pedal-engraver.cc:313
 #: piano-pedal-performer.cc:93
 #, c-format
 msgid "cannot find start of piano pedal: `%s'"
 msgstr ""
 
-#: piano-pedal-engraver.cc:347
+#: piano-pedal-engraver.cc:348
 #, c-format
 msgid "cannot find start of piano pedal bracket: `%s'"
 msgstr ""
@@ -2048,7 +2128,7 @@ msgstr ""
 msgid "too many colliding rests"
 msgstr ""
 
-#: rest.cc:132
+#: rest.cc:148
 #, c-format
 msgid "rest `%s' not found"
 msgstr ""
@@ -2105,12 +2185,12 @@ msgstr ""
 msgid "cannot end slur"
 msgstr ""
 
-#: slur.cc:353
+#: slur.cc:357
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
 
-#: source-file.cc:74
+#: source-file.cc:79
 #, c-format
 msgid "expected to read %d characters, got %d"
 msgstr ""
@@ -2152,25 +2232,25 @@ msgstr ""
 msgid "flag stroke `%s' not found"
 msgstr ""
 
-#: system.cc:179
+#: system.cc:178
 #, c-format
 msgid "Element count %d."
 msgstr ""
 
-#: system.cc:271
+#: system.cc:270
 #, c-format
 msgid "Grob count %d"
 msgstr ""
 
-#: text-spanner-engraver.cc:60
+#: text-spanner-engraver.cc:62
 msgid "cannot find start of text spanner"
 msgstr ""
 
-#: text-spanner-engraver.cc:72
+#: text-spanner-engraver.cc:75
 msgid "already have a text spanner"
 msgstr ""
 
-#: text-spanner-engraver.cc:118
+#: text-spanner-engraver.cc:121
 msgid "unterminated text spanner"
 msgstr ""
 
@@ -2220,11 +2300,11 @@ msgstr ""
 msgid "Previous %s event here"
 msgstr ""
 
-#: trill-spanner-engraver.cc:84
+#: trill-spanner-engraver.cc:85
 msgid "cannot find start of trill spanner"
 msgstr ""
 
-#: trill-spanner-engraver.cc:96
+#: trill-spanner-engraver.cc:98
 msgid "already have a trill spanner"
 msgstr ""
 
@@ -2273,40 +2353,40 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:728
+#: parser.yy:729
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:752
+#: parser.yy:753
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1224
 msgid "Grob name should be alphanumeric"
 msgstr ""
 
-#: parser.yy:1509
+#: parser.yy:1522
 msgid "second argument must be pitch list"
 msgstr ""
 
-#: parser.yy:1536 parser.yy:1541 parser.yy:2006
+#: parser.yy:1549 parser.yy:1554 parser.yy:2026
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1638
+#: parser.yy:1651
 msgid "expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1793 parser.yy:1843
+#: parser.yy:1806 parser.yy:1856
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1960
+#: parser.yy:1980
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:2021
+#: parser.yy:2041
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
@@ -2357,35 +2437,35 @@ msgstr ""
 msgid "Brace found at end of lyric.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:582
+#: lexer.ll:584
 msgid "Brace found at end of markup.  Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:686
+#: lexer.ll:688
 #, c-format
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:801 lexer.ll:802
+#: lexer.ll:803 lexer.ll:804
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:907 lexer.ll:908
+#: lexer.ll:910 lexer.ll:911
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 
-#: lexer.ll:908 lexer.ll:909
+#: lexer.ll:911 lexer.ll:912
 msgid "consider updating the input with the convert-ly script"
 msgstr ""
 
-#: lexer.ll:914 lexer.ll:915
+#: lexer.ll:917 lexer.ll:918
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
 
-#: backend-library.scm:19 lily.scm:767 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:776 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr ""
@@ -2395,17 +2475,19 @@ msgstr ""
 msgid "`~a' failed (~a)"
 msgstr ""
 
-#: backend-library.scm:117 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr ""
 
-#: backend-library.scm:130
+#. Do not try to guess the name of the png file,
+#. GS produces PNG files like BASE-page%d.png.
+#: backend-library.scm:128
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr ""
 
-#: backend-library.scm:168
+#: backend-library.scm:166
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr ""
@@ -2427,11 +2509,16 @@ msgstr ""
 msgid "translator listens to nonexisting event class ~A"
 msgstr ""
 
-#: define-markup-commands.scm:296
+#: define-markup-commands.scm:608
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:1310
+#: define-markup-commands.scm:2386
+#, scheme-format
+msgid "Cannot find glyph ~a"
+msgstr ""
+
+#: define-markup-commands.scm:2697
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
@@ -2455,32 +2542,32 @@ msgstr ""
 msgid "See music-types.scm for supported repeats"
 msgstr ""
 
-#: document-backend.scm:91
+#: document-backend.scm:99
 #, scheme-format
 msgid "pair expected in doc ~s"
 msgstr ""
 
-#: document-backend.scm:135
+#: document-backend.scm:154
 #, scheme-format
 msgid "cannot find interface for property: ~S"
 msgstr ""
 
-#: document-backend.scm:145
+#: document-backend.scm:164
 #, scheme-format
 msgid "unknown Grob interface: ~S"
 msgstr ""
 
-#: documentation-lib.scm:45
+#: documentation-lib.scm:48
 #, scheme-format
 msgid "Processing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:154
+#: documentation-lib.scm:164
 #, scheme-format
 msgid "Writing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:176
+#: documentation-lib.scm:186
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr ""
@@ -2510,17 +2597,17 @@ msgstr ""
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:750
+#: framework-ps.scm:753
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr ""
 
-#: framework-ps.scm:769 framework-ps.scm:772
+#: framework-ps.scm:772 framework-ps.scm:775
 #, scheme-format
 msgid "cannot generate ~S using the postscript back-end"
 msgstr ""
 
-#: framework-ps.scm:779
+#: framework-ps.scm:782
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2551,7 +2638,7 @@ msgstr ""
 msgid "Error in beam quanting.  Expected (~S,~S) found ~S."
 msgstr ""
 
-#: layout-beam.scm:46
+#: layout-beam.scm:43
 #, scheme-format
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr ""
@@ -2564,48 +2651,48 @@ msgstr ""
 msgid "Calculating page breaks..."
 msgstr ""
 
-#: lily-library.scm:583
+#: lily-library.scm:588
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:617
+#: lily-library.scm:622
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 
-#: lily-library.scm:625
+#: lily-library.scm:630
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:177
+#: lily.scm:178
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:242
+#: lily.scm:243
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 
-#: lily.scm:634
+#: lily.scm:640
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:637
+#: lily.scm:643
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:664 lily.scm:757
+#: lily.scm:668 lily.scm:766
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:747
+#: lily.scm:756
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
@@ -2614,21 +2701,26 @@ msgstr ""
 msgid "Music head function must return Music object"
 msgstr ""
 
-#: ly-syntax-constructors.scm:139
+#: ly-syntax-constructors.scm:150
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr ""
 
-#: markup.scm:124
+#: markup.scm:204
 #, scheme-format
 msgid "Wrong number of arguments.  Expect: ~A, found ~A: ~S"
 msgstr ""
 
-#: markup.scm:130
+#: markup.scm:210
 #, scheme-format
 msgid "Invalid argument in position ~A.  Expect: ~A, found: ~S."
 msgstr ""
 
+#: markup.scm:274
+#, scheme-format
+msgid "Not a markup command: ~A"
+msgstr ""
+
 #: music-functions.scm:228
 msgid "More alternatives than repeats.  Junking excess alternatives"
 msgstr ""
@@ -2643,23 +2735,23 @@ msgstr ""
 msgid "expecting 2 elements for chord tremolo, found ~a"
 msgstr ""
 
-#: music-functions.scm:564
+#: music-functions.scm:575
 #, scheme-format
 msgid "music expected: ~S"
 msgstr ""
 
 #. FIXME: uncomprehensable message
-#: music-functions.scm:614
+#: music-functions.scm:625
 #, scheme-format
 msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
 msgstr ""
 
-#: music-functions.scm:764
+#: music-functions.scm:793
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:961
+#: music-functions.scm:990
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
@@ -2683,23 +2775,23 @@ msgstr ""
 msgid "cannot find ~a in ~a"
 msgstr ""
 
-#: paper.scm:85
+#: paper.scm:86
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:133
+#: paper.scm:226
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:145
+#: paper.scm:238
 #, scheme-format
 msgid "Unknown papersize: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:160
+#: paper.scm:253
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
index 84c0e5fae644a267a54218ef19c243b9fedc9a91..555403033926f26f479ca674858921480344e0fe 100644 (file)
        (self-alignment-X . ,CENTER)
        (self-alignment-Y . ,CENTER)
        (script-priority . 100)
+       (avoid-slur . outside)
        (font-encoding . fetaNumber)
        (font-size . -5)                ; don't overlap when next to heads.
        (meta . ((class . Item)
index c04f8ee58b1677daec4eb90621ddff22e32b2d77..18112b874c1336b0130133c184da85e904ccddac 100644 (file)
@@ -274,12 +274,12 @@ circle of diameter@tie{}0 (i.e. sharp corners).
    (corner-radius 1)
    (font-size 0)
    (box-padding 0.5))
-  "@cindex enclosing text in a bow with rounded corners
+  "@cindex enclosing text in a box with rounded corners
    @cindex drawing boxes with rounded corners around text
 Draw a box with rounded corners around @var{arg}.  Looks at @code{thickness},
 @code{box-padding} and @code{font-size} properties to determine line
 thickness and padding around the markup; the @code{corner-radius} property
-makes possible to define another shape for the corners (default is 1).
+makes it possible to define another shape for the corners (default is 1).
 
 @lilypond[quote,verbatim,relative=2]
 c4^\\markup {
@@ -799,7 +799,7 @@ determines the space between each markup in @var{args}.
 @lilypond[verbatim,quote]
 \\markup {
   \\line {
-    A simple line of text
+    one two three
   }
 }
 @end lilypond"
@@ -825,13 +825,10 @@ equivalent to @code{\"fi\"}.
 
 @lilypond[verbatim,quote]
 \\markup {
-  \\bold {
-    au
-    \\concat {
-      Mouv
-      \\super
-      t
-    }
+  \\concat {
+    one
+    two
+    three
   }
 }
 @end lilypond"
@@ -1232,10 +1229,10 @@ Align @code{arg} to its Y@tie{}center.
 
 @lilypond[verbatim,quote]
 \\markup {
-  \\arrow-head #X #RIGHT ##f
+  one
   \\vcenter
-  Centered
-  \\arrow-head #X #LEFT ##f
+  two
+  three
 }
 @end lilypond"
   (let* ((mol (interpret-markup layout props arg)))
@@ -1253,9 +1250,10 @@ Align @code{arg} to its X@tie{}center.
 @lilypond[verbatim,quote]
 \\markup {
   \\column {
-    ↓
+    one
     \\hcenter
-    centered
+    two
+    three
   }
 }
 @end lilypond"
@@ -1274,9 +1272,10 @@ Align @var{arg} on its right edge.
 @lilypond[verbatim,quote]
 \\markup {
   \\column {
-    ↓
+    one
     \\right-align
-    right-aligned
+    two
+    three
   }
 }
 @end lilypond"
@@ -1295,9 +1294,10 @@ Align @var{arg} on its left edge.
 @lilypond[verbatim,quote]
 \\markup {
   \\column {
-    ↓
+    one
     \\left-align
-    left-aligned
+    two
+    three
   }
 }
 @end lilypond"
@@ -1316,26 +1316,28 @@ Align @var{arg} in @var{axis} direction to the @var{dir} side.
 @lilypond[verbatim,quote]
 \\markup {
   \\column {
-    ↓
+    one
     \\general-align #X #LEFT
-    \\line { X, Left }
-    ↓
+    two
+    three
+    \\null
+    one
     \\general-align #X #CENTER
-    \\line { X, Center }
+    two
+    three
     \\null
     \\line {
-      \\arrow-head #X #RIGHT ##f
-      \\general-align #Y #DOWN
-      \\line { Y, Down }
-      \\arrow-head #X #LEFT ##f
+      one
+      \\general-align #Y #UP
+      two
+      three
     }
+    \\null
     \\line {
-      \\arrow-head #X #RIGHT ##f
+      one
       \\general-align #Y #3.2
-      \\line {
-        \\line { Y, Arbitrary alignment }
-      }
-      \\arrow-head #X #LEFT ##f
+      two
+      three
     }
   }
 }
@@ -1357,20 +1359,25 @@ alignment accordingly.
 @lilypond[verbatim,quote]
 \\markup {
   \\column {
-    ↓
+    one
     \\halign #LEFT
-    Left
-    ↓
+    two
+    three
+    \\null
+    one
     \\halign #CENTER
-    Center
-    ↓
+    two
+    three
+    \\null
+    one
     \\halign #RIGHT
-    Right
-    ↓
-    \\halign #1.2
-    \\line {
-      Arbitrary alignment
-    }
+    two
+    three
+    \\null
+    one
+    \\halign #-5
+    two
+    three
   }
 }
 @end lilypond"
@@ -2736,10 +2743,10 @@ A negative @var{amount} indicates raising; see also @code{\\raise}.
 
 @lilypond[verbatim,quote]
 \\markup {
-  default
-  \\lower #3 {
-    three spaces lower
-  }
+  one
+  \\lower #3
+  two
+  three
 }
 @end lilypond"
   (ly:stencil-translate-axis (interpret-markup layout props arg)