]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into translation
authorJean-Charles Malahieude <lilyfan@orange.fr>
Fri, 6 Mar 2015 15:35:43 +0000 (16:35 +0100)
committerJean-Charles Malahieude <lilyfan@orange.fr>
Fri, 6 Mar 2015 15:35:43 +0000 (16:35 +0100)
62 files changed:
Documentation/changes.tely
Documentation/css/lilypond-manuals.css
Documentation/css/lilypond-website-ie-fixes.css
Documentation/css/lilypond-website.css
Documentation/extending/scheme-tutorial.itely
Documentation/notation/input.itely
Documentation/notation/rhythms.itely
Documentation/web/community.itexi
Documentation/web/download.itexi
Documentation/web/introduction.itexi
Documentation/web/news-front.itexi
Documentation/web/news.itexi
VERSION
input/regression/display-lily-tests.ly
input/regression/minimum-length-after-break.ly [new file with mode: 0644]
input/regression/minimum-length-broken-ties.ly [new file with mode: 0644]
input/regression/time-signature-numbered.ly
input/regression/time-signature-single-digit.ly
lily/include/music-function.hh
lily/include/small-smobs.hh
lily/include/smobs.hh
lily/include/smobs.tcc
lily/item-scheme.cc
lily/music-function.cc
lily/rest.cc
lily/spanner.cc
ly/Welcome-to-LilyPond-MacOS.ly
ly/Welcome_to_LilyPond.ly
ly/arabic.ly
ly/articulate.ly
ly/chord-modifiers-init.ly
ly/chord-repetition-init.ly
ly/drumpitch-init.ly
ly/dynamic-scripts-init.ly
ly/engraver-init.ly
ly/event-listener.ly
ly/graphviz-init.ly
ly/gregorian.ly
ly/init.ly
ly/makam.ly
ly/midi-init.ly
ly/music-functions-init.ly
ly/performer-init.ly
ly/predefined-guitar-ninth-fretboards.ly
ly/property-init.ly
ly/satb.ly
ly/scale-definitions-init.ly
ly/script-init.ly
ly/spanners-init.ly
ly/string-tunings-init.ly
ly/text-replacements.ly
ly/toc-init.ly
po/eo.po
po/fr.po
po/it.po
po/lilypond.pot
scm/c++.scm
scm/define-grob-properties.scm
scm/define-music-display-methods.scm
scm/display-lily.scm
scm/music-functions.scm
scm/output-lib.scm

index a90f386485790d53292a5795d06329ec870f68ea..46675428be456f07f0270dbecb8405d17f8a9e48 100644 (file)
@@ -517,6 +517,15 @@ examples where this makes for readable input:
 \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | }
 @end lilypond
 
+@item
+@code{\displayLilyMusic} and its underlying Scheme functions no
+longer omit redundant note durations.  This makes it easier to
+reliably recognize and format standalone durations in expressions
+like
+@example
+@{ c4 d4 8 @}
+@end example
+
 @item
 Beaming exceptions can now be constructed using the
 @code{\beamExceptions} scheme function.  One can now write
index 8950b847a712bdf7f169793a833c5ebe7ec57fee..04a6877d8dbd833ba2568d7d5834ec3b6757ba29 100644 (file)
@@ -513,8 +513,7 @@ div#search p, div#search form {
   padding: 0;
   border: 1px solid green;
   /* Experimental rounded corners */
-  -moz-border-radius: 10px;
-  -webkit-border-radius: 10px;
+  border-radius: 10px;
   margin: 1em;
 }
 
@@ -532,7 +531,6 @@ body.contributor .warning { border-color: #000000; }
   padding: 0;
   border: 1px solid green;
   /* Experimental rounded corners */
-  -moz-border-radius: 10px;
-  -webkit-border-radius: 10px;
+  border-radius: 10px;
   margin: 0.5em 0.5em 2em 3em;
 }
index 716bf366cd6d4b6f3348972b24700760b557751b..86fe49ad87ec1fdbce214b5d9cbe53548ec2b161 100644 (file)
@@ -53,12 +53,14 @@ a[name="Unstable"] + h4 {
 }
 
 .column-left-top h3,
-.column-left-bottom h3 {
+.column-left-bottom h3,
+.column-center-middle-color2 h3 {
   background: #adce82 url(../pictures/color2-bg.png) repeat-x top left;
 }
 
 .column-right-top h3,
-.column-right-bottom h3 {
+.column-right-bottom h3,
+.column-center-middle-color3 h3 {
   background: #bdd088 url(../pictures/color3-bg.png) repeat-x top left;
 }
 
index 032feebdd964a4a8aa66774e2d46eb5d43a922fb..ca445710ae6a447d46d8a278e808b907993bd2f4 100644 (file)
@@ -75,10 +75,6 @@ div#tocframe {
   font-size: 100%;
   line-height: 1;
   padding: 0;
-  -moz-border-radius-bottomleft: 7px;
-  -moz-border-radius-bottomright: 7px;
-  -webkit-border-bottom-left-radius: 7px;
-  -webkit-border-bottom-right-radius: 7px;
   border-bottom-left-radius: 7px;
   border-bottom-right-radius: 7px;
   margin: 0;
@@ -96,8 +92,6 @@ div#tocframe {
 }
 
 #tocframe > ul:first-child > li:first-child a {
-  -moz-border-radius-bottomleft: 7px;
-  -webkit-border-bottom-left-radius: 7px;
   border-bottom-left-radius: 7px;
 }
 
@@ -107,8 +101,6 @@ div#tocframe {
 }
 
 #tocframe > ul:first-child > li:last-child {
-  -moz-border-radius-bottomright: 7px;
-  -webkit-border-bottom-right-radius: 7px;
   border-bottom-right-radius: 7px;
 }
 
@@ -137,8 +129,6 @@ div#tocframe {
   padding: 0.1em 0.1em 0.1em 0.6em;
   border: 0;
   margin: 0;
-  -moz-border-radius: 7px;
-  -webkit-border-radius: 7px;
   border-radius: 7px;
 }
 
@@ -194,20 +184,12 @@ div#tocframe {
 }
 
 #tocframe .toc .toc li:first-child a {
-  -moz-border-radius-topleft: 7px;
-  -moz-border-radius-bottomleft: 7px;
-  -webkit-border-top-left-radius: 7px;
-  -webkit-border-bottom-left-radius: 7px;
   border-top-left-radius: 7px;
   border-bottom-left-radius: 7px;
   border-left: 1px solid rgba(85, 130, 70, 0.25);
 }
 
 #tocframe .toc .toc li:last-child a {
-  -moz-border-radius-topright: 7px;
-  -moz-border-radius-bottomright: 7px;
-  -webkit-border-top-right-radius: 7px;
-  -webkit-border-bottom-right-radius: 7px;
   border-top-right-radius: 7px;
   border-bottom-right-radius: 7px;
 }
@@ -381,8 +363,8 @@ div.news-item {
 
 .news-item .subsubheading {
   text-align: left;
-  padding: 0 0 0 0.5em;
-  border-bottom: 1px solid #5b7f64;
+  padding: 0.5em 0.5em 0 0.5em;
+  border-top: 1px solid #5b7f64;
   margin: 0;
   overflow: hidden;
 }
@@ -417,34 +399,31 @@ div#latestVersion {
   position: absolute;
   top: 16em;
   right: 0;
-  width: 12em;
-  text-align: center;
-  border-left: 1px solid #5b7f64;
 }
 
 div#wildCardBox {
   position: absolute;
-  top: 0.0em;
+  top: 0;
   right: 0;
-  width: 12em;
-  text-align: center;
-  border-left: 1px solid #5b7f64;
 }
 
-#latestVersion .subheading {
-  background: #5b7f64;
-  color: #fff;
+div#latestVersion,
+div#wildCardBox {
+  width: 12em;
   text-align: center;
-  padding: 0 0.5em;
-  margin: 0;
+  border-left: 1px solid #5b7f64;
+  border-top-left-radius: 5px;
 }
 
+#latestVersion .subheading,
 #wildCardBox .subheading {
   background: #5b7f64;
   color: #fff;
   text-align: center;
   padding: 0 0.5em;
   margin: 0;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
 }
 
 /* this might not work in certain browsers */
@@ -464,7 +443,7 @@ a[name="Unstable"] + h4 {
 }
 
 #latestVersion .subsubheading {
-  padding: 0.08em 0.25em;
+  padding: 0.25em 0.25em 0;
   border-bottom: 1px solid #5b7f64;
   margin: 0;
 }
@@ -552,7 +531,7 @@ h1.unnumbered, h2.unnumberedsec, h3.unnumberedsubsec {
 table {
   text-align: left;
   padding: 0 0 0 0.5em;
-  border-left: 3px solid green;
+  border-left: 3px solid #5b7f64;
   margin: 1em 0 0 1em;
 }
 
@@ -617,6 +596,8 @@ div.float-right a.clickable {
 }
 
 /* Columns */
+
+/* color1 */
 .column-center-top {
   float: left;
   width: 99.5%;
@@ -625,14 +606,12 @@ div.float-right a.clickable {
   margin: 1em auto;
 }
 
-/* color1 */
-.column-center-top h3 {
-  background: #9ccc7c;
-  background: linear-gradient(to top,
-    rgb(140, 210, 118),
-    rgb(212, 242, 201));
+.column-center-middle-color2,
+.column-center-middle-color3 {
+  clear: both;
+  width: 99.5%;
   text-align: left;
-  border-bottom: 1px solid #9ccc7c;
+  margin: 1em auto;
 }
 
 .column-left-top {
@@ -648,21 +627,6 @@ div.float-right a.clickable {
   margin: 1em 0;
 }
 
-.column-left-top,
-.column-left-bottom {
-  border: 1px solid #adce82;
-}
-
-/* color2 */
-.column-left-top h3,
-.column-left-bottom h3 {
-  background: #adce82;
-  background: linear-gradient(to top,
-    rgb(173, 206, 130),
-    rgb(221, 243, 204));
-  border-bottom: 1px solid #adce82;
-}
-
 .column-right-top {
   float: right;
   width: 49%;
@@ -675,21 +639,21 @@ div.float-right a.clickable {
   margin: 1em 0;
 }
 
-.column-right-top,
-.column-right-bottom {
-  border: 1px solid #bdd088;
+/* color2 */
+.column-left-top,
+.column-left-bottom,
+.column-center-middle-color2 {
+  border: 1px solid #adce82;
 }
 
 /* color3 */
-.column-right-top h3,
-.column-right-bottom h3 {
-  background: #bdd088;
-  background: linear-gradient(to top,
-    rgb(189, 208, 136),
-    rgb(231, 243, 207));
-  border-bottom: 1px solid #bdd088;
+.column-right-top,
+.column-right-bottom,
+.column-center-middle-color3 {
+  border: 1px solid #bdd088;
 }
 
+/* color4 */
 .column-center-bottom {
   clear: both;
   width: 99.5%;
@@ -698,6 +662,50 @@ div.float-right a.clickable {
   margin: 1em auto 0;
 }
 
+.column-center-top,
+.column-center-middle-color2,
+.column-center-middle-color3,
+.column-center-bottom,
+.column-left-top,
+.column-left-bottom,
+.column-right-top,
+.column-right-bottom {
+  background: #f5fffa;
+  border-radius: 5px;
+}
+
+/* color1 */
+.column-center-top h3 {
+  background: #9ccc7c;
+  background: linear-gradient(to top,
+    rgb(140, 210, 118),
+    rgb(212, 242, 201));
+  text-align: left;
+  border-bottom: 1px solid #9ccc7c;
+}
+
+/* color2 */
+.column-left-top h3,
+.column-left-bottom h3,
+.column-center-middle-color2 h3 {
+  background: #adce82;
+  background: linear-gradient(to top,
+    rgb(173, 206, 130),
+    rgb(221, 243, 204));
+  border-bottom: 1px solid #adce82;
+}
+
+/* color3 */
+.column-right-top h3,
+.column-right-bottom h3,
+.column-center-middle-color3 h3 {
+  background: #bdd088;
+  background: linear-gradient(to top,
+    rgb(189, 208, 136),
+    rgb(231, 243, 207));
+  border-bottom: 1px solid #bdd088;
+}
+
 /* color4 */
 .column-center-bottom h3 {
   background: #ccd38f;
@@ -708,27 +716,24 @@ div.float-right a.clickable {
   border-bottom: 1px solid #ccd38f;
 }
 
-.column-center-top,
-.column-center-bottom,
-.column-left-top,
-.column-left-bottom,
-.column-right-top,
-.column-right-bottom {
-  background: #f5fffa;
-}
-
 .column-center-top h3,
+.column-center-middle-color2 h3,
+.column-center-middle-color3 h3,
 .column-center-bottom h3,
 .column-left-top h3,
 .column-left-bottom h3,
 .column-right-top h3,
 .column-right-bottom h3 {
   text-align: left;
-  padding: 0 0.5em;
+  padding: 3px 0.5em 0;
   margin: 0;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
 }
 
 .column-center-top h4,
+.column-center-middle-color2 h4,
+.column-center-middle-color3 h4,
 .column-center-bottom h4,
 .column-left-top h4,
 .column-left-bottom h4,
@@ -740,6 +745,8 @@ div.float-right a.clickable {
 }
 
 .column-center-top ul,
+.column-center-middle-color2 ul,
+.column-center-middle-color3 ul,
 .column-center-bottom ul,
 .column-left-top ul,
 .column-left-bottom ul,
@@ -751,6 +758,8 @@ div.float-right a.clickable {
 }
 
 .column-center-top li,
+.column-center-middle-color2 li,
+.column-center-middle-color3 li,
 .column-center-bottom li,
 .column-left-top li,
 .column-left-bottom li,
@@ -762,6 +771,8 @@ div.float-right a.clickable {
 }
 
 .column-center-top p,
+.column-center-middle-color2 p,
+.column-center-middle-color3 p,
 .column-center-bottom p,
 .column-left-top p,
 .column-left-bottom p,
@@ -772,6 +783,10 @@ div.float-right a.clickable {
 
 .column-center-top img.float-left,
 .column-center-top img.float-right,
+.column-center-middle-color2 img.float-left,
+.column-center-middle-color2 img.float-right,
+.column-center-middle-color3 img.float-left,
+.column-center-middle-color3 img.float-right,
 .column-center-bottom img.float-left,
 .column-center-bottom img.float-right,
 .column-left-top img.float-left,
@@ -785,62 +800,6 @@ div.float-right a.clickable {
   margin: 0.5em;
 }
 
-/* Centered divs by color */
-div.color1,
-div.color2,
-div.color3,
-div.color4 {
-  clear: both;
-  width: 99.5%;
-  background: #f5fffa;
-  margin: 1em auto;
-}
-
-div.color1 h3,
-div.color2 h3,
-div.color3 h3,
-div.color4 h3 {
-  padding: 0 0.5em;
-  margin: 0;
-}
-
-div.color1 {
-  border: 1px solid #9ccc7c;
-  margin: 1em auto;
-}
-
-div.color1 h3 {
-  background: #9ccc7c;
-  border-bottom: 1px solid #9ccc7c;
-}
-
-div.color2 {
-  border: 1px solid #adce82;
-}
-
-div.color2 h3 {
-  background: #adce82;
-  border-bottom: 1px solid #adce82;
-}
-
-div.color3 {
-  border: 1px solid #bdd088;
-}
-
-div.color3 h3 {
-  background: #bdd088;
-  border-bottom: 1px solid #bdd088;
-}
-
-div.color4 {
-  border: 1px solid #ccd38f;
-}
-
-div.color4 h3 {
-  background: #ccd38f;
-  border-bottom: 1px solid #ccd38f;
-}
-
 .keep-bullets ul {
   list-style-type: disc;
   padding: 0;
@@ -882,38 +841,26 @@ div.color4 h3 {
   overflow: auto;
 }
 
-.warning {
+.warning,
+.contactBox {
   background: #eef;
   text-align: left;
-  padding: 0;
-  border: 1px solid green;
-  /* Experimental rounded corners */
-  -moz-border-radius: 10px;
-  -webkit-border-radius: 10px;
-  border-radius: 10px;
   margin: 1em;
-}
-
-.warning p {
-  padding: 0.5em;
-  margin: 0;
+  padding: 0;
+  border: 1px solid rgb(160, 160, 175);
+  border-radius: 5px;
 }
 
 .contactBox {
   float: left;
-  background: #eef;
-  text-align: left;
-  border: 1px solid green;
-  padding: 0;
-  margin: 1em;
 }
 
+.warning p,
 .contactBox p {
   padding: 0.5em;
   margin: 0;
 }
 
-
 .hide {
   position: relative;
   text-indent: -999em;
index fc2eba1c6debfec3345933e1d3a0b204f0ab7420..a399570dec32412e13b77457a294999e9af1ee94 100644 (file)
@@ -1264,7 +1264,7 @@ The note pitch can be changed by setting this @code{'pitch} property,
        (ly:make-pitch 0 1 0)) ;; set the pitch to d'.
 \displayLilyMusic \someNote
 ===>
-d'
+d'4
 @end example
 
 
index 8cede953f0e85e8469036452fe4651f44d721b5f..ad827e0e36a41030bf7c0fd2d6d409ae6b0ec6d3 100644 (file)
@@ -3413,7 +3413,7 @@ line.  For example,
 will display
 
 @example
-@{ a,4 cis e fis g @}
+@{ a,4 cis4 e4 fis4 g4 @}
 @end example
 
 By default, LilyPond will print these messages to the console
index 6e6d5fcf3e8c5bd8e979fadb18318e444c312c24..f14e0dbd996297cd29f57386ff2113ed3ad59984 100644 (file)
@@ -3507,33 +3507,6 @@ spacer part, even if the visual part uses @code{\acciaccatura} or
 be printed, connecting the invisible grace note with the following
 note.
 
-The use of grace notes within voice contexts confuses the way the voice
-is typeset. This can be overcome by inserting a rest or note between the
-voice command and the grace note.
-
-@lilypond[quote,verbatim]
-accMusic = {
-  \acciaccatura { f8 } e8 r8 \acciaccatura { f8 } e8 r4
-}
-
-\new Staff {
-  <<
-    \new Voice {
-      \relative c'' {
-        r8 r8 \voiceOne \accMusic \oneVoice r8 |
-        r8 \voiceOne r8 \accMusic \oneVoice r8 |
-      }
-    }
-    \new Voice {
-      \relative c' {
-        s8 s8 \voiceTwo \accMusic \oneVoice s8 |
-        s8 \voiceTwo r8 \accMusic \oneVoice s8 |
-      }
-    }
-  >>
-}
-@end lilypond
-
 Grace sections should only be used within sequential music expressions.
 Nesting or juxtaposing grace sections is not supported, and might
 produce crashes or other errors.
index de483cfa29d56d6eb7b66e3aae84d8643b778ae3..df8c3a494977eace6a33be78dd29ea5db17aecdc 100644 (file)
@@ -898,7 +898,7 @@ looking for others to participate in future programs.
 
 @divEnd
 
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color2}
 @subheading Our Ideas List
 
 Below is a list of projects that were suggested for the GSoC 2012
@@ -912,6 +912,9 @@ those who would like to tackle projects such as those listed below.
 A full list of all the current open issues can be found
 @uref{http://code.google.com/p/lilypond/issues/list, here}.
 
+@divEnd
+
+@divClass{column-center-middle-color3}
 @subheading Grace notes
 
 Fix problems with synchronization of grace notes.  Grace notes can
@@ -923,6 +926,9 @@ multiple staffs are used where some have grace notes and others don't.
 @strong{Recommended:} familiarity with LilyPond internals
 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
 
+@divEnd
+
+@divClass{column-center-middle-color3}
 @subheading MusicXML
 
 Improving MusicXML import and export functions:
@@ -958,7 +964,9 @@ each output object to the XML tags.
 
 Familiarity with other scorewriters (for cross-testing) would also help.
 
+@divEnd
 
+@divClass{column-center-middle-color3}
 @subheading Improve slurs and ties
 
 The default curves of slurs and ties are often unsatisfactory. Ties
@@ -971,6 +979,9 @@ the intended output and writing code to improve them.
 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
 @strong{Mentor(s):} Mike Solomon
 
+@divEnd
+
+@divClass{column-center-middle-color3}
 @subheading Adding variants of font glyphs
 
 @divClass{keep-bullets}
@@ -993,6 +1004,9 @@ it.
 @strong{Recommended knowledge:} basic LilyPond knowledge
 @strong{Mentor(s):} Werner Lemberg
 
+@divEnd
+
+@divClass{column-center-middle-color3}
 @subheading Improve default beam positioning
 
 For regular, cross-staff, broken and kneed beams.  Beaming should depend
@@ -1005,6 +1019,9 @@ section 2.2 here}).  If possible also reduce beaming-computation time.
 @strong{Recommended knowledge:} aesthetic sense
 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
 
+@divEnd
+
+@divClass{column-center-middle-color3}
 @subheading Help improve compilation behavior
 
 Automatic code analysis tools, like valgrind memory leak detection or
index b4c6e2f13bb5a07736c1258e75b7ae42a672ac25..e4d872637e3b90ec137aa77e63acd57f20bda068 100644 (file)
@@ -82,7 +82,7 @@ latest unstable version
 
 @divEnd
 
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color2}
 
 @subheading Software License
 
@@ -91,7 +91,7 @@ LilyPond is published under the
 @divEnd
 
 
-@divClass{color1}
+@divClass{column-center-bottom}
 
 @subheading Sponsors
 
@@ -102,6 +102,9 @@ our bandwidth.
 @sourceimage{VTlogo_ITF,,,}
 @sourceimage{lao_banner_06_on_white_demo,,,}
 
+@divEnd
+
+@divClass{column-center-bottom}
 @subheading Legalese
 
 @divClass{legal}
index dc755d528abb0c8d636f9802accd5e8a85342347..1f07cf883a3516f0aad5276100727262470d728d 100644 (file)
@@ -307,48 +307,49 @@ already decided to try LilyPond, first read about our
 LilyPond is a powerful and flexible tool for engraving tasks of
 all kinds.  Please browse our gallery of examples and be inspired!
 
+@divEnd
 
-@newsItem
-@subsubheading Classical Music
+@divClass{column-center-middle-color2}
+@subheading Classical Music
 
 This organ work by J.S. Bach is a fairly typical engraving project
 in LilyPond.
 
 @exampleImage{bach-bwv610}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Complex Notation
+@divClass{column-center-middle-color2}
+@subheading Complex Notation
 
 This example from @emph{Goyescas} by Enrique Granados shows some
 of the more advanced features of typesetting, including kneed
 beams, cross-staff stems, and voice-follow lines.
 
 @exampleImage{granados}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Early Music
+@divClass{column-center-middle-color2}
+@subheading Early Music
 
 LilyPond also supports various types of ancient notation, such
 as this passage of Gregorian chant.
 
 @exampleImage{ancient-headword}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Modern Music
+@divClass{column-center-middle-color2}
+@subheading Modern Music
 
 Contemporary composers find LilyPond well-suited to displaying
 unusual notation.  Here is an excerpt from Trevor Bača's
 @emph{Čáry}, for unaccompanied bass flute.
 
 @exampleImage{cary}
-@newsEnd
+@divEnd
 
 
-@newsItem
-@subsubheading Efficient, flexible creation of performance materials
+@divClass{column-center-middle-color2}
+@subheading Efficient, flexible creation of performance materials
 
 Various performance materials can be created from the same source
 code.  This is an excerpt of @uref{http://nicolas.sceaux.free.fr/,
@@ -361,10 +362,10 @@ full score, piano-vocal reduction, and a violin part.
 
 @exampleImage{sesto-violin}
 
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Tablature
+@divClass{column-center-middle-color2}
+@subheading Tablature
 
 LilyPond supports tablature notation, which can be customized to
 suit any instrument that reads from tablature.  The tablature
@@ -372,10 +373,10 @@ staff is generated automatically from notes entered for the 5-line
 staff.
 
 @exampleImage{tab-example}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Schenker Graphs
+@divClass{column-center-middle-color2}
+@subheading Schenker Graphs
 
 Standard output can be modified heavily.  Here is an impressive
 Schenkerian analysis, created by Kris Schaffer, for an article
@@ -383,19 +384,19 @@ in @uref{http://www.linuxjournal.com/article/8364 , Linux Journal}.
 The colors have been added for better visibility.
 
 @exampleImage{bach-schenker}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Customized Output
+@divClass{column-center-middle-color2}
+@subheading Customized Output
 
 A short excerpt from Stockhausen's Klavierstück II to demonstrate
 Lilypond's ability to provide customised output.
 
 @exampleImage{Stockhausen_Klavierstueck2}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Vocal Music
+@divClass{column-center-middle-color2}
+@subheading Vocal Music
 
 LilyPond is excellent for vocal music of all kinds, from sacred
 hymns to opera.  Here is a medieval motet with slightly unusual
@@ -406,19 +407,19 @@ Vaticana style clefs, the slashed stems indicating plicated notes,
 and the ligature braces above certain groups of notes.
 
 @exampleImage{aucun-snippet}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Educational Applications
+@divClass{column-center-middle-color2}
+@subheading Educational Applications
 
 LilyPond is perfectly suited for educational purposes as well.
 Here is an example of a simple counterpoint exercise.
 
 @exampleImage{theory}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Popular Music
+@divClass{column-center-middle-color2}
+@subheading Popular Music
 
 It is simple to create pop lead sheets with melody, lyrics,
 chord names, and fretboards.  In this example you see some of the
@@ -426,10 +427,10 @@ predefined fretboard diagrams, but these can be heavily customized
 to suit nearly any situation.
 
 @exampleImage{chart}
-@newsEnd
+@divEnd
 
-@newsItem
-@subsubheading Large Projects
+@divClass{column-center-middle-color2}
+@subheading Large Projects
 
 LilyPond is excellent for large projects like operas or works for
 full symphony orchestra, as well.  In addition, the text-based
@@ -437,8 +438,6 @@ input provides greater accessibility -- this example was
 contributed by Hu Haipeng, a blind composer.
 
 @exampleImage{orchestra}
-@newsEnd
-
 @divEnd
 
 @divClass{column-center-bottom}
@@ -466,7 +465,7 @@ not require hundreds of dollars of software!
 
 
 @c @divClass{column-left-top}
-@divClass{color2}
+@divClass{column-center-middle-color2}
 @divClass{keep-bullets}
 @subheading What are the benefits to users?
 
@@ -507,7 +506,7 @@ available for copying, modifications, and distribution.
 
 
 @c @divClass{column-right-top}
-@divClass{color3}
+@divClass{column-center-middle-color3}
 @divClass{keep-bullets}
 @subheading Why do LilyPond developers @qq{give away} their work for free?
 
@@ -1073,6 +1072,7 @@ Read about our @ref{Text input}.
 @c TRANSLATORS, so far it's mostly from
 @c http://lilypond.org/web/switch/howto
 
+@divClass{column-center-top}
 @subheading @qq{Compiling} Music
 
 @imageClickable{nereid-shot-small,png, (click to enlarge), nereid-shot,png, right}
@@ -1181,7 +1181,7 @@ command completion, and pre-made templates.  Other programs
 actually provide a GUI which allows direct manipulation of a
 graphical score.  For more information, see @ref{Easier editing}.
 
-
+@divEnd
 
 @divClass{column-center-bottom}
 @subheading Where now?
@@ -1305,7 +1305,7 @@ with LilyPond source files.  A developer  has written
 If you are not already familiar with Emacs then you may probably prefer
 to use a different editor for writing LilyPond input files.
 
-More information on setting up Vim can be found in
+More information on setting up Emacs can be found in
 @rprogram{Text editor support}.
 
 @subsubheading Vim
@@ -1465,7 +1465,10 @@ like to review the @ref{Features}, @ref{Examples}, or the
 approach to the computational aesthetics of classical engraving is
 explained in our @ref{Background}.
 
+@divEnd
 
+
+@divClass{column-center-bottom}
 @subheading Legalese
 
 @divClass{legal}
index 0bf271ab80858f52f5442e45c1a75aaee39f64fc..51242ec65806a71ba4bd1d09f41a16d2470b6391 100644 (file)
@@ -9,15 +9,18 @@
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subsubheading LilyPond 2.19.15 released  @emph{September 28, 2014}
+@subsubheading LilyPond 2.19.16 released  @emph{February 28, 2015}
 
-We are happy to announce the release of LilyPond 2.19.15.  This
-release includes a number of enhancements, and contains some work
-in progress.  You will have access to the very latest features, but
+At long last, we are very happy to announce the release of LilyPond
+2.19.16.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
 require a stable version of Lilypond, we recommend using the 2.18
 version.
 
+We would like to acknowledge and thank Masamichi Hosoda for making this
+release possible with his work on updating GUB, the build tool.
+
 @newsEnd
 
 @newsItem
index 24f121f9fd2f5e81aeb06b4f70732e3136707049..49cb8ce18eecd84a41ac44a2559fe929ed92ed9a 100644 (file)
@@ -26,6 +26,18 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subsubheading LilyPond 2.19.15 released  @emph{September 28, 2014}
+
+We are happy to announce the release of LilyPond 2.19.15.  This
+release includes a number of enhancements, and contains some work
+in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
 @newsItem
 @subsubheading LilyPond 2.19.14 released  @emph{September 14, 2014}
 
diff --git a/VERSION b/VERSION
index 4098926f6c31805706273453db7bd407073a34b8..ac4d72dbf96c1c6d6a1d2bf52c3e2ae71ebf5e2b 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=19
-PATCH_LEVEL=16
+PATCH_LEVEL=17
 MY_PATCH_LEVEL=
 VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.15
+VERSION_DEVEL=2.19.16
index b14fa520906c06b3c49ad93a6ac8dd0babbeba43..cbbebd6539fa0f9bd6acb0767c7a93e38f8aec97 100644 (file)
@@ -48,24 +48,24 @@ stderr of this run."
 }
 
 %% Sequential music
-\test ##[ { { a b } { c d } } #]               % SequentialMusic
-\test ##[ << { a b } { c d } >> #]             % SimultaneousMusic
-\test ##[ << { a b } \\ { c d } >> #]          % VoiceSeparator
+\test ##[ { { a4 b4 } { c4 d4 } } #]           % SequentialMusic
+\test ##[ << { a4 b4 } { c4 d4 } >> #]         % SimultaneousMusic
+\test ##[ << { a4 b4 } \\ { c4 d4 } >> #]      % VoiceSeparator
 
 %% Chords and Notes
-\test ##[ { ceses ces c cis cisis } #]         % NoteEvent
-\test ##[ { deses des d dis disis } #]
-\test ##[ { eeses ees e eis eisis } #]
-\test ##[ { feses fes f fis fisis } #]
-\test ##[ { geses ges g gis gisis } #]
-\test ##[ { aeses aes a ais aisis } #]
-\test ##[ { beses bes b bis bisis } #]
-\test ##[ { c,, d' } #]
-\test ##[ { c' d'=' } #]
-\test ##[ { c! c? } #]
+\test ##[ { ceses4 ces4 c4 cis4 cisis4 } #]    % NoteEvent
+\test ##[ { deses4 des4 d4 dis4 disis4 } #]
+\test ##[ { eeses4 ees4 e4 eis4 eisis4 } #]
+\test ##[ { feses4 fes4 f4 fis4 fisis4 } #]
+\test ##[ { geses4 ges4 g4 gis4 gisis4 } #]
+\test ##[ { aeses4 aes4 a4 ais4 aisis4 } #]
+\test ##[ { beses4 bes4 b4 bis4 bisis4 } #]
+\test ##[ { c,,4 d'4 } #]
+\test ##[ { c'4 d'='4 } #]
+\test ##[ { c!4 c?4 } #]
 \test ##[ r1.*4/3 #]           % RestEvent
 \test ##[ c1\rest #]           % RestEvent
-\test ##[ s2..*3/4 #]                  % SkipEvent
+\test ##[ s2..*3/4 #]          % SkipEvent
 \test ##[ R1.*2/3 #]           % MultiMeasureRestMusicGroup, MultiMeasureRestEvent
 \test ##[ \skip 2.*3/4 #]              % SkipMusic
 \test ##[ < c\1 e\3 >4.*3/4-. #]       % EventChord, NoteEvent, StringNumberEvent, ArticulationEvent
@@ -73,22 +73,22 @@ stderr of this run."
 \test ##[ { < c e g c' >4 q8-. } #] % RepeatedChord
 
 %% tags
-\test ##[ { \tag #'foo { c4 d } } #]
-\test ##[ c-\tag #'foo -\tag #'baz -^-. #]
+\test ##[ { \tag #'foo { c4 d4 } } #]
+\test ##[ c4-\tag #'foo -\tag #'baz -^-. #]
 
 %% Graces
 \test ##[ { \grace c8 d2 } #]                          % GraceMusic
 \test ##[ { \appoggiatura c8 d2 } #]
 \test ##[ { \acciaccatura c8 d2 } #]
-\test ##[ { c1 \afterGrace { b,16 c } d2 } #]
+\test ##[ { c1 \afterGrace { b,16 c16 } d2 } #]
 
 %% Clusters
-\test ##[ { \makeClusters { c4 g } } #]                        % ClusterNoteEvent
+\test ##[ { \makeClusters { c4 g4 } } #]               % ClusterNoteEvent
 
 %% Figured bass
-\test ##[ \figures { < 6 > } #]                                % BassFigureEvent
-\test ##[ \figuremode { < 1-- 3- > < 2+ 4++ > < _! 7! > } #]
-\test ##[ \figuremode { < [6 > < 5] > } #]
+\test ##[ \figures { < 6 >4 } #]                       % BassFigureEvent
+\test ##[ \figuremode { < 1-- 3- >4 < 2+ 4++ >4 < _! 7! >4 } #]
+\test ##[ \figuremode { < [6 >4 < 5] >4 } #]
 
 %% Lyrics
 \test ##[ \lyrics { a b } #]
@@ -96,53 +96,53 @@ stderr of this run."
 \test ##[ \lyricmode { a __ b } #]             % ExtenderEvent
 \test ##[ \lyricmode { "a " } #]                       % LyricEvent
 \test ##[ \lyricsto "foo" { bla bla  } #]              % LyricCombineMusic
-\test ##[ { { c d }
+\test ##[ { { c4 d4 }
   \addlyrics { bla bla  } } #]
 
 %% Drums
-\test ##[ \drums { hihat } #]
+\test ##[ \drums { hihat4 } #]
 \test ##[ \drummode { hihat4.*3/4 } #]
 
 %% Expressive marks
 \test ##[ c4 ~ #]                                      % TieEvent
-\test ##[ c\noBeam #]                                  % BeamForbidEvent
-\test ##[ c\1 #]                                       % StringNumberEvent
-\test ##[ { c:8 c:1 } #]                               % TremoloEvent
-\test ##[ { c-^ c^^ c_^ } #]                           % ArticulationEvent
-\test ##[ { c-+ c^+ c_+ } #]
-\test ##[ { c-- c^- c_- } #]
-\test ##[ { c-! c^! c_! } #]
-\test ##[ { c-> c^> c_> } #]
-\test ##[ { c-. c^. c_. } #]
-\test ##[ { c-_ c^_ c__ } #]
-\test ##[ { c\trill c^\trill c_\trill } #]
-\test ##[ { c-1 c^2 c_3 } #]                           % FingerEvent
-\test ##[ { c-"foo" c^"foo" c_"foo" } #]               % TextScriptEvent
-\test ##[ { R1*4-"foo" R^"foo" R_"foo" } #]            % MultiMeasureTextEvent
-\test ##[ { < c\harmonic >4 < c e\harmonic > } #]      % HarmonicEvent
-\test ##[ { c\glissando c^\glissando c_\glissando } #] % GlissandoEvent
-\test ##[ { c\arpeggio c^\arpeggio c_\arpeggio } #]    % ArpeggioEvent
-\test ##[ { c\p c^\ff c_\sfz } #]                      % AbsoluteDynamicEvent
-\test ##[ { c[ c] c^[ c^] c_[ c_] } #]                         % BeamEvent
-\test ##[ { c( c) c^( c^) c_( c_) } #]                         % SlurEvent
-\test ##[ { c\< c\! c^\< c^\! c_\< c_\! } #]           % CrescendoEvent
-\test ##[ { c\> c\! c^\> c^\! c_\> c_\! } #]           % DecrescendoEvent
-\test ##[ { c\episemInitium c\episemFinis } #]         % EpisemaEvent
-\test ##[ { c\( c\) c^\( c^\) c_\( c_\) } #]           % PhrasingSlurEvent
-\test ##[ { c\sustainOn c\sustainOff } #]              % SustainEvent
-\test ##[ { c\sostenutoOn c\sostenutoOff } #]          % SostenutoEvent
+\test ##[ c4\noBeam #]                                         % BeamForbidEvent
+\test ##[ c4\1 #]                                      % StringNumberEvent
+\test ##[ { c4:8 c4:1 } #]                             % TremoloEvent
+\test ##[ { c4-^ c4^^ c4_^ } #]                                % ArticulationEvent
+\test ##[ { c4-+ c4^+ c4_+ } #]
+\test ##[ { c4-- c4^- c4_- } #]
+\test ##[ { c4-! c4^! c4_! } #]
+\test ##[ { c4-> c4^> c4_> } #]
+\test ##[ { c4-. c4^. c4_. } #]
+\test ##[ { c4-_ c4^_ c4__ } #]
+\test ##[ { c4\trill c4^\trill c4_\trill } #]
+\test ##[ { c4-1 c4^2 c4_3 } #]                                % FingerEvent
+\test ##[ { c4-"foo" c4^"foo" c4_"foo" } #]            % TextScriptEvent
+\test ##[ { R1*4-"foo" R1*4^"foo" R1*4_"foo" } #]      % MultiMeasureTextEvent
+\test ##[ { < c\harmonic >4 < c e\harmonic >4 } #]     % HarmonicEvent
+\test ##[ { c4\glissando c4^\glissando c4_\glissando } #]      % GlissandoEvent
+\test ##[ { c4\arpeggio c4^\arpeggio c4_\arpeggio } #]         % ArpeggioEvent
+\test ##[ { c4\p c4^\ff c4_\sfz } #]                   % AbsoluteDynamicEvent
+\test ##[ { c4[ c4] c4^[ c4^] c4_[ c4_] } #]           % BeamEvent
+\test ##[ { c4( c4) c4^( c4^) c4_( c4_) } #]           % SlurEvent
+\test ##[ { c4\< c4\! c4^\< c4^\! c4_\< c4_\! } #]     % CrescendoEvent
+\test ##[ { c4\> c4\! c4^\> c4^\! c4_\> c4_\! } #]     % DecrescendoEvent
+\test ##[ { c4\episemInitium c4\episemFinis } #]       % EpisemaEvent
+\test ##[ { c4\( c4\) c4^\( c4^\) c4_\( c4_\) } #]     % PhrasingSlurEvent
+\test ##[ { c4\sustainOn c4\sustainOff } #]            % SustainEvent
+\test ##[ { c4\sostenutoOn c4\sostenutoOff } #]                % SostenutoEvent
 \test ##[ \melisma #]
 \test ##[ \melismaEnd #]
-\test ##[ { c\startTextSpan c\stopTextSpan } #]                % TextSpanEvent
-\test ##[ { c\startTrillSpan c\stopTrillSpan } #]      % TrillSpanEvent
-\test ##[ { c \startStaff c \stopStaff } #]            % StaffSpanEvent
-\test ##[ { c\startGroup c\stopGroup c^\startGroup c^\stopGroup c_\startGroup c_\stopGroup } #]    % NoteGroupingEvent
-\test ##[ { c\unaCorda c\treCorde } #]                 % UnaCordaEvent
+\test ##[ { c4\startTextSpan c4\stopTextSpan } #]      % TextSpanEvent
+\test ##[ { c4\startTrillSpan c4\stopTrillSpan } #]    % TrillSpanEvent
+\test ##[ { c4 \startStaff c4 \stopStaff } #]          % StaffSpanEvent
+\test ##[ { c4\startGroup c4\stopGroup c4^\startGroup c4^\stopGroup c4_\startGroup c4_\stopGroup } #]    % NoteGroupingEvent
+\test ##[ { c4\unaCorda c4\treCorde } #]               % UnaCordaEvent
 \test ##[ \breathe #]
-\test ##[ { c \[ c \] } #]                     % LigatureEvent
+\test ##[ { c4 \[ c4 \] } #]                           % LigatureEvent
 \test ##[ \~ #]                                                % PesOrFlexaEvent
-\test ##[ c\bendAfter #3 #]    % BendAfterEvent
-\test ##[ c\rightHandFinger #1 #]    % StrokeFingerEvent
+\test ##[ c4\bendAfter #3 #]                           % BendAfterEvent
+\test ##[ c4\rightHandFinger #1 #]                     % StrokeFingerEvent
 
 \test ##[ \break #]
 \test ##[ \noBreak #]
@@ -176,41 +176,41 @@ stderr of this run."
 \test ##[ \bar "|." #]
 
 %% staff switches
-\test ##[ \autochange { c d } #]                       % AutoChangeMusic
-\test ##[ { \change Staff = "up" { c d } } #]          % ContextChange
+\test ##[ \autochange { c4 d4 } #]                     % AutoChangeMusic
+\test ##[ { \change Staff = "up" { c4 d4 } } #]                % ContextChange
 
 %% Tuplets
-\test ##[ \tuplet 3/2 { c8 d e } #]                            % TimeScaledMusic
-\test ##[ \tuplet 6/4 { c16 d e f g a } #]
-\test ##[ \tuplet 3/2 { c4 d e \tuplet 5/2 { f4 e d2 d4 } c4 } #]
-\test ##[ \tuplet 3/2 2 { c4 d e \tuplet 5/2 2 { f4 e d2 d4 } c4 } #]
+\test ##[ \tuplet 3/2 { c8 d8 e8 } #]                          % TimeScaledMusic
+\test ##[ \tuplet 6/4 { c16 d16 e16 f16 g16 a16 } #]
+\test ##[ \tuplet 3/2 { c4 d4 e4 \tuplet 5/2 { f4 e4 d2 d4 } c4 } #]
+\test ##[ \tuplet 3/2 2 { c4 d4 e4 \tuplet 5/2 2 { f4 e4 d2 d4 } c4 } #]
 
 %% pure rhythm
 \test ##[ { 4 4 8 \tuplet 3/2 { 8[ 16] } 16 } #]
 
 %% \relative and \tranpose
-\test #"NOT A BUG" ##[ \relative c' { c b } #] % RelativeOctaveMusic
-\test #"NOT A BUG" ##[ \transpose c d { c d } #]       % TransposedMusic
+\test #"NOT A BUG" ##[ \relative c' { c4 b4 } #]       % RelativeOctaveMusic
+\test #"NOT A BUG" ##[ \transpose c d { c4 d4 } #]     % TransposedMusic
 
 %% Repeats
-\test ##[ \repeat volta 2 { c d } #]           % VoltaRepeatedMusic
-\test ##[ \repeat unfold 2 { c d } #]                  % UnfoldedRepeatedMusic
-\test ##[ \repeat percent 2 { c d } #]                 % PercentRepeatedMusic
-\test ##[ \repeat tremolo 4 { c16 d } #]               % TremoloRepeatedMusic
-\test ##[ \repeat tremolo 7 { c''32 b' } #]
-\test ##[ \repeat tremolo 15 { c''16 b' } #]
-\test ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #]    % 
+\test ##[ \repeat volta 2 { c4 d4 } #]                 % VoltaRepeatedMusic
+\test ##[ \repeat unfold 2 { c4 d4 } #]                        % UnfoldedRepeatedMusic
+\test ##[ \repeat percent 2 { c4 d4 } #]               % PercentRepeatedMusic
+\test ##[ \repeat tremolo 4 { c16 d16 } #]             % TremoloRepeatedMusic
+\test ##[ \repeat tremolo 7 { c''32 b'32 } #]
+\test ##[ \repeat tremolo 15 { c''16 b'16 } #]
+\test ##[ \repeat volta 2 { c4 d4 } \alternative { { c4 d4 } { e4 f4 } } #]    % 
 
 %% Context creation
-\test ##[ \new Staff { c d } #]                                % ContextSpeccedMusic
-\test ##[ \new Staff = "up" { c d } #]                         % ContextSpeccedMusic
-\test ##[ \context Staff { c d } #]
-\test ##[ \context Staff = "up" { c d } #]
+\test ##[ \new Staff { c4 d4 } #]                      % ContextSpeccedMusic
+\test ##[ \new Staff = "up" { c4 d4 } #]               % ContextSpeccedMusic
+\test ##[ \context Staff { c4 d4 } #]
+\test ##[ \context Staff = "up" { c4 d4 } #]
 \test ##[
 \new Staff \with {
   \consists "Timing_engraver"
   \remove "Clef_engraver"
-} { c d } #]
+} { c4 d4 } #]
 %% Context properties
 \test ##[ \once \set Score . skipBars = ##t #]         % PropertySet
 \test ##[ \set autoBeaming = ##f #]
@@ -236,22 +236,22 @@ stderr of this run."
 \test ##[ \partial 4*2/3 #]
 
 %% \partcombine
-\test ##[ \partcombine { c e }
-{ d f } #]                                             % PartCombineMusic UnrelativableMusic
+\test ##[ \partcombine { c4 e4 }
+{ d4 f4 } #]                                           % PartCombineMusic UnrelativableMusic
 
 %% Cue notes
-\test ##[ \cueDuring #"foo" #1 { c d } #]
-\test ##[ \quoteDuring #"foo" { c d } #]
+\test ##[ \cueDuring #"foo" #1 { c4 d4 } #]
+\test ##[ \quoteDuring #"foo" { c4 d4 } #]
 
 %% \ottava
 \test ##[ \ottava #1 #]    % OttavaMusic
 
 %% \tweak
-\test ##[ < \tweak duration-log #2 c > #]
-\test ##[ < c \tweak transparent ##t e > #]
-\test ##[ < \tweak color #'(1.0 0.0 0.0) \tweak duration-log #2 c > #]
-\test ##[ c-\tweak font-size #3 -> #]
-\test ##[ < \tweak Accidental.color #'(1.0 0.0 0.0) cis eis g > #]
+\test ##[ < \tweak duration-log #2 c >4 #]
+\test ##[ < c \tweak transparent ##t e >4 #]
+\test ##[ < \tweak color #'(1.0 0.0 0.0) \tweak duration-log #2 c >4 #]
+\test ##[ c4-\tweak font-size #3 -> #]
+\test ##[ < \tweak Accidental.color #'(1.0 0.0 0.0) cis eis g >4 #]
 
 %% end test.
 
diff --git a/input/regression/minimum-length-after-break.ly b/input/regression/minimum-length-after-break.ly
new file mode 100644 (file)
index 0000000..8d8fbb6
--- /dev/null
@@ -0,0 +1,45 @@
+\version "2.19.16"
+
+\header {
+  texidoc = "The property @code{minimum-length-after-break} can be
+used to stretch broken spanners starting after a line break.  The
+following example shows usage for a variety of spanners.
+"
+}
+
+\layout {
+  ragged-right = ##t
+}
+
+{
+  \once \override Tie.minimum-length-after-break = 20
+  a1~
+  \break
+  a1
+
+  \once \override Slur.minimum-length-after-break = 20
+  a1(
+  \break
+  d'1)
+
+  \once \override TextSpanner.springs-and-rods = #ly:spanner::set-spacing-rods
+  \once \override TextSpanner.minimum-length-after-break = 20
+  a1\startTextSpan
+  \break
+  a1\stopTextSpan
+
+  \once \override Hairpin.after-line-breaking = ##t
+  \once \override Hairpin.to-barline = ##f
+  \once \override Hairpin.minimum-length-after-break = 20
+  a1\<
+  \break
+  a1\!
+
+  \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+  \once \override Glissando.breakable = ##t
+  \once \override Glissando.after-line-breaking = ##t
+  \once \override Glissando.minimum-length-after-break = 20
+  a1\glissando
+  \break
+  d'1
+}
diff --git a/input/regression/minimum-length-broken-ties.ly b/input/regression/minimum-length-broken-ties.ly
new file mode 100644 (file)
index 0000000..ef824ac
--- /dev/null
@@ -0,0 +1,39 @@
+\version "2.19.16"
+
+\header {
+  texidoc = "The following shows the interaction between the
+properties @code{minimum-length} and
+@code{minimum-length-after-break}.  When @code{minimum-length}
+is used alone, both segments of the tie are affected.  The
+properties @code{minimum-length-after-break} only affects
+the sibling starting a line.  Both properties may be used
+together to create independent changes of both siblings.  This
+example shows that both properties have an identical effect on
+the sibling after the break.
+"
+}
+
+\layout {
+  ragged-right = ##t
+}
+
+music = {
+  <gis' cis'' dis'' gis''>1~
+  \break
+  q1
+}
+
+{
+  % default
+  \music
+
+  \once \override Tie.minimum-length = 11
+  \music
+
+  \once \override Tie.minimum-length-after-break = 11
+  \music
+
+  \once \override Tie.minimum-length = 8
+  \once \override Tie.minimum-length-after-break = 11
+  \music
+}
index 2e47128d7816e0a7a278d347baf05fdbb72c162a..e28772d2d40196a2a470565ebdaa601a8183fc87 100644 (file)
@@ -1,3 +1,5 @@
+\version "2.19.16"
+
 \header {
   texidoc = "The numbered time signature style prints a fraction."
 }
index 1b765651ab6def80487c54626750187b38204399..fcf473c57b82917f5c28752c6c0449908aa9044d 100644 (file)
@@ -1,3 +1,5 @@
+\version "2.19.16"
+
 \header {
   texidoc = "The single-digit time signature style prints the numerator only."
 }
index 99c6c8f157460523d155181d5051a330a5a42b92..aacb646e0de5a7d858eb0a88e392d2e3e3a59606 100644 (file)
@@ -28,7 +28,6 @@ class Music_function : public Smob2<Music_function>
 {
 public:
   static const char type_p_name_[];
-  SCM mark_smob ();
   int print_smob (SCM, scm_print_state *);
   SCM get_signature () { return scm1 (); }
   SCM get_function () { return scm2 (); }
index dcff3596a81e9b190fca972dfef33db2f6b8c5c4..41171b4881a5945de45f7e7a7c6e3820e12281ef 100644 (file)
@@ -80,7 +80,7 @@ public:
                          SCM_UNPACK (arg2),
                          SCM_UNPACK (arg3));
   }
-  static SCM mark_smob (SCM s)
+  SCM mark_smob ()
   {
     scm_gc_mark (scm3 ());
     scm_gc_mark (scm2 ());
index a816b67ca3df9e0f0f2228e5729102c06d0e0036..3ee2ef80abce09b44b2acadf1081173eb6579ce6 100644 (file)
@@ -266,21 +266,22 @@ public:
   }
   SCM unprotected_smobify_self ()
   {
-    self_scm_ = Smob_base<Super>::register_ptr (static_cast<Super *> (this));
-    return self_scm_;
+    SCM s = Smob_base<Super>::register_ptr (static_cast<Super *> (this));
+    self_scm_ = s;
+    return s;
   }
   void protect ()
   {
     protect_smob (self_scm_, &protection_cons_);
   }
+  void smobify_self () {
+    protect_smob (unprotected_smobify_self (), &protection_cons_);
+  }
   SCM unprotect ()
   {
-    unprotect_smob (self_scm_, &protection_cons_);
-    return self_scm_;
-  }
-  void smobify_self () {
-    self_scm_ = unprotected_smobify_self ();
-    protect ();
+    SCM s = self_scm_;
+    unprotect_smob (s, &protection_cons_);
+    return s;
   }
   SCM self_scm () const { return self_scm_; }
 };
index c0a62535f5e4f830200c8b4a249ae955032d414f..b4dacacaa325ec8759bf321e368b4c8e138cc0ff 100644 (file)
@@ -32,14 +32,20 @@ template <class Super>
 SCM
 Smob_base<Super>::mark_trampoline (SCM arg)
 {
-  return (Super::unsmob (arg))->mark_smob ();
+  Super *ptr = Super::unsmob (arg);
+  if (ptr)
+    return ptr->mark_smob ();
+  return SCM_UNDEFINED;
 }
 
 template <class Super>
 int
 Smob_base<Super>::print_trampoline (SCM arg, SCM port, scm_print_state *p)
 {
-  return (Super::unsmob (arg))->print_smob (port, p);
+  Super *ptr = Super::unsmob (arg);
+  if (ptr)
+    return ptr->print_smob (port, p);
+  return 0;
 }
 
 template <class Super>
@@ -96,6 +102,7 @@ Smob_base<Super>::unregister_ptr (SCM obj)
 {
   Super *p = Super::unchecked_unsmob (obj);
   scm_gc_unregister_collectable_memory (p, sizeof (*p), smob_name_.c_str ());
+  SCM_SET_SMOB_DATA (obj, static_cast<Super *> (0));
   return p;
 }
 
index 0e6b71ef30a8191931495c3ff16bd6d9bb5fcadb..24ccf5bf0de97ba6666751afa514b2e777392c73 100644 (file)
@@ -19,6 +19,7 @@
 */
 
 #include "item.hh"
+#include "paper-column.hh"
 
 LY_DEFINE (ly_item_p, "ly:item?",
            1, 0, 0, (SCM g),
@@ -39,3 +40,17 @@ LY_DEFINE (ly_item_break_dir, "ly:item-break-dir",
   Item *me = Item::unsmob (it);
   return scm_from_int (me->break_status_dir ());
 }
+
+LY_DEFINE (ly_item_get_column, "ly:item-get-column",
+           1, 0, 0, (SCM it),
+           "Return the @code{PaperColumn} or @code{NonMusicalPaperColumn}"
+           " associated with this @code{Item}.")
+{
+  LY_ASSERT_SMOB (Item, it, 1);
+  Item *me = Item::unsmob (it);
+
+  if (Paper_column *col = me->get_column ())
+    return col->self_scm ();
+
+  return SCM_EOL;
+}
index c485a2989c7b47738f5507931ad43153420c4b39..35341e3c6d6fae828265b3d11f10f3e7c277daf7 100644 (file)
@@ -32,10 +32,3 @@ Music_function::print_smob (SCM port, scm_print_state *)
   /* Non-zero means success.  */
   return 1;
 }
-
-SCM
-Music_function::mark_smob ()
-{
-  ASSERT_LIVE_IS_ALLOWED (self_scm ());
-  return Smob2<Music_function>::mark_smob ();
-}
index 9e5dc046e14821fdced4de7ee10707c02f08b956..4f05764296c4faf61df85f892c9327293ca4d2fb 100644 (file)
@@ -199,11 +199,10 @@ Rest::glyph_name (Grob *me, int durlog, const string &style, bool try_ledgers,
         actual_style = "";
     }
 
-  if ((style == "classical") && (durlog != 2))
+  if (((style == "classical") || (style == "z")) && (durlog != 2))
     {
       /*
-        classical style: revert back to default style for any rest other
-        than quarter rest
+        these styles differ from the default in quarter rests only
       */
       actual_style = "";
     }
index 66b35dcd1b8b53df0438bcccddc62b96be71b134..84752313213c5df7c3c8ff6e03473cae3e8c1e53 100644 (file)
@@ -366,9 +366,10 @@ Spanner::set_spacing_rods (SCM smob)
 {
   Grob *me = Grob::unsmob (smob);
   SCM num_length = me->get_property ("minimum-length");
-  if (scm_is_number (num_length))
+  SCM broken_length = me->get_property ("minimum-length-after-break");
+  if (scm_is_number (num_length)
+     || scm_is_number (broken_length))
     {
-      Rod r;
       Spanner *sp = dynamic_cast<Spanner *> (me);
       System *root = get_root_system (me);
       Drul_array<Item *> bounds (sp->get_bound (LEFT),
@@ -389,9 +390,23 @@ Spanner::set_spacing_rods (SCM smob)
 
           r.item_drul_[LEFT] = cols.back ()->find_prebroken_piece (RIGHT);
           r.item_drul_[RIGHT] = sp->get_bound (RIGHT);
+          if (scm_is_number (broken_length))
+            /*
+              r.distance_ may have been modified by add_to_cols ()
+              above.  For treatment of minimum-distance-after-break
+              consistent with minimum-distance (which will use the
+              changed value), we cannot directly reset r.distance_ to
+              broken_length.
+            */
+            r.distance_ += robust_scm2double (broken_length, 0) -
+              robust_scm2double (num_length, 0);
           r.add_to_cols ();
         }
 
+      Rod r;
+      /*
+        As r is a fresh rod, we can set distance_ with no complication.
+      */
       r.distance_ = robust_scm2double (num_length, 0);
       r.item_drul_[LEFT] = sp->get_bound (LEFT);
       r.item_drul_[RIGHT] = sp->get_bound (RIGHT);
@@ -546,6 +561,7 @@ ADD_INTERFACE (Spanner,
                /* properties */
                "normalized-endpoints "
                "minimum-length "
+               "minimum-length-after-break "
                "spanner-broken "
                "spanner-id "
                "to-barline "
index 972f1ea27b1ab3684a98a7c225cf568ce420c7fe..94f010509fbf221e949f1abd54628f55fabfb664 100644 (file)
@@ -23,7 +23,7 @@ That's it.  For more information, visit http://lilypond.org .
 
 %}
 
-\version "2.19.15"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.16"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index d1ef2cec72722ed5e612789c837dc4839e9d7b8a..07d7114bd16af16995ad23721cda20e7b2d9de73 100644 (file)
@@ -32,7 +32,7 @@ Good luck with LilyPond!  Happy engraving.
 
 %}
 
-\version "2.19.15"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.16"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index 645b47ae68b234a781ce8830c87cdae9a9091662..ec637d316f257d15dac9ca0be5eb3e17c4263ca5 100644 (file)
@@ -87,18 +87,18 @@ iraq = #`(
     \Score
       keyAlterationOrder =
       #`(
-        (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT)
-        (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
-        (6 . ,SEMI-FLAT) (2 . ,SEMI-FLAT) (5 . ,SEMI-FLAT ) (1 . ,SEMI-FLAT)
-        (4 . ,SEMI-FLAT) (0 . ,SEMI-FLAT) (3 . ,SEMI-FLAT)
-        (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP)
-        (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
-        (3 . ,SEMI-SHARP) (0 . ,SEMI-SHARP) (4 . ,SEMI-SHARP) (1 . ,SEMI-SHARP)
-        (5 . ,SEMI-SHARP) (2 . ,SEMI-SHARP) (6 . ,SEMI-SHARP)
-        (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT)
-        (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
-        (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (1 . ,DOUBLE-SHARP)
-        (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
-       )
+         (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT)
+         (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
+         (6 . ,SEMI-FLAT) (2 . ,SEMI-FLAT) (5 . ,SEMI-FLAT ) (1 . ,SEMI-FLAT)
+         (4 . ,SEMI-FLAT) (0 . ,SEMI-FLAT) (3 . ,SEMI-FLAT)
+         (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP)
+         (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
+         (3 . ,SEMI-SHARP) (0 . ,SEMI-SHARP) (4 . ,SEMI-SHARP) (1 . ,SEMI-SHARP)
+         (5 . ,SEMI-SHARP) (2 . ,SEMI-SHARP) (6 . ,SEMI-SHARP)
+         (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT)
+         (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
+         (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (1 . ,DOUBLE-SHARP)
+         (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
+        )
   }
 }
index bbfea19a8f07f8d17e73773adca530ebc6ae1b1f..e2c8700ac63d1bcf6a2a24b20beac1c4bdb19d0a 100644 (file)
@@ -32,7 +32,7 @@
 %%%USAGE
 % In the \score section do:
 % \articulate <<
-%      all the rest of the score
+%       all the rest of the score
 % >>
 % or use the lilywrap script.
 %
@@ -66,8 +66,8 @@
 %   -- accent needs better control of dynamics.
 %   -- Articulations: mezzo-staccato, portato.
 %   -- Handling of generic ornaments (in lily, `\stopped'; in
-%              most early music:  ornament this note (trill, turn
-%              or mordent as the player wishes))
+%               most early music:  ornament this note (trill, turn
+%               or mordent as the player wishes))
 % * Automatic gruppetto at end of trill; better handling of
 %      initial/final grace notes on trill
 % * Automatic ornaments.
        #t)
       (begin
        (if (any (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-               (ly:music-property lastev 'elements))
-       (ly:warning (_ "stealing the entirety of a note's time")))
+                (ly:music-property lastev 'elements))
+        (ly:warning (_ "stealing the entirety of a note's time")))
        (set! (ly:music-property lastev 'elements) '())
        (set! ac:eventsBackward (cdr ac:eventsBackward))
        (ac:stealTimeBackward (- tosteal levlen))))))))
 % Raise note one step in the current diatonic scale.
 #(define (ac:up note)
   (let* ((pitch (ly:music-property note 'pitch))
-        (notename (ly:pitch-notename pitch))
-        (new-notename (if (eq? notename 6) 0 (+ 1 notename)))
-        (alterations (ly:music-property ac:current-key 'pitch-alist))
-        (new-alteration (cdr (assq new-notename alterations)))
-        (new-octave (if (eq? new-notename 0) (+ 1 (ly:pitch-octave pitch))
-                     (ly:pitch-octave pitch)))
+         (notename (ly:pitch-notename pitch))
+         (new-notename (if (eq? notename 6) 0 (+ 1 notename)))
+         (alterations (ly:music-property ac:current-key 'pitch-alist))
+         (new-alteration (cdr (assq new-notename alterations)))
+         (new-octave (if (eq? new-notename 0) (+ 1 (ly:pitch-octave pitch))
+                      (ly:pitch-octave pitch)))
        )
    (set! (ly:music-property note 'pitch)(ly:make-pitch new-octave new-notename new-alteration))))
 
 % Lower note one step in the current diatonic scale.
 #(define (ac:down note)
   (begin  (let* ((pitch (ly:music-property note 'pitch))
-        (notename (ly:pitch-notename pitch))
-        (new-notename (if (eq? notename 0) 6 (- notename 1)))
-        (alterations (ly:music-property ac:current-key 'pitch-alist))
-        (new-alteration (cdr (assq new-notename alterations)))
-        (new-octave (if (eq? new-notename 6) (- (ly:pitch-octave pitch) 1)
-                     (ly:pitch-octave pitch)))
+         (notename (ly:pitch-notename pitch))
+         (new-notename (if (eq? notename 0) 6 (- notename 1)))
+         (alterations (ly:music-property ac:current-key 'pitch-alist))
+         (new-alteration (cdr (assq new-notename alterations)))
+         (new-octave (if (eq? new-notename 6) (- (ly:pitch-octave pitch) 1)
+                      (ly:pitch-octave pitch)))
        )
    (set! (ly:music-property note 'pitch)(ly:make-pitch new-octave new-notename new-alteration))))
 )
 % Used in afterGrace to mark all notes as tenuto, so they're not shortened
 #(define (ac:add-articulation type music)
     (music-map (lambda (m)
-               (if (eq? 'EventChord (ly:music-property m 'name))
-                (set! (ly:music-property m 'elements)
-                 (append (ly:music-property m 'elements)
-                  (list (make-music 'ArticulationEvent 'articulation-type type)))))
-               m)
+                (if (eq? 'EventChord (ly:music-property m 'name))
+                 (set! (ly:music-property m 'elements)
+                  (append (ly:music-property m 'elements)
+                   (list (make-music 'ArticulationEvent 'articulation-type type)))))
+                m)
      music))
 
 % Convert a long note to an equivalent set of short notes, tied together.
 
 #(define (ac:to128_disabled music)
   (if (or (eq? 'SkipEvent (ly:music-property music 'name))
-       (eq? 'NoteEvent (ly:music-property music 'name)))
+        (eq? 'NoteEvent (ly:music-property music 'name)))
    (let* ((dur (ly:music-property music 'duration))
-         (log2 (ly:duration-log dur))
-        (shiftcount (- 6 log2))
-        (lastm (ly:music-deep-copy (shift-duration-log music shiftcount 0))))
+          (log2 (ly:duration-log dur))
+         (shiftcount (- 6 log2))
+         (lastm (ly:music-deep-copy (shift-duration-log music shiftcount 0))))
    (set! (ly:music-property music 'elements)
     (cons (make-music 'TieEvent) (ly:music-property music 'elements)))
    (make-sequential-music (list
-                          (make-repeat "unfold" (1- (expt 2 shiftcount))
-                           (make-sequential-music (list music)) '())
-                          lastm)))
+                           (make-repeat "unfold" (1- (expt 2 shiftcount))
+                            (make-sequential-music (list music)) '())
+                           lastm)))
  music))
 
 
 % If the music has a precomputed twiddletime (e.g., from \afterGrace) use that.
 #(define (ac:twiddletime music)
   (let* ((tr (filter (lambda (x)
-                    (and (eq? 'ArticulationEvent (ly:music-property x 'name))
-                     (string= "trill" (ly:music-property x 'articulation-type))))
-             (ly:music-property music 'elements)))
-        (pre-t (if (pair? tr) (ly:music-property (car tr) 'twiddle)
-                '()))
-        (hemisemimom (ly:make-moment 1/64))
-        (t (ac:targetTwiddleTime)))
+                     (and (eq? 'ArticulationEvent (ly:music-property x 'name))
+                      (string= "trill" (ly:music-property x 'articulation-type))))
+              (ly:music-property music 'elements)))
+         (pre-t (if (pair? tr) (ly:music-property (car tr) 'twiddle)
+                 '()))
+         (hemisemimom (ly:make-moment 1/64))
+         (t (ac:targetTwiddleTime)))
    (if (ly:moment? pre-t)
     pre-t
     hemisemimom)))
   " Replace music with time-compressed repeats of the music,
     maybe accelerating if the length is longer than a crotchet "
   (let* ((hemisemidur (ly:make-duration 5 0 1/1))
-        (orig-len  (ly:music-length music))
-        (t (ac:twiddletime music))
-        (uppernote '())
-        (note_moment (ly:moment-mul t (ly:make-moment 1/2)))
-        (c1 (ly:moment-div orig-len t))
-        (c2 (inexact->exact
-             (round (/ (ly:moment-main-numerator c1)
-                     (* 2 (ly:moment-main-denominator c1))))))
-        (count (if (< c2 2) 2 c2)))
+         (orig-len  (ly:music-length music))
+         (t (ac:twiddletime music))
+         (uppernote '())
+         (note_moment (ly:moment-mul t (ly:make-moment 1/2)))
+         (c1 (ly:moment-div orig-len t))
+         (c2 (inexact->exact
+              (round (/ (ly:moment-main-numerator c1)
+                      (* 2 (ly:moment-main-denominator c1))))))
+         (count (if (< c2 2) 2 c2)))
 
    (set! (ly:music-property music 'elements)
     (filter (lambda (y) (eq? 'NoteEvent (ly:music-property y 'name)))
      (ly:music-property uppernote 'elements)))
 
    (let* ((trillMusicElements
-         (let loop ((so_far (list uppernote music))
-                    (c count))
-          (if (> c 1)
-           (loop (append (list (ly:music-deep-copy uppernote) (ly:music-deep-copy music)) so_far) (1- c))
-           so_far)))
-         (trillMusic (make-sequential-music trillMusicElements))
-         (newlen (ly:music-length trillMusic))
-         (factor (ly:moment-div  orig-len newlen)))
+          (let loop ((so_far (list uppernote music))
+                     (c count))
+           (if (> c 1)
+            (loop (append (list (ly:music-deep-copy uppernote) (ly:music-deep-copy music)) so_far) (1- c))
+            so_far)))
+          (trillMusic (make-sequential-music trillMusicElements))
+          (newlen (ly:music-length trillMusic))
+          (factor (ly:moment-div  orig-len newlen)))
     (ly:music-compress trillMusic factor)
 ; accelerating the music seems to put lily into an infinite loop in
 ; its layout and midi engines.
 ;    (let* ((realfactor (exp (* (/ 1.0 count) (log 0.75))))
-;         (factor (ly:make-moment (inexact->exact (round (* 1024 realfactor)))
-;                  1024)))
+;          (factor (ly:make-moment (inexact->exact (round (* 1024 realfactor)))
+;                   1024)))
 ;     (ac:accel trillMusic factor))
  )))
 
 #(define (ac:tempoChange tempo)
   (make-sequential-music
    (list (make-music 'TempoChangeEvent
-         'metronome-count
-         tempo
-         'tempo-unit
-         (ly:make-duration 0 0 1/1))
+          'metronome-count
+          tempo
+          'tempo-unit
+          (ly:make-duration 0 0 1/1))
     (context-spec-music
     (make-property-set 'tempoWholesPerMinute  tempo) 'Score))))
 
      ((UnfoldedRepeatedMusic)
       (let
        ((body (ly:music-property m 'element))
-       (altl (ly:music-property m 'elements))
-       (rc (ly:music-property m 'repeat-count)))
+        (altl (ly:music-property m 'elements))
+        (rc (ly:music-property m 'repeat-count)))
        (if (null? altl)
-       (make-sequential-music
-        (list-tabulate rc (lambda (i) (ly:music-deep-copy body))))
-       (let ((ealtl (if (> (length altl) rc) (take altl rc) altl)))
-        (make-sequential-music
-         (apply append!
-          (append!
-           (list-tabulate
-            (- rc (length ealtl))
-            (lambda (i) (list (ly:music-deep-copy body) (ly:music-deep-copy (car ealtl)))))
-           (map (lambda (alt) (list (ly:music-deep-copy body) alt)) ealtl))))))))
+        (make-sequential-music
+         (list-tabulate rc (lambda (i) (ly:music-deep-copy body))))
+        (let ((ealtl (if (> (length altl) rc) (take altl rc) altl)))
+         (make-sequential-music
+          (apply append!
+           (append!
+            (list-tabulate
+             (- rc (length ealtl))
+             (lambda (i) (list (ly:music-deep-copy body) (ly:music-deep-copy (car ealtl)))))
+            (map (lambda (alt) (list (ly:music-deep-copy body) alt)) ealtl))))))))
      ((EventChord)
       (let-values
        (((trem evl)
-        (partition (lambda (v) (eq? (ly:music-property v 'name) 'TremoloEvent))
-         (ly:music-property m 'elements))))
+         (partition (lambda (v) (eq? (ly:music-property v 'name) 'TremoloEvent))
+          (ly:music-property m 'elements))))
        (if (null? trem)
-       m
-       (let*
-        ((tremtype (ly:music-property (car trem) 'tremolo-type))
-         (tremtype-log (1- (integer-length tremtype)))
-         (durev (find (lambda (v) (not (null? (ly:music-property v 'duration)))) evl))
-         (totaldur (if durev (ly:music-property durev 'duration) (ly:make-duration tremtype-log 0 1)))
-         (tgt-nrep (/ (duration-visual-length totaldur) (duration-log-factor tremtype-log)))
-         (eff-nrep (max (truncate tgt-nrep) 1))
-         (tremdur (ly:make-duration tremtype-log 0
-                   (* (/ tgt-nrep eff-nrep) (ly:duration-scale totaldur)))))
-        (or (and (= eff-nrep tgt-nrep) (= (ash 1 tremtype-log) tremtype))
-         (ly:warning (_ "non-integer tremolo ~a:~a")
-          (duration->lily-string (duration-visual totaldur) #:force-duration #t #:time-scale 1)
-          tremtype))
-        (for-each
-         (lambda (v)
-          (or (null? (ly:music-property v 'duration))
-           (set! (ly:music-property v 'duration) tremdur)))
-         evl)
-        (set! (ly:music-property m 'elements) evl)
-        (make-sequential-music
-         (list-tabulate eff-nrep (lambda (i) (ly:music-deep-copy m))))))))
+        m
+        (let*
+         ((tremtype (ly:music-property (car trem) 'tremolo-type))
+          (tremtype-log (1- (integer-length tremtype)))
+          (durev (find (lambda (v) (not (null? (ly:music-property v 'duration)))) evl))
+          (totaldur (if durev (ly:music-property durev 'duration) (ly:make-duration tremtype-log 0 1)))
+          (tgt-nrep (/ (duration-visual-length totaldur) (duration-log-factor tremtype-log)))
+          (eff-nrep (max (truncate tgt-nrep) 1))
+          (tremdur (ly:make-duration tremtype-log 0
+                    (* (/ tgt-nrep eff-nrep) (ly:duration-scale totaldur)))))
+         (or (and (= eff-nrep tgt-nrep) (= (ash 1 tremtype-log) tremtype))
+          (ly:warning (_ "non-integer tremolo ~a:~a")
+           (duration->lily-string (duration-visual totaldur) #:force-duration #t #:time-scale 1)
+           tremtype))
+         (for-each
+          (lambda (v)
+           (or (null? (ly:music-property v 'duration))
+            (set! (ly:music-property v 'duration) tremdur)))
+          evl)
+         (set! (ly:music-property m 'elements) evl)
+         (make-sequential-music
+          (list-tabulate eff-nrep (lambda (i) (ly:music-deep-copy m))))))))
      ((MultiMeasureRestMusic)
       (make-sequential-music
        (list
-       (make-music 'BarCheck)
-       (make-music 'SkipMusic 'duration (ly:music-property m 'duration))
-       (make-music 'BarCheck))))
+        (make-music 'BarCheck)
+        (make-music 'SkipMusic 'duration (ly:music-property m 'duration))
+        (make-music 'BarCheck))))
      (else
       m)))
    (unfold-repeats music)))
 % trills, turns, ornaments etc.  are also treated as Articulations.
 % Split into two functions:
 %  ac:getactions traverses the elements in the EventChord
-%              and calculates the parameters.
+%               and calculates the parameters.
 %  ac:articulate-chord applies the actions to each NoteEvent in
-%              the EventChord.
+%               the EventChord.
 #(define (ac:getactions music)
   (let  loop ((factor ac:normalFactor)
-             (newelements '())
-             (es (ly:music-property music 'elements))
-             (actions '()))
+              (newelements '())
+              (es (ly:music-property music 'elements))
+              (actions '()))
    (if (null? es)
     (begin
      (set! (ly:music-property music 'elements) (reverse newelements))
      (if
       (not (any (lambda (m) (music-is-of-type? m 'rhythmic-event))
-               newelements))
+                newelements))
       actions
       (append
        (let ((st ac:stealForward))
-       (if (= st 0)
-        '()
-        (begin
-         (set! ac:stealForward 0)
-         (list 'steal st))))
+        (if (= st 0)
+         '()
+         (begin
+          (set! ac:stealForward 0)
+          (list 'steal st))))
        actions
        (cond
-       (ac:inTrill '(trill))
-       ((and (eq? factor ac:normalFactor) (or ac:inSlur ac:inPhrasingSlur))
-        (list 'articulation  '(1 . 1)))
-       (else (list 'articulation  factor))))))
+        (ac:inTrill '(trill))
+        ((and (eq? factor ac:normalFactor) (or ac:inSlur ac:inPhrasingSlur))
+         (list 'articulation  '(1 . 1)))
+        (else (list 'articulation  factor))))))
     ; else part
     (let ((e (car es))
-         (tail (cdr es)))
+          (tail (cdr es)))
      (case (ly:music-property e 'name)
 
       ((BeamEvent) ; throw away beam events, or they'll be duplicated by turn or trill
 
       ((ArticulationEvent)
        (let ((articname (ly:music-property e 'articulation-type)))
-       ; TODO: add more here
-       (cond
-        ((string= articname "staccato")
-         (loop ac:staccatoFactor newelements tail actions))
-        ((string= articname "staccatissimo")
-         (loop ac:staccatissimoFactor newelements tail actions))
-        ((string= articname "tenuto")
-         (loop ac:tenutoFactor newelements tail actions))
-        ((string= articname "mordent")
-         (loop (cons 1 1) newelements tail (cons 'mordent actions)))
-        ((string= articname "prall")
-         (loop (cons 1 1) newelements tail (cons 'prall actions)))
-        ((string= articname "trill")
-         (loop (cons 1 1) newelements tail (cons 'trill actions)))
-        ((string= articname "turn")
-         (loop (cons 1 1) newelements tail (cons 'turn actions)))
-        (else (loop factor (cons e newelements) tail actions)))))
+        ; TODO: add more here
+        (cond
+         ((string= articname "staccato")
+          (loop ac:staccatoFactor newelements tail actions))
+         ((string= articname "staccatissimo")
+          (loop ac:staccatissimoFactor newelements tail actions))
+         ((string= articname "tenuto")
+          (loop ac:tenutoFactor newelements tail actions))
+         ((string= articname "mordent")
+          (loop (cons 1 1) newelements tail (cons 'mordent actions)))
+         ((string= articname "prall")
+          (loop (cons 1 1) newelements tail (cons 'prall actions)))
+         ((string= articname "trill")
+          (loop (cons 1 1) newelements tail (cons 'trill actions)))
+         ((string= articname "turn")
+          (loop (cons 1 1) newelements tail (cons 'turn actions)))
+         (else (loop factor (cons e newelements) tail actions)))))
 
       ((TextScriptEvent)
        (let ((t (ly:music-property e 'text)))
-       (if (not (string? t))
-        (loop factor (cons e newelements) tail actions)
-        (begin
-         (cond
-          ((or
-            (string= t "rall")
-            (string= t "Rall")
-            (string= t "rit.")
-            (string= t "rall."))
-           (loop factor (cons e newelements) tail (cons 'rall actions)))
-          ((or
-            (string= t "accelerando")
-            (string= t "accel")
-            (string= t "accel."))
-           (loop factor (cons e newelements) tail (cons 'accel actions)))
-          ((or
-            (string= t "poco accel."))
-           (loop factor (cons e newelements) tail (cons 'pocoAccel actions)))
-          ((or
-            (string= t "poco rall.")
-            (string= t "poco rit."))
-           (loop factor (cons e newelements) tail (cons 'pocoRall actions)))
-          ((or (string= t "a tempo")
-            (string= t "tempo I"))
-         (loop factor (cons e newelements) tail (cons 'aTempo actions)))
-          (else (loop factor (cons e newelements) tail actions)))))))
+        (if (not (string? t))
+         (loop factor (cons e newelements) tail actions)
+         (begin
+          (cond
+           ((or
+             (string= t "rall")
+             (string= t "Rall")
+             (string= t "rit.")
+             (string= t "rall."))
+            (loop factor (cons e newelements) tail (cons 'rall actions)))
+           ((or
+             (string= t "accelerando")
+             (string= t "accel")
+             (string= t "accel."))
+            (loop factor (cons e newelements) tail (cons 'accel actions)))
+           ((or
+             (string= t "poco accel."))
+            (loop factor (cons e newelements) tail (cons 'pocoAccel actions)))
+           ((or
+             (string= t "poco rall.")
+             (string= t "poco rit."))
+            (loop factor (cons e newelements) tail (cons 'pocoRall actions)))
+           ((or (string= t "a tempo")
+             (string= t "tempo I"))
+          (loop factor (cons e newelements) tail (cons 'aTempo actions)))
+           (else (loop factor (cons e newelements) tail actions)))))))
 
       ((SlurEvent)
        (let ((direction (ly:music-property e 'span-direction)))
-       (set! ac:inSlur (eq? direction -1))
-       (loop factor newelements tail actions)))
+        (set! ac:inSlur (eq? direction -1))
+        (loop factor newelements tail actions)))
 
       ((TrillSpanEvent)
        (let ((direction (ly:music-property e 'span-direction)))
-       (set! ac:inTrill (eq? direction -1))
-       (if ac:inTrill
-        (loop factor newelements tail (cons 'trill actions))
-        (loop factor (cons e newelements) tail actions))))
+        (set! ac:inTrill (eq? direction -1))
+        (if ac:inTrill
+         (loop factor newelements tail (cons 'trill actions))
+         (loop factor (cons e newelements) tail actions))))
 
       ((PhrasingSlurEvent)
        (let ((direction (ly:music-property e 'span-direction)))
-       (set! ac:inPhrasingSlur (eq? direction -1))
-       (loop factor newelements tail actions)))
+        (set! ac:inPhrasingSlur (eq? direction -1))
+        (loop factor newelements tail actions)))
 
       (else (loop factor (cons e newelements) tail actions)))))))
 
     (ac:logEventsBackward
      (let loop ((actions (ac:getactions music)))
       (if (null? actions)
-       (if (ly:moment<? (ly:make-moment 1/4) (ly:music-length music))
-        (ac:to128  music)
-        music)
+        (if (ly:moment<? (ly:make-moment 1/4) (ly:music-length music))
+         (ac:to128  music)
+         music)
 
       (case (car actions)
 
        ((articulation)
-       (map
-        (lambda (x) (ac:articulate-one-note x (cadr actions)))
-        (ly:music-property music 'elements))
-       (let*
-        ((num (caadr actions))
-         (denom (cdadr actions))
-         (mult (ly:duration-factor ac:currentDuration))
-         (newnum (* (- denom num) (car mult)))
-         (newdenom (* (cdr mult) denom))
-         (len (ly:duration-log ac:currentDuration))
-         (dots (ly:duration-dot-count ac:currentDuration)))
-
-        (if (not (eq? num denom))
-         (make-sequential-music
-          (list (ac:to128 music)
-          (make-music 'EventChord 'elements
-           (list
-            (make-music 'RestEvent 'duration (ly:make-duration len dots newnum newdenom))))))
-         music)))
+        (map
+         (lambda (x) (ac:articulate-one-note x (cadr actions)))
+         (ly:music-property music 'elements))
+        (let*
+         ((num (caadr actions))
+          (denom (cdadr actions))
+          (mult (ly:duration-factor ac:currentDuration))
+          (newnum (* (- denom num) (car mult)))
+          (newdenom (* (cdr mult) denom))
+          (len (ly:duration-log ac:currentDuration))
+          (dots (ly:duration-dot-count ac:currentDuration)))
+
+         (if (not (eq? num denom))
+          (make-sequential-music
+           (list (ac:to128 music)
+           (make-music 'EventChord 'elements
+            (list
+             (make-music 'RestEvent 'duration (ly:make-duration len dots newnum newdenom))))))
+          music)))
 
        ((accel)
-       (set! ac:lastTempo ac:currentTempo)
-       (set! ac:currentTempo (ly:moment-div ac:currentTempo ac:rallFactor))
-       (let ((pset (ac:tempoChange ac:currentTempo)))
-        (if (null? (cdr actions))
-         (make-sequential-music (list pset music))
-         (make-sequential-music
-          (list pset (loop (cdr actions)))))))
+        (set! ac:lastTempo ac:currentTempo)
+        (set! ac:currentTempo (ly:moment-div ac:currentTempo ac:rallFactor))
+        (let ((pset (ac:tempoChange ac:currentTempo)))
+         (if (null? (cdr actions))
+          (make-sequential-music (list pset music))
+          (make-sequential-music
+           (list pset (loop (cdr actions)))))))
 
        ((pocoAccel)
-       (set! ac:lastTempo ac:currentTempo)
-       (set! ac:currentTempo (ly:moment-div ac:currentTempo ac:pocoRallFactor))
-       (let ((pset (ac:tempoChange ac:currentTempo)))
-        (if (null? (cdr actions))
-         (make-sequential-music (list pset music))
-         (make-sequential-music
-          (list pset (loop (cdr actions)))))))
+        (set! ac:lastTempo ac:currentTempo)
+        (set! ac:currentTempo (ly:moment-div ac:currentTempo ac:pocoRallFactor))
+        (let ((pset (ac:tempoChange ac:currentTempo)))
+         (if (null? (cdr actions))
+          (make-sequential-music (list pset music))
+          (make-sequential-music
+           (list pset (loop (cdr actions)))))))
 
        ((rall)
-       (set! ac:lastTempo ac:currentTempo)
-       (set! ac:currentTempo (ly:moment-mul ac:currentTempo ac:rallFactor))
-       (let ((pset (ac:tempoChange ac:currentTempo)))
-        (if (null? (cdr actions))
-         (make-sequential-music (list pset music))
-         (make-sequential-music
-          (list pset (loop (cdr actions)))))))
+        (set! ac:lastTempo ac:currentTempo)
+        (set! ac:currentTempo (ly:moment-mul ac:currentTempo ac:rallFactor))
+        (let ((pset (ac:tempoChange ac:currentTempo)))
+         (if (null? (cdr actions))
+          (make-sequential-music (list pset music))
+          (make-sequential-music
+           (list pset (loop (cdr actions)))))))
 
        ((pocoRall)
-       (set! ac:lastTempo ac:currentTempo)
-       (set! ac:currentTempo (ly:moment-mul ac:currentTempo ac:pocoRallFactor))
-       (let ((pset (ac:tempoChange ac:currentTempo)))
-        (if (null? (cdr actions))
-         (make-sequential-music (list pset music))
-         (make-sequential-music
-          (list pset (loop (cdr actions)))))))
+        (set! ac:lastTempo ac:currentTempo)
+        (set! ac:currentTempo (ly:moment-mul ac:currentTempo ac:pocoRallFactor))
+        (let ((pset (ac:tempoChange ac:currentTempo)))
+         (if (null? (cdr actions))
+          (make-sequential-music (list pset music))
+          (make-sequential-music
+           (list pset (loop (cdr actions)))))))
 
        ((aTempo)
-       (set! ac:currentTempo ac:lastTempo)
+        (set! ac:currentTempo ac:lastTempo)
 
-       (let ((pset (ac:tempoChange ac:currentTempo)))
-        (if (null? (cdr actions))
-         (make-sequential-music (list pset music))
-         (make-sequential-music
-          (list pset (loop (cdr actions)))))))
+        (let ((pset (ac:tempoChange ac:currentTempo)))
+         (if (null? (cdr actions))
+          (make-sequential-music (list pset music))
+          (make-sequential-music
+           (list pset (loop (cdr actions)))))))
 
        ((trill)
-        (ac:trill music))
+         (ac:trill music))
 
        ((prall)
-       ; A pralltriller symbol can either mean an inverted mordent
-       ; or a half-shake -- a short, two twiddle trill.
-       ; We implement as a half-shake.
-       (let*
-        ((origlength (ly:music-length music))
-         (gracedur (ly:make-duration 5 0 1/1))
-         (gracenote (ac:note-copy music))
-         (abovenote (ac:note-copy music))
-         (abovenoteTwo (ac:note-copy music))
-         (mainnote (ly:music-deep-copy music)))
-
-        (map (lambda (y) (ac:setduration y gracedur))
-         (ly:music-property gracenote 'elements))
-        (map (lambda (y) (ac:setduration y gracedur))
-         (ly:music-property abovenote 'elements))
-        (map (lambda (y) (ac:setduration y gracedur))
-         (ly:music-property abovenoteTwo 'elements))
-        (map (lambda (y) (ac:up y))
-         (filter
-          (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-          (ly:music-property abovenote 'elements)))
-        (map (lambda (y) (ac:up y))
-         (filter
-          (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-          (ly:music-property abovenoteTwo 'elements)))
-        (let* ((prallMusic (make-sequential-music
+        ; A pralltriller symbol can either mean an inverted mordent
+        ; or a half-shake -- a short, two twiddle trill.
+        ; We implement as a half-shake.
+        (let*
+         ((origlength (ly:music-length music))
+          (gracedur (ly:make-duration 5 0 1/1))
+          (gracenote (ac:note-copy music))
+          (abovenote (ac:note-copy music))
+          (abovenoteTwo (ac:note-copy music))
+          (mainnote (ly:music-deep-copy music)))
+
+         (map (lambda (y) (ac:setduration y gracedur))
+          (ly:music-property gracenote 'elements))
+         (map (lambda (y) (ac:setduration y gracedur))
+          (ly:music-property abovenote 'elements))
+         (map (lambda (y) (ac:setduration y gracedur))
+          (ly:music-property abovenoteTwo 'elements))
+         (map (lambda (y) (ac:up y))
+          (filter
+           (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+           (ly:music-property abovenote 'elements)))
+         (map (lambda (y) (ac:up y))
+          (filter
+           (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+           (ly:music-property abovenoteTwo 'elements)))
+         (let* ((prallMusic (make-sequential-music
                               (list abovenote gracenote abovenoteTwo mainnote)))
                  (newlen (ly:music-length prallMusic))
                  (factor (ly:moment-div origlength newlen)))
-          (ly:music-compress prallMusic factor))))
+           (ly:music-compress prallMusic factor))))
 
        ((mordent)
-       (let*
-        ((origlength (ly:music-length music))
-         (gracedur (ly:make-duration 5 0 1/1))
-         (gracenote (ac:note-copy music))
-         (belownote (ac:note-copy music)))
-        (map (lambda (y) (ac:setduration y gracedur))
-         (ly:music-property gracenote 'elements))
-        (map (lambda (y) (ac:setduration y gracedur))
+        (let*
+         ((origlength (ly:music-length music))
+          (gracedur (ly:make-duration 5 0 1/1))
+          (gracenote (ac:note-copy music))
+          (belownote (ac:note-copy music)))
+         (map (lambda (y) (ac:setduration y gracedur))
+          (ly:music-property gracenote 'elements))
+         (map (lambda (y) (ac:setduration y gracedur))
                (ly:music-property belownote 'elements))
-        (map (lambda (y) (ac:down y))
-         (filter
-          (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-          (ly:music-property belownote 'elements)))
-        (display belownote)
+         (map (lambda (y) (ac:down y))
+          (filter
+           (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+           (ly:music-property belownote 'elements)))
+         (display belownote)
 
-        (let* ((mordentMusic (make-sequential-music (list gracenote belownote music)))
-               (newlen (ly:music-length mordentMusic))
-               (factor (ly:moment-div origlength newlen)))
-         (ly:music-compress mordentMusic factor))))
+         (let* ((mordentMusic (make-sequential-music (list gracenote belownote music)))
+                (newlen (ly:music-length mordentMusic))
+                (factor (ly:moment-div origlength newlen)))
+          (ly:music-compress mordentMusic factor))))
 
        ((turn)
-       (let*
-        ((dur (ly:music-property
-               (car (ly:music-property music 'elements)) 'duration))
-         (factor (ly:duration-factor dur))
-         (newdur (ly:make-duration (+ (ly:duration-log dur) 2)
-                  (ly:duration-dot-count dur) (car factor)(cdr factor))))
-        (begin
-         (map (lambda (y) (ac:setduration y newdur))
-          (ly:music-property music 'elements))
-         (let* ((above (ly:music-deep-copy music))
-                (below (ly:music-deep-copy music))
-                (newmusic (make-sequential-music (list above music below music))))
-          (begin
-           (map (lambda (y) (ac:down y))
-            (filter
-             (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-             (ly:music-property below 'elements)))
-           (map (lambda (y) (ac:up y))
-            (filter
-             (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-             (ly:music-property above 'elements)))
-           newmusic)))))
+        (let*
+         ((dur (ly:music-property
+                (car (ly:music-property music 'elements)) 'duration))
+          (factor (ly:duration-factor dur))
+          (newdur (ly:make-duration (+ (ly:duration-log dur) 2)
+                   (ly:duration-dot-count dur) (car factor)(cdr factor))))
+         (begin
+          (map (lambda (y) (ac:setduration y newdur))
+           (ly:music-property music 'elements))
+          (let* ((above (ly:music-deep-copy music))
+                 (below (ly:music-deep-copy music))
+                 (newmusic (make-sequential-music (list above music below music))))
+           (begin
+            (map (lambda (y) (ac:down y))
+             (filter
+              (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+              (ly:music-property below 'elements)))
+            (map (lambda (y) (ac:up y))
+             (filter
+              (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+              (ly:music-property above 'elements)))
+            newmusic)))))
        ((steal)
-       (let
-        ((totallen (ly:moment-main (ly:music-length music)))
-         (steallen (cadr actions)))
-        (if (>= steallen totallen)
-         (begin
-          (if (any (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
-                   (ly:music-property music 'elements))
-           (ly:warning (_ "stealing the entirety of a note's time")))
-          (set! ac:stealForward (- steallen totallen))
-          (make-sequential-music '()))
-         (begin
-          (ly:music-compress music (ly:make-moment (/ (- totallen steallen) totallen)))
-          (loop (cddr actions))))))
+        (let
+         ((totallen (ly:moment-main (ly:music-length music)))
+          (steallen (cadr actions)))
+         (if (>= steallen totallen)
+          (begin
+           (if (any (lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
+                    (ly:music-property music 'elements))
+            (ly:warning (_ "stealing the entirety of a note's time")))
+           (set! ac:stealForward (- steallen totallen))
+           (make-sequential-music '()))
+          (begin
+           (ly:music-compress music (ly:make-moment (/ (- totallen steallen) totallen)))
+           (loop (cddr actions))))))
      )))))
 
    ((eq? 'GraceMusic (ly:music-property music 'name))
     (let
      ((first-ev
        (call-with-current-continuation
-       (lambda (yield-fev)
-        (music-map
-         (lambda (m)
-          (if (eq? 'EventChord (ly:music-property m 'name))
-           (yield-fev m)
-           m))
-         music)
-        #f))))
+        (lambda (yield-fev)
+         (music-map
+          (lambda (m)
+           (if (eq? 'EventChord (ly:music-property m 'name))
+            (yield-fev m)
+            m))
+          music)
+         #f))))
      (if first-ev
       (let ((fev-pos (find-tail (lambda (m) (eq? m first-ev)) ac:eventsBackward)))
        (if fev-pos
-       (set! ac:eventsBackward (cdr fev-pos))
-       (ly:warning (_ "articulation of grace notes has gone awry"))))))
+        (set! ac:eventsBackward (cdr fev-pos))
+        (ly:warning (_ "articulation of grace notes has gone awry"))))))
     (let*
      ((gmus (ly:music-compress (ly:music-property music 'element)
-                              (ly:make-moment ac:defaultGraceFactor)))
+                               (ly:make-moment ac:defaultGraceFactor)))
       (glen (ly:moment-main (ly:music-length gmus))))
      (ac:stealTimeBackward (* glen ac:defaultGraceBackwardness))
      (set! ac:stealForward (+ ac:stealForward (* glen (- 1 ac:defaultGraceBackwardness))))
 
    ((memq (ly:music-property music 'name) '(BarCheck SkipMusic))
     (let ((totallen (ly:moment-main (ly:music-length music)))
-         (steallen ac:stealForward))
+          (steallen ac:stealForward))
      (cond
       ((= steallen 0)
        (ac:logEventsBackward music))
       ((< steallen totallen)
        (set! ac:stealForward 0)
        (ac:logEventsBackward
-       (ly:music-compress music (ly:make-moment (/ (- totallen steallen) totallen)))))
+        (ly:music-compress music (ly:make-moment (/ (- totallen steallen) totallen)))))
       (else
        (set! ac:stealForward (- steallen totallen))
        (make-sequential-music '())))))
 % At last ... here's the music function that applies all the above to a
 % score.
 articulate = #(define-music-function (parser location music)
-              (ly:music?)
-              "Adjust times of note to add tenuto, staccato and
+               (ly:music?)
+               "Adjust times of note to add tenuto, staccato and
                 normal articulations.
-               "
-              (dynamic-wind
-               (lambda ()
-                (set! ac:stealForward 0)
-                (set! ac:eventsBackward '()))
-               (lambda ()
-                (music-map
-                 ac:articulate-chord
-                 (ac:unfoldMusic (event-chord-wrap! music parser))))
-               (lambda ()
-                (or (= ac:stealForward 0)
-                 (begin
-                  (ly:warning (_ "articulation failed to steal ~a note at end of music") ac:stealForward)
-                  (set! ac:stealForward 0)))
-                (set! ac:eventsBackward '()))))
+                "
+               (dynamic-wind
+                (lambda ()
+                 (set! ac:stealForward 0)
+                 (set! ac:eventsBackward '()))
+                (lambda ()
+                 (music-map
+                  ac:articulate-chord
+                  (ac:unfoldMusic (event-chord-wrap! music parser))))
+                (lambda ()
+                 (or (= ac:stealForward 0)
+                  (begin
+                   (ly:warning (_ "articulation failed to steal ~a note at end of music") ac:stealForward)
+                   (set! ac:stealForward 0)))
+                 (set! ac:eventsBackward '()))))
 
 
 % Override \afterGrace to be in terms of audio, not spacing.
@@ -876,11 +876,11 @@ afterGrace =
     (factor (ly:moment-div new-main-length main-length))
   )
    (map (lambda (y) (set! (ly:music-property y 'twiddle) gracelen))
-        (filter (lambda (z)
-                 (and
-                  (eq? 'ArticulationEvent (ly:music-property z 'name))
-                  (string= "trill" (ly:music-property z 'articulation-type))))
-         (ly:music-property main 'elements)))
+         (filter (lambda (z)
+                  (and
+                   (eq? 'ArticulationEvent (ly:music-property z 'name))
+                   (string= "trill" (ly:music-property z 'articulation-type))))
+          (ly:music-property main 'elements)))
    (ac:add-articulation "tenuto" grace)
    (make-sequential-music  (list (ly:music-compress main factor) (ly:music-compress grace grace-factor)))))
 
@@ -894,11 +894,11 @@ appoggiatura =
   (set! grace (event-chord-wrap! grace parser))
   (set! main (event-chord-wrap! main parser))
   (let* ((maindur (ly:music-length main))
-        (grace-orig-len (ly:music-length grace))
-        (main-orig-len (ly:music-length main))
-        (numerator (ly:moment-main-numerator maindur))
-        (factor (if (eq? (remainder numerator 3) 0)
-                 (ly:make-moment 1/3) (ly:make-moment 1/2))))
+         (grace-orig-len (ly:music-length grace))
+         (main-orig-len (ly:music-length main))
+         (numerator (ly:moment-main-numerator maindur))
+         (factor (if (eq? (remainder numerator 3) 0)
+                  (ly:make-moment 1/3) (ly:make-moment 1/2))))
    (ly:music-compress grace
     (ly:moment-mul factor (ly:moment-div main-orig-len grace-orig-len)))
    (ly:music-compress main (ly:moment-sub (ly:make-moment 1/1) factor))
index 7f4ed21ad2d939e84266caef8663a54b0a992f56..4f7483fc99c42fff8c1d0bff872fd56cf8c6ea0a 100644 (file)
@@ -10,10 +10,10 @@ whiteTriangleMarkup = \markup {
 
   %% 2206 : delta from the symbol font.
   %   #(ly:wide-char->utf-8 #x2206)
-  
+
   %% up pointing triangle
   % #(ly:wide-char->utf-8 #x25B3)
-} 
+}
 
 blackTriangleMarkup = \markup {
   \triangle ##t
index 8cef71025069ab217cddc3d5a4b2786a81880bc7..70d7b6c26d32260695de3d93720cefec3643a78f 100644 (file)
@@ -38,4 +38,4 @@ tabChordRepetition =
    (_i "Include the string and fingering information in a chord repetition.
 This function is deprecated; try using @code{\\tabChordRepeats} instead.")
    (ly:parser-define! parser '$chord-repeat-events
-                     '(string-number-event fingering-event)))
+                      '(string-number-event fingering-event)))
index fd7915a8eb325bff5cf8204d2f03341e1bc44439..05d15436443406204b9e8f16b9a30f8de494e131 100644 (file)
@@ -151,90 +151,90 @@ drumPitchNames =
    (de . fivedown)
    )
 
-midiDrumPitches = #`(
-       (acousticbassdrum . ,(ly:make-pitch -3 6 NATURAL))
-       (bassdrum . ,(ly:make-pitch -2 0 NATURAL))
-       (hisidestick . ,(ly:make-pitch -3 6 DOUBLE-SHARP))
-       (sidestick . ,(ly:make-pitch -2 0 SHARP))
-       (losidestick . ,(ly:make-pitch -2 1 FLAT))
-       (acousticsnare . ,(ly:make-pitch -2 1 NATURAL))
-       (snare . ,(ly:make-pitch -2 2 DOUBLE-FLAT))
-       (handclap . ,(ly:make-pitch -2 1 SHARP))
-       (electricsnare . ,(ly:make-pitch -2 2 NATURAL))
-       (lowfloortom . ,(ly:make-pitch -2 3 NATURAL))
-       (closedhihat . ,(ly:make-pitch -2 3 SHARP))
-       (hihat . ,(ly:make-pitch -2 4 FLAT))
-       (highfloortom . ,(ly:make-pitch -2 4 NATURAL))
-       (pedalhihat . ,(ly:make-pitch -2 4 SHARP))
-       (lowtom . ,(ly:make-pitch -2 5 NATURAL))
-       (openhihat . ,(ly:make-pitch -2 5 SHARP))
-       (halfopenhihat . ,(ly:make-pitch -2 5 SHARP))
-       (lowmidtom . ,(ly:make-pitch -2 6 NATURAL))
-       (himidtom . ,(ly:make-pitch -1 0 NATURAL))
-       (crashcymbala . ,(ly:make-pitch -1 0 SHARP))
-       (crashcymbal . ,(ly:make-pitch -1 1 FLAT))
-       (hightom . ,(ly:make-pitch -1 1 NATURAL))
-       (ridecymbala . ,(ly:make-pitch -1 1 SHARP))
-       (ridecymbal . ,(ly:make-pitch -1 2 FLAT))
-       (chinesecymbal . ,(ly:make-pitch -1 2 NATURAL))
-       (ridebell . ,(ly:make-pitch -1 3 NATURAL))
-       (tambourine . ,(ly:make-pitch -1 3 SHARP))
-       (splashcymbal . ,(ly:make-pitch -1 4 NATURAL))
-       (cowbell . ,(ly:make-pitch -1 4 SHARP))
-       (crashcymbalb . ,(ly:make-pitch -1 5 NATURAL))
-       (vibraslap . ,(ly:make-pitch -1 5 SHARP))
-       (ridecymbalb . ,(ly:make-pitch -1 6 NATURAL))
-       (mutehibongo . ,(ly:make-pitch -1 6 SHARP))
-       (hibongo . ,(ly:make-pitch 0 0 NATURAL))
-       (openhibongo . ,(ly:make-pitch 0 1 DOUBLE-FLAT))
-       (mutelobongo . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
-       (lobongo . ,(ly:make-pitch 0 0 SHARP))
-       (openlobongo . ,(ly:make-pitch 0 1 FLAT))
-       (mutehiconga . ,(ly:make-pitch 0 1 NATURAL))
-       (muteloconga . ,(ly:make-pitch 0 2 DOUBLE-FLAT))
-       (openhiconga . ,(ly:make-pitch 0 1 SHARP))
-       (hiconga . ,(ly:make-pitch 0 2 FLAT))
-       (openloconga . ,(ly:make-pitch 0 1 DOUBLE-SHARP))
-       (loconga . ,(ly:make-pitch 0 2 NATURAL))
-       (hitimbale . ,(ly:make-pitch 0 3 NATURAL))
-       (lotimbale . ,(ly:make-pitch 0 3 SHARP))
-       (hiagogo . ,(ly:make-pitch 0 4 NATURAL))
-       (loagogo . ,(ly:make-pitch 0 4 SHARP))
-       (cabasa . ,(ly:make-pitch 0 5 NATURAL))
-       (maracas . ,(ly:make-pitch 0 5 SHARP))
-       (shortwhistle . ,(ly:make-pitch 0 6 NATURAL))
-       (longwhistle . ,(ly:make-pitch 1 0 NATURAL))
-       (shortguiro . ,(ly:make-pitch 1 0 SHARP))
-       (longguiro . ,(ly:make-pitch 1 1 NATURAL))
-       (guiro . ,(ly:make-pitch 1 0 DOUBLE-SHARP))
-       (claves . ,(ly:make-pitch 1 1 SHARP))
-       (hiwoodblock . ,(ly:make-pitch 1 2 NATURAL))
-       (lowoodblock . ,(ly:make-pitch 1 3 NATURAL))
-       (mutecuica . ,(ly:make-pitch 1 3 SHARP))
-       (opencuica . ,(ly:make-pitch 1 4 NATURAL))
-       (mutetriangle . ,(ly:make-pitch 1 4 SHARP))
-       (triangle . ,(ly:make-pitch 1 4 DOUBLE-SHARP))
-       (opentriangle . ,(ly:make-pitch 1 5 NATURAL))
-       
-       ;; "transposing" pitches:
-       (oneup . ,(ly:make-pitch 0 1 NATURAL))
-       (twoup . ,(ly:make-pitch 0 2 NATURAL))
-       (threeup . ,(ly:make-pitch 0 3 NATURAL))
-       (fourup . ,(ly:make-pitch 0 4 NATURAL))
-       (fiveup . ,(ly:make-pitch 0 5 NATURAL))
-       (onedown . ,(ly:make-pitch -1 6 NATURAL))
-       (twodown . ,(ly:make-pitch -1 5 NATURAL))
-       (threedown . ,(ly:make-pitch -1 4 NATURAL))
-       (fourdown . ,(ly:make-pitch -1 3 NATURAL))
-       (fivedown . ,(ly:make-pitch -1 2 NATURAL))
-)
+midiDrumPitches =
+#`((acousticbassdrum . ,(ly:make-pitch -3 6 NATURAL))
+   (bassdrum . ,(ly:make-pitch -2 0 NATURAL))
+   (hisidestick . ,(ly:make-pitch -3 6 DOUBLE-SHARP))
+   (sidestick . ,(ly:make-pitch -2 0 SHARP))
+   (losidestick . ,(ly:make-pitch -2 1 FLAT))
+   (acousticsnare . ,(ly:make-pitch -2 1 NATURAL))
+   (snare . ,(ly:make-pitch -2 2 DOUBLE-FLAT))
+   (handclap . ,(ly:make-pitch -2 1 SHARP))
+   (electricsnare . ,(ly:make-pitch -2 2 NATURAL))
+   (lowfloortom . ,(ly:make-pitch -2 3 NATURAL))
+   (closedhihat . ,(ly:make-pitch -2 3 SHARP))
+   (hihat . ,(ly:make-pitch -2 4 FLAT))
+   (highfloortom . ,(ly:make-pitch -2 4 NATURAL))
+   (pedalhihat . ,(ly:make-pitch -2 4 SHARP))
+   (lowtom . ,(ly:make-pitch -2 5 NATURAL))
+   (openhihat . ,(ly:make-pitch -2 5 SHARP))
+   (halfopenhihat . ,(ly:make-pitch -2 5 SHARP))
+   (lowmidtom . ,(ly:make-pitch -2 6 NATURAL))
+   (himidtom . ,(ly:make-pitch -1 0 NATURAL))
+   (crashcymbala . ,(ly:make-pitch -1 0 SHARP))
+   (crashcymbal . ,(ly:make-pitch -1 1 FLAT))
+   (hightom . ,(ly:make-pitch -1 1 NATURAL))
+   (ridecymbala . ,(ly:make-pitch -1 1 SHARP))
+   (ridecymbal . ,(ly:make-pitch -1 2 FLAT))
+   (chinesecymbal . ,(ly:make-pitch -1 2 NATURAL))
+   (ridebell . ,(ly:make-pitch -1 3 NATURAL))
+   (tambourine . ,(ly:make-pitch -1 3 SHARP))
+   (splashcymbal . ,(ly:make-pitch -1 4 NATURAL))
+   (cowbell . ,(ly:make-pitch -1 4 SHARP))
+   (crashcymbalb . ,(ly:make-pitch -1 5 NATURAL))
+   (vibraslap . ,(ly:make-pitch -1 5 SHARP))
+   (ridecymbalb . ,(ly:make-pitch -1 6 NATURAL))
+   (mutehibongo . ,(ly:make-pitch -1 6 SHARP))
+   (hibongo . ,(ly:make-pitch 0 0 NATURAL))
+   (openhibongo . ,(ly:make-pitch 0 1 DOUBLE-FLAT))
+   (mutelobongo . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
+   (lobongo . ,(ly:make-pitch 0 0 SHARP))
+   (openlobongo . ,(ly:make-pitch 0 1 FLAT))
+   (mutehiconga . ,(ly:make-pitch 0 1 NATURAL))
+   (muteloconga . ,(ly:make-pitch 0 2 DOUBLE-FLAT))
+   (openhiconga . ,(ly:make-pitch 0 1 SHARP))
+   (hiconga . ,(ly:make-pitch 0 2 FLAT))
+   (openloconga . ,(ly:make-pitch 0 1 DOUBLE-SHARP))
+   (loconga . ,(ly:make-pitch 0 2 NATURAL))
+   (hitimbale . ,(ly:make-pitch 0 3 NATURAL))
+   (lotimbale . ,(ly:make-pitch 0 3 SHARP))
+   (hiagogo . ,(ly:make-pitch 0 4 NATURAL))
+   (loagogo . ,(ly:make-pitch 0 4 SHARP))
+   (cabasa . ,(ly:make-pitch 0 5 NATURAL))
+   (maracas . ,(ly:make-pitch 0 5 SHARP))
+   (shortwhistle . ,(ly:make-pitch 0 6 NATURAL))
+   (longwhistle . ,(ly:make-pitch 1 0 NATURAL))
+   (shortguiro . ,(ly:make-pitch 1 0 SHARP))
+   (longguiro . ,(ly:make-pitch 1 1 NATURAL))
+   (guiro . ,(ly:make-pitch 1 0 DOUBLE-SHARP))
+   (claves . ,(ly:make-pitch 1 1 SHARP))
+   (hiwoodblock . ,(ly:make-pitch 1 2 NATURAL))
+   (lowoodblock . ,(ly:make-pitch 1 3 NATURAL))
+   (mutecuica . ,(ly:make-pitch 1 3 SHARP))
+   (opencuica . ,(ly:make-pitch 1 4 NATURAL))
+   (mutetriangle . ,(ly:make-pitch 1 4 SHARP))
+   (triangle . ,(ly:make-pitch 1 4 DOUBLE-SHARP))
+   (opentriangle . ,(ly:make-pitch 1 5 NATURAL))
+
+   ;; "transposing" pitches:
+   (oneup . ,(ly:make-pitch 0 1 NATURAL))
+   (twoup . ,(ly:make-pitch 0 2 NATURAL))
+   (threeup . ,(ly:make-pitch 0 3 NATURAL))
+   (fourup . ,(ly:make-pitch 0 4 NATURAL))
+   (fiveup . ,(ly:make-pitch 0 5 NATURAL))
+   (onedown . ,(ly:make-pitch -1 6 NATURAL))
+   (twodown . ,(ly:make-pitch -1 5 NATURAL))
+   (threedown . ,(ly:make-pitch -1 4 NATURAL))
+   (fourdown . ,(ly:make-pitch -1 3 NATURAL))
+   (fivedown . ,(ly:make-pitch -1 2 NATURAL))
+ )
 
 
 #(for-each
   (lambda (k-v)
     (module-define! (current-module)
-                   (car k-v)
-                   (alist->hash-table (cdr k-v)))
+                    (car k-v)
+                    (alist->hash-table (cdr k-v)))
     )
    '((drums-style .
      (
@@ -351,5 +351,3 @@ midiDrumPitches = #`(
       (handclap () #f 0)
       ))
    ))
-
-
index 570197ed146b7dead55b74a460695da2aa2be4ce..f66696f8f1906eca28b1436ab0def590d623b5c6 100644 (file)
@@ -32,4 +32,3 @@ fz = #(make-dynamic-script "fz")
 sp = #(make-dynamic-script "sp")
 spp = #(make-dynamic-script "spp")
 rfz = #(make-dynamic-script "rfz")
-
index b49a101205661f198aa7cf2a88f46b83b9a00b97..12a5fcf2ed98c59dacdc742f9d0bc4a4e4fee1ca 100644 (file)
@@ -65,7 +65,7 @@
   \consists "Dot_column_engraver"
   \consists "Staff_collecting_engraver"
 
- %% perhaps move to Voice context?
 %% perhaps move to Voice context?
   \consists "Ottava_spanner_engraver"
   \consists "Clef_engraver"
   \consists "Key_engraver"
@@ -97,9 +97,9 @@
   shortInstrumentName = #'()
 
   \defaultchild "Voice"
-  \accepts "Voice"
   \accepts "CueVoice"
   \accepts "NullVoice"
+  \accepts "Voice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
   vocalName = #'()
   shortVocalName = #'()
 
-  \accepts "Staff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
-  \accepts "RhythmicStaff"
+  \accepts "FiguredBass"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
   \defaultchild "Staff"
   \description "Identical to @code{StaffGroup} except that the
@@ -166,7 +166,7 @@ contained staves are not connected vertically."
   createSpacing = ##t
 
   squashedPosition = #0
-  \name RhythmicStaff
+  \name "RhythmicStaff"
   \alias "Staff"
 
   \override VoltaBracket.staff-padding = #3
@@ -191,8 +191,9 @@ contained staves are not connected vertically."
   instrumentName = #'()
   shortInstrumentName = #'()
 
-  \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
+  \accepts "Voice"
   \defaultchild "Voice"
 
   \description "A context like @code{Staff} but for printing rhythms.
@@ -273,8 +274,8 @@ multiple voices on the same staff."
 \context{
   \Voice
 
-  \name CueVoice
-  \alias Voice
+  \name "CueVoice"
+  \alias "Voice"
   fontSize = #-4
   \override Stem.length-fraction = #(magstep -4)
   \override Beam.length-fraction = #(magstep -4)
@@ -283,8 +284,8 @@ multiple voices on the same staff."
 
 \context {
   \Voice
-  \name DrumVoice
-  \alias Voice
+  \name "DrumVoice"
+  \alias "Voice"
 
   \description "A voice on a percussion staff."
   \remove "Arpeggio_engraver"
@@ -304,7 +305,7 @@ multiple voices on the same staff."
 
 \context{
   \type "Engraver_group"
-  \name GrandStaff
+  \name "GrandStaff"
   localAlterations = #'()
 
   \description "A group of staves, with a brace on the left
@@ -313,8 +314,8 @@ contained staves are connected vertically."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
-% The default for DynamicText.extra-spacing-width causes dynamics to
-% be placed across span bars, so switch it off:
+  %% The default for DynamicText.extra-spacing-width causes dynamics to
+  %% be placed across span bars, so switch it off:
   \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
@@ -327,14 +328,14 @@ contained staves are connected vertically."
   shortInstrumentName = #'()
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
-  \accepts "TabStaff"
-  \accepts "Lyrics"
-  \accepts "FiguredBass"
   \accepts "Dynamics"
-  \accepts "ChordNames"
+  \accepts "FiguredBass"
+  \accepts "Lyrics"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "TabStaff"
 }
 
 \context{
@@ -362,8 +363,8 @@ together, never separately."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
-% The default for DynamicText.extra-spacing-width causes dynamics to
-% be placed across span bars, so switch it off:
+  %% The default for DynamicText.extra-spacing-width causes dynamics to
+  %% be placed across span bars, so switch it off:
   \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
@@ -376,17 +377,18 @@ together, never separately."
   \consists "System_start_delimiter_engraver"
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
+  \accepts "FiguredBass"
+  \accepts "FretBoards"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
-  \accepts "TabStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
+  \accepts "TabStaff"
 
   \description "Groups staves while adding a bracket on the left
 side, grouping the staves together.  The bar lines of the contained
@@ -396,8 +398,8 @@ a collection of staves, with a bracket in front and spanning bar lines."
 
 \context {
   \type "Engraver_group"
-  \name Dynamics
-  \alias Voice
+  \name "Dynamics"
+  \alias "Voice"
   \consists "Output_property_engraver"
   \consists "Bar_engraver"
   \consists "Piano_pedal_engraver"
@@ -455,9 +457,9 @@ printing of a single line of lyrics."
        (stretchability . 1))
   \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
-       (minimum-distance . 2.8)
-       (padding . 0.2)
-       (stretchability . 0))
+        (minimum-distance . 2.8)
+        (padding . 0.2)
+        (stretchability . 0))
   \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #1.5
   \override InstrumentName.self-alignment-Y = ##f
 
@@ -472,7 +474,7 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
-  \name NoteNames
+  \name "NoteNames"
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
@@ -495,14 +497,14 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
-  \name ChordNames
+  \name "ChordNames"
   \description "Typesets chord names."
 
   \consists "Output_property_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
   \consists "Axis_group_engraver"
-%  \consists "Note_spacing_engraver"
+  %\consists "Note_spacing_engraver"
 
   \override VerticalAxisGroup.remove-first = ##t
   \override VerticalAxisGroup.remove-empty = ##t
@@ -539,7 +541,7 @@ automatically when an output definition (a @code{\\score} or
   %% Timing variables in layout definitions before any
   %% Timing_translator has been run.
 
-  % timing translator must come BEFORE bar number engraver
+  %% timing translator must come BEFORE bar number engraver
   \consists "Timing_translator"
   \consists "Default_bar_line_engraver"
   \consists "Output_property_engraver"
@@ -561,26 +563,26 @@ automatically when an output definition (a @code{\\score} or
 
   \defaultchild "Staff"
 
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
+  \accepts "Devnull"
+  \accepts "DrumStaff"
+  \accepts "FiguredBass"
   \accepts "FretBoards"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
-  \accepts "TabStaff"
-  \accepts "VaticanaStaff"
+  \accepts "GrandStaff"
   \accepts "GregorianTranscriptionStaff"
-  \accepts "MensuralStaff"
-  \accepts "PetrucciStaff"
-  \accepts "StaffGroup"
-  \accepts "DrumStaff"
   \accepts "KievanStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "GrandStaff"
-  \accepts "ChoirStaff"
-  \accepts "PianoStaff"
-  \accepts "Devnull"
-  \accepts "NullVoice"
+  \accepts "MensuralStaff"
   \accepts "NoteNames"
-  \accepts "FiguredBass"
+  \accepts "NullVoice"
+  \accepts "PetrucciStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "StaffGroup"
+  \accepts "TabStaff"
+  \accepts "VaticanaStaff"
 
   noteToFretFunction = #determine-frets
   predefinedDiagramTable = ##f
@@ -623,9 +625,9 @@ automatically when an output definition (a @code{\\score} or
 
   repeatCountVisibility = #all-repeat-counts-visible
 
-%% Other Timing variables are derived and set by the Timing_translator
-%% at initialization time by calling the functions in
-%% scm/time-signature-settings.scm
+  %% Other Timing variables are derived and set by the Timing_translator
+  %% at initialization time by calling the functions in
+  %% scm/time-signature-settings.scm
 
   timeSignatureSettings = #default-time-signature-settings
   timeSignatureFraction = 4/4
@@ -644,10 +646,10 @@ automatically when an output definition (a @code{\\score} or
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
   pedalUnaCordaStyle = #'text
 
-%% These are in ordinary italic font, including the *,
-%% but they are unlikely to be used,
-%% as the default pedal-style for SostenutoPedal is 'mixed':
-%% i.e.  Sost. Ped_____________________
+  %% These are in ordinary italic font, including the *,
+  %% but they are unlikely to be used,
+  %% as the default pedal-style for SostenutoPedal is 'mixed':
+  %% i.e.  Sost. Ped_____________________
   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
   pedalSostenutoStyle = #'mixed
 
@@ -674,7 +676,7 @@ automatically when an output definition (a @code{\\score} or
 
   barCheckSynchronize = ##f
 
-%% chord names:
+  %% chord names:
   chordNameFunction = #ignatzek-chord-names
   minorChordModifier = #(make-simple-markup "m")
   additionalPitchPrefix = #"" % was "add"
@@ -694,12 +696,12 @@ automatically when an output definition (a @code{\\score} or
   (assign clefPosition 2)
   (assign middleCPosition 6)
   (assign middleCClefPosition 6))
-%% tablature:
+  %% tablature:
   stringOneTopmost = ##t
   highStringOne = ##t
 
-%% One may change the string tunings as follows :
-%% The length of the list must be equal to the number of strings
+  %% One may change the string tunings as follows :
+  %% The length of the list must be equal to the number of strings
   stringTunings = #guitar-tuning
   tablatureFormat = #fret-number-tablature-format
   tabStaffLineLayoutFunction = #tablature-position-on-lines
@@ -726,7 +728,7 @@ automatically when an output definition (a @code{\\score} or
     ;; need this, as stanza numbers are items, and appear only once.
     stanza-number-interface
   )
-  % \quoteDuring is supposed to quote everything, cueDuring only the essentials
+  %% \quoteDuring is supposed to quote everything, cueDuring only the essentials
   quotedEventTypes = #'(StreamEvent)
   quotedCueEventTypes = #'(
     note-event
@@ -764,7 +766,7 @@ automatically when an output definition (a @code{\\score} or
   \name "Devnull"
   \type "Engraver_group"
 
-%% don't want to route anything out of here:
+  %% don't want to route anything out of here:
   \alias "Staff"
   \alias "Voice"
   \description "Silently discards all musical information given to this
@@ -780,20 +782,20 @@ context."
   \alias "Staff"
   \alias "Voice"
 
-  % provide non-printing NoteHeads with proper extents for lyric alignment
+  %% provide non-printing NoteHeads with proper extents for lyric alignment
   \consists "Note_heads_engraver"
   \omit NoteHead
   \override NoteHead.X-extent = #(lambda (g)
     (ly:stencil-extent (ly:note-head::print g) X))
 
-  % generate no accidentals
+  %% generate no accidentals
   nullAccidentals = ##t
 
   %% keep noteheads inside the staff
   \consists "Pitch_squash_engraver"
   squashedPosition = 0
 
-  % the engravers that control the 'busy' flags for note-onsets and melismata
+  %% the engravers that control the 'busy' flags for note-onsets and melismata
   \consists "Grob_pq_engraver"
   \consists "Tie_engraver"
   \omit Tie
@@ -920,9 +922,9 @@ contexts and handles the line spacing, the tablature clef etc. properly."
   %% the direction for glissando lines will be automatically corrected
   \override Glissando.extra-dy = #glissando::calc-tab-extra-dy
   \override Glissando.bound-details.right = #`((attach-dir . ,LEFT)
-                                                  (padding . 0.3))
+                                                   (padding . 0.3))
   \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
-                                                  (padding . 0.3))
+                                                   (padding . 0.3))
   %% dead notes
   \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name
   \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
@@ -1014,7 +1016,6 @@ of Editio Vaticana."
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
-
 }
 
 \context {
@@ -1110,7 +1111,7 @@ accommodated for typesetting a piece in Petrucci style."
   \override NoteHead.style = #'petrucci
   \override Rest.style = #'mensural
 
-  % Thickens and shortens stems.
+  %% Thickens and shortens stems.
   \override Stem.thickness = #1.7
   \override Stem.length = #5
 
@@ -1152,58 +1153,58 @@ accommodated for typesetting a piece in Petrucci style."
 }
 
 \context {
- \Voice
- \name "KievanVoice"
- \alias "Voice"
- \description "Same as @code{Voice} context, except that it is
 \Voice
 \name "KievanVoice"
 \alias "Voice"
 \description "Same as @code{Voice} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
   \remove "Ligature_bracket_engraver"
   \consists "Kievan_ligature_engraver"
 
- %% Set glyph styles.
- \override NoteHead.style = #'kievan
- \override Stem.X-offset = #stem::kievan-offset-callback
- \override Stem.stencil = ##f
- \override Flag.stencil = ##f
- \override Rest.style = #'mensural
- \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
- \override Dots.style = #'kievan
- \override Slur.stencil = ##f
- \override Stem.length = #0.0
- \override Beam.positions = #beam::get-kievan-positions
- \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
- \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
-
- %% There are beams in Kievan notation, but they are invoked manually
- autoBeaming = ##f
 %% Set glyph styles.
 \override NoteHead.style = #'kievan
 \override Stem.X-offset = #stem::kievan-offset-callback
 \override Stem.stencil = ##f
 \override Flag.stencil = ##f
 \override Rest.style = #'mensural
 \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
 \override Dots.style = #'kievan
 \override Slur.stencil = ##f
 \override Stem.length = #0.0
 \override Beam.positions = #beam::get-kievan-positions
 \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
 \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
+
 %% There are beams in Kievan notation, but they are invoked manually
 autoBeaming = ##f
 }
 
 \context {
- \Staff
- \name "KievanStaff"
- \alias "Staff"
- \denies "Voice"
- \defaultchild "KievanVoice"
- \accepts "KievanVoice"
- \description "Same as @code{Staff} context, except that it is
 \Staff
 \name "KievanStaff"
 \alias "Staff"
 \denies "Voice"
 \defaultchild "KievanVoice"
 \accepts "KievanVoice"
 \description "Same as @code{Staff} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
- \remove "Time_signature_engraver"
-
- %% Choose Kievan tsefaut clef
- clefGlyph = #"clefs.kievan.do"
- middleCClefPosition = #0
- middleCPosition = #0
- clefPosition = #0
- clefTransposition = #0
-
- %% Accidentals are valid only once (if the following note is different)
- extraNatural = ##f
- autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
-                            ,neo-modern-accidental-rule)
- autoCautionaries = #'()
- printKeyCancellation = ##f
 \remove "Time_signature_engraver"
+
 %% Choose Kievan tsefaut clef
 clefGlyph = #"clefs.kievan.do"
 middleCClefPosition = #0
 middleCPosition = #0
 clefPosition = #0
 clefTransposition = #0
+
 %% Accidentals are valid only once (if the following note is different)
 extraNatural = ##f
 autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
+                             ,neo-modern-accidental-rule)
 autoCautionaries = #'()
 printKeyCancellation = ##f
 
 }
 
index 9714e557e49f484cddc452de341009c17e95d117..a2a39bc47ef742e8142bd86c2db447308ecee1d9 100644 (file)
@@ -211,18 +211,18 @@ as an engraver for convenience."
   \Voice
   \consists #(make-engraver
               (listeners
-              (tempo-change-event . format-tempo)
-              (rest-event . format-rest)
-              (note-event . format-note)
-              (articulation-event . format-articulation)
-              (text-script-event . format-text)
-              (slur-event . format-slur)
-              (breathing-event . format-breathe)
-              (dynamic-event . format-dynamic)
-              (crescendo-event . format-cresc)
-              (decrescendo-event . format-decresc)
-              (text-span-event . format-textspan)
-              (glissando-event . format-glissando)
-              (tie-event . format-tie)))
+               (tempo-change-event . format-tempo)
+               (rest-event . format-rest)
+               (note-event . format-note)
+               (articulation-event . format-articulation)
+               (text-script-event . format-text)
+               (slur-event . format-slur)
+               (breathing-event . format-breathe)
+               (dynamic-event . format-dynamic)
+               (crescendo-event . format-cresc)
+               (decrescendo-event . format-decresc)
+               (text-span-event . format-textspan)
+               (glissando-event . format-glissando)
+               (tie-event . format-tie)))
   }
 }
index cc9229f8f551fe7db7d7acd9a41683d99afaa8b2..d8735e8f0e640e58ed31b79e39ce9a58cb2539f4 100644 (file)
@@ -26,7 +26,7 @@
 
 #(define (grob-name g)
   (let* ((meta (ly:grob-property g 'meta))
-        (name-pair (assq 'name meta)))
+         (name-pair (assq 'name meta)))
    (if (pair? name-pair)
        (cdr name-pair)
        #f)))
@@ -51,7 +51,7 @@
 
 #(define (grob-event-node grob label cluster)
   (let ((node-id (add-node graph label cluster))
-       (prev (assv grob last-grob-action)))
+        (prev (assv grob last-grob-action)))
    (if (pair? prev)
        (add-edge graph (cdr prev) node-id))
    (set! last-grob-action (assv-set! last-grob-action grob node-id))))
 
 #(define (grob-mod grob file line func prop val)
   (let* ((val-str (truncate-value val))
-        (label (format #f "~a\\n~a:~a\\n~a <- ~a" (grob-name grob) file line prop val-str)))
+         (label (format #f "~a\\n~a:~a\\n~a <- ~a" (grob-name grob) file line prop val-str)))
    (if (relevant? grob file line prop)
        (grob-event-node grob label file))))
 
 #(define (grob-cache grob prop callback value)
   (let* ((val-str (truncate-value value))
-        (label (format #f "caching ~a.~a\\n~a -> ~a" (grob-name grob) prop callback value)))
+         (label (format #f "caching ~a.~a\\n~a -> ~a" (grob-name grob) prop callback value)))
    (if (relevant? grob #f #f prop)
        (grob-event-node grob label #f))))
 
index b0fe9f24c2f21d403da331a39d6d7d915e2fd217..ca2b27033158e97353ffeddb91167a9829b2a0da 100644 (file)
@@ -8,7 +8,7 @@
 %
 % Declare memorable shortcuts for special unicode characters
 % that are used in chant notation.
-% 
+%
 
 % unicode 0132 (latin capital ligature IJ)
 IJ = \lyricmode { IJ }
@@ -26,13 +26,13 @@ iij = \lyricmode { iij }
    (let ((found? #f))
      (map-some-music
       (lambda (m)
-       (if found? m
-           (and (music-is-of-type? m 'lyric-event)
-                (begin
-                  (set! (ly:music-property m 'text)
-                        (string-append prefix (ly:music-property m 'text)))
-                  (set! found? #t)
-                  m))))
+        (if found? m
+            (and (music-is-of-type? m 'lyric-event)
+                 (begin
+                   (set! (ly:music-property m 'text)
+                         (string-append prefix (ly:music-property m 'text)))
+                   (set! found? #t)
+                   m))))
       music)))
 
 % Add unicode 2123 (versicle) as prefix to lyrics.
@@ -161,25 +161,25 @@ augmentum =
 
 #(define (make-ligature music)
    (make-music 'SequentialMusic
-              'elements (append
-                         (cons
-                          (make-music 'EventChord
-                                      'elements (list
-                                                 (make-span-event 'LigatureEvent START)))
-                          (ly:music-property music 'elements))
-                         (list
-                          (make-music 'EventChord
-                                      'elements (list
-                                                 (make-span-event 'LigatureEvent STOP)))))))
+               'elements (append
+                          (cons
+                           (make-music 'EventChord
+                                       'elements (list
+                                                  (make-span-event 'LigatureEvent START)))
+                           (ly:music-property music 'elements))
+                          (list
+                           (make-music 'EventChord
+                                       'elements (list
+                                                  (make-span-event 'LigatureEvent STOP)))))))
 
 ligature = #(define-music-function
-             (location music) (ly:music?)
-             (make-ligature music))
+              (location music) (ly:music?)
+              (make-ligature music))
 
 %#(define (make-script x)
 %   (make-music 'ArticulationEvent
 %               'articulation-type x))
-%    
+%
 %#(define (add-script m x)
 %   (if
 %     (equal? (ly:music-property m 'name) 'EventChord)
@@ -200,10 +200,10 @@ ligature = #(define-music-function
 %  `(define-music-function (location music) (ly:music?)
 %     (make-music 'SequentialMusic
 %        'elements (list 'LigatureStartEvent
-%                      (ly:music-deep-copy ,start)
+%                       (ly:music-deep-copy ,start)
 %                        music
 %                        (ly:music-deep-copy ,stop)
-%                      'LigatureStopEvent))))
+%                       'LigatureStopEvent))))
 %climacus = #(def-climacus-function startSequentialMusic stopSequentialMusic)
 
 %
@@ -225,46 +225,46 @@ ligature = #(define-music-function
     line-thickness = #(/ (ly:output-def-lookup $defaultpaper 'staff-space) 7.0)
 
     \context {
-       \VaticanaStaff
-        \override StaffSymbol.color = #red
-        \override LedgerLineSpanner.color = #red
+        \VaticanaStaff
+         \override StaffSymbol.color = #red
+         \override LedgerLineSpanner.color = #red
     }
     \context {
-       \Score
-       \remove "Bar_number_engraver"
-
-       %%%
-       %%% FIXME: Musicologically seen, timing should be set to #f.
-       %%% Unfortunately, setting it to #f will result in no
-       %%% line-breakable items being created, such that the whole
-       %%% music will end up in a single line.  Therefore, we
-       %%% currently set it to #t, until the ligature code is fixed
-       %%% to automatically insert breakable items.
-       %%%
-       timing = ##t
-
-       %%%
-       %%% FIXME: Setting barAlways to #t would fix the above
-       %%% "timing = ##t" problem, but, surprisingly, it increases
-       %%% the space between ligatures.  Hence, we set it to #f.
-       %%%
-       barAlways = ##f
-
-       \override SpacingSpanner.packed-spacing = ##t
-
-       %%%
-       %%% TODO: Play around with the following SpacingSpanner
-       %%% settings to yield better spacing between ligatures.
-       %%%
-       %%% FIXME: setting #'spacing-increment to a small value
-       %%% causes tons of "programming error: adding reverse spring,
-       %%% setting to unit" messages.
-       %%%
-       %\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4)
-       %\override SpacingSpanner.shortest-duration-space = #0
-       %\override SpacingSpanner.average-spacing-wishes = ##f
-       %\override SpacingSpanner.spacing-increment = #0.0
-       %\override SpacingSpanner.uniform-stretching = ##t
+        \Score
+        \remove "Bar_number_engraver"
+
+        %%%
+        %%% FIXME: Musicologically seen, timing should be set to #f.
+        %%% Unfortunately, setting it to #f will result in no
+        %%% line-breakable items being created, such that the whole
+        %%% music will end up in a single line.  Therefore, we
+        %%% currently set it to #t, until the ligature code is fixed
+        %%% to automatically insert breakable items.
+        %%%
+        timing = ##t
+
+        %%%
+        %%% FIXME: Setting barAlways to #t would fix the above
+        %%% "timing = ##t" problem, but, surprisingly, it increases
+        %%% the space between ligatures.  Hence, we set it to #f.
+        %%%
+        barAlways = ##f
+
+        \override SpacingSpanner.packed-spacing = ##t
+
+        %%%
+        %%% TODO: Play around with the following SpacingSpanner
+        %%% settings to yield better spacing between ligatures.
+        %%%
+        %%% FIXME: setting #'spacing-increment to a small value
+        %%% causes tons of "programming error: adding reverse spring,
+        %%% setting to unit" messages.
+        %%%
+        %\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4)
+        %\override SpacingSpanner.shortest-duration-space = #0
+        %\override SpacingSpanner.average-spacing-wishes = ##f
+        %\override SpacingSpanner.spacing-increment = #0.0
+        %\override SpacingSpanner.uniform-stretching = ##t
     }
 }
 
@@ -278,24 +278,24 @@ ligature = #(define-music-function
 neumeDemoLayout = \layout {
     interscoreline = 1
     \context {
-       \Score
-       \remove "Bar_number_engraver"
+        \Score
+        \remove "Bar_number_engraver"
     }
     \context {
-       \Staff
-       \remove "Clef_engraver"
-       \remove "Key_engraver"
-       \hide StaffSymbol
-       \remove "Time_signature_engraver"
-       \remove "Bar_engraver"
-       \override VerticalAxisGroup.staff-staff-spacing = #'()
+        \Staff
+        \remove "Clef_engraver"
+        \remove "Key_engraver"
+        \hide StaffSymbol
+        \remove "Time_signature_engraver"
+        \remove "Bar_engraver"
+        \override VerticalAxisGroup.staff-staff-spacing = #'()
     }
     \context {
-       \Voice
-       \remove "Ligature_bracket_engraver"
-       \consists "Vaticana_ligature_engraver"
-       \override NoteHead.style = #'vaticana.punctum
-       \hide Stem
+        \Voice
+        \remove "Ligature_bracket_engraver"
+        \consists "Vaticana_ligature_engraver"
+        \override NoteHead.style = #'vaticana.punctum
+        \hide Stem
     }
 }
 
index 876fc49464e125c97ad79ceb9d60f04dd6deaee9..8265d171cf2ab3f9ae632ddf722ab4a3a402f99e 100644 (file)
@@ -1,4 +1,4 @@
-%% Toplevel initialisation file. 
+%% Toplevel initialisation file.
 
 %% switch on debugging.
 #(if (and #t (defined? 'set-debug-cell-accesses!))
@@ -70,7 +70,7 @@ $(if (ly:get-option 'include-settings)
             (set! toplevel-scores (list))
             (book-handler parser book)))
          ((or (pair? toplevel-scores) output-empty-score-list)
-          (let ((book (apply ly:make-book $defaultpaper 
+          (let ((book (apply ly:make-book $defaultpaper
                              $defaultheader toplevel-scores)))
             (set! toplevel-scores (list))
             (book-handler parser book)))))
index cf6852a02859a7c4de70270a29d71e11b5b5298d..e97f2c8978bfd5ea3b333ef204b31c780b31366c 100644 (file)
@@ -6,7 +6,7 @@ Define 1/9 alterations.
 
 %}
 
+
 #(define-public EKSIK-IKI 5/18)
 #(define-public EKSIK-UC 6/18)
 
@@ -29,7 +29,7 @@ makamPitchNames = #`(
   (g . ,(ly:make-pitch -1 4 NATURAL))
   (a . ,(ly:make-pitch -1 5 NATURAL))
   (b . ,(ly:make-pitch -1 6 NATURAL))
-  
+
   (cc . ,(ly:make-pitch -1 0 KOMA))
   (dc . ,(ly:make-pitch -1 1 KOMA))
   (ec . ,(ly:make-pitch -1 2 KOMA))
@@ -70,7 +70,7 @@ makamPitchNames = #`(
   (gfc . ,(ly:make-pitch -1 4 (- KOMA)))
   (afc . ,(ly:make-pitch -1 5 (- KOMA)))
   (bfc . ,(ly:make-pitch -1 6 (- KOMA)))
-  
+
   (cfb . ,(ly:make-pitch -1 0 (- BAKIYE)))
   (dfb . ,(ly:make-pitch -1 1 (- BAKIYE)))
   (efb . ,(ly:make-pitch -1 2 (- BAKIYE)))
@@ -86,7 +86,7 @@ makamPitchNames = #`(
   (gfk . ,(ly:make-pitch -1 4 (- KUCUK)))
   (afk . ,(ly:make-pitch -1 5 (- KUCUK)))
   (bfk . ,(ly:make-pitch -1 6 (- KUCUK)))
-  
+
   (cfi . ,(ly:make-pitch -1 0 (- EKSIK-IKI)))
   (dfi . ,(ly:make-pitch -1 1 (- EKSIK-IKI)))
   (efi . ,(ly:make-pitch -1 2 (- EKSIK-IKI)))
@@ -102,8 +102,8 @@ makamPitchNames = #`(
   (gfu . ,(ly:make-pitch -1 4 (- EKSIK-UC)))
   (afu . ,(ly:make-pitch -1 5 (- EKSIK-UC)))
   (bfu . ,(ly:make-pitch -1 6 (- EKSIK-UC)))
-  
-  
+
+
   (cfbm . ,(ly:make-pitch -1 0 (- BUYUKMUCENNEB)))
   (dfbm . ,(ly:make-pitch -1 1 (- BUYUKMUCENNEB)))
   (efbm . ,(ly:make-pitch -1 2 (- BUYUKMUCENNEB)))
@@ -116,7 +116,7 @@ makamPitchNames = #`(
 
 
 %% set pitch names.
-pitchnames = \makamPitchNames 
+pitchnames = \makamPitchNames
 #(ly:parser-set-note-names parser makamPitchNames)
 
 #(define eksikMirroredSlashedFlat
@@ -131,11 +131,11 @@ makamGlyphs = #`((1 . "accidentals.doublesharp")
        (0 . "accidentals.natural")
        (-1/9 . "accidentals.mirroredflat")
        (-5/18 . ,(if eksikMirroredSlashedFlat
-                "accidentals.mirroredflat.backslash"
-                "accidentals.mirroredflat"))
+                 "accidentals.mirroredflat.backslash"
+                 "accidentals.mirroredflat"))
        (-6/18 . ,(if eksikMirroredSlashedFlat
-                "accidentals.mirroredflat.backslash"
-                "accidentals.mirroredflat"))
+                 "accidentals.mirroredflat.backslash"
+                 "accidentals.mirroredflat"))
        (-4/9 . "accidentals.flat.slash")
        (-5/9 . "accidentals.flat")
        (-8/9 . "accidentals.flat.slashslash")
@@ -151,4 +151,3 @@ makamGlyphs = #`((1 . "accidentals.doublesharp")
     \override AmbitusAccidental.glyph-name-alist = \makamGlyphs
   }
 }
-
index db6c7f79bfa67aac86e5213d7c94b227a648feda..672c1e9b3cf428aa99347d232bcc3d2422e206dd 100644 (file)
@@ -20,4 +20,3 @@
 \midi {
        \include "performer-init.ly"
 }
-
index 7d9f5b7034b2fcf8011e02b8d997d0a9746cf5e1..9b1d36623baf9f115aa09fe774b51e3c29e02b97 100644 (file)
@@ -27,7 +27,7 @@
 
 %% need SRFI-1 for filter; optargs for lambda*
 #(use-modules (srfi srfi-1)
-             (ice-9 optargs))
+              (ice-9 optargs))
 
 %% TODO: using define-music-function in a .scm causes crash.
 
@@ -63,22 +63,22 @@ afterGrace =
 #(define-music-function (parser location main grace) (ly:music? ly:music?)
    (_i "Create @var{grace} note(s) after a @var{main} music expression.")
    (let ((main-length (ly:music-length main))
-        (fraction  (ly:parser-lookup parser 'afterGraceFraction)))
+         (fraction  (ly:parser-lookup parser 'afterGraceFraction)))
      (make-simultaneous-music
       (list
        main
        (make-sequential-music
-       (list
+        (list
 
-        (make-music 'SkipMusic
-                    'duration (ly:make-duration
-                               0 0
-                               (* (ly:moment-main-numerator main-length)
-                                  (car fraction))
-                               (* (ly:moment-main-denominator main-length)
-                                  (cdr fraction))))
-        (make-music 'GraceMusic
-                    'element grace)))))))
+         (make-music 'SkipMusic
+                     'duration (ly:make-duration
+                                0 0
+                                (* (ly:moment-main-numerator main-length)
+                                   (car fraction))
+                                (* (ly:moment-main-denominator main-length)
+                                   (cdr fraction))))
+         (make-music 'GraceMusic
+                     'element grace)))))))
 
 
 %% music identifiers not allowed at top-level,
@@ -88,10 +88,10 @@ allowPageTurn =
    (_i "Allow a page turn. May be used at toplevel (ie between scores or
 markups), or inside a score.")
    (make-music 'EventChord
-              'page-marker #t
-              'page-turn-permission 'allow
-              'elements (list (make-music 'PageTurnEvent
-                                          'break-permission 'allow))))
+               'page-marker #t
+               'page-turn-permission 'allow
+               'elements (list (make-music 'PageTurnEvent
+                                           'break-permission 'allow))))
 
 alterBroken =
 #(define-music-function (parser location property arg item)
@@ -133,18 +133,18 @@ appendToTag =
    (_i "Append @var{more} to the @code{elements} of all music
 expressions in @var{music} that are tagged with @var{tag}.")
    (music-map (lambda (m)
-               (if (memq tag (ly:music-property m 'tags))
-                   (set! (ly:music-property m 'elements)
-                         (append (ly:music-property m 'elements)
-                                 (list more))))
-               m)
-             music))
+                (if (memq tag (ly:music-property m 'tags))
+                    (set! (ly:music-property m 'elements)
+                          (append (ly:music-property m 'elements)
+                                  (list more))))
+                m)
+              music))
 
 applyContext =
 #(define-music-function (parser location proc) (procedure?)
    (_i "Modify context properties with Scheme procedure @var{proc}.")
    (make-music 'ApplyContext
-              'procedure proc))
+               'procedure proc))
 
 applyMusic =
 #(define-music-function (parser location func music) (procedure? ly:music?)
@@ -155,8 +155,8 @@ applyOutput =
 #(define-music-function (parser location ctx proc) (symbol? procedure?)
    (_i "Apply function @code{proc} to every layout object in context @code{ctx}")
    (make-music 'ApplyOutputEvent
-              'procedure proc
-              'context-type ctx))
+               'procedure proc
+               'context-type ctx))
 
 appoggiatura =
 #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
@@ -198,9 +198,9 @@ balloonText =
 #(define-event-function (parser location offset text) (number-pair? markup?)
    (_i "Attach @var{text} at @var{offset} (use like @code{\\tweak})")
    (make-music 'AnnotateOutputEvent
-              'X-offset (car offset)
-              'Y-offset (cdr offset)
-              'text text))
+               'X-offset (car offset)
+               'Y-offset (cdr offset)
+               'text text))
 
 bar =
 #(define-music-function (parser location type) (string?)
@@ -213,13 +213,13 @@ barNumberCheck =
 #(define-music-function (parser location n) (integer?)
    (_i "Print a warning if the current bar number is not @var{n}.")
    (make-music 'ApplyContext
-              'procedure
-              (lambda (c)
-                (let ((cbn (ly:context-property c 'currentBarNumber)))
-                  (if (and  (number? cbn) (not (= cbn n)))
-                      (ly:input-warning location
-                                        "Barcheck failed got ~a expect ~a"
-                                        cbn n))))))
+               'procedure
+               (lambda (c)
+                 (let ((cbn (ly:context-property c 'currentBarNumber)))
+                   (if (and  (number? cbn) (not (= cbn n)))
+                       (ly:input-warning location
+                                         "Barcheck failed got ~a expect ~a"
+                                         cbn n))))))
 
 beamExceptions =
 #(define-scheme-function (parser location music) (ly:music?)
@@ -233,7 +233,7 @@ bendAfter =
 #(define-event-function (parser location delta) (real?)
    (_i "Create a fall or doit of pitch interval @var{delta}.")
    (make-music 'BendAfterEvent
-              'delta-step delta))
+               'delta-step delta))
 
 bookOutputName =
 #(define-void-function (parser location newfilename) (string?)
@@ -314,11 +314,11 @@ cueDuring =
    (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
 in a CueVoice oriented by @var{dir}.")
    (make-music 'QuoteMusic
-              'element main-music
-              'quoted-context-type 'CueVoice
-              'quoted-context-id "cue"
-              'quoted-music-name what
-              'quoted-voice-direction dir))
+               'element main-music
+               'quoted-context-type 'CueVoice
+               'quoted-context-id "cue"
+               'quoted-music-name what
+               'quoted-voice-direction dir))
 
 cueDuringWithClef =
 #(define-music-function
@@ -326,12 +326,12 @@ cueDuringWithClef =
    (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
 in a CueVoice oriented by @var{dir}.")
    (make-music 'QuoteMusic
-              'element main-music
-              'quoted-context-type 'CueVoice
-              'quoted-context-id "cue"
-              'quoted-music-name what
-              'quoted-music-clef clef
-              'quoted-voice-direction dir))
+               'element main-music
+               'quoted-context-type 'CueVoice
+               'quoted-context-id "cue"
+               'quoted-music-name what
+               'quoted-music-clef clef
+               'quoted-voice-direction dir))
 
 
 
@@ -369,18 +369,18 @@ endSpanners =
    (_i "Terminate the next spanner prematurely after exactly one note
 without the need of a specific end spanner.")
    (let* ((start-span-evs (filter (lambda (ev)
-                                   (equal? (ly:music-property ev 'span-direction)
-                                           START))
-                                 (extract-typed-music music 'span-event)))
-         (stop-span-evs
-          (map (lambda (m)
-                 (music-clone m 'span-direction STOP))
+                                    (equal? (ly:music-property ev 'span-direction)
+                                            START))
+                                  (extract-typed-music music 'span-event)))
+          (stop-span-evs
+           (map (lambda (m)
+                  (music-clone m 'span-direction STOP))
                 start-span-evs))
-         (end-ev-chord (make-music 'EventChord
-                                   'elements stop-span-evs))
-         (total (make-music 'SequentialMusic
-                            'elements (list music
-                                            end-ev-chord))))
+          (end-ev-chord (make-music 'EventChord
+                                    'elements stop-span-evs))
+          (total (make-music 'SequentialMusic
+                             'elements (list music
+                                             end-ev-chord))))
      total))
 
 eventChords =
@@ -394,14 +394,14 @@ featherDurations=
 #(define-music-function (parser location factor argument) (ly:moment? ly:music?)
    (_i "Adjust durations of music in @var{argument} by rational @var{factor}.")
    (let ((orig-duration (ly:music-length argument))
-        (multiplier (ly:make-moment 1 1)))
+         (multiplier (ly:make-moment 1 1)))
 
      (for-each
       (lambda (mus)
-       (if (< 0 (ly:moment-main-denominator (ly:music-length mus)))
-           (begin
-             (ly:music-compress mus multiplier)
-             (set! multiplier (ly:moment-mul factor multiplier)))))
+        (if (< 0 (ly:moment-main-denominator (ly:music-length mus)))
+            (begin
+              (ly:music-compress mus multiplier)
+              (set! multiplier (ly:moment-mul factor multiplier)))))
       (extract-named-music argument '(EventChord NoteEvent RestEvent SkipEvent)))
      (ly:music-compress
       argument
@@ -441,12 +441,12 @@ Like with @code{\\tweak}, if you use a footnote on a following
 post-event, the @code{\\footnote} command itself needs to be attached
 to the preceding note or rest as a post-event with @code{-}.")
    (let ((mus (make-music
-              'FootnoteEvent
-              'X-offset (car offset)
-              'Y-offset (cdr offset)
-              'automatically-numbered (not mark)
-              'text (or mark (make-null-markup))
-              'footnote-text footnote)))
+               'FootnoteEvent
+               'X-offset (car offset)
+               'Y-offset (cdr offset)
+               'automatically-numbered (not mark)
+               'text (or mark (make-null-markup))
+               'footnote-text footnote)))
      #{ \once \tweak footnote-music #mus #item #}))
 
 grace =
@@ -459,7 +459,7 @@ grobdescriptions =
 in the format of @code{all-grob-descriptions}.")
    (ly:make-context-mod
     (map (lambda (p)
-          (list 'assign (car p) (ly:make-grob-properties (cdr p))))
+           (list 'assign (car p) (ly:make-grob-properties (cdr p))))
          descriptions)))
 
 harmonicByFret = #(define-music-function (parser location fret music) (number? ly:music?)
@@ -529,18 +529,18 @@ instrumentSwitch =
    (_i "Switch instrument to @var{name}, which must be predefined with
 @code{\\addInstrumentDefinition}.")
    (let* ((handle (assoc name instrument-definitions))
-         (instrument-def (if handle (cdr handle) '())))
+          (instrument-def (if handle (cdr handle) '())))
 
      (if (not handle)
-        (ly:input-warning location "No such instrument: ~a" name))
+         (ly:input-warning location "No such instrument: ~a" name))
      (context-spec-music
       (make-music 'SimultaneousMusic
-                 'elements
-                 (map (lambda (kv)
-                        (make-property-set
-                         (car kv)
-                         (cdr kv)))
-                      instrument-def))
+                  'elements
+                  (map (lambda (kv)
+                         (make-property-set
+                          (car kv)
+                          (cdr kv)))
+                       instrument-def))
       'Staff)))
 
 
@@ -566,16 +566,16 @@ key =
    (_i "Set key to @var{tonic} and scale @var{pitch-alist}.
 If both are null, just generate @code{KeyChangeEvent}.")
    (cond ((null? tonic) (make-music 'KeyChangeEvent))
-        ((null? pitch-alist)
-         (ly:parser-error parser (_ "second argument must be pitch list")
-                          location)
-         (make-music 'SequentialMusic 'void #t))
-        (else
-         (ly:music-transpose
-          (make-music 'KeyChangeEvent
-               'tonic (ly:make-pitch 0 0 0)
-               'pitch-alist pitch-alist)
-          tonic))))
+         ((null? pitch-alist)
+          (ly:parser-error parser (_ "second argument must be pitch list")
+                           location)
+          (make-music 'SequentialMusic 'void #t))
+         (else
+          (ly:music-transpose
+           (make-music 'KeyChangeEvent
+                'tonic (ly:make-pitch 0 0 0)
+                'pitch-alist pitch-alist)
+           tonic))))
 
 killCues =
 #(define-music-function (parser location music) (ly:music?)
@@ -583,9 +583,9 @@ killCues =
    (music-map
     (lambda (mus)
       (if (and (string? (ly:music-property mus 'quoted-music-name))
-              (string=? (ly:music-property mus 'quoted-context-id "") "cue"))
-         (ly:music-property mus 'element)
-         mus))
+               (string=? (ly:music-property mus 'quoted-context-id "") "cue"))
+          (ly:music-property mus 'element)
+          mus))
     music))
 
 
@@ -594,10 +594,10 @@ label =
 #(define-music-function (parser location label) (symbol?)
    (_i "Create @var{label} as a bookmarking label.")
    (make-music 'EventChord
-              'page-marker #t
-              'page-label label
-              'elements (list (make-music 'LabelEvent
-                                          'page-label label))))
+               'page-marker #t
+               'page-label label
+               'elements (list (make-music 'LabelEvent
+                                           'page-label label))))
 
 
 language =
@@ -788,16 +788,16 @@ mark =
    (parser location label) ((scheme? '()))
   "Make the music for the \\mark command."
   (let* ((set (and (integer? label)
-                  (context-spec-music (make-property-set 'rehearsalMark label)
-                                     'Score)))
-        (ev (make-music 'MarkEvent
-                        'origin location)))
+                   (context-spec-music (make-property-set 'rehearsalMark label)
+                                      'Score)))
+         (ev (make-music 'MarkEvent
+                         'origin location)))
 
     (if set
-       (make-sequential-music (list set ev))
-       (begin
-         (set! (ly:music-property ev 'label) label)
-         ev))))
+        (make-sequential-music (list set ev))
+        (begin
+          (set! (ly:music-property ev 'label) label)
+          ev))))
 
 musicMap =
 #(define-music-function (parser location proc mus) (procedure? ly:music?)
@@ -811,20 +811,20 @@ noPageBreak =
    (_i "Forbid a page break.  May be used at toplevel (i.e., between scores or
 markups), or inside a score.")
    (make-music 'EventChord
-              'page-marker #t
-              'page-break-permission 'forbid
-              'elements (list (make-music 'PageBreakEvent
-                                          'break-permission '()))))
+               'page-marker #t
+               'page-break-permission 'forbid
+               'elements (list (make-music 'PageBreakEvent
+                                           'break-permission '()))))
 
 noPageTurn =
 #(define-music-function (location parser) ()
    (_i "Forbid a page turn.  May be used at toplevel (i.e., between scores or
 markups), or inside a score.")
    (make-music 'EventChord
-              'page-marker #t
-              'page-turn-permission 'forbid
-              'elements (list (make-music 'PageTurnEvent
-                                          'break-permission '()))))
+               'page-marker #t
+               'page-turn-permission 'forbid
+               'elements (list (make-music 'PageTurnEvent
+                                           'break-permission '()))))
 
 
 
@@ -912,7 +912,7 @@ ottava =
 #(define-music-function (parser location octave) (integer?)
    (_i "Set the octavation.")
    (make-music 'OttavaMusic
-              'ottava-number octave))
+               'ottava-number octave))
 
 overrideTimeSignatureSettings =
 #(define-music-function
@@ -924,7 +924,7 @@ for time signatures of @var{time-signature} to have settings
 of @var{base-moment}, @var{beat-structure}, and @var{beam-exceptions}.")
 
    ;; TODO -- add warning if largest value of grouping is
-   ;;      greater than time-signature.
+   ;;       greater than time-signature.
   (let ((setting (make-setting base-moment beat-structure beam-exceptions)))
     (override-time-signature-setting time-signature setting)))
 
@@ -963,28 +963,28 @@ pageBreak =
    (_i "Force a page break.  May be used at toplevel (i.e., between scores or
 markups), or inside a score.")
    (make-music 'EventChord
-              'page-marker #t
-              'line-break-permission 'force
-              'page-break-permission 'force
-              'elements (list (make-music 'LineBreakEvent
-                                          'break-permission 'force)
-                              (make-music 'PageBreakEvent
-                                          'break-permission 'force))))
+               'page-marker #t
+               'line-break-permission 'force
+               'page-break-permission 'force
+               'elements (list (make-music 'LineBreakEvent
+                                           'break-permission 'force)
+                               (make-music 'PageBreakEvent
+                                           'break-permission 'force))))
 
 pageTurn =
 #(define-music-function (location parser) ()
    (_i "Force a page turn between two scores or top-level markups.")
    (make-music 'EventChord
-              'page-marker #t
-              'line-break-permission 'force
-              'page-break-permission 'force
-              'page-turn-permission 'force
-              'elements (list (make-music 'LineBreakEvent
-                                          'break-permission 'force)
-                              (make-music 'PageBreakEvent
-                                          'break-permission 'force)
-                              (make-music 'PageTurnEvent
-                                          'break-permission 'force))))
+               'page-marker #t
+               'line-break-permission 'force
+               'page-break-permission 'force
+               'page-turn-permission 'force
+               'elements (list (make-music 'LineBreakEvent
+                                           'break-permission 'force)
+                               (make-music 'PageBreakEvent
+                                           'break-permission 'force)
+                               (make-music 'PageTurnEvent
+                                           'break-permission 'force))))
 
 parallelMusic =
 #(define-void-function (parser location voice-ids music) (list? ly:music?)
@@ -1114,11 +1114,11 @@ parenthesize =
        ;; arg is an EventChord -> set the parenthesize property
        ;; on all child notes and rests
        (for-each
-       (lambda (ev)
-         (if (or (memq 'note-event (ly:music-property ev 'types))
-                 (memq 'rest-event (ly:music-property ev 'types)))
-             (set! (ly:music-property ev 'parenthesize) #t)))
-       (ly:music-property arg 'elements))
+        (lambda (ev)
+          (if (or (memq 'note-event (ly:music-property ev 'types))
+                  (memq 'rest-event (ly:music-property ev 'types)))
+              (set! (ly:music-property ev 'parenthesize) #t)))
+        (ly:music-property arg 'elements))
        ;; No chord, simply set property for this expression:
        (set! (ly:music-property arg 'parenthesize) #t))
    arg)
@@ -1151,12 +1151,12 @@ that they share a staff with stems directed downward.")
                             (list part1 part2) DOWN chord-range))
 
 partcombineForce =
-#(define-music-function (location parser type once) (symbol-or-boolean? boolean?)
+#(define-music-function (location parser type once) (boolean-or-symbol? boolean?)
    (_i "Override the part-combiner.")
    (make-music 'EventChord
-              'elements (list (make-music 'PartCombineForceEvent
-                                          'forced-type type
-                                          'once once))))
+               'elements (list (make-music 'PartCombineForceEvent
+                                           'forced-type type
+                                           'once once))))
 partcombineApart = \partcombineForce #'apart ##f
 partcombineApartOnce = \partcombineForce #'apart ##t
 partcombineChords = \partcombineForce #'chords ##f
@@ -1178,9 +1178,9 @@ partial =
   ;; ensure \partial still works if the Timing_translator is moved
     (descend-to-context
      (context-spec-music (make-music 'PartialSet
-                                    'origin location
-                                    'duration dur)
-                        'Timing)
+                                     'origin location
+                                     'duration dur)
+                         'Timing)
      'Score))
 
 pitchedTrill =
@@ -1190,7 +1190,7 @@ pitchedTrill =
    (_i "Print a trill with @var{main-note} as the main note of the trill and
 print @var{secondary-note} as a stemless note head in parentheses.")
    (let* ((get-notes (lambda (ev-chord)
-                      (extract-named-music ev-chord 'NoteEvent)))
+                       (extract-named-music ev-chord 'NoteEvent)))
           (sec-note-events (get-notes secondary-note))
           (trill-events (extract-named-music main-note 'TrillSpanEvent)))
      (if (pair? sec-note-events)
@@ -1217,11 +1217,11 @@ pushToTag =
    (_i "Add @var{more} to the front of @code{elements} of all music
 expressions in @var{music} that are tagged with @var{tag}.")
    (music-map (lambda (m)
-               (if (memq tag (ly:music-property m 'tags))
-                   (set! (ly:music-property m 'elements)
-                         (cons more (ly:music-property m 'elements))))
-               m)
-             music))
+                (if (memq tag (ly:music-property m 'tags))
+                    (set! (ly:music-property m 'elements)
+                          (cons more (ly:music-property m 'elements))))
+                m)
+              music))
 
 quoteDuring =
 #(define-music-function (parser location what main-music) (string? ly:music?)
@@ -1253,7 +1253,7 @@ omitted, the first note in @var{music} is given in absolute pitch.")
                                   (ly:pitch-steps (ly:make-pitch 1 0))
                                   2))))
    (make-music 'RelativeOctaveMusic
-              'element music))
+               'element music))
 
 removeWithTag =
 #(define-music-function (parser location tags music)
@@ -1302,7 +1302,7 @@ scaleDurations =
    (fraction? ly:music?)
    (_i "Multiply the duration of events in @var{music} by @var{fraction}.")
    (ly:music-compress music
-                     (ly:make-moment (car fraction) (cdr fraction))))
+                      (ly:make-moment (car fraction) (cdr fraction))))
 
 settingsFrom =
 #(define-scheme-function (parser location ctx music)
@@ -1313,44 +1313,44 @@ a context modification duplicating their effect.")
    (let ((mods (ly:make-context-mod)))
      (define (musicop m)
        (if (music-is-of-type? m 'layout-instruction-event)
-          (ly:add-context-mod
-           mods
-           (case (ly:music-property m 'name)
-             ((PropertySet)
-              (list 'assign
-                    (ly:music-property m 'symbol)
-                    (ly:music-property m 'value)))
-             ((PropertyUnset)
-              (list 'unset
-                    (ly:music-property m 'symbol)))
-             ((OverrideProperty)
-              (cons* 'push
-                     (ly:music-property m 'symbol)
-                     (ly:music-property m 'grob-value)
+           (ly:add-context-mod
+            mods
+            (case (ly:music-property m 'name)
+              ((PropertySet)
+               (list 'assign
+                     (ly:music-property m 'symbol)
+                     (ly:music-property m 'value)))
+              ((PropertyUnset)
+               (list 'unset
+                     (ly:music-property m 'symbol)))
+              ((OverrideProperty)
+               (cons* 'push
+                      (ly:music-property m 'symbol)
+                      (ly:music-property m 'grob-value)
                       (cond
                        ((ly:music-property m 'grob-property #f) => list)
                        (else
                         (ly:music-property m 'grob-property-path)))))
-             ((RevertProperty)
-              (cons* 'pop
-                     (ly:music-property m 'symbol)
+              ((RevertProperty)
+               (cons* 'pop
+                      (ly:music-property m 'symbol)
                       (cond
                        ((ly:music-property m 'grob-property #f) => list)
                        (else
                         (ly:music-property m 'grob-property-path)))))))
-          (case (ly:music-property m 'name)
-            ((ApplyContext)
-             (ly:add-context-mod mods
-                                 (list 'apply
-                                       (ly:music-property m 'procedure))))
-            ((ContextSpeccedMusic)
-             (if (or (not ctx)
-                     (eq? ctx (ly:music-property m 'context-type)))
-                 (musicop (ly:music-property m 'element))))
-            (else
-             (let ((callback (ly:music-property m 'elements-callback)))
-               (if (procedure? callback)
-                   (for-each musicop (callback m))))))))
+           (case (ly:music-property m 'name)
+             ((ApplyContext)
+              (ly:add-context-mod mods
+                                  (list 'apply
+                                        (ly:music-property m 'procedure))))
+             ((ContextSpeccedMusic)
+              (if (or (not ctx)
+                      (eq? ctx (ly:music-property m 'context-type)))
+                  (musicop (ly:music-property m 'element))))
+             (else
+              (let ((callback (ly:music-property m 'elements-callback)))
+                (if (procedure? callback)
+                    (for-each musicop (callback m))))))))
      (musicop music)
      mods))
 
@@ -1433,7 +1433,7 @@ skip =
 #(define-music-function (parser location dur) (ly:duration?)
   (_i "Skip forward by @var{dur}.")
   (make-music 'SkipMusic
-             'duration dur))
+              'duration dur))
 
 
 slashedGrace =
@@ -1448,7 +1448,7 @@ the `parameters' assoc list.")
    #{
      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
      #(list (cons 'alignment-extra-space (cdr (assoc 'system-stretch parameters)))
-            (cons 'system-Y-extent (cdr (assoc 'system-Y-extent parameters))))
+             (cons 'system-Y-extent (cdr (assoc 'system-Y-extent parameters))))
    #})
 
 styledNoteHeads =
@@ -1533,9 +1533,9 @@ times =
    (fraction? ly:music?)
    (_i "Scale @var{music} in time by @var{fraction}.")
   (make-music 'TimeScaledMusic
-             'element (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction)))
-             'numerator (car fraction)
-             'denominator (cdr fraction)))
+              'element (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction)))
+              'numerator (car fraction)
+              'denominator (cdr fraction)))
 
 transpose =
 #(define-music-function
@@ -1553,19 +1553,19 @@ transposedCueDuring =
 
    (_i "Insert notes from the part @var{what} into a voice called @code{cue},
 using the transposition defined by @var{pitch}.  This happens
-simultaneously with @var{main-music}, which is usually a rest. The
+simultaneously with @var{main-music}, which is usually a rest.  The
 argument @var{dir} determines whether the cue notes should be notated
 as a first or second voice.")
 
    (make-music 'QuoteMusic
-              'element main-music
-              'quoted-context-type 'CueVoice
-              'quoted-context-id "cue"
-              'quoted-music-name what
-              'quoted-voice-direction dir
+               'element main-music
+               'quoted-context-type 'CueVoice
+               'quoted-context-id "cue"
+               'quoted-music-name what
+               'quoted-voice-direction dir
                ;; following is inverse of instrumentTransposition for
                ;; historical reasons
-              'quoted-transposition pitch))
+               'quoted-transposition pitch))
 
 transposition =
 #(define-music-function (parser location pitch) (ly:pitch?)
index 645c8ee45a79a03422b5e974dc2cb292ea3dc5c3..0942116dcef34cfc47a3d05c42cf537c78697c99 100644 (file)
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.17.14"
+\version "2.19.16"
 
 %%
 %% setup for Request->Element conversion.
@@ -24,9 +24,9 @@
 \context {
   \type "Performer_group"
   \name Staff
-  \accepts Voice
   \accepts CueVoice
   \accepts NullVoice
+  \accepts Voice
   \defaultchild Voice
 
   \consists "Staff_performer"
 }
 
 \context {
-  \type "Performer_group"
+  \Staff
   \name KievanStaff
+  \alias Staff
   \denies Voice
   \accepts KievanVoice
   \defaultchild KievanVoice
-  \alias Staff
-  \consists "Staff_performer"
-  \consists "Key_performer"
-  \consists "Midi_control_function_performer"
 }
 
 \context {
-  \type "Performer_group"
+  \Staff
   \name VaticanaStaff
   \alias Staff
   \denies Voice
   \accepts VaticanaVoice
   \defaultchild VaticanaVoice
-  \consists "Staff_performer"
-  \consists "Key_performer"
-  \consists "Midi_control_function_performer"
 }
 
 \context {
-  \type "Performer_group"
+  \Staff
   \name MensuralStaff
+  \alias Staff
   \denies Voice
   \accepts MensuralVoice
   \defaultchild MensuralVoice
+}
+
+\context {
+  \Staff
+  \name PetrucciStaff
   \alias Staff
-  \consists "Staff_performer"
-  \consists "Key_performer"
-  \consists "Midi_control_function_performer"
+  \denies Voice
+  \accepts PetrucciVoice
+  \defaultchild PetrucciVoice
+}
+
+\context {
+  \Staff
+  \name GregorianTranscriptionStaff
+  \alias Staff
+  \denies Voice
+  \accepts GregorianTranscriptionVoice
+  \defaultchild GregorianTranscriptionVoice
 }
 
 \context {
   \Staff
   \name DrumStaff
+  \alias Staff
   midiInstrument = #"drums"
+  \denies Voice
   \accepts DrumVoice
   \defaultchild DrumVoice
 }
 }
 
 \context {
-  \type "Performer_group"
+  \Voice
   \name VaticanaVoice
   \alias Voice
-  \consists "Dynamic_performer"
-  \consists "Tie_performer"
-  \consists "Note_performer"
-  \consists "Beam_performer"
-  autoBeaming = ##f  % needed for consistent melismata with engravers
-  \consists "Slur_performer"
+  autoBeaming = ##f  % needed for consistent melismata with engravers"
 }
 
 \context {
-  \type "Performer_group"
+  \Voice
   \name KievanVoice
   \alias Voice
-  \consists "Dynamic_performer"
-  \consists "Tie_performer"
-  \consists "Note_performer"
-  \consists "Beam_performer"
-  autoBeaming = ##f  % needed for consistent melismata with engravers
-  \consists "Slur_performer"
+  autoBeaming = ##f  % needed for consistent melismata with engravers"
 }
 
 \context {
-  \type "Performer_group"
+  \Voice
   \name MensuralVoice
   \alias Voice
-  \consists "Dynamic_performer"
-  \consists "Tie_performer"
-  \consists "Note_performer"
-  \consists "Beam_performer"
   autoBeaming = ##f  % needed for consistent melismata with engravers
-  \consists "Slur_performer"
 }
 
 \context {
   \Voice
+  \name PetrucciVoice
+  \alias Voice
+  autoBeaming = ##f  % needed for consistent melismata with engravers
+}
+
+\context {
+  \Voice
+  \name GregorianTranscriptionVoice
+  \alias Voice
+  autoBeaming = ##f  % needed for consistent melismata with engravers
+}
+
+\context {
+  \Voice
+  \name DrumVoice
+  \alias Voice
   \remove "Note_performer"
   \consists "Drum_note_performer"
-  \name DrumVoice
 }
 
 \context {
 \context {
   \type "Performer_group"
   \name FretBoards
+  \alias Staff
 }
 
 \context {
   \type "Performer_group"
   \name GrandStaff
+  \accepts ChordNames
+  \accepts DrumStaff
+  \accepts Dynamics
+  \accepts FiguredBass
+  \accepts Lyrics
   \accepts RhythmicStaff
   \accepts Staff
-  \accepts Dynamics
+  \accepts TabStaff
   \defaultchild Staff
 }
 
 \context {
-  \type "Performer_group"
-  \name "PianoStaff"
-  \accepts Staff
-  \accepts DrumStaff
-  \defaultchild Staff
+  \GrandStaff
+  \name PianoStaff
+  \alias GrandStaff
 }
 
 \context {
   \Voice
   \name TabVoice
+  \alias Voice
 }
 
 \context {
   \type "Performer_group"
-  \name "Devnull"
+  \name Devnull
+  \alias Voice
+  \alias Staff
 }
 
 \context {
   \name TabStaff
   midiInstrument = #"acoustic guitar (nylon)"
   \alias Staff
+  \denies Voice
   \accepts TabVoice
   \defaultchild TabVoice
   autoBeaming = ##f  % needed for consistent melismata with engravers
   %% quarter = 60
   tempoWholesPerMinute = #(ly:make-moment 15/1)
 
-  \accepts Staff
+  \accepts ChoirStaff
+  \accepts ChordNames
+  \accepts Devnull
   \accepts DrumStaff
+  \accepts FiguredBass
   \accepts GrandStaff
-  \accepts PianoStaff
-  \accepts TabStaff
-  \accepts StaffGroup
-  \accepts Devnull
+  \accepts GregorianTranscriptionStaff
+  \accepts KievanStaff
+  \accepts Lyrics
+  \accepts MensuralStaff
+  \accepts NoteNames
   \accepts NullVoice
-  \accepts ChoirStaff
+  \accepts PetrucciStaff
+  \accepts PianoStaff
   \accepts RhythmicStaff
-  \accepts ChordNames
-  \accepts FiguredBass
   \accepts FretBoards
-  \accepts Lyrics
+  \accepts Staff
+  \accepts StaffGroup
+  \accepts TabStaff
   \accepts VaticanaStaff
-  \accepts KievanStaff
-  \accepts MensuralStaff
 
   \consists "Time_signature_performer"
   \consists "Control_track_performer"
 \context{
   \type "Performer_group"
   \name ChoirStaff
-  \accepts Staff
+  \accepts ChoirStaff
+  \accepts ChordNames
+  \accepts FiguredBass
   \accepts DrumStaff
+  \accepts GrandStaff
+  \accepts Lyrics
+  \accepts PianoStaff
+  \accepts RhythmicStaff
+  \accepts Staff
+  \accepts StaffGroup
   \defaultchild Staff
 }
 
 \context {
   \type "Performer_group"
   \consists "Staff_performer"
-  \accepts ChordNameVoice
-  \defaultchild ChordNameVoice
-  \name ChordNames
+  \name NoteNames
 }
 
 \context {
-  \Voice
-  \name ChordNameVoice
+  \type "Performer_group"
+  \consists "Staff_performer"
+  \name ChordNames
 }
 
 \context {
   \type "Performer_group"
   \name StaffGroup
-  \accepts Staff
-  \accepts DrumStaff
-  \accepts TabStaff
-  \accepts RhythmicStaff
-  \accepts GrandStaff
-  \accepts PianoStaff
-  \accepts Lyrics
+  \accepts ChoirStaff
   \accepts ChordNames
+  \accepts DrumStaff
   \accepts FiguredBass
   \accepts FretBoards
+  \accepts GrandStaff
+  \accepts Lyrics
+  \accepts PianoStaff
+  \accepts RhythmicStaff
+  \accepts Staff
+  \accepts StaffGroup
+  \accepts TabStaff
   \defaultchild Staff
 }
 
 \context {
   \Staff
   \name RhythmicStaff
+  \alias Staff
+  \defaultchild Voice
 }
 
 \context {
   \type "Performer_group"
   \name Dynamics
+  \alias Voice
   \consists "Piano_pedal_performer"
 }
index c4178dee22808719aa81e4559318a8e571ddc058..cd8a7e589a969943e35cf9baa020a62088cb7149 100644 (file)
 
 \storePredefinedDiagram #default-fret-table \chordmode {c:9}
                         #guitar-tuning
-                       #(chord-shape 'c:9 guitar-tuning)
+                        #(chord-shape 'c:9 guitar-tuning)
 \storePredefinedDiagram #default-fret-table \chordmode {cis:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {des:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {d:9}
                         #guitar-tuning
-                       #(offset-fret 2 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret 2 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {dis:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {ees:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {e:9}
                         #guitar-tuning
-                       #"o;2-2;o;1-1;o;2-3;"
+                        #"o;2-2;o;1-1;o;2-3;"
 \storePredefinedDiagram #default-fret-table \chordmode {f:9}
                         #guitar-tuning
-                       #(chord-shape 'f:9 guitar-tuning)
+                        #(chord-shape 'f:9 guitar-tuning)
 \storePredefinedDiagram #default-fret-table \chordmode {fis:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {ges:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {g:9}
                         #guitar-tuning
-                       #(offset-fret 2 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 2 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {gis:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {aes:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {a:9}
                         #guitar-tuning
-                       #(offset-fret 4 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 4 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {ais:9}
                         #guitar-tuning
-                       #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {bes:9}
                         #guitar-tuning
-                       #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
+                        #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram #default-fret-table \chordmode {b:9}
                         #guitar-tuning
-                       #(offset-fret -1 (chord-shape 'c:9 guitar-tuning))
+                        #(offset-fret -1 (chord-shape 'c:9 guitar-tuning))
index ef1bea45deede7a3edcad72d6e10b9bd6c75658d..8077aa231e3880bcd458d000a2db762702073b35 100644 (file)
@@ -200,10 +200,10 @@ easyHeadsOff = {
 
 fermataMarkup =
 #(make-music 'MultiMeasureTextEvent
-            ;; Set the 'text based on the 'direction
-            'text (make-fermata-markup)
+             ;; Set the 'text based on the 'direction
+             'text (make-fermata-markup)
              'tweaks '((outside-staff-priority . 40)
-                      (outside-staff-padding . 0)))
+                       (outside-staff-padding . 0)))
 
 %% font sizes
 
@@ -424,10 +424,10 @@ phrasingSlurDotted =
   \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
 phrasingSlurHalfDashed =
   \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
-                                               (0.5 1 1 1))
+                                                (0.5 1 1 1))
 phrasingSlurHalfSolid =
   \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
-                                               (0.5 1 0.4 0.75))
+                                                (0.5 1 0.4 0.75))
 phrasingSlurSolid =
   \revert PhrasingSlur.dash-definition
 
@@ -508,9 +508,9 @@ ratio of line to space repeated at @var{dash-period} interval for slurs.")
 slurDashed     = \override Slur.dash-definition = #'((0 1 0.4 0.75))
 slurDotted     = \override Slur.dash-definition = #'((0 1 0.1 0.75))
 slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
-                                                      (0.5 1 1 1))
+                                                       (0.5 1 1 1))
 slurHalfSolid  = \override Slur.dash-definition = #'((0 0.5 1 1)
-                                                      (0.5 1 0.4 0.75))
+                                                       (0.5 1 0.4 0.75))
 slurSolid      = \revert Slur.dash-definition
 
 
@@ -663,9 +663,9 @@ ratio of line to space repeated at @var{dash-period} interval for ties.")
 tieDashed     = \override Tie.dash-definition = #'((0 1 0.4 0.75))
 tieDotted     = \override Tie.dash-definition = #'((0 1 0.1 0.75))
 tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
-                                                    (0.5 1 1 1))
+                                                     (0.5 1 1 1))
 tieHalfSolid  = \override Tie.dash-definition = #'((0 0.5 1 1)
-                                                    (0.5 1 0.4 0.75))
+                                                     (0.5 1 0.4 0.75))
 tieSolid      = \revert Tie.dash-definition
 
 
index 02aff8c23a905fb195b4679411e75c0b4ffbe620..122ea7cef5cf0f3c354a11d13d76f2ffb1cf84c0 100644 (file)
@@ -79,19 +79,19 @@ PartInstrumentName or its default."
       (if (defined? sname)
         sname
         `(substring (defaulting ,(sym part "InstrumentName") ,part)
-                   0 1)))
+                    0 1)))
     ""))
 
 #(defmacro lyrics-if-defined (name voice . optionals)
   (let ((above (if (pair? optionals) (car optionals) #f)))
     (if (defined? name)
       `(make-music 'ContextSpeccedMusic
-        'create-new #t
-        'context-type 'Lyrics
-        'property-operations ',(if above `((assign alignAboveContext ,above)) '())
-        'element (make-music 'LyricCombineMusic
-                  'associated-context ,voice
-                  'element ,name))
+         'create-new #t
+         'context-type 'Lyrics
+         'property-operations ',(if above `((assign alignAboveContext ,above)) '())
+         'element (make-music 'LyricCombineMusic
+                   'associated-context ,voice
+                   'element ,name))
       #{#})))
 
 #(defmacro one-voice-staff (name clef)
@@ -105,9 +105,9 @@ PartInstrumentName or its default."
        #(defaulting Key)
        \clef #(identity ,clef)
        \new Voice = #(identity ,name) <<
-        #(defaulting Time)
-        \dynamicUp
-        #(defaulting ,(sym name "Music"))
+         #(defaulting Time)
+         \dynamicUp
+         #(defaulting ,(sym name "Music"))
        >>
      }
      #(lyrics-if-defined ,(sym name "Lyrics") ,name)
@@ -124,23 +124,23 @@ PartInstrumentName or its default."
         #(defaulting ,(sym v2name "InstrumentName") ,v2name)
       }
       shortInstrumentName = \markup \right-column \smallCaps {
-       #(short-name ,v1name)
-       #(short-name ,v2name)
+        #(short-name ,v1name)
+        #(short-name ,v2name)
       }
       midiInstrument = "clarinet"
     } <<
       #(defaulting Key)
       \clef #(identity ,clef)
       \new Voice = #(identity ,v1name) <<
-       #(defaulting Time)
-       \voiceOne
-       \dynamicUp
-       #(defaulting ,(sym v1name "Music"))
+        #(defaulting Time)
+        \voiceOne
+        \dynamicUp
+        #(defaulting ,(sym v1name "Music"))
       >>
       \new Voice = #(identity ,v2name) <<
-       #(defaulting Time)
-       \voiceTwo
-       #(defaulting ,(sym v2name "Music"))
+        #(defaulting Time)
+        \voiceTwo
+        #(defaulting ,(sym v2name "Music"))
       >>
     >>
     #(lyrics-if-defined ,(sym v1name "Lyrics") ,v1name ,name)
@@ -165,7 +165,7 @@ SATB = <<
     #(if (defaulting TwoVoicesPerStaff #f)
       (two-voice-staff "Women" "treble" "Soprano" "Alto")
       (make-simultaneous-music (list (one-voice-staff "Soprano" "treble")
-                                    (one-voice-staff "Alto" "treble"))))
+                                     (one-voice-staff "Alto" "treble"))))
 
     #(lyrics-if-defined VerseOne "Soprano")
     #(lyrics-if-defined VerseTwo "Soprano")
@@ -180,7 +180,7 @@ SATB = <<
     #(if (defaulting TwoVoicesPerStaff #f)
       (two-voice-staff "Men" "bass" "Tenor" "Bass")
       (make-simultaneous-music (list (one-voice-staff "Tenor" "treble_8")
-                                    (one-voice-staff "Bass" "bass"))))
+                                     (one-voice-staff "Bass" "bass"))))
   >>  % End ChoirStaff
 
   \new PianoStaff
@@ -196,8 +196,8 @@ SATB = <<
       \clef "treble"
       #(defaulting Key)
       \new Voice <<
-       #(defaulting Time)
-       #(defaulting PianoRHMusic)
+        #(defaulting Time)
+        #(defaulting PianoRHMusic)
       >>
     }
     \new Dynamics {
@@ -207,8 +207,8 @@ SATB = <<
       \clef "bass"
       #(defaulting Key)
       \new Voice <<
-       #(defaulting Time)
-       #(defaulting PianoLHMusic)
+        #(defaulting Time)
+        #(defaulting PianoLHMusic)
       >>
     }
   >>
@@ -225,4 +225,3 @@ SATB = <<
   \keepWithTag #'play \SATB
   \midi { }
 }
-
index 127e7e5fb97aa12b8055c2f26ecb8580c0884138..a0e97d230be5bf97c3a0c0e634a3c44fb3bba387 100644 (file)
@@ -30,7 +30,7 @@ ionian = #`(
     (4 . 0)
     (5 . 0)
     (6 . 0)
-  )  
+  )
 
 
 locrian = #`(
@@ -41,7 +41,7 @@ locrian = #`(
     (4 . ,FLAT)
     (5 . ,FLAT)
     (6 . ,FLAT)
-  )  
+  )
 
 
 aeolian = #`(
@@ -63,7 +63,7 @@ mixolydian = #`(
     (4 . 0)
     (5 . 0)
     (6 . ,FLAT)
-  )  
+  )
 
 
 lydian = #`(
@@ -74,7 +74,7 @@ lydian = #`(
     (4 . 0)
     (5 . 0)
     (6 . 0)
-  )  
+  )
 
 
 phrygian = #`(
@@ -85,7 +85,7 @@ phrygian = #`(
     (4 . 0)
     (5 . ,FLAT)
     (6 . ,FLAT)
-)  
+)
 
 
 dorian = #`(
@@ -97,4 +97,3 @@ dorian = #`(
     (5 . 0)
     (6 . ,FLAT)
   )
-
index 3b3e39ed31d11b1ca86e8d5f7a80e0f214070023..1b84be5a37299d17578d29f8c7cbdc530636c50c 100644 (file)
@@ -5,7 +5,7 @@
 harmonic = #(make-music 'HarmonicEvent)
 
 accent = #(make-articulation "accent"
-          'midi-extra-velocity 20)
+           'midi-extra-velocity 20)
 coda = #(make-articulation "coda")
 downbow = #(make-articulation "downbow")
 downmordent = #(make-articulation "downmordent")
@@ -19,14 +19,14 @@ lineprall = #(make-articulation "lineprall")
 longfermata = #(make-articulation "longfermata")
 ltoe = #(make-articulation "ltoe")
 marcato = #(make-articulation "marcato"
-           'midi-extra-velocity 40)
+            'midi-extra-velocity 40)
 mordent = #(make-articulation "mordent")
 open = #(make-articulation "open")
 
 portato = #(make-articulation "portato"
-           'midi-length
-           (lambda (len context)
-            (ly:moment-mul len (ly:make-moment 3/4))))
+            'midi-length
+            (lambda (len context)
+             (ly:moment-mul len (ly:make-moment 3/4))))
 prall = #(make-articulation "prall")
 pralldown = #(make-articulation "pralldown")
 prallmordent = #(make-articulation "prallmordent")
@@ -40,16 +40,16 @@ shortfermata = #(make-articulation "shortfermata")
 signumcongruentiae = #(make-articulation "signumcongruentiae")
 snappizzicato = #(make-articulation "snappizzicato")
 staccatissimo = #(make-articulation "staccatissimo"
-                 'midi-length
-                 (lambda (len context)
-                   (seconds->moment 1/8 context))
-                 'midi-extra-velocity 6)
+                  'midi-length
+                  (lambda (len context)
+                    (seconds->moment 1/8 context))
+                  'midi-extra-velocity 6)
 staccato = #(make-articulation "staccato"
-            'midi-length
-            (lambda (len context)
-              (moment-min (ly:moment-mul len (ly:make-moment 1/2))
-                          (seconds->moment 1/2 context)))
-            'midi-extra-velocity 4)
+             'midi-length
+             (lambda (len context)
+               (moment-min (ly:moment-mul len (ly:make-moment 1/2))
+                           (seconds->moment 1/2 context)))
+             'midi-extra-velocity 4)
 stopped = #(make-articulation "stopped")
 tenuto = #(make-articulation "tenuto")
 thumb = \finger \markup \scale #(cons (magstep 5) (magstep 5))
index 44dcdb663352fb5a5974daf78ed7b0ee7dcb8bb4..50cf12dbb2d188db45321083b1fd40bd21f0d418 100644 (file)
@@ -7,7 +7,7 @@ stopGroup = #(make-span-event 'NoteGroupingEvent STOP)
 cr = #(make-span-event 'CrescendoEvent START)
 decr = #(make-span-event 'DecrescendoEvent START)
 enddecr = #(make-span-event 'DecrescendoEvent STOP)
-endcr = #(make-span-event 'CrescendoEvent STOP) 
+endcr = #(make-span-event 'CrescendoEvent STOP)
 
 
 startMeasureCount = #(make-span-event 'MeasureCounterEvent START)
@@ -50,14 +50,14 @@ deprecateddim =  {
 
 deprecatedenddim =  {
   $(make-event-chord (list enddecr))
-%  \unset decrescendoText 
-%  \unset decrescendoSpanner 
+%  \unset decrescendoText
+%  \unset decrescendoSpanner
 }
 
 deprecatedendcresc =  {
   $(make-event-chord (list endcr))
-%  \unset crescendoText 
-%  \unset crescendoSpanner 
+%  \unset crescendoText
+%  \unset crescendoSpanner
 }
 
 
@@ -84,13 +84,13 @@ dimTextDim = {
 }
 
 crescHairpin = {
-    \unset crescendoText 
-    \unset crescendoSpanner 
+    \unset crescendoText
+    \unset crescendoSpanner
 }
 
 dimHairpin = {
-    \unset decrescendoText 
-    \unset decrescendoSpanner 
+    \unset decrescendoText
+    \unset decrescendoSpanner
 }
 
 
index 034e9a2061ae84fed2c42f196aef0eda14c582e3..3564df58d6ca17f6fe1628ada61900c2c7308d72 100644 (file)
@@ -89,4 +89,4 @@ defaultStringTunings = #(reverse! defaultStringTunings)
 
 %% convert 5-string banjo tuning to 4-string by removing the 5th string
 four-string-banjo = #(lambda (tuning)
-                        (take tuning 4))
+                         (take tuning 4))
index 36a5f109eee28d1dad633c874ef9809e2fd26498..c741f4faf831f3653451320c6ed0fdbbf2dc651b 100644 (file)
@@ -19,9 +19,9 @@
 
 #(define (add-text-replacements! alist)
    (set! text-font-defaults
-        (assoc-set! text-font-defaults 'replacement-alist
-                    (cdaar
-                     (internal-add-text-replacements (list text-font-defaults) alist)))))
+         (assoc-set! text-font-defaults 'replacement-alist
+                     (cdaar
+                      (internal-add-text-replacements (list text-font-defaults) alist)))))
 
 #(define (include-special-characters)
    (add-text-replacements!
index 32eeb462f8e77e0f3893058708334d68ddafc2b9..ef1f18fe8b2497dbaa9a0bb4fcc99e6e63920880 100644 (file)
@@ -9,18 +9,18 @@
 #(let ((toc-item-list (list)))
    (call-after-session (lambda () (set! toc-item-list '())))
    (set! add-toc-item!
-        (lambda (markup-symbol text)
-          (let ((label (gensym "toc")))
-            (set! toc-item-list
-                  (cons (list label markup-symbol text)
-                        toc-item-list))
-            (make-music 'EventChord
-              'page-marker #t
-              'page-label label
-              'elements (list (make-music 'LabelEvent
-                                'page-label label))))))
+         (lambda (markup-symbol text)
+           (let ((label (gensym "toc")))
+             (set! toc-item-list
+                   (cons (list label markup-symbol text)
+                         toc-item-list))
+             (make-music 'EventChord
+               'page-marker #t
+               'page-label label
+               'elements (list (make-music 'LabelEvent
+                                 'page-label label))))))
    (set! toc-items (lambda ()
-                    (reverse toc-item-list))))
+                     (reverse toc-item-list))))
 
 \paper {
   tocTitleMarkup = \markup \huge \column {
@@ -41,23 +41,23 @@ tocItemWithDotsMarkup = \markup \fill-with-pattern #1 #RIGHT .
 built using the @code{tocItem} music function
 Usage: @code{\\markuplist \\table-of-contents}" )
   (cons (interpret-markup layout props
-                         (ly:output-def-lookup layout 'tocTitleMarkup))
-       (space-lines (chain-assoc-get 'baseline-skip props)
-                   (map (lambda (toc-item)
-                          (let ((label (car toc-item))
-                                (toc-markup (cadr toc-item))
-                                (text (caddr toc-item)))
-                            (interpret-markup
-                              layout
-                              (cons (list (cons 'toc:page
-                                           (markup #:with-link label #:page-ref label "XXX" "?"))
-                                          (cons 'toc:text (markup #:with-link label text))
-                                          (cons 'toc:label label))
-                                    props)
-                              (ly:output-def-lookup layout toc-markup))))
-                        (toc-items)))))
+                          (ly:output-def-lookup layout 'tocTitleMarkup))
+        (space-lines (chain-assoc-get 'baseline-skip props)
+                    (map (lambda (toc-item)
+                           (let ((label (car toc-item))
+                                 (toc-markup (cadr toc-item))
+                                 (text (caddr toc-item)))
+                             (interpret-markup
+                               layout
+                               (cons (list (cons 'toc:page
+                                            (markup #:with-link label #:page-ref label "XXX" "?"))
+                                           (cons 'toc:text (markup #:with-link label text))
+                                           (cons 'toc:label label))
+                                     props)
+                               (ly:output-def-lookup layout toc-markup))))
+                         (toc-items)))))
 
-tocItem = 
+tocItem =
 #(define-music-function (parser location text) (markup?)
    "Add a line to the table of content, using the @code{tocItemMarkup} paper
 variable markup"
index ae098ad66be53184ee60119528ec9538762353b6..bb416b100e0b542cb4cbfb307abfb45b6c17183b 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,14 +1,14 @@
 # Esperanto translation of LilyPond.
-# Copyright (C) 2012, 2013 Free Software Foundation, Inc.
+# Copyright (C) 2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the lilypond package.
-# Felipe Castro <fefcas@gmail.com>, 2012, 2013
+# Felipe Castro <fefcas@gmail.com>, 2012, 2013, 2015
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.17.96\n"
+"Project-Id-Version: lilypond 2.19.16\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2013-11-24 12:14+0000\n"
-"PO-Revision-Date: 2013-11-26 13:22-0300\n"
+"POT-Creation-Date: 2015-02-28 14:31+0000\n"
+"PO-Revision-Date: 2015-03-03 10:33-0300\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.6.10\n"
 
 #: book_base.py:26
 #, python-format
@@ -36,11 +36,11 @@ msgstr "ne eblas trovi \\begin{document} en dokumento LaTeX"
 msgid "Running `%s' on file `%s' to detect default page settings.\n"
 msgstr "Aplikado de '%s' al la dosiero '%s' por detekti apriorajn paĝ-agordojn.\n"
 
-#: book_latex.py:212 book_texinfo.py:228
+#: book_latex.py:219 book_texinfo.py:228
 msgid "Unable to auto-detect default settings:\n"
 msgstr "Ne eblas aŭtomate detekti apriorajn agordojn:\n"
 
-#: book_latex.py:224 book_texinfo.py:240
+#: book_latex.py:231 book_texinfo.py:240
 #, python-format
 msgid ""
 "Unable to auto-detect default settings:\n"
@@ -49,7 +49,7 @@ msgstr ""
 "Ne eblas aŭtomate detekti apriorajn agordojn:\n"
 "%s"
 
-#: book_latex.py:247
+#: book_latex.py:254
 msgid "cannot detect textwidth from LaTeX"
 msgstr "ne eblas detekti 'textwidth' el LaTex"
 
@@ -83,31 +83,31 @@ msgstr "preterpaso de nekonata ly-modifilo: %s"
 msgid "Missing files: %s"
 msgstr "Mankantaj dosieroj: %s"
 
-#: book_snippets.py:651
+#: book_snippets.py:661
 #, python-format
 msgid "Could not overwrite file %s"
 msgstr "Ne eblis anstataŭigi la dosieron %s"
 
-#: book_snippets.py:738
+#: book_snippets.py:748
 #, python-format
 msgid "Running through filter `%s'"
 msgstr "Rulado tra filtro '%s'"
 
-#: book_snippets.py:759
+#: book_snippets.py:769
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "'%s' fiaskis (%d)"
 
-#: book_snippets.py:760
+#: book_snippets.py:770
 msgid "The error log is as follows:"
 msgstr "La erar-protokolo estas jene:"
 
-#: book_snippets.py:880
+#: book_snippets.py:890
 #, python-format
 msgid "Converting MusicXML file `%s'...\n"
 msgstr "Konvertado de dosiero MusicXML '%s'...\n"
 
-#: book_snippets.py:907
+#: book_snippets.py:917
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of original file,\n"
@@ -116,7 +116,7 @@ msgstr ""
 "%s: duobligita dosiernomo tamen kun malsama enhavo ol la originala\n"
 "dosiero, do ni printas 'diff' kontraŭ la ekzistanta dosiero."
 
-#: book_snippets.py:920
+#: book_snippets.py:930
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of converted lilypond file,\n"
@@ -167,7 +167,7 @@ msgstr "evitinda \\textstyle, nova sintakso \\key"
 
 #: convertrules.py:82 convertrules.py:1856 convertrules.py:2032
 #: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801
-#: convertrules.py:3151 convertrules.py:3385
+#: convertrules.py:3151 convertrules.py:3385 convertrules.py:3697
 msgid "bump version for release"
 msgstr "aktualigi la version por eldono"
 
@@ -620,7 +620,7 @@ msgstr "\\bar \".\" nun produktas dikan taktostrekon.\n"
 
 #: convertrules.py:2849
 msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
-msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-definition.\n"
+msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-definition'.\n"
 
 #: convertrules.py:2854
 msgid ""
@@ -959,12 +959,12 @@ msgstr ""
 "%s) al LilyPond-kodumaro.\n"
 
 #: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:181
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183
 msgid "show version number and exit"
 msgstr "montri versi-numeron kaj eliri"
 
 #: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:160
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162
 msgid "show this help and exit"
 msgstr "montri tiun ĉi helpon kaj eliri"
 
@@ -989,7 +989,7 @@ msgstr "formeti mesaĝojn pri progreso"
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
 #: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:315
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr "Raportu program-misojn per %s (angle)"
@@ -1040,7 +1040,7 @@ msgid "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS
 msgstr "Montri protokolajn mesaĝojn laŭ PROTOKOLNIVELO (NONE, ERROR, WARNING, PROGRESS (apriore), DEBUG)"
 
 #: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:174
+#: musicxml2ly.py:2629 main.cc:176
 msgid "LOGLEVEL"
 msgstr "PROTOKOLNIVELO"
 
@@ -1072,7 +1072,7 @@ msgid "make a numbered backup [default: filename.ext~]"
 msgstr "fari numeritan savkopion [aprioras: dosiernomo.suf~]"
 
 #: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:183
+#: main.cc:185
 msgid "show warranty and copyright"
 msgstr "montri garantion kaj kopirajton"
 
@@ -1093,17 +1093,17 @@ msgstr "Ĉeso ĉe lasta sukcesa regulo"
 msgid "Processing `%s'... "
 msgstr "Procezado de '%s'... "
 
-#: convert-ly.py:367
+#: convert-ly.py:368
 #, python-format
 msgid "%s: Unable to open file"
 msgstr "%s: Ne eblas malfermi dosieron"
 
-#: convert-ly.py:373
+#: convert-ly.py:374
 #, python-format
 msgid "%s: Unable to determine version.  Skipping"
 msgstr "%s: ne eblas determini version.  Preterpase"
 
-#: convert-ly.py:379
+#: convert-ly.py:380
 #, python-format
 msgid ""
 "%s: Invalid version string `%s' \n"
@@ -1112,7 +1112,7 @@ msgstr ""
 "%s: Malvalida versi-ĉeno '%s' \n"
 "Validaj versi-ĉenoj konsistas el tri numeroj, apartitaj per punktoj, t.e. '2.8.12'"
 
-#: convert-ly.py:385
+#: convert-ly.py:386
 #, python-format
 msgid "There was %d error."
 msgid_plural "There were %d errors."
@@ -1133,7 +1133,7 @@ msgstr ""
 "Coda Music Technology.  etf2ly konvertas subaron de ETF al tujuzebla dosiero LilyPond.\n"
 
 #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:166 main.cc:178
+#: main.cc:168 main.cc:180
 msgid "FILE"
 msgstr "DOSIERO"
 
@@ -1171,7 +1171,7 @@ msgid "add DIR to include path"
 msgstr "aldoni UJOn al la inkluziva vojo"
 
 #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:165
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167
 msgid "DIR"
 msgstr "UJO"
 
@@ -1318,17 +1318,17 @@ msgstr "Procezado de inkluzivigo: %s"
 msgid "Removing `%s'"
 msgstr "Forigado de '%s'"
 
-#: lilypond-book.py:714
+#: lilypond-book.py:727
 #, python-format
 msgid "Setting LilyPond's loglevel to %s"
 msgstr "Difinado de protokolnivelo de LilyPond al %s"
 
-#: lilypond-book.py:718
+#: lilypond-book.py:731
 #, python-format
 msgid "Setting LilyPond's loglevel to %s (from environment variable LILYPOND_LOGLEVEL)"
 msgstr "Difinado de protokolnivelo de LilyPond al %s (el medi-variablo LILYPOND_LOGLEVEL)"
 
-#: lilypond-book.py:721
+#: lilypond-book.py:734
 msgid "Setting LilyPond's output to --verbose, implied by lilypond-book's setting"
 msgstr "Difinado de eligo de LilyPond al --verbose, implicite de la agordoj de lilypond-book"
 
@@ -1638,15 +1638,15 @@ msgstr "Eligo al '%s'"
 msgid "Unable to find input file %s"
 msgstr "Ne eblas trovi la enig-dosieron %s"
 
-#: website_post.py:125
+#: website_post.py:129
 msgid "English"
 msgstr "Angla"
 
-#: website_post.py:128
+#: website_post.py:132
 msgid "Other languages"
 msgstr "Aliaj lingvoj"
 
-#: website_post.py:129
+#: website_post.py:133
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
 msgstr "Pri <a href=\"%s\">aŭtomata elekto de lingvo</a>."
@@ -1726,12 +1726,12 @@ msgstr "kromsigna kompostada listo devas komenci per kuntekst-nomo': %s"
 msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr "proceduro aŭ kuntekst-nomo estis atendata por kromsigna regulo, trovite %s"
 
-#: accidental.cc:169
+#: accidental.cc:141
 #, c-format
 msgid "Could not find glyph-name for alteration %s"
 msgstr "Ne eblis trovi 'glyph-name' por aliigo %s"
 
-#: accidental.cc:184
+#: accidental.cc:157
 msgid "natural alteration glyph not found"
 msgstr "signobildo de natura aliigo ne estis trovata"
 
@@ -1864,26 +1864,26 @@ msgstr "Coherent_ligature_engraver: difinado de 'spacing-increment=0.01': ptr=%u
 msgid "cannot find line breaking that satisfies constraints"
 msgstr "ne eblas trovi lini-salton kiu kontentigas limigojn"
 
-#: context-property.cc:43
+#: context-property.cc:46
 msgid "need symbol arguments for \\override and \\revert"
 msgstr "necesas simbol-argumentoj por \\override kaj \\revert"
 
-#: context.cc:149
+#: context.cc:143
 #, c-format
 msgid "cannot find or create new `%s'"
 msgstr "ne eblas trovi aŭ krei novan '%s'"
 
-#: context.cc:228
+#: context.cc:222
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr "ne eblas trovi aŭ krei '%s' nomata '%s'"
 
-#: context.cc:425
+#: context.cc:419
 #, c-format
 msgid "cannot find or create: `%s'"
 msgstr "ne eblas trovi aŭ krei: '%s'"
 
-#: context.cc:439
+#: context.cc:433
 #, c-format
 msgid "cannot find or create new Bottom = \"%s\""
 msgstr "ne eblas trovi aŭ krei novan Bottom = \"%s\""
@@ -1893,20 +1893,20 @@ msgstr "ne eblas trovi aŭ krei novan Bottom = \"%s\""
 msgid "custos `%s' not found"
 msgstr "custos '%s' ne estis trovata"
 
-#: dispatcher.cc:89
+#: dispatcher.cc:83
 msgid "Event class should be a list"
 msgstr "Event-klaso devas esti listo"
 
-#: dispatcher.cc:172
+#: dispatcher.cc:166
 #, c-format
 msgid "Junking event: %s"
 msgstr "Rubaĵa evento: %s"
 
-#: dispatcher.cc:277
+#: dispatcher.cc:271
 msgid "Attempting to remove nonexisting listener."
 msgstr "Provo forigi neekzistantan aŭdanton."
 
-#: dispatcher.cc:303
+#: dispatcher.cc:297
 msgid "Already listening to dispatcher, ignoring request"
 msgstr "Jam aŭdadas la disdonilon, ni preteratentas la peton"
 
@@ -1994,12 +1994,12 @@ msgstr "Konstruado de tipara datumbazo..."
 msgid "Must be footnote-event."
 msgstr "Devas esti piednota-evento."
 
-#: general-scheme.cc:390
+#: general-scheme.cc:403
 #, c-format
 msgid "failed redirecting stderr to `%s'"
 msgstr "malsukceso dum redirektigo de stderr al '%s'"
 
-#: general-scheme.cc:469 output-ps.scm:48
+#: general-scheme.cc:482 output-ps.scm:48
 msgid "Found infinity or nan in output.  Substituting 0.0"
 msgstr "Infinito aŭ NaN estis trovata en eligo.  Anstataŭigo per 0.0"
 
@@ -2055,7 +2055,7 @@ msgstr "La grob '%s' havas neniun interfacon por la atributo '%s'"
 msgid "%d: %s"
 msgstr "%d: %s"
 
-#: grob.cc:488
+#: grob.cc:481
 #, c-format
 msgid "ignored infinite %s-offset"
 msgstr "preteratentis senliman %s-deŝovon"
@@ -2064,7 +2064,7 @@ msgstr "preteratentis senliman %s-deŝovon"
 msgid "Asking for broken bound padding at a non-broken bound."
 msgstr "Peto de rompita limig-ŝtopado ĉe ne-rompita limigo."
 
-#: hairpin.cc:256
+#: hairpin.cc:257
 msgid "decrescendo too small"
 msgstr "tro malgranda 'decrescendo'"
 
@@ -2094,7 +2094,7 @@ msgstr "ne eblas trovi la dosieron: '%s'"
 msgid "(search path: `%s')"
 msgstr "(serĉvojo: '%s')"
 
-#: input.cc:138 source-file.cc:178 source-file.cc:193
+#: input.cc:138 source-file.cc:177 source-file.cc:192
 msgid "position unknown"
 msgstr "nekonata pozicio"
 
@@ -2213,20 +2213,16 @@ msgstr "Analizado..."
 msgid "Not drawing a box with negative dimension, %.2f by %.2f."
 msgstr "Ni ne desegnas skatolon kun negativan dimension, %.2f oble %.2f."
 
-#: lyric-combine-music-iterator.cc:199
+#: lyric-combine-music-iterator.cc:204
 msgid "argument of \\lyricsto should contain Lyrics context"
 msgstr "argumento de \\lyricsto devas enhavi kuntekston Lyrics"
 
-#: lyric-combine-music-iterator.cc:337
+#: lyric-combine-music-iterator.cc:349
 #, c-format
-msgid "cannot find Voice `%s'"
-msgstr "ne eblas trovi Voĉon '%s'"
-
-#: lyric-engraver.cc:186
-msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
-msgstr "Teksta silabo ne havas noton. Uzu \\lyricsto aŭ 'associatedVoice'."
+msgid "cannot find %s `%s'"
+msgstr "ne eblas trovi %s '%s'"
 
-#: main.cc:104
+#: main.cc:105
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -2238,7 +2234,7 @@ msgstr ""
 "Publika Permeso kaj vi estas bonvena ŝanĝi ĝin kaj/aŭ re-disdoni kopiojn de ĝi\n"
 "laŭ iaj kondiĉoj.  Lanĉu kiel '%s --warranty' por pli da informo.\n"
 
-#: main.cc:110
+#: main.cc:111
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License as \n"
@@ -2270,11 +2266,11 @@ msgstr ""
 "Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:148
+#: main.cc:149
 msgid "SYM[=VAL]"
 msgstr "SIM[=VAL]"
 
-#: main.cc:149
+#: main.cc:150
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -2282,41 +2278,45 @@ msgstr ""
 "difini modifilon Scheme SIM al VAL (apriore: *t).\n"
 "Uzu -dhelp por ricevi helpon."
 
-#: main.cc:153
+#: main.cc:154
 msgid "EXPR"
 msgstr "ESPR"
 
-#: main.cc:153
+#: main.cc:154
 msgid "evaluate scheme code"
 msgstr "analizi kodumaron de scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:156
+#: main.cc:157
 msgid "FORMATs"
 msgstr "FORMOj"
 
-#: main.cc:156
+#: main.cc:157
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr "ŝuti FORMOn,...  Ankaŭ kiel apartaj modifiloj:"
 
-#: main.cc:157
+#: main.cc:158
 msgid "generate PDF (default)"
 msgstr "generi PDF (apriore)"
 
-#: main.cc:158
+#: main.cc:159
 msgid "generate PNG"
 msgstr "generi PNG"
 
-#: main.cc:159
+#: main.cc:160
 msgid "generate PostScript"
 msgstr "generi PostScript"
 
-#: main.cc:162
+#: main.cc:161
+msgid "generate big PDF files"
+msgstr "generi grandajn PDF-dosierojn"
+
+#: main.cc:164
 msgid "FIELD"
 msgstr "KAMPO"
 
-#: main.cc:162
+#: main.cc:164
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -2324,19 +2324,19 @@ msgstr ""
 "ŝuti kap-kampo KAMPO al dosiero\n"
 "nomata BAZNOMO.KAMPO"
 
-#: main.cc:165
+#: main.cc:167
 msgid "add DIR to search path"
 msgstr "aldoni UJOn al la serĉvojo"
 
-#: main.cc:166
+#: main.cc:168
 msgid "use FILE as init file"
 msgstr "uzi DOSIEROn kiel ekig-dosieron"
 
-#: main.cc:169
+#: main.cc:171
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "UZANTO, GRUPO, KAĜO, UJO"
 
-#: main.cc:169
+#: main.cc:171
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -2344,7 +2344,7 @@ msgstr ""
 "chroot al KAĜO, fariĝi UZANTO:GRUPO\n"
 "kaj cd en UJOn"
 
-#: main.cc:174
+#: main.cc:176
 msgid ""
 "print log messages according to LOGLEVEL.  Possible values are:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
@@ -2352,24 +2352,24 @@ msgstr ""
 "printi protokol-mesaĝojn laŭ PROTOKOLNIVELO.  Eblaj valoroj estas:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (apriore) kaj DEBUG."
 
-#: main.cc:178
+#: main.cc:180
 msgid "write output to FILE (suffix will be added)"
 msgstr "skribi eligon al DOSIERO (sufikso estos aldonata)"
 
-#: main.cc:179
+#: main.cc:181
 msgid "relocate using directory of lilypond program"
 msgstr "relokigi uzante dosierujon de la programo lilypond"
 
-#: main.cc:180
+#: main.cc:182
 msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
 msgstr "sen progreso, nur eraraj mesaĝoj (egale al loglevel=ERROR)"
 
-#: main.cc:182
+#: main.cc:184
 msgid "be verbose (equivalent to loglevel=DEBUG)"
 msgstr "esti detalema (egale al loglevel=DEBUG)"
 
 #. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:261
+#: main.cc:263
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -2379,74 +2379,74 @@ msgstr ""
 "%s  kaj aliaj."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:299
+#: main.cc:301
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Uzado: %s [MODIFILO]... DOSIERO..."
 
-#: main.cc:301
+#: main.cc:303
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Kompostado de muziko kaj/aŭ produktado de MIDI el DOSIERO."
 
-#: main.cc:303
+#: main.cc:305
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond produktas belan muzikan notadon."
 
-#: main.cc:305
+#: main.cc:307
 #, c-format
 msgid "For more information, see %s"
 msgstr "Por pli da informo, vidu %s"
 
-#: main.cc:307
+#: main.cc:309
 msgid "Options:"
 msgstr "Modifiloj:"
 
-#: main.cc:374
+#: main.cc:376
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "estis atendataj %d argumentoj kun kaĝo, estis trovataj: %u"
 
-#: main.cc:388
+#: main.cc:390
 #, c-format
 msgid "no such user: %s"
 msgstr "neniu tia uzanto: %s"
 
-#: main.cc:390
+#: main.cc:392
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr "ne eblas preni uzanto-id el uzant-nomo: %s: %s"
 
-#: main.cc:405
+#: main.cc:407
 #, c-format
 msgid "no such group: %s"
 msgstr "neniu tia grupo: %s"
 
-#: main.cc:407
+#: main.cc:409
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr "ne eblas preni grupo-id el grup-nomo: %s: %s"
 
-#: main.cc:415
+#: main.cc:417
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "ne eblas apliki 'chroot' al: %s: %s"
 
-#: main.cc:422
+#: main.cc:424
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "ne eblas ŝanĝi grupo-id al: %d: %s"
 
-#: main.cc:428
+#: main.cc:430
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "ne eblas ŝanĝi uzant-id al: %d: %s"
 
-#: main.cc:434
+#: main.cc:436
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "ne eblas ŝanĝi aktualan dosierujon al: %s: %s"
 
-#: main.cc:805
+#: main.cc:825
 #, c-format
 msgid "exception caught: %s"
 msgstr "kaptita krom-okazo: %s"
@@ -2490,7 +2490,7 @@ msgid ""
 "and there may be only zero or two of them"
 msgstr ""
 "plenoj nur povas aperi ĉe komenco de kantligaturo,\n"
-"kaj devas esti nur \"neniu\" aŭ du el ili"
+"kaj devas esti nur du el ili aŭ neniu"
 
 #: mensural-ligature-engraver.cc:236
 msgid ""
@@ -2532,7 +2532,7 @@ msgstr "ne eblas malfermi por skribi: %s: %s"
 msgid "cannot write to file: `%s'"
 msgstr "ne eblas skribi en dosiero: '%s'"
 
-#: minimal-page-breaking.cc:40 paper-score.cc:122
+#: minimal-page-breaking.cc:40 paper-score.cc:116
 msgid "Calculating line breaks..."
 msgstr "Kalkulado de lini-saltoj..."
 
@@ -2540,28 +2540,15 @@ msgstr "Kalkulado de lini-saltoj..."
 msgid "Calculating page breaks..."
 msgstr "Kalkulado de paĝsaltoj..."
 
-#: multi-measure-rest.cc:154
+#: multi-measure-rest.cc:152
 msgid "usable-duration-logs must be a non-empty list.  Falling back to whole rests."
 msgstr "'usable-duration-logs' devas esti ne-malplena listo.  Ni revenas al plenaj paŭzoj."
 
-#: multi-measure-rest.cc:364
-msgid "Using naive multi measure rest spacing."
-msgstr "Uzanta naivan plur-mezuran paŭzo-spacadon."
-
-#: music.cc:150
+#: music.cc:149
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
 msgstr "kontrolo de okto fiaskis; atendite \"%s\", trovite: \"%s\""
 
-#: music.cc:219
-msgid "(normalized pitch)"
-msgstr "(normigita tonalto)"
-
-#: music.cc:223
-#, c-format
-msgid "Transposing %s by %s makes alteration larger than double"
-msgstr "Transpono de %s per %s igas aliigon pli granda ol duobla"
-
 #: new-fingering-engraver.cc:113
 msgid "cannot add text scripts to individual note heads"
 msgstr "ne eblas aldoni tekstajn skriptojn al individuaj noto-kapoj"
@@ -2574,11 +2561,11 @@ msgstr "neniu loko estis trovata por fingradoj"
 msgid "placing below"
 msgstr "ni metas sube"
 
-#: note-collision.cc:497
-msgid "ignoring too many clashing note columns"
-msgstr "ni preterpasas tro multajn kolumnojn kun koliziantaj notoj"
+#: note-collision.cc:510
+msgid "this Voice needs a \\voiceXx or \\shiftXx setting"
+msgstr "tiu ĉi 'Voice' bezonas agordo de \\voiceXx aŭ \\shiftXx"
 
-#: note-column.cc:147
+#: note-column.cc:150
 msgid "cannot have note heads and rests together on a stem"
 msgstr "ne eblas ekzisti kune notkapoj kaj paŭzoj en stango"
 
@@ -2591,37 +2578,37 @@ msgstr "neniu el notkapoj '%s' aŭ '%s' estis trovataj"
 msgid "NoteEvent without pitch"
 msgstr "NoteEvent sen tonalto"
 
-#: open-type-font.cc:45
+#: open-type-font.cc:46
 #, c-format
 msgid "cannot allocate %lu bytes"
 msgstr "ne eblas rezervi %lu bajtojn"
 
-#: open-type-font.cc:49
+#: open-type-font.cc:50
 #, c-format
 msgid "cannot load font table: %s"
 msgstr "ne eblas ŝargi je tipara tabelo: %s"
 
-#: open-type-font.cc:54
+#: open-type-font.cc:55
 #, c-format
 msgid "FreeType error: %s"
 msgstr "Eraro de FreeType: %s"
 
-#: open-type-font.cc:111
+#: open-type-font.cc:112
 #, c-format
 msgid "unsupported font format: %s"
 msgstr "ne subtenata formo de tiparo: %s"
 
-#: open-type-font.cc:113
+#: open-type-font.cc:114
 #, c-format
 msgid "error reading font file %s: %s"
 msgstr "eraro dum legado de tipara dosiero %s: %s"
 
-#: open-type-font.cc:188
+#: open-type-font.cc:189
 #, c-format
 msgid "FT_Get_Glyph_Name () Freetype error: %s"
 msgstr "Eraro de FT_Get_Glyph_Name () en Freetype: %s"
 
-#: open-type-font.cc:336 pango-font.cc:256
+#: open-type-font.cc:337 pango-font.cc:257
 #, c-format
 msgid "FT_Get_Glyph_Name () error: %s"
 msgstr "Eraro de FT_Get_Glyph_Name (): %s"
@@ -2660,46 +2647,47 @@ msgid "best score for this sys-count: %f"
 msgstr "plej bona poento por tiu ĉi 'sys-count': %f"
 
 #: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
-#: paper-score.cc:162
+#: paper-score.cc:156
 msgid "Drawing systems..."
 msgstr "Desegnado de sistemoj..."
 
-#: output-def.cc:235
+#: output-def.cc:230
 msgid "margins do not fit with line-width, setting default values"
 msgstr "marĝenoj ne akordas kun lini-larĝo, ni uzas apriorajn valorojn"
 
-#: output-def.cc:242
+#: output-def.cc:237
 msgid "systems run off the page due to improper paper settings, setting default values"
 msgstr "sistemoj iras preter la paĝo pro malĝustaj paperaj agordoj, ni uzas apriorajn valorojn"
 
-#: page-breaking.cc:277
+#: page-breaking.cc:276
 msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
 msgstr "ni preteratentas 'min-systems-per-page' kaj 'max-systems-per-page' ĉar 'systems-per-page' ne estis difinata"
 
-#: page-breaking.cc:282
+#: page-breaking.cc:281
 msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
 msgstr "'min-systems-per-page' estas pli granda ol 'max-systems-per-page', ni preteratentas ambaŭ"
 
+#: page-breaking.cc:636
+#, c-format
+msgid "page %d has been compressed"
+msgstr "la paĝo %d estas densigita"
+
 #: page-layout-problem.cc:402
 msgid "A page layout problem has been initiated that cannot accommodate footnotes."
 msgstr "Paĝ-aranĝa problemo estis ekigata, kaj ĝi ne povas enteni piednotojn."
 
 #: page-layout-problem.cc:731
-msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
-msgstr "ne eblas akomodi muzikon sur paĝo: 'ragged-spacing' estis petata, sed la paĝo estis densigata"
+msgid "ragged-bottom was specified, but page must be compressed"
+msgstr "'ragged-bottom' estis indikata, sed paĝo devas esti densigita"
 
 #: page-layout-problem.cc:734
 #, c-format
-msgid "cannot fit music on page: overflow is %f"
-msgstr "ne eblas akomodi muzikon sur paĝo: troo estas %f"
-
-#: page-layout-problem.cc:736
-msgid "compressing music to fit"
-msgstr "densigado de muziko por akomodi"
+msgid "compressing over-full page by %.1f staff-spaces"
+msgstr "ni densigas tra tuta paĝo per %.1f liniar-spacoj"
 
 #: page-layout-problem.cc:1199
 msgid "staff-affinities should only decrease"
-msgstr "'staff-affinities' devus nur malpliigi"
+msgstr "'staff-affinities' devus nur malpliiĝi"
 
 #: page-turn-page-breaking.cc:168
 #, c-format
@@ -2740,12 +2728,12 @@ msgstr "\tnombro da paĝoj: %d"
 msgid "\tprevious break: %d"
 msgstr "\tantaŭa salto: %d"
 
-#: pango-font.cc:245
+#: pango-font.cc:246
 #, c-format
 msgid "no glyph for character U+%0X in font `%s'"
 msgstr "ne estas signobildo por la signo U+%0X en la tiparo '%s'"
 
-#: pango-font.cc:272
+#: pango-font.cc:273
 #, c-format
 msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
@@ -2754,21 +2742,21 @@ msgstr ""
 "Signobildo ne havas nomon, sed la tiparo subtenas nomigon de signobildoj.\n"
 "Ni preterpasas signobildon U+%0X, dosiero %s"
 
-#: pango-font.cc:322
+#: pango-font.cc:323
 #, c-format
 msgid "no PostScript font name for font `%s'"
 msgstr "neniu tiparnomo PostScript por la tiparo '%s'"
 
-#: pango-font.cc:372
+#: pango-font.cc:373
 msgid "FreeType face has no PostScript font name"
 msgstr "Tiparo FreeType ne havas tiparnomon PostScript"
 
-#: paper-book.cc:214
+#: paper-book.cc:201
 #, c-format
 msgid "program option -dprint-pages not supported by backend `%s'"
 msgstr "programa modifilo -dprint-pages ne estas subtenata de la intern-interfaco '%s'"
 
-#: paper-book.cc:233
+#: paper-book.cc:220
 #, c-format
 msgid "program option -dpreview not supported by backend `%s'"
 msgstr "programa modifilo -dpreview ne estas subtenata de la intern-interfaco '%s'"
@@ -2782,37 +2770,33 @@ msgstr "perfortita salto estis preterpasata de iu evento, ĉu vi ne devus uzi ko
 msgid "Layout output to `%s'..."
 msgstr "Aranĝa eligo al '%s'..."
 
-#: paper-score.cc:134
+#: paper-score.cc:128
 #, c-format
 msgid "Element count %d (spanners %d) "
 msgstr "Nombro da elementoj: %d (etendigiloj %d) "
 
-#: paper-score.cc:138
+#: paper-score.cc:132
 msgid "Preprocessing graphical objects..."
 msgstr "Antaŭprocezado de grafikaj objektoj..."
 
-#: parse-scm.cc:121
+#: parse-scm.cc:128
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE signalis eraron por la esprimo komenciĝanta ĉi tie"
 
-#: partial-iterator.cc:45
-msgid "trying to use \\partial after the start of a piece"
-msgstr "ni provas uzi \\partial post la komenco de muziko"
-
 #: pdf-scheme.cc:65
 #, c-format
 msgid "Conversion of string `%s' to UTF-16be failed: %s"
 msgstr "Konvertado de ĉeno '%s' al UTF-16be fiaskis: %s"
 
-#: percent-repeat-engraver.cc:147
+#: percent-repeat-engraver.cc:148
 msgid "unterminated percent repeat"
 msgstr "nefinigita elcenta ripeto"
 
-#: performance.cc:54
+#: performance.cc:55
 msgid "Track..."
 msgstr "Sekvado..."
 
-#: performance.cc:82
+#: performance.cc:90
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "MIDI-eligo al '%s'..."
@@ -2838,7 +2822,7 @@ msgstr "ne eblas trovi la komencon de piano-pedala krampo: '%s'"
 msgid "no such internal option: %s"
 msgstr "neniu tia interna modifilo: %s"
 
-#: property-iterator.cc:100
+#: property-iterator.cc:115
 #, c-format
 msgid "not a grob name, `%s'"
 msgstr "ne estas 'grob'-nomo, '%s'"
@@ -2923,50 +2907,46 @@ msgstr "ne eblas malfermi dosieron: '%s'"
 msgid "Unknown relocation command %s"
 msgstr "Nekonata relokiga komando %s"
 
-#: rest-collision-engraver.cc:70
-msgid "rhythmic head is not part of a rhythmic column"
-msgstr "ritma kapo ne estas parto de ritma kolumno"
-
-#: rest-collision.cc:150
+#: rest-collision.cc:153
 msgid "cannot resolve rest collision: rest direction not set"
 msgstr "ne eblas solvi paŭzan kolizion: la paŭz-direkto ne estis difinata"
 
-#: rest-collision.cc:161 rest-collision.cc:270
+#: rest-collision.cc:164 rest-collision.cc:273
 msgid "too many colliding rests"
 msgstr "tro multe da koliziantaj paŭzoj"
 
-#: rest.cc:240
+#: rest.cc:239
 #, c-format
 msgid "rest `%s' not found"
 msgstr "paŭzo '%s' ne estis trovata"
 
-#: score-engraver.cc:78
+#: score-engraver.cc:79
 #, c-format
 msgid "cannot find `%s'"
 msgstr "ne eblas trovi '%s'"
 
-#: score-engraver.cc:80
+#: score-engraver.cc:81
 msgid "Music font has not been installed properly."
 msgstr "Muzika tiparo ne estas instalita ĝuste."
 
-#: score-engraver.cc:82
+#: score-engraver.cc:83
 #, c-format
 msgid "Search path `%s'"
 msgstr "Serĉvojo '%s'"
 
-#: score-engraver.cc:84
+#: score-engraver.cc:85
 msgid "Aborting"
 msgstr "Ni ĉesas"
 
-#: score.cc:172
+#: score.cc:160
 msgid "already have music in score"
 msgstr "jam estas muziko en la partituro"
 
-#: score.cc:173
+#: score.cc:161
 msgid "this is the previous music"
 msgstr "tio ĉi estas la antaŭa muziko"
 
-#: score.cc:178
+#: score.cc:166
 msgid "errors found, ignoring music expression"
 msgstr "eraroj trovitaj, ni preterpasas la muzikan esprimon"
 
@@ -2979,7 +2959,7 @@ msgstr "ni ne scias kiel interpreti artikulacion:"
 msgid " scheme encoding: "
 msgstr " enkodado de 'scheme': "
 
-#: skyline-pair.cc:160
+#: skyline-pair.cc:135
 msgid "direction must not be CENTER in ly:skyline-pair::skyline"
 msgstr "direkto ne povas esti CENTER en ly:skyline-pair::skyline"
 
@@ -3023,16 +3003,16 @@ msgstr "MIDI-kanalo estis ĉirkaŭfluigata"
 msgid "remapping modulo 16"
 msgstr "remapado de modulo 16"
 
-#: stem-engraver.cc:110
+#: stem-engraver.cc:100
 msgid "tremolo duration is too long"
 msgstr "daŭro de tremsono estas tro longa"
 
-#: stem-engraver.cc:162
+#: stem-engraver.cc:152
 #, c-format
 msgid "adding note head to incompatible stem (type = %d/%d)"
 msgstr "aldonado de notkapo al malakorda stango (tipo = %d/%d)"
 
-#: stem-engraver.cc:165
+#: stem-engraver.cc:155
 msgid "maybe input should specify polyphonic voices"
 msgstr "eble la enigo devus indiki polifoniajn voĉojn"
 
@@ -3051,13 +3031,7 @@ msgid "Grob count %d"
 msgstr "Nombro da 'grob': %d"
 
 #. TODO: Also print the arguments of the markup!
-#: text-interface.cc:129
-#, c-format
-msgid "Cyclic markup detected: %s"
-msgstr "Cikla markado estis detektata: %s"
-
-#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:142
+#: text-interface.cc:138
 #, c-format
 msgid "Markup depth exceeds maximal value of %d; Markup: %s"
 msgstr "Markada profundo superas maksimuman valoron %d; Markado: %s"
@@ -3074,11 +3048,11 @@ msgstr "jam ekzistas tekst-etendigilo"
 msgid "unterminated text spanner"
 msgstr "nefinigita tekst-etendigilo"
 
-#: tie-engraver.cc:119
+#: tie-engraver.cc:121
 msgid "unterminated tie"
 msgstr "nefinigita ligaturo"
 
-#: tie-engraver.cc:353
+#: tie-engraver.cc:373
 msgid "lonely tie"
 msgstr "sola ligaturo"
 
@@ -3087,18 +3061,11 @@ msgstr "sola ligaturo"
 #.
 #. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
 #.
-#: time-signature-engraver.cc:75
+#: time-signature-engraver.cc:95
 #, c-format
 msgid "strange time signature found: %d/%d"
 msgstr "stranga takt-indiko estis trovata: %d/%d"
 
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:89
-#, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr "tempindika simbolo '%s' ne estis trovata; ni revenas al numera stilo"
-
 #: translator-ctors.cc:65
 #, c-format
 msgid "unknown translator: `%s'"
@@ -3114,12 +3081,12 @@ msgstr "fatala eraro. Ne eblis trovi tipon: %s"
 msgid "cannot find: `%s'"
 msgstr "ne eblas trovi: '%s'"
 
-#: translator.cc:326
+#: translator.cc:320
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
 msgstr "Du samtempaj eventoj %s, ni forĵetas tiun ĉi"
 
-#: translator.cc:327
+#: translator.cc:321
 #, c-format
 msgid "Previous %s event here"
 msgstr "Antaŭa evento %s ĉi tie"
@@ -3184,205 +3151,214 @@ msgstr "ankaŭ jam ekzistas finigita etendigilo"
 msgid "giving up"
 msgstr "ni rezignas"
 
-#: parser.yy:158 parser.yy:172
-msgid "Too much lookahead"
-msgstr "Tro da antaŭrigardo"
-
-#: parser.yy:441 parser.yy:752 parser.yy:818
+#: parser.yy:463 parser.yy:847 parser.yy:928 parser.yy:1150
 msgid "bad expression type"
 msgstr "malĝusta esprim-tipo"
 
-#: parser.yy:650 parser.yy:1159
+#: parser.yy:759 parser.yy:1361 parser.yy:1406
 msgid "not a context mod"
 msgstr "ne estas kunteksta 'mod'"
 
-#: parser.yy:853
-msgid "score expected"
-msgstr "estis atendata muzik-skribaĵo"
+#: parser.yy:954
+msgid "Missing music in \\score"
+msgstr "Mankas muziko en \\score"
 
-#: parser.yy:869
+#: parser.yy:991
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "\\paper ne povas esti uzata en \\score, uzu \\layout anstataŭe"
 
-#: parser.yy:893
+#: parser.yy:1027
+msgid "Spurious expression in \\score"
+msgstr "Hazarda esprimo en \\score"
+
+#: parser.yy:1057
 msgid "need \\paper for paper block"
 msgstr "necesas \\paper por papera bloko"
 
-#: parser.yy:1033 parser.yy:1055
+#: parser.yy:1234
+msgid "music expected"
+msgstr "estis atendata muziko"
+
+#: parser.yy:1244 parser.yy:1278
 msgid "unexpected post-event"
 msgstr "malatendita post-evento"
 
-#: parser.yy:1063
+#: parser.yy:1286
 msgid "Ignoring non-music expression"
 msgstr "Ni preterpasas ne-muzikan esprimon"
 
-#: parser.yy:1075 parser.yy:2493
-msgid "music expected"
-msgstr "estis atendata muziko"
-
-#: parser.yy:1370
+#: parser.yy:1587
 msgid "not a symbol"
 msgstr "ne estas simbolo"
 
-#: parser.yy:2182 parser.yy:2296 parser.yy:2309 parser.yy:2318
+#: parser.yy:2337 parser.yy:2451 parser.yy:2464 parser.yy:2473
 msgid "bad grob property path"
 msgstr "malĝusta vojo de eco de 'grob'"
 
-#: parser.yy:2276
+#: parser.yy:2431
 msgid "only \\consists and \\remove take non-string argument."
 msgstr "nur \\consists kaj \\remove prenas ne-ĉenan argumenton."
 
-#: parser.yy:2337
+#: parser.yy:2492
 msgid "bad context property path"
 msgstr "malĝusta vojo de eco de kunteksto"
 
-#: parser.yy:2438
+#: parser.yy:2593
 msgid "simple string expected"
 msgstr "estis atendata simpla ĉeno"
 
-#: parser.yy:2456
+#: parser.yy:2611
 msgid "symbol expected"
 msgstr "simbolo estis atendata"
 
-#: parser.yy:2611
+#: parser.yy:2747
 msgid "not a rhythmic event"
 msgstr "ne estas ritma evento"
 
-#: parser.yy:2685
+#: parser.yy:2797
 msgid "post-event expected"
 msgstr "post-evento estis atendata"
 
-#: parser.yy:2694 parser.yy:2699
+#: parser.yy:2806 parser.yy:2811
 msgid "have to be in Lyric mode for lyrics"
 msgstr "devas esti en reĝimo Lyric por tekstoj"
 
-#: parser.yy:2767
-msgid "expecting string as script definition"
-msgstr "ni atendas ĉeno kiel difino de skripto"
+#: parser.yy:2887
+msgid "expecting string or post-event as script definition"
+msgstr "ni atendas ĉenon aŭ post-eventon kiel difinon de skripto"
 
-#: parser.yy:2875
+#: parser.yy:2991
 msgid "not an articulation"
 msgstr "ne estas artikulacio"
 
-#: parser.yy:2947 parser.yy:2990
+#: parser.yy:3063 parser.yy:3106
 msgid "not a duration"
 msgstr "ne estas daŭro"
 
-#: parser.yy:3007
+#: parser.yy:3127
 msgid "bass number expected"
 msgstr "estis atendata bas-simbolo"
 
-#: parser.yy:3106
+#: parser.yy:3219
 msgid "have to be in Note mode for notes"
 msgstr "devas esti en reĝimo Note por notoj"
 
-#: parser.yy:3166
+#: parser.yy:3258
 msgid "have to be in Chord mode for chords"
 msgstr "devas esti en reĝimo Chord por akordoj"
 
-#: parser.yy:3181
+#: parser.yy:3301
 msgid "markup outside of text script or \\lyricmode"
 msgstr "markado for de teksta skripto aŭ \\lyricmode"
 
-#: parser.yy:3186
+#: parser.yy:3306
 msgid "unrecognized string, not in text script or \\lyricmode"
 msgstr "nerekonita ĉeno, ne estas en teksta skripto aŭ \\lyricmode"
 
-#: parser.yy:3347 parser.yy:3356
+#: parser.yy:3458 parser.yy:3467
 msgid "not an unsigned integer"
 msgstr "ne estas sensigna entjero"
 
-#: parser.yy:3424
+#: parser.yy:3541
 msgid "not a markup"
 msgstr "ne estas markado"
 
-#: lexer.ll:224
+#: lexer.ll:192
 msgid "stray UTF-8 BOM encountered"
 msgstr "perdita UTF-8 BOM aperis"
 
-#: lexer.ll:227
+#: lexer.ll:195
 msgid "Skipping UTF-8 BOM"
 msgstr "Preterpasado de UTF-8 BOM"
 
-#: lexer.ll:279
+#: lexer.ll:247
 #, c-format
 msgid "Renaming input to: `%s'"
 msgstr "Renomigo de la enigo al: '%s'"
 
-#: lexer.ll:296
+#: lexer.ll:264
 msgid "quoted string expected after \\version"
 msgstr "citita ĉeno estas atendata post \\version"
 
-#: lexer.ll:300
+#: lexer.ll:268
 msgid "quoted string expected after \\sourcefilename"
 msgstr "citita ĉeno estas atendata post \\sourcefilename"
 
-#: lexer.ll:304
+#: lexer.ll:272
 msgid "integer expected after \\sourcefileline"
 msgstr "entjero estas atendata post \\sourcefileline"
 
-#: lexer.ll:331
+#: lexer.ll:299
 msgid "\\maininput not allowed outside init files"
 msgstr "\\maininput ne estas permesata ekstere de dosieroj 'init'"
 
-#: lexer.ll:355
+#: lexer.ll:323
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "malĝusta aŭ nedifinita identigilo: '%s'"
 
-#: lexer.ll:381
+#: lexer.ll:348
 msgid "string expected after \\include"
 msgstr "ĉeno estas atendata post \\include"
 
-#: lexer.ll:391
+#: lexer.ll:358
 msgid "end quote missing"
 msgstr "fina citilo mankas"
 
-#: lexer.ll:743
+#: lexer.ll:713
 msgid "EOF found inside a comment"
 msgstr "EOF estis trovata interne de komento"
 
-#: lexer.ll:748
+#: lexer.ll:718
 msgid "EOF found inside string"
 msgstr "EOF estis trovata ene de ĉeno"
 
-#: lexer.ll:763
+#: lexer.ll:733
 msgid "Unfinished main input"
 msgstr "Nefinigita ĉefenigo"
 
-#: lexer.ll:834
+#: lexer.ll:804
 #, c-format
 msgid "invalid character: `%s'"
 msgstr "malvalida signo: '%s'"
 
-#: lexer.ll:963
+#: lexer.ll:924
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "nekonata eskapita ĉeno: '\\%s'"
 
-#: lexer.ll:983
+#: lexer.ll:944
 #, c-format
 msgid "undefined character or shorthand: %s"
 msgstr "nedifinita signo aŭ mallongigo: %s"
 
-#: lexer.ll:1275
+#: lexer.ll:1235
 msgid "non-UTF-8 input"
 msgstr "ne-unikoda enigo"
 
-#: lexer.ll:1319
+#: lexer.ll:1279
+#, c-format
+msgid "Invalid version string \"%s\""
+msgstr "Malvalida versio-ĉeno \"%s\""
+
+#: lexer.ll:1284
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "dosiero tro malnova: %s (pli malnova subtenata: %s)"
 
-#: lexer.ll:1320
+#: lexer.ll:1285
 msgid "consider updating the input with the convert-ly script"
 msgstr "konsideru ĝisdatigi la enigon per la skripto 'convert-ly'"
 
-#: lexer.ll:1326
+#: lexer.ll:1291
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "programo tro malnova: %s (la dosiero postulas: %s)"
 
+#: auto-beam.scm:147
+msgid "Beam end fits no pattern"
+msgstr "Vostliga fino kongruas kun neniu ŝablono"
+
 #: backend-library.scm:27
 #, scheme-format
 msgid "Invoking `~a'..."
@@ -3393,24 +3369,24 @@ msgstr "Alvokado de '~a'..."
 msgid "`~a' failed (~a)\n"
 msgstr "'~a' fiaskis (~a)\n"
 
-#: backend-library.scm:93
+#: backend-library.scm:94
 #, scheme-format
 msgid "Converting to `~a'...\n"
 msgstr "Konvertado al '~a'...\n"
 
 #. Do not try to guess the name of the png file,
 #. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:102
+#: backend-library.scm:103
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr "Konvertado al ~a..."
 
-#: backend-library.scm:140
+#: backend-library.scm:141
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr "Skribado de kapa kampo '~a' al '~a'..."
 
-#: backend-library.scm:189
+#: backend-library.scm:190
 #, scheme-format
 msgid "missing stencil expression `~S'"
 msgstr "mankas esprimo de 'stencil' '~S'"
@@ -3451,74 +3427,65 @@ msgstr "Eventuala rubaĵo sekvanta akordon: ~A"
 msgid "symbol ~S redefined"
 msgstr "simbolo ~S estis redifinata"
 
-#: define-event-classes.scm:73
+#: define-event-classes.scm:74
 #, scheme-format
 msgid "unknown parent class `~a'"
 msgstr "nekonata event-klaso '~a'"
 
-#: define-event-classes.scm:107
+#: define-event-classes.scm:108
 #, scheme-format
 msgid "Cannot redefine event class `~S'"
 msgstr "ne eblas redifini event-klason '~S'"
 
-#: define-event-classes.scm:109
+#: define-event-classes.scm:110
 #, scheme-format
 msgid "Undefined parent event class `~S'"
 msgstr "nekonata patra event-klaso '~S'"
 
-#: define-markup-commands.scm:1083
+#: define-markup-commands.scm:1062
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "neniu sistemo estis trovata en markado \\score, ĉu ĝi havas blokon \\layout?"
 
-#: define-markup-commands.scm:2847
+#: define-markup-commands.scm:2886
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "Ne eblas trovi signobildon ~a"
 
-#: define-markup-commands.scm:3273
+#: define-markup-commands.scm:3362
 #, scheme-format
 msgid "no brace found for point size ~S "
 msgstr "neniu kurbkrampo estis trovata por la punkta grando ~S "
 
-#: define-markup-commands.scm:3274
+#: define-markup-commands.scm:3363
 #, scheme-format
 msgid "defaulting to ~S pt"
 msgstr "apriore al ~S pt"
 
-#: define-markup-commands.scm:3526
+#: define-markup-commands.scm:3615
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "ne estas valida daŭro-ĉeno: ~a"
 
-#: define-markup-commands.scm:3737
+#: define-markup-commands.scm:3826
 #, scheme-format
 msgid "not a valid duration string: ~a - ignoring"
 msgstr "ne estas valida daŭro-ĉeno: ~a - ni preteratentas"
 
-#: define-music-types.scm:792
+#: define-music-types.scm:797
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr "atendata simbolo: ~S"
 
-#: define-music-types.scm:795
+#: define-music-types.scm:800
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr "ne eblas trovi muzik-objekton: ~S"
 
-#: define-music-types.scm:815
+#: define-music-types.scm:820
 #, scheme-format
 msgid "bad make-music argument: ~S"
 msgstr "malĝusta argumento make-music: ~S"
 
-#: define-music-types.scm:827
-#, scheme-format
-msgid "unknown repeat type `~S'"
-msgstr "nekonata ripeto-tipo '~S'"
-
-#: define-music-types.scm:828
-msgid "See define-music-types.scm for supported repeats"
-msgstr "Vidu 'define-music-types.scm' por subtenataj ripetoj"
-
 #: define-note-names.scm:972
 msgid "Select note names language."
 msgstr "Elekti lingvon de not-nomoj."
@@ -3533,37 +3500,37 @@ msgstr "Aplikado de not-nomoj '~a'..."
 msgid "Could not find language `~a'.  Ignoring."
 msgstr "Ne eblis trovi la lingvon '~a'.  Preterpaso."
 
-#: document-backend.scm:132
+#: document-backend.scm:135
 #, scheme-format
 msgid "pair expected in doc ~s"
 msgstr "paro estas atendata en dok ~s"
 
-#: document-backend.scm:189
+#: document-backend.scm:202
 #, scheme-format
 msgid "cannot find interface for property: ~S"
 msgstr "ne eblas trovi interfacon por la atributo: ~S"
 
-#: document-backend.scm:199
+#: document-backend.scm:212
 #, scheme-format
 msgid "unknown Grob interface: ~S"
 msgstr "nekonata interfaco Grob: ~S"
 
-#: documentation-lib.scm:59
+#: documentation-lib.scm:62
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Procezado de ~S..."
 
-#: documentation-lib.scm:176
+#: documentation-lib.scm:178
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Skribado de ~S..."
 
-#: documentation-lib.scm:188
+#: documentation-lib.scm:190
 #, scheme-format
 msgid "cannot find description for property `~S' (~S)"
 msgstr "ne eblas trovi priskribon por la atributo '~S' (~S)"
 
-#: documentation-lib.scm:209
+#: documentation-lib.scm:211
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "ne eblas trovi priskribon por la atributo ~S (~S)"
@@ -3578,27 +3545,27 @@ msgstr "flag-streko '~a' aŭ '~a' ne estis trovata"
 msgid "Writing ~a..."
 msgstr "Skribado de ~a..."
 
-#: framework-ps.scm:250
+#: framework-ps.scm:281
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "ne eblas enkorpigi ~S=~S"
 
-#: framework-ps.scm:293
+#: framework-ps.scm:324
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "ne eblas eltiri dosieron kongruanta al ~a, el ~a"
 
-#: framework-ps.scm:311
+#: framework-ps.scm:342
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "ni ne scias kiel enkorpigi ~S=~S"
 
-#: framework-ps.scm:336
+#: framework-ps.scm:367
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "ni ne scias kiel enkorpigi la tiparon ~s ~s ~s"
 
-#: framework-ps.scm:687
+#: framework-ps.scm:729
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -3646,20 +3613,20 @@ msgstr "Eraro en kalkulado de vostligo.  Atendante (~S,~S), trovis ~S."
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Eraro en kalkulado de vostligo.  Atendante ~S 0, trovis ~S."
 
-#: lily-library.scm:333
+#: lily-library.scm:350
 msgid "Music unsuitable for context-mod"
 msgstr "La muziko ne taŭgas por 'context-mod'"
 
-#: lily-library.scm:388
+#: lily-library.scm:405
 #, scheme-format
 msgid "Cannot find context-def \\~a"
 msgstr "Ne eblas trovi context-def \\~a"
 
-#: lily-library.scm:404
+#: lily-library.scm:421
 msgid "Music unsuitable for output-def"
 msgstr "La muziko ne taŭgas por output-def"
 
-#: lily-library.scm:884
+#: lily-library.scm:921
 msgid ""
 "Find the index between @var{start} and @var{end} (an integer)\n"
 "which produces the closest match to @var{target-val} if\n"
@@ -3669,12 +3636,12 @@ msgstr ""
 "kiu produktas plej bonan kongruon al @var{target-val} se\n"
 "aplikata al la funkcio @var{getter}."
 
-#: lily-library.scm:955
+#: lily-library.scm:1015
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "nekonata unuo: ~S"
 
-#: lily-library.scm:980
+#: lily-library.scm:1040
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr "neniu komando \\version estis trovata, bonvolu aldoni ~a por estonta kongrueco"
@@ -3687,33 +3654,33 @@ msgstr "call-after-session estis uzata post komenco de seanco"
 msgid "define-session used after session start"
 msgstr "define-session estis uzata post komenco de seanco"
 
-#: lily.scm:393
+#: lily.scm:399
 msgid "Using (ice-9 curried-definitions) module\n"
 msgstr "Ni uzas la modulon (ice-9 curried-definitions)\n"
 
-#: lily.scm:396
+#: lily.scm:402
 msgid "Guile 1.8\n"
 msgstr "Guile 1.8\n"
 
-#: lily.scm:455
+#: lily.scm:459
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "ne eblas trovi: ~A"
 
-#: lily.scm:878
+#: lily.scm:886
 msgid "Success: compilation successfully completed"
 msgstr "Sukceso: la kompilado sukcese plenumiĝis"
 
-#: lily.scm:879
+#: lily.scm:887
 msgid "Compilation completed with warnings or errors"
 msgstr "La kompilado plenumiĝis kun avertoj aŭ eraroj"
 
-#: lily.scm:940
+#: lily.scm:948
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "la laboro ~a finis kun signalo: ~a"
 
-#: lily.scm:943
+#: lily.scm:951
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -3722,17 +3689,17 @@ msgstr ""
 "protokol-dosiero ~a (eliro ~a):\n"
 "~a"
 
-#: lily.scm:965 lily.scm:1054
+#: lily.scm:973 lily.scm:1062
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "fiaskintajn dosieroj: ~S"
 
-#: lily.scm:1045
+#: lily.scm:1053
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Redirektigo de eligo al ~a..."
 
-#: lily.scm:1064 ps-to-png.scm:66
+#: lily.scm:1072 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr "Alvokado de '~a'...\n"
@@ -3742,12 +3709,12 @@ msgstr "Alvokado de '~a'...\n"
 msgid "~a function cannot return ~a"
 msgstr "funkcio ~a ne povas liveri ~a"
 
-#: ly-syntax-constructors.scm:75
+#: ly-syntax-constructors.scm:76
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "malĝusta tipo por argumento ~a.  Atendate ~a, trovite ~s"
 
-#: ly-syntax-constructors.scm:199
+#: ly-syntax-constructors.scm:200
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Malvalida atribut-operacio ~a"
@@ -3791,58 +3758,77 @@ msgstr "la inversigota tonalto ne estas en skalo; preterpaso"
 msgid "negative replication count; ignoring"
 msgstr "negativa nombro da rekopiado; preterpaso"
 
-#: music-functions.scm:272
-msgid "More alternatives than repeats.  Junking excess alternatives"
-msgstr "Pli da alternativoj ol ripetoj.  Forĵeto de kromaj alternativoj"
-
-#: music-functions.scm:303
+#: music-functions.scm:311
 #, scheme-format
 msgid "invalid tremolo repeat count: ~a"
 msgstr "malvalida tremson-ripeta nombro: ~a"
 
-#: music-functions.scm:459
+#: music-functions.scm:340
+#, scheme-format
+msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo"
+msgstr "nekonata ripeto-tipo '~S': devas esti volta, unfold, percent, aŭ tremolo"
+
+#: music-functions.scm:344
+msgid "More alternatives than repeats.  Junking excess alternatives"
+msgstr "Pli da alternativoj ol ripetoj.  Forĵeto de kromaj alternativoj"
+
+#: music-functions.scm:480
 #, scheme-format
 msgid "bad grob property path ~a"
-msgstr "Malĝusta vojo de eco de 'grob' ~a"
+msgstr "malĝusta vojo de eco de 'grob' ~a"
 
-#: music-functions.scm:753
+#: music-functions.scm:779
 msgid "Bad chord repetition"
 msgstr "Malĝusta ripeto de akordo"
 
-#: music-functions.scm:788
+#: music-functions.scm:884
 #, scheme-format
 msgid "music expected: ~S"
 msgstr "atendita muziko: ~S"
 
-#: music-functions.scm:1144
+#: music-functions.scm:1226
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr "ne eblas trovi la cititan muzikon: '~S'"
 
-#: music-functions.scm:1282
+#: music-functions.scm:1366
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr "Aldoni @var{octave-shift} al la okto de @var{pitch}."
 
-#: music-functions.scm:1342
+#: music-functions.scm:1429
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr "Nekonata okteca tipo: ~S "
 
-#: music-functions.scm:1343
+#: music-functions.scm:1430
 msgid "Defaulting to 'any-octave."
 msgstr "Apriore al 'any-octave."
 
-#: music-functions.scm:1688
+#: music-functions.scm:1822
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "nekonata stilo de aliigo: ~S"
 
-#: output-ps.scm:278 output-svg.scm:539
+#: music-functions.scm:2040
+msgid "Missing duration"
+msgstr "Mankas daŭro"
+
+#: music-functions.scm:2549
+#, scheme-format
+msgid "not a symbol list: ~a"
+msgstr "ne estas simbolo-listo: ~a"
+
+#: music-functions.scm:2552
+#, scheme-format
+msgid "conflicting tag group ~a"
+msgstr "konfliktanta mark-grupo ~a"
+
+#: output-ps.scm:290 output-svg.scm:539
 #, scheme-format
 msgid "unknown line-cap-style: ~S"
 msgstr "nekonata 'line-cap-style': ~S"
 
-#: output-ps.scm:283 output-svg.scm:545
+#: output-ps.scm:295 output-svg.scm:545
 #, scheme-format
 msgid "unknown line-join-style: ~S"
 msgstr "nekonata 'line-join-style': ~S"
@@ -3861,32 +3847,32 @@ msgstr "Signobildo devas havi unikodan valoron"
 msgid "cannot find SVG font ~S"
 msgstr "ne eblas trovi SVG-tiparon ~S"
 
-#: paper.scm:120
+#: paper.scm:122
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size: ne en supernivela rango"
 
-#: paper.scm:320
+#: paper.scm:322
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "Tio ĉi ne estas objekto \\layout {}, ~S"
 
-#: paper.scm:328
+#: paper.scm:330
 #, scheme-format
 msgid "Unknown paper size: ~a"
 msgstr "Nekonata paper-grando: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:347
+#: paper.scm:349
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "Uzendas #(set-paper-size .. ) interne de \\paper { ... }"
 
-#: parser-clef.scm:164
+#: parser-clef.scm:154
 #, scheme-format
 msgid "unknown clef type `~a'"
 msgstr "nekonata kleftipo '~a'"
 
-#: parser-clef.scm:165
+#: parser-clef.scm:155
 #, scheme-format
 msgid "supported clefs: ~a"
 msgstr "subtenataj klefoj: ~a"
@@ -3895,7 +3881,7 @@ msgstr "subtenataj klefoj: ~a"
 msgid "error in #{ ... #}"
 msgstr "eraro en #{ ... #}"
 
-#: part-combiner.scm:598
+#: part-combiner.scm:748
 #, scheme-format
 msgid "quoted music `~a' is empty"
 msgstr "la citita muziko '~a' estas malplena"
@@ -3910,40 +3896,40 @@ msgstr "~a finis kun stato: ~S"
 msgid "assertion failed: ~S"
 msgstr "aserto fiaskis: ~S"
 
-#: translation-functions.scm:368
+#: translation-functions.scm:389
 #, scheme-format
 msgid "Negative fret for pitch ~a on string ~a"
 msgstr "Negativa freto por tonalto ~a sur kordo ~a"
 
-#: translation-functions.scm:371
+#: translation-functions.scm:392
 #, scheme-format
 msgid "Missing fret for pitch ~a on string ~a"
 msgstr "Mankas freto por tonalto ~a sur kordo ~a"
 
-#: translation-functions.scm:414
+#: translation-functions.scm:435
 #, scheme-format
 msgid "No open string for pitch ~a"
 msgstr "Neniu libera kordo por tonalto ~a"
 
-#: translation-functions.scm:429 translation-functions.scm:441
+#: translation-functions.scm:450 translation-functions.scm:462
 #, scheme-format
 msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
 msgstr "La petita kordo por tonalto postulas negativan freton: kordo ~a tonalto ~a"
 
-#: translation-functions.scm:432
+#: translation-functions.scm:453
 msgid "Ignoring string request and recalculating."
 msgstr "Preterpaso de peto de kordo kaj rekalkulado."
 
-#: translation-functions.scm:444
+#: translation-functions.scm:465
 msgid "Ignoring note in tablature."
 msgstr "Preterpaso de noto en tabulaturo."
 
-#: translation-functions.scm:469
+#: translation-functions.scm:490
 #, scheme-format
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr "Neniu kordo por tonalto ~a (je fretoj ~a)"
 
-#: translation-functions.scm:574
+#: translation-functions.scm:595
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
@@ -3952,6 +3938,57 @@ msgstr ""
 "Neniu etikedo por freto ~a (sur kordo ~a);\n"
 "nur ~a fret-etikedoj estis provizataj"
 
+#~ msgid "cannot find Voice `%s'"
+#~ msgstr "ne eblas trovi Voĉon '%s'"
+
+#~ msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
+#~ msgstr "Teksta silabo ne havas noton. Uzu \\lyricsto aŭ 'associatedVoice'."
+
+#~ msgid "Using naive multi measure rest spacing."
+#~ msgstr "Uzanta naivan plur-mezuran paŭzo-spacadon."
+
+#~ msgid "(normalized pitch)"
+#~ msgstr "(normigita tonalto)"
+
+#~ msgid "Transposing %s by %s makes alteration larger than double"
+#~ msgstr "Transpono de %s per %s igas aliigon pli granda ol duobla"
+
+#~ msgid "ignoring too many clashing note columns"
+#~ msgstr "ni preterpasas tro multajn kolumnojn kun koliziantaj notoj"
+
+#~ msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
+#~ msgstr "ne eblas akomodi muzikon sur paĝo: 'ragged-spacing' estis petata, sed la paĝo estis densigata"
+
+#~ msgid "cannot fit music on page: overflow is %f"
+#~ msgstr "ne eblas akomodi muzikon sur paĝo: troo estas %f"
+
+#~ msgid "compressing music to fit"
+#~ msgstr "densigado de muziko por akomodi"
+
+#~ msgid "trying to use \\partial after the start of a piece"
+#~ msgstr "ni provas uzi \\partial post la komenco de muziko"
+
+#~ msgid "rhythmic head is not part of a rhythmic column"
+#~ msgstr "ritma kapo ne estas parto de ritma kolumno"
+
+#~ msgid "Cyclic markup detected: %s"
+#~ msgstr "Cikla markado estis detektata: %s"
+
+#~ msgid "time signature symbol `%s' not found; reverting to numbered style"
+#~ msgstr "tempindika simbolo '%s' ne estis trovata; ni revenas al numera stilo"
+
+#~ msgid "Too much lookahead"
+#~ msgstr "Tro da antaŭrigardo"
+
+#~ msgid "score expected"
+#~ msgstr "estis atendata muzik-skribaĵo"
+
+#~ msgid "unknown repeat type `~S'"
+#~ msgstr "nekonata ripeto-tipo '~S'"
+
+#~ msgid "See define-music-types.scm for supported repeats"
+#~ msgstr "Vidu 'define-music-types.scm' por subtenataj ripetoj"
+
 #~ msgid "cannot find start of (de)crescendo"
 #~ msgstr "ne eblas trovi komencon de '(de)crescendo'"
 
index ef5e6c84a1c4a58a4e13b7fc5240c6cd9f7bfa04..6f0c9cc16da02fb2a9c378c51e1254efad9c52e4 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,14 +3,14 @@
 # French translation of GNU/lilypond - http//lilypond.org
 # Copyright © 2004 Free Software Foundation, Inc.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-2007.
-# Jean-Charles Malahieude <lilyfan@orange.fr>, 2007-2013
+# Jean-Charles Malahieude <lilyfan@orange.fr>, 2007-2015
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.17.96\n"
+"Project-Id-Version: lilypond 2.19.16\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2013-11-24 12:14+0000\n"
-"PO-Revision-Date: 2013-11-27 19:16+0100\n"
+"POT-Creation-Date: 2015-02-28 14:31+0000\n"
+"PO-Revision-Date: 2015-03-02 13:28+0100\n"
 "Last-Translator: Jean-Charles Malahieude <lilyfan@orange.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -39,11 +39,11 @@ msgstr ""
 "Traitement par « %s » du fichier « %s »\n"
 "  pour déterminer la mise en page par défaut.\n"
 
-#: book_latex.py:212 book_texinfo.py:228
+#: book_latex.py:219 book_texinfo.py:228
 msgid "Unable to auto-detect default settings:\n"
 msgstr "Impossible de détecter automatiquement les réglages par défaut :\n"
 
-#: book_latex.py:224 book_texinfo.py:240
+#: book_latex.py:231 book_texinfo.py:240
 #, python-format
 msgid ""
 "Unable to auto-detect default settings:\n"
@@ -52,7 +52,7 @@ msgstr ""
 "Impossible de détecter automatiquement les réglages par défaut :\n"
 "%s"
 
-#: book_latex.py:247
+#: book_latex.py:254
 msgid "cannot detect textwidth from LaTeX"
 msgstr "impossible d'extraire la largeur du texte à partir de LaTeX"
 
@@ -86,31 +86,31 @@ msgstr "option ly inconnue et ignorée : %s"
 msgid "Missing files: %s"
 msgstr "Fichier absent : %s"
 
-#: book_snippets.py:651
+#: book_snippets.py:661
 #, python-format
 msgid "Could not overwrite file %s"
 msgstr "Impossible d'écraser le fichier « %s »"
 
-#: book_snippets.py:738
+#: book_snippets.py:748
 #, python-format
 msgid "Running through filter `%s'"
 msgstr "Passage par le filtre « %s »"
 
-#: book_snippets.py:759
+#: book_snippets.py:769
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "« %s » a échoué (%d)"
 
-#: book_snippets.py:760
+#: book_snippets.py:770
 msgid "The error log is as follows:"
 msgstr "Voici le journal d'erreurs :"
 
-#: book_snippets.py:880
+#: book_snippets.py:890
 #, python-format
 msgid "Converting MusicXML file `%s'...\n"
 msgstr "Lecture du fichier MusicXML « %s »...\n"
 
-#: book_snippets.py:907
+#: book_snippets.py:917
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of original file,\n"
@@ -119,7 +119,7 @@ msgstr ""
 "%s : fichier en doublon mais contenu différent de l'original,\n"
 "  impression d'un différentiel entre les deux fichiers."
 
-#: book_snippets.py:920
+#: book_snippets.py:930
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of converted lilypond file,\n"
@@ -172,7 +172,7 @@ msgstr "\\textstyle est obsolète ; utiliser désormais la syntaxe \\key"
 
 #: convertrules.py:82 convertrules.py:1856 convertrules.py:2032
 #: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801
-#: convertrules.py:3151 convertrules.py:3385
+#: convertrules.py:3151 convertrules.py:3385 convertrules.py:3697
 msgid "bump version for release"
 msgstr "sauter de version pour mise à jour"
 
@@ -630,7 +630,7 @@ msgstr "\\bar \".\" produit désormais une barre épaisse.\n"
 
 #: convertrules.py:2849
 msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n"
-msgstr "Les paramètres du pointillé des liaisons sont gérés par `dash-definition.\n"
+msgstr "Les paramètres du pointillé des liaisons sont gérés par 'dash-details.\n"
 
 #: convertrules.py:2854
 msgid ""
@@ -992,12 +992,12 @@ msgstr ""
 "%s) au format LilyPond.\n"
 
 #: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:181
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183
 msgid "show version number and exit"
 msgstr "affiche le numéro de version et quitte"
 
 #: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:160
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162
 msgid "show this help and exit"
 msgstr "visualiser cette aide et quitter"
 
@@ -1022,7 +1022,7 @@ msgstr "n'affiche pas les messages de progression"
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
 #: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:315
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr ""
@@ -1080,7 +1080,7 @@ msgstr ""
 "(NONE, ERROR, WARNING, PROGRESS (par défaut), DEBUG)"
 
 #: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:174
+#: musicxml2ly.py:2629 main.cc:176
 msgid "LOGLEVEL"
 msgstr "LOGLEVEL"
 
@@ -1112,7 +1112,7 @@ msgid "make a numbered backup [default: filename.ext~]"
 msgstr "effectue un archivage numéroté [par défaut : nomfichier.etx~]"
 
 #: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:183
+#: main.cc:185
 msgid "show warranty and copyright"
 msgstr "affiche les notices de garantie et du droit d'auteur"
 
@@ -1133,19 +1133,19 @@ msgstr "Arrêt à la dernière règle appliquée avec succès"
 msgid "Processing `%s'... "
 msgstr "Traitement de « %s »..."
 
-#: convert-ly.py:367
+#: convert-ly.py:368
 #, python-format
 msgid "%s: Unable to open file"
 msgstr "impossible d'ouvrir le fichier « %s »"
 
-#: convert-ly.py:373
+#: convert-ly.py:374
 #, python-format
 msgid "%s: Unable to determine version.  Skipping"
 msgstr ""
 "impossible de déterminer la version de « %s ».\n"
 " Au suivant !"
 
-#: convert-ly.py:379
+#: convert-ly.py:380
 #, python-format
 msgid ""
 "%s: Invalid version string `%s' \n"
@@ -1155,7 +1155,7 @@ msgstr ""
 "Un numéro de version valide est formé de trois nombres séparés par un point,\n"
 "comme par exemple « 2.8.12 »"
 
-#: convert-ly.py:385
+#: convert-ly.py:386
 #, python-format
 msgid "There was %d error."
 msgid_plural "There were %d errors."
@@ -1177,7 +1177,7 @@ msgstr ""
 "exploitable.\n"
 
 #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:166 main.cc:178
+#: main.cc:168 main.cc:180
 msgid "FILE"
 msgstr "FICHIER"
 
@@ -1219,7 +1219,7 @@ msgid "add DIR to include path"
 msgstr "ajoute le RÉP au chemin de recherche des inclusions"
 
 #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:165
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167
 msgid "DIR"
 msgstr "RÉP"
 
@@ -1376,19 +1376,19 @@ msgstr "Traitement d'inclusion : %s"
 msgid "Removing `%s'"
 msgstr "Suppression de « %s »"
 
-#: lilypond-book.py:714
+#: lilypond-book.py:727
 #, python-format
 msgid "Setting LilyPond's loglevel to %s"
 msgstr "Niveau de journalisation de LilyPond fixé à %s"
 
-#: lilypond-book.py:718
+#: lilypond-book.py:731
 #, python-format
 msgid "Setting LilyPond's loglevel to %s (from environment variable LILYPOND_LOGLEVEL)"
 msgstr ""
 "Détermination du niveau de journalisation de LilyPond à %s\n"
 "(à partir de la variable d'environnement LILYPOND_LOGLEVEL)"
 
-#: lilypond-book.py:721
+#: lilypond-book.py:734
 msgid "Setting LilyPond's output to --verbose, implied by lilypond-book's setting"
 msgstr "Utilisation de l'option LilyPond --verbose (réglage implicite de lilypond-book)"
 
@@ -1723,15 +1723,15 @@ msgstr "Fichier de sortie : « %s »"
 msgid "Unable to find input file %s"
 msgstr "Impossible de trouver le fichier d'entrée « %s »"
 
-#: website_post.py:125
+#: website_post.py:129
 msgid "English"
 msgstr "Anglais"
 
-#: website_post.py:128
+#: website_post.py:132
 msgid "Other languages"
 msgstr "Autres langues"
 
-#: website_post.py:129
+#: website_post.py:133
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
 msgstr "À propos de la <a href=\"%s\">sélection automatique de la langue</a>."
@@ -1815,12 +1815,12 @@ msgstr ""
 "procédure ou nom de contexte requis pour la règle d'altération accidentelle,\n"
 "%s trouvé"
 
-#: accidental.cc:169
+#: accidental.cc:141
 #, c-format
 msgid "Could not find glyph-name for alteration %s"
 msgstr "Aucun nom de glyphe ne correspond à l'altération %s"
 
-#: accidental.cc:184
+#: accidental.cc:157
 msgid "natural alteration glyph not found"
 msgstr "pas de glyphe correspondant au bécarre"
 
@@ -1959,26 +1959,26 @@ msgstr "Coherent_ligature_engraver : initialise « spacing-increment=0.01 »
 msgid "cannot find line breaking that satisfies constraints"
 msgstr "impossible de trouver un saut de ligne qui satisfasse aux contraintes"
 
-#: context-property.cc:43
+#: context-property.cc:46
 msgid "need symbol arguments for \\override and \\revert"
 msgstr "\\override et \\revert requièrent des arguments symboliques"
 
-#: context.cc:149
+#: context.cc:143
 #, c-format
 msgid "cannot find or create new `%s'"
 msgstr "impossible de trouver ou créer un nouveau « %s »"
 
-#: context.cc:228
+#: context.cc:222
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr "impossible de trouver ou créer « %s » dénommé(e) « %s »"
 
-#: context.cc:425
+#: context.cc:419
 #, c-format
 msgid "cannot find or create: `%s'"
 msgstr "impossible de trouver ou créer « %s »"
 
-#: context.cc:439
+#: context.cc:433
 #, c-format
 msgid "cannot find or create new Bottom = \"%s\""
 msgstr "impossible de trouver ou créer un nouveau « %s »"
@@ -1988,20 +1988,20 @@ msgstr "impossible de trouver ou créer un nouveau « %s »"
 msgid "custos `%s' not found"
 msgstr "custode « %s » introuvable"
 
-#: dispatcher.cc:89
+#: dispatcher.cc:83
 msgid "Event class should be a list"
 msgstr "La classe d'événement devrait être une liste"
 
-#: dispatcher.cc:172
+#: dispatcher.cc:166
 #, c-format
 msgid "Junking event: %s"
 msgstr "Événement escamoté : « %s »"
 
-#: dispatcher.cc:277
+#: dispatcher.cc:271
 msgid "Attempting to remove nonexisting listener."
 msgstr "Tentative de suppression d'un écouteur inexistant."
 
-#: dispatcher.cc:303
+#: dispatcher.cc:297
 msgid "Already listening to dispatcher, ignoring request"
 msgstr "Déjà à l'écoute du dispatcheur ; requête ignorée."
 
@@ -2089,12 +2089,12 @@ msgstr "Construction de la base de donnée des fontes..."
 msgid "Must be footnote-event."
 msgstr "Doit être un événement note de bas de page (footnote-event)."
 
-#: general-scheme.cc:390
+#: general-scheme.cc:403
 #, c-format
 msgid "failed redirecting stderr to `%s'"
 msgstr "échec lors de la redirection de stderr vers « %s »"
 
-#: general-scheme.cc:469 output-ps.scm:48
+#: general-scheme.cc:482 output-ps.scm:48
 msgid "Found infinity or nan in output.  Substituting 0.0"
 msgstr "Détection d'une valeur infini ou non numérique. Substitution par 0.0"
 
@@ -2152,7 +2152,7 @@ msgstr ""
 msgid "%d: %s"
 msgstr "%d : %s"
 
-#: grob.cc:488
+#: grob.cc:481
 #, c-format
 msgid "ignored infinite %s-offset"
 msgstr "%s-offset infini ignoré"
@@ -2161,7 +2161,7 @@ msgstr "%s-offset infini ignoré"
 msgid "Asking for broken bound padding at a non-broken bound."
 msgstr "Tentative de décalage d'un fragment de souflet alors qu'il n'est pas rompu."
 
-#: hairpin.cc:256
+#: hairpin.cc:257
 msgid "decrescendo too small"
 msgstr "decrescendo trop petit"
 
@@ -2191,7 +2191,7 @@ msgstr "fichier non trouvé : « %s »"
 msgid "(search path: `%s')"
 msgstr "(chemin de recherche : « %s »)"
 
-#: input.cc:138 source-file.cc:178 source-file.cc:193
+#: input.cc:138 source-file.cc:177 source-file.cc:192
 msgid "position unknown"
 msgstr "position inconnue"
 
@@ -2322,22 +2322,16 @@ msgstr "Analyse..."
 msgid "Not drawing a box with negative dimension, %.2f by %.2f."
 msgstr "La boîte aux dimensions négatives, %.2f par %.2f, ne sera pas dessinée."
 
-#: lyric-combine-music-iterator.cc:199
+#: lyric-combine-music-iterator.cc:204
 msgid "argument of \\lyricsto should contain Lyrics context"
 msgstr "les arguments de \\lyricsto doivent comporter un contexte Lyrics."
 
-#: lyric-combine-music-iterator.cc:337
+#: lyric-combine-music-iterator.cc:349
 #, c-format
-msgid "cannot find Voice `%s'"
-msgstr "impossible de repérer la voix (Voice) « %s »"
+msgid "cannot find %s `%s'"
+msgstr "le contexte %s « %s » n'existe pas"
 
-#: lyric-engraver.cc:186
-msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
-msgstr ""
-"Syllabe sans note de rattachement.\n"
-" Utiliser \\lyricsto ou associatedVoice."
-
-#: main.cc:104
+#: main.cc:105
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -2350,7 +2344,7 @@ msgstr ""
 "sous certaines conditions.\n"
 "Invoquez « %s --warranty » pour plus d'informations.\n"
 
-#: main.cc:110
+#: main.cc:111
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License as \n"
@@ -2381,11 +2375,11 @@ msgstr ""
 "écrire à la Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:148
+#: main.cc:149
 msgid "SYM[=VAL]"
 msgstr "SYM[=VAL]"
 
-#: main.cc:149
+#: main.cc:150
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -2393,43 +2387,47 @@ msgstr ""
 "affecte VAL (par défaut #t) à l'option Scheme SYM.\n"
 "Utiliser -dhelp pour avoir de l'aide."
 
-#: main.cc:153
+#: main.cc:154
 msgid "EXPR"
 msgstr "EXPR"
 
-#: main.cc:153
+#: main.cc:154
 msgid "evaluate scheme code"
 msgstr "évaluation du code Scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:156
+#: main.cc:157
 msgid "FORMATs"
 msgstr "FORMATs"
 
-#: main.cc:156
+#: main.cc:157
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr ""
 "produire FORMAT...\n"
 "Aussi comme options séparées :"
 
-#: main.cc:157
+#: main.cc:158
 msgid "generate PDF (default)"
 msgstr "générer le PDF (par défaut)"
 
-#: main.cc:158
+#: main.cc:159
 msgid "generate PNG"
 msgstr "générer le PNG"
 
-#: main.cc:159
+#: main.cc:160
 msgid "generate PostScript"
 msgstr "générer le PostScript"
 
-#: main.cc:162
+#: main.cc:161
+msgid "generate big PDF files"
+msgstr "générer de gros fichiers PDF"
+
+#: main.cc:164
 msgid "FIELD"
 msgstr "CHAMP"
 
-#: main.cc:162
+#: main.cc:164
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -2437,21 +2435,21 @@ msgstr ""
 "écrire le champ d'entête CHAMP dans le\n"
 "fichier nommé RACINE.CHAMP"
 
-#: main.cc:165
+#: main.cc:167
 msgid "add DIR to search path"
 msgstr "ajouter RÉPERTOIRE au chemin de recherche"
 
-#: main.cc:166
+#: main.cc:168
 msgid "use FILE as init file"
 msgstr ""
 "utiliser FICHIER comme\n"
 "fichier d'initialisation"
 
-#: main.cc:169
+#: main.cc:171
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "USER, GROUP, CAGE, RÉP"
 
-#: main.cc:169
+#: main.cc:171
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -2459,7 +2457,7 @@ msgstr ""
 "chroot dans CAGE, devenir UTILISATEUR:GROUPE\n"
 "et cd dans RÉPERTOIRE"
 
-#: main.cc:174
+#: main.cc:176
 msgid ""
 "print log messages according to LOGLEVEL.  Possible values are:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
@@ -2467,30 +2465,30 @@ msgstr ""
 "affiche les informations selon le niveau de LOGLEVEL :\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (défaut) ou DEBUG."
 
-#: main.cc:178
+#: main.cc:180
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 "produire la sortie dans FICHIER \n"
 "(adjonction automatique du suffixe)"
 
-#: main.cc:179
+#: main.cc:181
 msgid "relocate using directory of lilypond program"
 msgstr ""
 "redétermine le chemin d'exécution\n"
 "des composants de LilyPond"
 
-#: main.cc:180
+#: main.cc:182
 msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
 msgstr ""
 "pas de progression, seulement les messages d'erreur\n"
 "(équivalent à loglevel=ERROR)"
 
-#: main.cc:182
+#: main.cc:184
 msgid "be verbose (equivalent to loglevel=DEBUG)"
 msgstr "état verbeux (équivalent à loglevel=DEBUG)"
 
 #. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:261
+#: main.cc:263
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -2500,78 +2498,78 @@ msgstr ""
 "%s et autres."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:299
+#: main.cc:301
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Utilisation : %s [OPTIONS]... FICHIER..."
 
-#: main.cc:301
+#: main.cc:303
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Composer la musique ou jouer en format MIDI à partir du FICHIER"
 
-#: main.cc:303
+#: main.cc:305
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond produit une jolie notation musicale"
 
-#: main.cc:305
+#: main.cc:307
 #, c-format
 msgid "For more information, see %s"
 msgstr "Pour plus d'informations, voir %s"
 
-#: main.cc:307
+#: main.cc:309
 msgid "Options:"
 msgstr "Options :"
 
-#: main.cc:374
+#: main.cc:376
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "une cage requiert %d arguments, il y en a %u"
 
-#: main.cc:388
+#: main.cc:390
 #, c-format
 msgid "no such user: %s"
 msgstr "utilisateur inconnu : « %s »"
 
-#: main.cc:390
+#: main.cc:392
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 "impossible de repérer l'identifiant utilisateur à partir du nom d'utilisateur :\n"
 "%s : %s"
 
-#: main.cc:405
+#: main.cc:407
 #, c-format
 msgid "no such group: %s"
 msgstr "groupe inconnu : %s"
 
-#: main.cc:407
+#: main.cc:409
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 "impossible de repérer l'identifiant groupe à partir du nom de groupe :\n"
 "%s : %s "
 
-#: main.cc:415
+#: main.cc:417
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "impossible de chrooter vers : %s : %s"
 
-#: main.cc:422
+#: main.cc:424
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "impossible de changer l'identifiant de groupe en %d : %s"
 
-#: main.cc:428
+#: main.cc:430
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "impossible de changer l'identifiant utilisateur en %d : %s"
 
-#: main.cc:434
+#: main.cc:436
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "impossible de changer le répertoire de travail en %s : %s"
 
-#: main.cc:805
+#: main.cc:825
 #, c-format
 msgid "exception caught: %s"
 msgstr "exception capturée : %s"
@@ -2659,7 +2657,7 @@ msgstr ""
 msgid "cannot write to file: `%s'"
 msgstr "impossible d'écrire dans le fichier « %s »"
 
-#: minimal-page-breaking.cc:40 paper-score.cc:122
+#: minimal-page-breaking.cc:40 paper-score.cc:116
 msgid "Calculating line breaks..."
 msgstr "Calcul des sauts de ligne..."
 
@@ -2667,32 +2665,19 @@ msgstr "Calcul des sauts de ligne..."
 msgid "Calculating page breaks..."
 msgstr "Calcul des sauts de page..."
 
-#: multi-measure-rest.cc:154
+#: multi-measure-rest.cc:152
 msgid "usable-duration-logs must be a non-empty list.  Falling back to whole rests."
 msgstr ""
 "usable-duration-logs ne peut être constitué d'une liste vide.\n"
 "Retour à des pauses."
 
-#: multi-measure-rest.cc:364
-msgid "Using naive multi measure rest spacing."
-msgstr "Utilisation d'un espacement de type silence multimesure."
-
-#: music.cc:150
+#: music.cc:149
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
 msgstr ""
 "Échec de vérification d'octave.\n"
 "Aurait dû être \"%s\", \"%s\" obtenu"
 
-#: music.cc:219
-msgid "(normalized pitch)"
-msgstr "(hauteur normalisée)"
-
-#: music.cc:223
-#, c-format
-msgid "Transposing %s by %s makes alteration larger than double"
-msgstr "La transposition de %s à %s crée des altérations supérieures aux doubles"
-
 #: new-fingering-engraver.cc:113
 msgid "cannot add text scripts to individual note heads"
 msgstr "impossible d'ajouter du texte à des têtes de note individuelles"
@@ -2705,11 +2690,11 @@ msgstr "nulle part où positionner des doigtés"
 msgid "placing below"
 msgstr "on les place en dessous"
 
-#: note-collision.cc:497
-msgid "ignoring too many clashing note columns"
-msgstr "trop d'empilements de notes se chevauchent. On fera au mieux."
+#: note-collision.cc:510
+msgid "this Voice needs a \\voiceXx or \\shiftXx setting"
+msgstr "ce contexte de voix rrequiert un réglage \\voiceXx ou \\shiftXx"
 
-#: note-column.cc:147
+#: note-column.cc:150
 msgid "cannot have note heads and rests together on a stem"
 msgstr "impossible de superposer une note et un silence sur une même hampe"
 
@@ -2722,37 +2707,37 @@ msgstr "tête de note « %s » ou « %s » non trouvée"
 msgid "NoteEvent without pitch"
 msgstr "NoteEvent sans hauteur"
 
-#: open-type-font.cc:45
+#: open-type-font.cc:46
 #, c-format
 msgid "cannot allocate %lu bytes"
 msgstr "impossible d'allouer %lu octets"
 
-#: open-type-font.cc:49
+#: open-type-font.cc:50
 #, c-format
 msgid "cannot load font table: %s"
 msgstr "impossible de charger la table des fontes : %s"
 
-#: open-type-font.cc:54
+#: open-type-font.cc:55
 #, c-format
 msgid "FreeType error: %s"
 msgstr "Erreur FreeType : %s"
 
-#: open-type-font.cc:111
+#: open-type-font.cc:112
 #, c-format
 msgid "unsupported font format: %s"
 msgstr "format de police non supporté : %s"
 
-#: open-type-font.cc:113
+#: open-type-font.cc:114
 #, c-format
 msgid "error reading font file %s: %s"
 msgstr "erreur de lecture du fichier de fontes %s : %s"
 
-#: open-type-font.cc:188
+#: open-type-font.cc:189
 #, c-format
 msgid "FT_Get_Glyph_Name () Freetype error: %s"
 msgstr "erreur Freetype FT_Get_Glyph_Name () : %s"
 
-#: open-type-font.cc:336 pango-font.cc:256
+#: open-type-font.cc:337 pango-font.cc:257
 #, c-format
 msgid "FT_Get_Glyph_Name () error: %s"
 msgstr "Erreur FT_Get_Glyph_Name () : %s"
@@ -2791,52 +2776,51 @@ msgid "best score for this sys-count: %f"
 msgstr "meilleur résultat pour cette configuration « sys-count » : %f"
 
 #: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
-#: paper-score.cc:162
+#: paper-score.cc:156
 msgid "Drawing systems..."
 msgstr "Dessin des systèmes..."
 
-#: output-def.cc:235
+#: output-def.cc:230
 msgid "margins do not fit with line-width, setting default values"
 msgstr ""
 "les marges ne sont pas en cohérence avec la longueur de ligne ;\n"
 "retour aux valeurs par défaut"
 
-#: output-def.cc:242
+#: output-def.cc:237
 msgid "systems run off the page due to improper paper settings, setting default values"
 msgstr ""
 "les systèmes débordent de la page en raison de réglages de papier erronés ;\n"
 "retour aux valeurs par défaut"
 
-#: page-breaking.cc:277
+#: page-breaking.cc:276
 msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
 msgstr ""
 "systems-per-page non défini :\n"
 "  min-systems-per-page et max-systems-per-page ignorés"
 
-#: page-breaking.cc:282
+#: page-breaking.cc:281
 msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
 msgstr ""
 "min-systems-per-page supérieur à max-systems-per-page :\n"
 "  tous deux seront ignorés"
 
+#: page-breaking.cc:636
+#, c-format
+msgid "page %d has been compressed"
+msgstr "la page %d a été comprimée"
+
 #: page-layout-problem.cc:402
 msgid "A page layout problem has been initiated that cannot accommodate footnotes."
 msgstr "Un défaut de mise en page perturbe la gestion des notes de bas de page."
 
 #: page-layout-problem.cc:731
-msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
-msgstr ""
-"impossible de faire tenir la musique sur la page :\n"
-"  justification demandée, mais page déjà compressée"
+msgid "ragged-bottom was specified, but page must be compressed"
+msgstr "ragged-bottom spécifié, mais la page doit être comprimée"
 
 #: page-layout-problem.cc:734
 #, c-format
-msgid "cannot fit music on page: overflow is %f"
-msgstr "impossible de faire tenir la musique sur la page.  Débordement de %f"
-
-#: page-layout-problem.cc:736
-msgid "compressing music to fit"
-msgstr "compression de la musique pour que cela tienne"
+msgid "compressing over-full page by %.1f staff-spaces"
+msgstr "compression du débordement de page de %.1f espace de portée"
 
 #: page-layout-problem.cc:1199
 msgid "staff-affinities should only decrease"
@@ -2885,12 +2869,12 @@ msgstr "        nombre de pages : %d"
 msgid "\tprevious break: %d"
 msgstr "        coupure précédente : %d"
 
-#: pango-font.cc:245
+#: pango-font.cc:246
 #, c-format
 msgid "no glyph for character U+%0X in font `%s'"
 msgstr "aucun glyphe ne correspond au caractère U+%0X dans la fonte « %s »"
 
-#: pango-font.cc:272
+#: pango-font.cc:273
 #, c-format
 msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
@@ -2899,21 +2883,21 @@ msgstr ""
 "Le glyphe n'a pas de nom alors que la fonte prend en charge leur nommage.\n"
 "Glyphe U+%0X ignoré dans le fichier « %s »"
 
-#: pango-font.cc:322
+#: pango-font.cc:323
 #, c-format
 msgid "no PostScript font name for font `%s'"
 msgstr "« %s » n'est pas un fichier de fonte PostScript"
 
-#: pango-font.cc:372
+#: pango-font.cc:373
 msgid "FreeType face has no PostScript font name"
 msgstr "Caractère FreeType sans nom de police PostScript"
 
-#: paper-book.cc:214
+#: paper-book.cc:201
 #, c-format
 msgid "program option -dprint-pages not supported by backend `%s'"
 msgstr "l'option -dprint-pages n'est pas opérationnelle avec le moteur %s"
 
-#: paper-book.cc:233
+#: paper-book.cc:220
 #, c-format
 msgid "program option -dpreview not supported by backend `%s'"
 msgstr "l'option -dpreview n'est pas opérationnelle avec le moteur %s"
@@ -2929,23 +2913,19 @@ msgstr ""
 msgid "Layout output to `%s'..."
 msgstr "Sortie mise en page vers « %s »..."
 
-#: paper-score.cc:134
+#: paper-score.cc:128
 #, c-format
 msgid "Element count %d (spanners %d) "
 msgstr "%d éléments dénombrés (%d extensions)"
 
-#: paper-score.cc:138
+#: paper-score.cc:132
 msgid "Preprocessing graphical objects..."
 msgstr "Pré-traitement des éléments graphiques..."
 
-#: parse-scm.cc:121
+#: parse-scm.cc:128
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE a signalé une erreur pour l'expression débutant ici"
 
-#: partial-iterator.cc:45
-msgid "trying to use \\partial after the start of a piece"
-msgstr "\\partial ne devrait intervenir qu'en début de morceau"
-
 #: pdf-scheme.cc:65
 #, c-format
 msgid "Conversion of string `%s' to UTF-16be failed: %s"
@@ -2953,15 +2933,15 @@ msgstr ""
 "La conversion de la chaîne « %s » en UTF-16be a échoué :\n"
 "  %s"
 
-#: percent-repeat-engraver.cc:147
+#: percent-repeat-engraver.cc:148
 msgid "unterminated percent repeat"
 msgstr "répétition en pourcent non terminée"
 
-#: performance.cc:54
+#: performance.cc:55
 msgid "Track..."
 msgstr "Piste..."
 
-#: performance.cc:82
+#: performance.cc:90
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "Sortie MIDI vers « %s »..."
@@ -2987,7 +2967,7 @@ msgstr "début du crochet de la pédale de piano indéterminé : « %s »"
 msgid "no such internal option: %s"
 msgstr "option interne inconnue : %s"
 
-#: property-iterator.cc:100
+#: property-iterator.cc:115
 #, c-format
 msgid "not a grob name, `%s'"
 msgstr "« %s » n'est pas un nom d'objet graphique (grob)"
@@ -3072,50 +3052,46 @@ msgstr "Impossible d'ouvrir le fichier « %s »"
 msgid "Unknown relocation command %s"
 msgstr "Commande de relocalisation inconnue : %s"
 
-#: rest-collision-engraver.cc:70
-msgid "rhythmic head is not part of a rhythmic column"
-msgstr "tête rythmique non rattachée à un empilement rythmique"
-
-#: rest-collision.cc:150
+#: rest-collision.cc:153
 msgid "cannot resolve rest collision: rest direction not set"
 msgstr "collision de silences insoluble : positionnement du silence indéterminée"
 
-#: rest-collision.cc:161 rest-collision.cc:270
+#: rest-collision.cc:164 rest-collision.cc:273
 msgid "too many colliding rests"
 msgstr "trop de silences se chevauchent"
 
-#: rest.cc:240
+#: rest.cc:239
 #, c-format
 msgid "rest `%s' not found"
 msgstr "silence « %s » inconnu"
 
-#: score-engraver.cc:78
+#: score-engraver.cc:79
 #, c-format
 msgid "cannot find `%s'"
 msgstr "impossible de trouver « %s »"
 
-#: score-engraver.cc:80
+#: score-engraver.cc:81
 msgid "Music font has not been installed properly."
 msgstr "Les fontes musicales n'ont pas été installées correctement."
 
-#: score-engraver.cc:82
+#: score-engraver.cc:83
 #, c-format
 msgid "Search path `%s'"
 msgstr "Chemin de recherche : « %s »"
 
-#: score-engraver.cc:84
+#: score-engraver.cc:85
 msgid "Aborting"
 msgstr "Abandon"
 
-#: score.cc:172
+#: score.cc:160
 msgid "already have music in score"
 msgstr "il y a déjà de la musique dans la partition"
 
-#: score.cc:173
+#: score.cc:161
 msgid "this is the previous music"
 msgstr "voici la musique précédente"
 
-#: score.cc:178
+#: score.cc:166
 msgid "errors found, ignoring music expression"
 msgstr "suite à des erreurs répétées, l'expression musicale sera ignorée"
 
@@ -3128,7 +3104,7 @@ msgstr "ne sait comment interpréter l'articulation"
 msgid " scheme encoding: "
 msgstr "encodage Scheme : "
 
-#: skyline-pair.cc:160
+#: skyline-pair.cc:135
 msgid "direction must not be CENTER in ly:skyline-pair::skyline"
 msgstr "direction ne saurait être CENTER pour ly:skyline-pair::skyline"
 
@@ -3174,16 +3150,16 @@ msgstr "Bouclage du canal MIDI"
 msgid "remapping modulo 16"
 msgstr "réaffectation modulo 16"
 
-#: stem-engraver.cc:110
+#: stem-engraver.cc:100
 msgid "tremolo duration is too long"
 msgstr "durée du tremolo trop longue"
 
-#: stem-engraver.cc:162
+#: stem-engraver.cc:152
 #, c-format
 msgid "adding note head to incompatible stem (type = %d/%d)"
 msgstr "Ajout d'une tête de note à une hampe incompatible (type = %d/%d)"
 
-#: stem-engraver.cc:165
+#: stem-engraver.cc:155
 msgid "maybe input should specify polyphonic voices"
 msgstr "la source devrait spécifier des voix polyphoniques"
 
@@ -3202,13 +3178,7 @@ msgid "Grob count %d"
 msgstr "%d objet graphiques (grob) dénombrés."
 
 #. TODO: Also print the arguments of the markup!
-#: text-interface.cc:129
-#, c-format
-msgid "Cyclic markup detected: %s"
-msgstr "« markup » avec référence circulaire : %s"
-
-#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:142
+#: text-interface.cc:138
 #, c-format
 msgid "Markup depth exceeds maximal value of %d; Markup: %s"
 msgstr ""
@@ -3227,11 +3197,11 @@ msgstr "extension de texte déjà présente"
 msgid "unterminated text spanner"
 msgstr "extension de texte non terminée"
 
-#: tie-engraver.cc:119
+#: tie-engraver.cc:121
 msgid "unterminated tie"
 msgstr "liaison de prolongation non terminée"
 
-#: tie-engraver.cc:353
+#: tie-engraver.cc:373
 msgid "lonely tie"
 msgstr "liaison de prolongation orpheline"
 
@@ -3240,20 +3210,11 @@ msgstr "liaison de prolongation orpheline"
 #.
 #. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
 #.
-#: time-signature-engraver.cc:75
+#: time-signature-engraver.cc:95
 #, c-format
 msgid "strange time signature found: %d/%d"
 msgstr "Chiffrage de mesure inhabituel : %d/%d"
 
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:89
-#, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr ""
-"symbole de chiffrage de mesure « %s » inconnu ;\n"
-"  retour à un style numérique."
-
 #: translator-ctors.cc:65
 #, c-format
 msgid "unknown translator: `%s'"
@@ -3269,12 +3230,12 @@ msgstr "Erreur fatale. Type inconnu : %s"
 msgid "cannot find: `%s'"
 msgstr "« %s » inconnu(e)"
 
-#: translator.cc:326
+#: translator.cc:320
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
 msgstr "Deux événements %s simultanés, rejet de celui-ci"
 
-#: translator.cc:327
+#: translator.cc:321
 #, c-format
 msgid "Previous %s event here"
 msgstr "Événement %s précédent ici"
@@ -3347,207 +3308,216 @@ msgstr "a déjà une extension terminée"
 msgid "giving up"
 msgstr "abandon"
 
-#: parser.yy:158 parser.yy:172
-msgid "Too much lookahead"
-msgstr "Trop d'anticipation"
-
-#: parser.yy:441 parser.yy:752 parser.yy:818
+#: parser.yy:463 parser.yy:847 parser.yy:928 parser.yy:1150
 msgid "bad expression type"
 msgstr "type d'expression erroné"
 
-#: parser.yy:650 parser.yy:1159
+#: parser.yy:759 parser.yy:1361 parser.yy:1406
 msgid "not a context mod"
 msgstr "ceci n'est pas un module de contexte"
 
-#: parser.yy:853
-msgid "score expected"
-msgstr "On attendait une partition"
+#: parser.yy:954
+msgid "Missing music in \\score"
+msgstr "Il n'y a pas de musique dans ce \\score"
 
-#: parser.yy:869
+#: parser.yy:991
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "dans la section \\score, utiliser \\layout au lieu de \\paper"
 
-#: parser.yy:893
+#: parser.yy:1027
+msgid "Spurious expression in \\score"
+msgstr "Expression invalide dans \\score"
+
+#: parser.yy:1057
 msgid "need \\paper for paper block"
 msgstr "\\paper est nécessaire pour définir les paramètres de la page"
 
-#: parser.yy:1033 parser.yy:1055
+#: parser.yy:1234
+msgid "music expected"
+msgstr "On attendait de la musique"
+
+#: parser.yy:1244 parser.yy:1278
 msgid "unexpected post-event"
 msgstr "« post-event » inattendu"
 
-#: parser.yy:1063
+#: parser.yy:1286
 msgid "Ignoring non-music expression"
 msgstr "Expression non musicale ignorée"
 
-#: parser.yy:1075 parser.yy:2493
-msgid "music expected"
-msgstr "On attendait de la musique"
-
-#: parser.yy:1370
+#: parser.yy:1587
 msgid "not a symbol"
 msgstr "n'est pas un symbole"
 
-#: parser.yy:2182 parser.yy:2296 parser.yy:2309 parser.yy:2318
+#: parser.yy:2337 parser.yy:2451 parser.yy:2464 parser.yy:2473
 msgid "bad grob property path"
 msgstr "chemin erroné d'accès à la propriété de « grob »"
 
-#: parser.yy:2276
+#: parser.yy:2431
 msgid "only \\consists and \\remove take non-string argument."
 msgstr "seuls \\consists et \\remove peuvent prendre un argument autre qu'une chaîne."
 
-#: parser.yy:2337
+#: parser.yy:2492
 msgid "bad context property path"
 msgstr "chemin erroné d'accès à la propriété de contexte"
 
-#: parser.yy:2438
+#: parser.yy:2593
 msgid "simple string expected"
 msgstr "On attendait une chaîne simple"
 
-#: parser.yy:2456
+#: parser.yy:2611
 msgid "symbol expected"
 msgstr "symbole requis"
 
-#: parser.yy:2611
+#: parser.yy:2747
 msgid "not a rhythmic event"
 msgstr "événement non rythmique"
 
-#: parser.yy:2685
+#: parser.yy:2797
 msgid "post-event expected"
 msgstr "On attendait un « post-event »"
 
-#: parser.yy:2694 parser.yy:2699
+#: parser.yy:2806 parser.yy:2811
 msgid "have to be in Lyric mode for lyrics"
 msgstr "Des paroles requièrent d'utiliser le mode Lyric."
 
-#: parser.yy:2767
-msgid "expecting string as script definition"
-msgstr "chaîne requise pour définir un script"
+#: parser.yy:2887
+msgid "expecting string or post-event as script definition"
+msgstr "chaîne ou « post-event » requis pour définir un script"
 
-#: parser.yy:2875
+#: parser.yy:2991
 msgid "not an articulation"
 msgstr "n'est pas une articulation"
 
-#: parser.yy:2947 parser.yy:2990
+#: parser.yy:3063 parser.yy:3106
 msgid "not a duration"
 msgstr "ceci n'est pas une durée"
 
-#: parser.yy:3007
+#: parser.yy:3127
 msgid "bass number expected"
 msgstr "On attendait un numéro de basse"
 
-#: parser.yy:3106
+#: parser.yy:3219
 msgid "have to be in Note mode for notes"
 msgstr "Des notes requièrent d'utiliser le mode Note."
 
-#: parser.yy:3166
+#: parser.yy:3258
 msgid "have to be in Chord mode for chords"
 msgstr "Des accords requièrent d'utiliser le mode Chord."
 
-#: parser.yy:3181
+#: parser.yy:3301
 msgid "markup outside of text script or \\lyricmode"
 msgstr "« markup » en dehors d'un script textuel ou de \\lyricmode"
 
-#: parser.yy:3186
+#: parser.yy:3306
 msgid "unrecognized string, not in text script or \\lyricmode"
 msgstr "chaîne non reconnue ; en dehors d'un script textuel ou de \\lyricmode"
 
-#: parser.yy:3347 parser.yy:3356
+#: parser.yy:3458 parser.yy:3467
 msgid "not an unsigned integer"
 msgstr "n'est pas un entier sans signe"
 
-#: parser.yy:3424
+#: parser.yy:3541
 msgid "not a markup"
 msgstr "n'est pas un « markup »"
 
-#: lexer.ll:224
+#: lexer.ll:192
 msgid "stray UTF-8 BOM encountered"
 msgstr "parasitage par UTF-8 BOM"
 
-#: lexer.ll:227
+#: lexer.ll:195
 msgid "Skipping UTF-8 BOM"
 msgstr "Escamotage d'UTF-8 BOM"
 
-#: lexer.ll:279
+#: lexer.ll:247
 #, c-format
 msgid "Renaming input to: `%s'"
 msgstr "L'entrée a été renommée en « %s »"
 
-#: lexer.ll:296
+#: lexer.ll:264
 msgid "quoted string expected after \\version"
 msgstr "\\version doit être suivi d'une chaîne entre guillemets"
 
-#: lexer.ll:300
+#: lexer.ll:268
 msgid "quoted string expected after \\sourcefilename"
 msgstr "\\sourcefilename doit être suivi d'une chaîne entre guillemets"
 
-#: lexer.ll:304
+#: lexer.ll:272
 msgid "integer expected after \\sourcefileline"
 msgstr "\\sourcefilename doit être suivi d'un nombre entier"
 
-#: lexer.ll:331
+#: lexer.ll:299
 msgid "\\maininput not allowed outside init files"
 msgstr "\\maininput n'est pas permis en dehors des fichiers d'initialisation"
 
-#: lexer.ll:355
+#: lexer.ll:323
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "identificateur erroné ou non défini : « %s »"
 
-#: lexer.ll:381
+#: lexer.ll:348
 msgid "string expected after \\include"
 msgstr "\\include doit être suivi d'une chaîne entre guillemets"
 
-#: lexer.ll:391
+#: lexer.ll:358
 msgid "end quote missing"
 msgstr "absence de guillemet fermant"
 
-#: lexer.ll:743
+#: lexer.ll:713
 msgid "EOF found inside a comment"
 msgstr "Fin de fichier (EOF) à l'intérieur du commentaire"
 
-#: lexer.ll:748
+#: lexer.ll:718
 msgid "EOF found inside string"
 msgstr "Fin de fichier (EOF) à l'intérieur d'une chaîne"
 
-#: lexer.ll:763
+#: lexer.ll:733
 msgid "Unfinished main input"
 msgstr "Fichier principal non fini"
 
-#: lexer.ll:834
+#: lexer.ll:804
 #, c-format
 msgid "invalid character: `%s'"
 msgstr "caractère invalide : « %s »"
 
-#: lexer.ll:963
+#: lexer.ll:924
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "chaîne d'échappement inconnue : « \\%s »"
 
-#: lexer.ll:983
+#: lexer.ll:944
 #, c-format
 msgid "undefined character or shorthand: %s"
 msgstr "caractère ou raccourci non défini : %s"
 
-#: lexer.ll:1275
+#: lexer.ll:1235
 msgid "non-UTF-8 input"
 msgstr "la source n'est pas en UTF-8"
 
-#: lexer.ll:1319
+#: lexer.ll:1279
+#, c-format
+msgid "Invalid version string \"%s\""
+msgstr "Numérotation de version \"%s\" invalide"
+
+#: lexer.ll:1284
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 "%s est plus qu'obsolète ;\n"
 "le plus ancien pouvant être supporté est %s"
 
-#: lexer.ll:1320
+#: lexer.ll:1285
 msgid "consider updating the input with the convert-ly script"
 msgstr "Envisagez la mise à jour de la source à l'aide du script convert-ly"
 
-#: lexer.ll:1326
+#: lexer.ll:1291
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "Programme plus qu'obsolète : %s (le fichier requiert %s)"
 
+#: auto-beam.scm:147
+msgid "Beam end fits no pattern"
+msgstr "La terminaison de ligature ne correspond à aucun modèle"
+
 #: backend-library.scm:27
 #, scheme-format
 msgid "Invoking `~a'..."
@@ -3558,24 +3528,24 @@ msgstr "Appel de « ~a »..."
 msgid "`~a' failed (~a)\n"
 msgstr "échec de « ~a » (~a)\n"
 
-#: backend-library.scm:93
+#: backend-library.scm:94
 #, scheme-format
 msgid "Converting to `~a'...\n"
 msgstr "Conversion à « ~a »...\n"
 
 #. Do not try to guess the name of the png file,
 #. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:102
+#: backend-library.scm:103
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr "Conversion à « ~a »..."
 
-#: backend-library.scm:140
+#: backend-library.scm:141
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr "écriture du champ d'entête « ~a » dans « ~a »..."
 
-#: backend-library.scm:189
+#: backend-library.scm:190
 #, scheme-format
 msgid "missing stencil expression `~S'"
 msgstr "absence d'expression stencil « ~S »"
@@ -3624,78 +3594,67 @@ msgstr "Information incompréhensible à la suite de l'accord « ~A »"
 msgid "symbol ~S redefined"
 msgstr "symbole « ~S » redéfini"
 
-#: define-event-classes.scm:73
+#: define-event-classes.scm:74
 #, scheme-format
 msgid "unknown parent class `~a'"
 msgstr "Classe parente inconnue : « ~a »"
 
-#: define-event-classes.scm:107
+#: define-event-classes.scm:108
 #, scheme-format
 msgid "Cannot redefine event class `~S'"
 msgstr "Impossible de redéfinir la classe d'événement « ~S »"
 
-#: define-event-classes.scm:109
+#: define-event-classes.scm:110
 #, scheme-format
 msgid "Undefined parent event class `~S'"
 msgstr "Classe d'événement parente « ~a » non définie"
 
-#: define-markup-commands.scm:1083
+#: define-markup-commands.scm:1062
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 "pas de système trouvé dans le bloc \\score du « markup » ;\n"
 "  contient-il un bloc \\layout ?"
 
-#: define-markup-commands.scm:2847
+#: define-markup-commands.scm:2886
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "impossible de trouver le glyphe « ~a »"
 
-#: define-markup-commands.scm:3273
+#: define-markup-commands.scm:3362
 #, scheme-format
 msgid "no brace found for point size ~S "
 msgstr "il n'y a pas d'accolade qui fasse ~S points"
 
-#: define-markup-commands.scm:3274
+#: define-markup-commands.scm:3363
 #, scheme-format
 msgid "defaulting to ~S pt"
 msgstr "application de la taille par défaut (~S pt)"
 
-#: define-markup-commands.scm:3526
+#: define-markup-commands.scm:3615
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "chaîne de durée invalide : ~a"
 
-#: define-markup-commands.scm:3737
+#: define-markup-commands.scm:3826
 #, scheme-format
 msgid "not a valid duration string: ~a - ignoring"
 msgstr "chaîne de durée invalide : ~a -- ignorée"
 
-#: define-music-types.scm:792
+#: define-music-types.scm:797
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr "symbole requis : ~S"
 
-#: define-music-types.scm:795
+#: define-music-types.scm:800
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr "impossible de trouver l'objet de type musique : ~S"
 
-#: define-music-types.scm:815
+#: define-music-types.scm:820
 #, scheme-format
 msgid "bad make-music argument: ~S"
 msgstr "argument de make-music erronné : ~S"
 
-#: define-music-types.scm:827
-#, scheme-format
-msgid "unknown repeat type `~S'"
-msgstr "type de répétition inconnu : « ~S »"
-
-#: define-music-types.scm:828
-msgid "See define-music-types.scm for supported repeats"
-msgstr ""
-"Consulter define-music-types.scm pour connaître les répétitions\n"
-" prises en charge"
-
 #: define-note-names.scm:972
 msgid "Select note names language."
 msgstr "Sélection de la langue des noms de note."
@@ -3712,39 +3671,39 @@ msgstr ""
 "« ~a » n'est pas une langue reconnue pour les noms de note.\n"
 " Abandon."
 
-#: document-backend.scm:132
+#: document-backend.scm:135
 #, scheme-format
 msgid "pair expected in doc ~s"
 msgstr "le document ~s devrait contenir une paire"
 
-#: document-backend.scm:189
+#: document-backend.scm:202
 #, scheme-format
 msgid "cannot find interface for property: ~S"
 msgstr "impossible de trouver l'interface pour la propriété « ~S »"
 
-#: document-backend.scm:199
+#: document-backend.scm:212
 #, scheme-format
 msgid "unknown Grob interface: ~S"
 msgstr "interface d'objet graphique (Grob) inconnue : ~S"
 
-#: documentation-lib.scm:59
+#: documentation-lib.scm:62
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Traitement de « ~S »..."
 
-#: documentation-lib.scm:176
+#: documentation-lib.scm:178
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Écriture de « ~S »..."
 
-#: documentation-lib.scm:188
+#: documentation-lib.scm:190
 #, scheme-format
 msgid "cannot find description for property `~S' (~S)"
 msgstr ""
 "impossible de trouver une description de la propriété « ~S »\n"
 " (~S)"
 
-#: documentation-lib.scm:209
+#: documentation-lib.scm:211
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr ""
@@ -3761,27 +3720,27 @@ msgstr "type de crochet inconnu : « ~a » ou « ~a »"
 msgid "Writing ~a..."
 msgstr "Écriture de « ~a »..."
 
-#: framework-ps.scm:250
+#: framework-ps.scm:281
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "intégration impossible : ~S=~S"
 
-#: framework-ps.scm:293
+#: framework-ps.scm:324
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "impossible d'extraire le fichier « ~a » à partir de « ~a »"
 
-#: framework-ps.scm:311
+#: framework-ps.scm:342
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "imposible de réaliser l'intégration ~S=~S"
 
-#: framework-ps.scm:336
+#: framework-ps.scm:367
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "impossible d'intégrer les fontes ~s ~s ~s"
 
-#: framework-ps.scm:687
+#: framework-ps.scm:729
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -3829,20 +3788,20 @@ msgstr "Erreur de définition de ligature : attendait (~S,~S), ~S trouvé."
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Erreur de définition de ligature : attendait ~S 0, repéré ~S."
 
-#: lily-library.scm:333
+#: lily-library.scm:350
 msgid "Music unsuitable for context-mod"
 msgstr "Inadéquation entre la musique et le context-mod"
 
-#: lily-library.scm:388
+#: lily-library.scm:405
 #, scheme-format
 msgid "Cannot find context-def \\~a"
 msgstr "Impossible de repérer un context-def (définition de contexte) \\~a"
 
-#: lily-library.scm:404
+#: lily-library.scm:421
 msgid "Music unsuitable for output-def"
 msgstr "Inadéquation entre la musique et le output-def"
 
-#: lily-library.scm:884
+#: lily-library.scm:921
 msgid ""
 "Find the index between @var{start} and @var{end} (an integer)\n"
 "which produces the closest match to @var{target-val} if\n"
@@ -3852,12 +3811,12 @@ msgstr ""
 "(nombre entier) qui soit le plus proche de @var{valeur-cible}\n"
 "lorsqu'appliqué à la fonction @var{appelant}."
 
-#: lily-library.scm:955
+#: lily-library.scm:1015
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "unité inconnue : ~S"
 
-#: lily-library.scm:980
+#: lily-library.scm:1040
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
@@ -3872,33 +3831,33 @@ msgstr "call-after-session utilisé après le début de la session"
 msgid "define-session used after session start"
 msgstr "define-session utilisé après le début de la session"
 
-#: lily.scm:393
+#: lily.scm:399
 msgid "Using (ice-9 curried-definitions) module\n"
 msgstr "Utilisation du module (ice-9 curried-definitions)\n"
 
-#: lily.scm:396
+#: lily.scm:402
 msgid "Guile 1.8\n"
 msgstr "Guile 1.8\n"
 
-#: lily.scm:455
+#: lily.scm:459
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "impossible de trouver « ~A »"
 
-#: lily.scm:878
+#: lily.scm:886
 msgid "Success: compilation successfully completed"
 msgstr "Compilation menée à son terme, avec succès."
 
-#: lily.scm:879
+#: lily.scm:887
 msgid "Compilation completed with warnings or errors"
 msgstr "Compilation menée à son terme, avec des avertissements ou erreurs."
 
-#: lily.scm:940
+#: lily.scm:948
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "le travail « ~a » s'est terminé avec le signal ~a"
 
-#: lily.scm:943
+#: lily.scm:951
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -3907,17 +3866,17 @@ msgstr ""
 "fichier journal « ~a » (sortie ~a) :\n"
 "~a"
 
-#: lily.scm:965 lily.scm:1054
+#: lily.scm:973 lily.scm:1062
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "erreur sur les fichiers ~S"
 
-#: lily.scm:1045
+#: lily.scm:1053
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Redirection de la sortie vers « ~a »..."
 
-#: lily.scm:1064 ps-to-png.scm:66
+#: lily.scm:1072 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr "Appel de « ~a »...\n"
@@ -3927,14 +3886,14 @@ msgstr "Appel de « ~a »...\n"
 msgid "~a function cannot return ~a"
 msgstr "La fonction ~a ne peut retourner ~a."
 
-#: ly-syntax-constructors.scm:75
+#: ly-syntax-constructors.scm:76
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 "type d'argument erroné pour ~a.\n"
 " Attendait ~a, ~s trouvé"
 
-#: ly-syntax-constructors.scm:199
+#: ly-syntax-constructors.scm:200
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Opération de propriété invalide : ~a"
@@ -3982,60 +3941,79 @@ msgstr "hauteur d'inversion absente de la gamme : rien à transposer"
 msgid "negative replication count; ignoring"
 msgstr "compteur de réplication négatif : rien à transposer"
 
-#: music-functions.scm:272
+#: music-functions.scm:311
+#, scheme-format
+msgid "invalid tremolo repeat count: ~a"
+msgstr "nombre de répétition en trémolo invalide : ~a"
+
+#: music-functions.scm:340
+#, scheme-format
+msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo"
+msgstr "type de répétition « ~S » inconnu : doit être volta, unfold, percent ou tremolo"
+
+#: music-functions.scm:344
 msgid "More alternatives than repeats.  Junking excess alternatives"
 msgstr ""
 "Plus d'alternatives que de répétitions.\n"
 " Escamotage des alternatives surnuméraires."
 
-#: music-functions.scm:303
-#, scheme-format
-msgid "invalid tremolo repeat count: ~a"
-msgstr "nombre de répétition en trémolo invalide : ~a"
-
-#: music-functions.scm:459
+#: music-functions.scm:480
 #, scheme-format
 msgid "bad grob property path ~a"
 msgstr "chemin d'accès au « grob » erroné : ~a"
 
-#: music-functions.scm:753
+#: music-functions.scm:779
 msgid "Bad chord repetition"
 msgstr "Mauvaise répétition d'accord"
 
-#: music-functions.scm:788
+#: music-functions.scm:884
 #, scheme-format
 msgid "music expected: ~S"
 msgstr "~S requiert de la musique"
 
-#: music-functions.scm:1144
+#: music-functions.scm:1226
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr "impossible de trouver la citation de musique « ~S »"
 
-#: music-functions.scm:1282
+#: music-functions.scm:1366
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr "Ajoute @var{octave-shift} à l'octave de @var{hauteur}."
 
-#: music-functions.scm:1342
+#: music-functions.scm:1429
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr "Octave inconnue : « ~S »"
 
-#: music-functions.scm:1343
+#: music-functions.scm:1430
 msgid "Defaulting to 'any-octave."
 msgstr "Application de la valeur par défaut 'any-octave."
 
-#: music-functions.scm:1688
+#: music-functions.scm:1822
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "style d'altération inconnu : ~S"
 
-#: output-ps.scm:278 output-svg.scm:539
+#: music-functions.scm:2040
+msgid "Missing duration"
+msgstr "Durée absente"
+
+#: music-functions.scm:2549
+#, scheme-format
+msgid "not a symbol list: ~a"
+msgstr "n'est pas une liste de symboles : ~a"
+
+#: music-functions.scm:2552
+#, scheme-format
+msgid "conflicting tag group ~a"
+msgstr "groupe de balises (tag) ~a conflictuel"
+
+#: output-ps.scm:290 output-svg.scm:539
 #, scheme-format
 msgid "unknown line-cap-style: ~S"
 msgstr "line-cap-style inconnu : ~S"
 
-#: output-ps.scm:283 output-svg.scm:545
+#: output-ps.scm:295 output-svg.scm:545
 #, scheme-format
 msgid "unknown line-join-style: ~S"
 msgstr "line-join-style inconnu : ~S"
@@ -4054,32 +4032,32 @@ msgstr "Un glyphe doit avoir une valeur unicode"
 msgid "cannot find SVG font ~S"
 msgstr "fonte SVG « ~S » introuvable."
 
-#: paper.scm:120
+#: paper.scm:122
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size n'est pas à un niveau de portée globale"
 
-#: paper.scm:320
+#: paper.scm:322
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "~S n'est pas un objet de \\layout {}"
 
-#: paper.scm:328
+#: paper.scm:330
 #, scheme-format
 msgid "Unknown paper size: ~a"
 msgstr "Format de papier inconnu : ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:347
+#: paper.scm:349
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "#(set-paper-size ..) doit être dans la section \\paper { ... }"
 
-#: parser-clef.scm:164
+#: parser-clef.scm:154
 #, scheme-format
 msgid "unknown clef type `~a'"
 msgstr "type de clef inconnu : « ~a »"
 
-#: parser-clef.scm:165
+#: parser-clef.scm:155
 #, scheme-format
 msgid "supported clefs: ~a"
 msgstr "clefs reconnues : ~a"
@@ -4088,7 +4066,7 @@ msgstr "clefs reconnues : ~a"
 msgid "error in #{ ... #}"
 msgstr "erreur dans #{ ... #}"
 
-#: part-combiner.scm:598
+#: part-combiner.scm:748
 #, scheme-format
 msgid "quoted music `~a' is empty"
 msgstr "il n'y a rien à reproduire dans « ~a »"
@@ -4103,42 +4081,42 @@ msgstr "~a s'est terminé avec le statut ~S"
 msgid "assertion failed: ~S"
 msgstr "erreur d'assertion : ~S"
 
-#: translation-functions.scm:368
+#: translation-functions.scm:389
 #, scheme-format
 msgid "Negative fret for pitch ~a on string ~a"
 msgstr "La hauteur « ~a » sur la corde « ~a » donne un fret négatif"
 
-#: translation-functions.scm:371
+#: translation-functions.scm:392
 #, scheme-format
 msgid "Missing fret for pitch ~a on string ~a"
 msgstr "Aucun fret pour « ~a » sur la corde « ~a »"
 
-#: translation-functions.scm:414
+#: translation-functions.scm:435
 #, scheme-format
 msgid "No open string for pitch ~a"
 msgstr "Pas de corde à vide pour la hauteur « ~a »"
 
-#: translation-functions.scm:429 translation-functions.scm:441
+#: translation-functions.scm:450 translation-functions.scm:462
 #, scheme-format
 msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
 msgstr ""
 "Hauteur et corde requises demandent un fret négatif :\n"
 " corde « ~a » hauteur « ~a »"
 
-#: translation-functions.scm:432
+#: translation-functions.scm:453
 msgid "Ignoring string request and recalculating."
 msgstr "Cette corde sera ignorée et redéfinie."
 
-#: translation-functions.scm:444
+#: translation-functions.scm:465
 msgid "Ignoring note in tablature."
 msgstr "Cette note sera ignorée dans la tablature."
 
-#: translation-functions.scm:469
+#: translation-functions.scm:490
 #, scheme-format
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr "Aucune corde ne contient la hauteur « ~a » avec un fret « ~a »"
 
-#: translation-functions.scm:574
+#: translation-functions.scm:595
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
index 5331f16af89a40aced285e8db32fdcc9d7ebc262..5f23b17f1242be1ee6c2cbc1638524540ac51906 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -4,14 +4,14 @@
 #
 # Tineke de Munnik <jantien@xs4all.nl>, 1998.
 # Maurizio Umberto Puxeddu <umbpux@tin.it>, 1999
-# Federico Bruni <fedelogy@gmail.com>, 2009-2012, 2012, 2013.
+# Federico Bruni <fedelogy@gmail.com>, 2009-2012, 2012, 2013, 2015.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.17.96\n"
+"Project-Id-Version: lilypond 2.19.16\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2013-11-24 12:14+0000\n"
-"PO-Revision-Date: 2013-11-29 00:27+0100\n"
+"POT-Creation-Date: 2015-02-28 14:31+0000\n"
+"PO-Revision-Date: 2015-03-02 20:06+0100\n"
 "Last-Translator: Federico Bruni <fedelogy@gmail.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -39,11 +39,11 @@ msgstr "impossibile trovare \\begin{document} nel documento LaTeX"
 msgid "Running `%s' on file `%s' to detect default page settings.\n"
 msgstr "Esecuzione di \"%s\" sul file \"%s\" per individuare le impostazioni predefinite della pagina.\n"
 
-#: book_latex.py:212 book_texinfo.py:228
+#: book_latex.py:219 book_texinfo.py:228
 msgid "Unable to auto-detect default settings:\n"
 msgstr "Impossibile individuare automaticamente le impostazioni predefinite:\n"
 
-#: book_latex.py:224 book_texinfo.py:240
+#: book_latex.py:231 book_texinfo.py:240
 #, python-format
 msgid ""
 "Unable to auto-detect default settings:\n"
@@ -52,7 +52,7 @@ msgstr ""
 "Impossibile individuare le impostazioni predefinite:\n"
 "%s"
 
-#: book_latex.py:247
+#: book_latex.py:254
 msgid "cannot detect textwidth from LaTeX"
 msgstr "impossibile rilevare la larghezza del testo da LaTeX"
 
@@ -86,31 +86,31 @@ msgstr "l'opzione ly sconosciuta viene ignorata: %s"
 msgid "Missing files: %s"
 msgstr "File mancanti: %s"
 
-#: book_snippets.py:651
+#: book_snippets.py:661
 #, python-format
 msgid "Could not overwrite file %s"
 msgstr "Impossibile scrivere sul file «%s»"
 
-#: book_snippets.py:738
+#: book_snippets.py:748
 #, python-format
 msgid "Running through filter `%s'"
 msgstr "Esecuzione attraverso il filtro «%s»"
 
-#: book_snippets.py:759
+#: book_snippets.py:769
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "«%s» fallito (%d)"
 
-#: book_snippets.py:760
+#: book_snippets.py:770
 msgid "The error log is as follows:"
 msgstr "Il registro dell'errore è il seguente:"
 
-#: book_snippets.py:880
+#: book_snippets.py:890
 #, python-format
 msgid "Converting MusicXML file `%s'...\n"
 msgstr "Conversione del file MusicXML «%s»...\n"
 
-#: book_snippets.py:907
+#: book_snippets.py:917
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of original file,\n"
@@ -119,7 +119,7 @@ msgstr ""
 "%s: il nome del file è duplicato ma i suoi contenuti sono diversi dal\n"
 "file originale, si mostrano le differenze rispetto al file esistente."
 
-#: book_snippets.py:920
+#: book_snippets.py:930
 #, python-format
 msgid ""
 "%s: duplicate filename but different contents of converted lilypond file,\n"
@@ -170,7 +170,7 @@ msgstr "\\textstyle deprecato, nuova sintassi per \\key"
 
 #: convertrules.py:82 convertrules.py:1856 convertrules.py:2032
 #: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801
-#: convertrules.py:3151 convertrules.py:3385
+#: convertrules.py:3151 convertrules.py:3385 convertrules.py:3697
 msgid "bump version for release"
 msgstr "aumentare il numero di versione per il rilascio"
 
@@ -962,12 +962,12 @@ msgstr ""
 "%s) in input LilyPond.\n"
 
 #: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:181
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183
 msgid "show version number and exit"
 msgstr "mostra il numero di versione ed esce"
 
 #: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:160
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162
 msgid "show this help and exit"
 msgstr "mostra questo messaggio di aiuto ed esce"
 
@@ -992,7 +992,7 @@ msgstr "sopprime i messaggi di avanzamento"
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
 #: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:315
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr "Segnalare i bug in inglese attraverso %s"
@@ -1043,7 +1043,7 @@ msgid "Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS
 msgstr "Mostra i messaggi di log in base a LOGLEVEL (NONE, ERROR, WARNING, PROGRESS (default), DEBUG)"
 
 #: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:174
+#: musicxml2ly.py:2629 main.cc:176
 msgid "LOGLEVEL"
 msgstr "LOGLEVEL"
 
@@ -1075,7 +1075,7 @@ msgid "make a numbered backup [default: filename.ext~]"
 msgstr "crea un file di backup numerato (predefinito: nomefile.est~)"
 
 #: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:183
+#: main.cc:185
 msgid "show warranty and copyright"
 msgstr "mostra la garanzia e il copyright"
 
@@ -1096,17 +1096,17 @@ msgstr "Fermarsi all'ultima regola riuscita"
 msgid "Processing `%s'... "
 msgstr "Elaborazione di «%s»... "
 
-#: convert-ly.py:367
+#: convert-ly.py:368
 #, python-format
 msgid "%s: Unable to open file"
 msgstr "%s: Impossibile aprire il file"
 
-#: convert-ly.py:373
+#: convert-ly.py:374
 #, python-format
 msgid "%s: Unable to determine version.  Skipping"
 msgstr "%s: Impossibile determinare la versione. Tralasciato"
 
-#: convert-ly.py:379
+#: convert-ly.py:380
 #, python-format
 msgid ""
 "%s: Invalid version string `%s' \n"
@@ -1115,7 +1115,7 @@ msgstr ""
 "%s: Stringa di versione non valida `%s' \n"
 "Le stringhe di versione valide sono composte da tre numeri separati da punti, ad esempio «2.8.12»"
 
-#: convert-ly.py:385
+#: convert-ly.py:386
 #, python-format
 msgid "There was %d error."
 msgid_plural "There were %d errors."
@@ -1136,7 +1136,7 @@ msgstr ""
 "etf2ly converte un sottoinsieme di ETF in un file LilyPond pronto da usare.\n"
 
 #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:166 main.cc:178
+#: main.cc:168 main.cc:180
 msgid "FILE"
 msgstr "FILE"
 
@@ -1174,7 +1174,7 @@ msgid "add DIR to include path"
 msgstr "aggiunge DIR al percorso di inclusione"
 
 #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:165
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167
 msgid "DIR"
 msgstr "DIR"
 
@@ -1323,17 +1323,17 @@ msgstr "Elaborazione di include: %s"
 msgid "Removing `%s'"
 msgstr "Eliminazione di «%s»"
 
-#: lilypond-book.py:714
+#: lilypond-book.py:727
 #, python-format
 msgid "Setting LilyPond's loglevel to %s"
 msgstr "Si imposta il loglevel di LilyPond su %s"
 
-#: lilypond-book.py:718
+#: lilypond-book.py:731
 #, python-format
 msgid "Setting LilyPond's loglevel to %s (from environment variable LILYPOND_LOGLEVEL)"
 msgstr "Si imposta il loglevel di LilyPond su %s (dalla variabile d'ambiente LILYPOND_LOGLEVEL)"
 
-#: lilypond-book.py:721
+#: lilypond-book.py:734
 msgid "Setting LilyPond's output to --verbose, implied by lilypond-book's setting"
 msgstr "Si imposta l'output di LilyPond su --verbose, come implicato dall'impostazione di lilypond-book"
 
@@ -1643,15 +1643,15 @@ msgstr "Output inviato a «%s»"
 msgid "Unable to find input file %s"
 msgstr "Impossibile trovare il file di input %s"
 
-#: website_post.py:125
+#: website_post.py:129
 msgid "English"
 msgstr "Inglese"
 
-#: website_post.py:128
+#: website_post.py:132
 msgid "Other languages"
 msgstr "Altre lingue"
 
-#: website_post.py:129
+#: website_post.py:133
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
 msgstr "Informazioni sulla <a href=\"%s\">selezione automatica della lingua</a>."
@@ -1731,12 +1731,12 @@ msgstr "la lista tipografica delle alterazioni deve iniziare con context-name: %
 msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr "si aspettava una procedura o context-name per la regola di alterazione accidentale, si è trovato %s"
 
-#: accidental.cc:169
+#: accidental.cc:141
 #, c-format
 msgid "Could not find glyph-name for alteration %s"
 msgstr "Non si è trovato il nome del glifo per l'alterazione %s"
 
-#: accidental.cc:184
+#: accidental.cc:157
 msgid "natural alteration glyph not found"
 msgstr "alterazione naturale del glifo non trovata"
 
@@ -1869,26 +1869,26 @@ msgstr "Coherent_ligature_engraver: impostare `spacing-increment=0.01': ptr=%ul"
 msgid "cannot find line breaking that satisfies constraints"
 msgstr "impossibile trovare interruzioni di linea che soddisfino i vincoli"
 
-#: context-property.cc:43
+#: context-property.cc:46
 msgid "need symbol arguments for \\override and \\revert"
 msgstr "sono necessari argomenti simbolici per \\override e \\revert"
 
-#: context.cc:149
+#: context.cc:143
 #, c-format
 msgid "cannot find or create new `%s'"
 msgstr "impossibile trovare o creare un nuovo «%s»"
 
-#: context.cc:228
+#: context.cc:222
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr "impossibile trovare o creare «%s» chiamato «%s»"
 
-#: context.cc:425
+#: context.cc:419
 #, c-format
 msgid "cannot find or create: `%s'"
 msgstr "impossibile trovare o creare: «%s»"
 
-#: context.cc:439
+#: context.cc:433
 #, c-format
 msgid "cannot find or create new Bottom = \"%s\""
 msgstr "impossibile trovare o creare un nuovo Bottom = «%s»"
@@ -1898,20 +1898,20 @@ msgstr "impossibile trovare o creare un nuovo Bottom = «%s»"
 msgid "custos `%s' not found"
 msgstr "custos «%s» non trovato"
 
-#: dispatcher.cc:89
+#: dispatcher.cc:83
 msgid "Event class should be a list"
 msgstr "La classe evento dovrebbe essere una lista"
 
-#: dispatcher.cc:172
+#: dispatcher.cc:166
 #, c-format
 msgid "Junking event: %s"
 msgstr "Eliminazione dell'evento: %s"
 
-#: dispatcher.cc:277
+#: dispatcher.cc:271
 msgid "Attempting to remove nonexisting listener."
 msgstr "Tentativo di togliere un ascoltatore non esistente."
 
-#: dispatcher.cc:303
+#: dispatcher.cc:297
 msgid "Already listening to dispatcher, ignoring request"
 msgstr "Già in ascolto del controllore, si ignora la richiesta"
 
@@ -1999,12 +1999,12 @@ msgstr "Creazione del database dei tipi di carattere..."
 msgid "Must be footnote-event."
 msgstr "Deve essere un evento nota a pié di pagina (footnote-event)."
 
-#: general-scheme.cc:390
+#: general-scheme.cc:403
 #, c-format
 msgid "failed redirecting stderr to `%s'"
 msgstr "fallita la redirezione di stderr su «%s»"
 
-#: general-scheme.cc:469 output-ps.scm:48
+#: general-scheme.cc:482 output-ps.scm:48
 msgid "Found infinity or nan in output.  Substituting 0.0"
 msgstr "Trovato infinito o un valore non numerico nell'output.  Sostituito con 0.0"
 
@@ -2060,7 +2060,7 @@ msgstr "Il grob «%s» non ha un'interfaccia per la proprietà «%s»"
 msgid "%d: %s"
 msgstr "%d: %s"
 
-#: grob.cc:488
+#: grob.cc:481
 #, c-format
 msgid "ignored infinite %s-offset"
 msgstr "%s-offset infinito ignorato"
@@ -2069,7 +2069,7 @@ msgstr "%s-offset infinito ignorato"
 msgid "Asking for broken bound padding at a non-broken bound."
 msgstr "Si chiede la spaziatura per un'estremità spezzata in un'estremità non spezzata."
 
-#: hairpin.cc:256
+#: hairpin.cc:257
 msgid "decrescendo too small"
 msgstr "decrescendo troppo piccolo"
 
@@ -2099,7 +2099,7 @@ msgstr "impossibile trovare il file: «%s»"
 msgid "(search path: `%s')"
 msgstr "(percorso di ricerca: «%s»)"
 
-#: input.cc:138 source-file.cc:178 source-file.cc:193
+#: input.cc:138 source-file.cc:177 source-file.cc:192
 msgid "position unknown"
 msgstr "posizione sconosciuta"
 
@@ -2218,20 +2218,16 @@ msgstr "Analisi..."
 msgid "Not drawing a box with negative dimension, %.2f by %.2f."
 msgstr "Il riquadro con dimensioni negative, %.2f per %.2f, non verrà disegnato."
 
-#: lyric-combine-music-iterator.cc:199
+#: lyric-combine-music-iterator.cc:204
 msgid "argument of \\lyricsto should contain Lyrics context"
 msgstr "l'argomento di \\lyricsto deve contenere il contesto Lyrics"
 
-#: lyric-combine-music-iterator.cc:337
+#: lyric-combine-music-iterator.cc:349
 #, c-format
-msgid "cannot find Voice `%s'"
-msgstr "impossibile trovare la voce (Voice) «%s»"
-
-#: lyric-engraver.cc:186
-msgid "Lyric syllable does not have note.  Use \\lyricsto or associatedVoice."
-msgstr "Le sillabe del testo non hanno note.  Usare \\lyricsto o associatedVoice."
+msgid "cannot find %s `%s'"
+msgstr "impossibile trovare %s «%s»"
 
-#: main.cc:104
+#: main.cc:105
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -2243,7 +2239,7 @@ msgstr ""
 "License che permette di modificarlo o distribuirne copie rispettando certe\n"
 "condizioni. Per maggiori informazioni, invocare «%s --warranty».\n"
 
-#: main.cc:110
+#: main.cc:111
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License as \n"
@@ -2275,11 +2271,11 @@ msgstr ""
 "Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:148
+#: main.cc:149
 msgid "SYM[=VAL]"
 msgstr "SIMBOLO[=VALORE]"
 
-#: main.cc:149
+#: main.cc:150
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -2287,41 +2283,45 @@ msgstr ""
 "imposta l'opzione di Scheme SIMBOLO a VALORE (predefinito: #t).\n"
 "Usare -dhelp per ottenere aiuto."
 
-#: main.cc:153
+#: main.cc:154
 msgid "EXPR"
 msgstr "ESPRESSIONE"
 
-#: main.cc:153
+#: main.cc:154
 msgid "evaluate scheme code"
 msgstr "valuta il codice scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:156
+#: main.cc:157
 msgid "FORMATs"
 msgstr "FORMATO"
 
-#: main.cc:156
+#: main.cc:157
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr "scarica FORMATO,...  Anche come opzioni separate:"
 
-#: main.cc:157
+#: main.cc:158
 msgid "generate PDF (default)"
 msgstr "genera PDF (predefinito)"
 
-#: main.cc:158
+#: main.cc:159
 msgid "generate PNG"
 msgstr "genera PNG"
 
-#: main.cc:159
+#: main.cc:160
 msgid "generate PostScript"
 msgstr "genera PostScript"
 
-#: main.cc:162
+#: main.cc:161
+msgid "generate big PDF files"
+msgstr "genera grandi file PDF"
+
+#: main.cc:164
 msgid "FIELD"
 msgstr "CAMPO"
 
-#: main.cc:162
+#: main.cc:164
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -2329,19 +2329,19 @@ msgstr ""
 "scrive il campo di intestazione CAMPO sul\n"
 "file chiamato BASENAME.CAMPO"
 
-#: main.cc:165
+#: main.cc:167
 msgid "add DIR to search path"
 msgstr "aggiunge DIRECTORY ai percorsi di ricerca"
 
-#: main.cc:166
+#: main.cc:168
 msgid "use FILE as init file"
 msgstr "usa FILE come file di inizializzazione"
 
-#: main.cc:169
+#: main.cc:171
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "UTENTE, GRUPPO, GABBIA, DIRECTORY"
 
-#: main.cc:169
+#: main.cc:171
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -2349,7 +2349,7 @@ msgstr ""
 "chroot a GABBIA, diventa UTENTE:GRUPPO\n"
 "ed entra in DIRECTORY"
 
-#: main.cc:174
+#: main.cc:176
 msgid ""
 "print log messages according to LOGLEVEL.  Possible values are:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
@@ -2357,24 +2357,24 @@ msgstr ""
 "mostra i messaggi di log in base a LOGLEVEL.  I valori possibili sono:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) e DEBUG."
 
-#: main.cc:178
+#: main.cc:180
 msgid "write output to FILE (suffix will be added)"
 msgstr "scrive l'output su FILE (verrà aggiunto un suffisso)"
 
-#: main.cc:179
+#: main.cc:181
 msgid "relocate using directory of lilypond program"
 msgstr "trasferisce alla directory del programma lilypond"
 
-#: main.cc:180
+#: main.cc:182
 msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
 msgstr "nessun progresso, solo messaggi di errore (equivalente al loglevel=ERROR)"
 
-#: main.cc:182
+#: main.cc:184
 msgid "be verbose (equivalent to loglevel=DEBUG)"
 msgstr "output dettagliato (equivalente al loglevel=DEBUG)"
 
 #. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:261
+#: main.cc:263
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -2384,74 +2384,74 @@ msgstr ""
 "%s e altri."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:299
+#: main.cc:301
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Uso: %s [OPZIONE]... [FILE]..."
 
-#: main.cc:301
+#: main.cc:303
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Stampa partitura oppure crea MIDI da FILE."
 
-#: main.cc:303
+#: main.cc:305
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond produce bella notazione musicale."
 
-#: main.cc:305
+#: main.cc:307
 #, c-format
 msgid "For more information, see %s"
 msgstr "Per maggiori informazioni si veda %s"
 
-#: main.cc:307
+#: main.cc:309
 msgid "Options:"
 msgstr "Opzioni:"
 
-#: main.cc:374
+#: main.cc:376
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "previsti gli argomenti %d per la gabbia, trovati: %u"
 
-#: main.cc:388
+#: main.cc:390
 #, c-format
 msgid "no such user: %s"
 msgstr "non esiste questo utente: %s"
 
-#: main.cc:390
+#: main.cc:392
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr "impossibile acquisire l'id dell'utente dal nome utente: %s: %s"
 
-#: main.cc:405
+#: main.cc:407
 #, c-format
 msgid "no such group: %s"
 msgstr "non esiste questo gruppo: %s"
 
-#: main.cc:407
+#: main.cc:409
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr "impossibile acquisire l'id del gruppo dal nome del gruppo: %s:%s"
 
-#: main.cc:415
+#: main.cc:417
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "non si può fare il chroot a: %s: %s"
 
-#: main.cc:422
+#: main.cc:424
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "non si può cambiare l'id del gruppo in: %d: %s"
 
-#: main.cc:428
+#: main.cc:430
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "non si può cambiare l'id dell'utente in: %d: %s"
 
-#: main.cc:434
+#: main.cc:436
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "non si può passare alla directory di lavoro: %s: %s"
 
-#: main.cc:805
+#: main.cc:825
 #, c-format
 msgid "exception caught: %s"
 msgstr "ricevuta un'eccezione: %s"
@@ -2537,7 +2537,7 @@ msgstr "impossibile aprire il file con permesso di scrittura: %s: %s"
 msgid "cannot write to file: `%s'"
 msgstr "impossibile scrivere su file: «%s»"
 
-#: minimal-page-breaking.cc:40 paper-score.cc:122
+#: minimal-page-breaking.cc:40 paper-score.cc:116
 msgid "Calculating line breaks..."
 msgstr "Calcolo delle interruzioni di linea..."
 
@@ -2545,28 +2545,15 @@ msgstr "Calcolo delle interruzioni di linea..."
 msgid "Calculating page breaks..."
 msgstr "Calcolo delle interruzioni di pagina..."
 
-#: multi-measure-rest.cc:154
+#: multi-measure-rest.cc:152
 msgid "usable-duration-logs must be a non-empty list.  Falling back to whole rests."
 msgstr "usable-duration-logs deve essere una lista non vuota.  Si ricorre alle pause di semibreve."
 
-#: multi-measure-rest.cc:364
-msgid "Using naive multi measure rest spacing."
-msgstr "Si usa una spaziatura semplificata per la pausa multipla"
-
-#: music.cc:150
+#: music.cc:149
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
 msgstr "controllo dell'ottava fallito: previsto \"%s\", trovato: \"%s\""
 
-#: music.cc:219
-msgid "(normalized pitch)"
-msgstr "(altezza normalizzata)"
-
-#: music.cc:223
-#, c-format
-msgid "Transposing %s by %s makes alteration larger than double"
-msgstr "La trasposizione di %s da %s ingrandisce le alterazioni più del doppio"
-
 #: new-fingering-engraver.cc:113
 msgid "cannot add text scripts to individual note heads"
 msgstr "impossibile aggiungere delle scritte testuali alle teste delle note individuali"
@@ -2579,11 +2566,11 @@ msgstr "nessuna posizione trovata per le diteggiature"
 msgid "placing below"
 msgstr "si colloca in basso"
 
-#: note-collision.cc:497
-msgid "ignoring too many clashing note columns"
-msgstr "troppe collisioni tra colonne di note, ignorate"
+#: note-collision.cc:510
+msgid "this Voice needs a \\voiceXx or \\shiftXx setting"
+msgstr "questa voce ha bisogno di un'impostazione \\voiceXx o \\shiftXx"
 
-#: note-column.cc:147
+#: note-column.cc:150
 msgid "cannot have note heads and rests together on a stem"
 msgstr "impossibile avere teste e pause insieme su un gambo"
 
@@ -2596,37 +2583,37 @@ msgstr "non si è trovata alcuna delle teste delle note «%s» o «%s»"
 msgid "NoteEvent without pitch"
 msgstr "NoteEvent senza altezza"
 
-#: open-type-font.cc:45
+#: open-type-font.cc:46
 #, c-format
 msgid "cannot allocate %lu bytes"
 msgstr "impossibile allocare %lu byte"
 
-#: open-type-font.cc:49
+#: open-type-font.cc:50
 #, c-format
 msgid "cannot load font table: %s"
 msgstr "impossibile caricare la tabella dei tipi di carattere: %s"
 
-#: open-type-font.cc:54
+#: open-type-font.cc:55
 #, c-format
 msgid "FreeType error: %s"
 msgstr "Errore FreeType: %s"
 
-#: open-type-font.cc:111
+#: open-type-font.cc:112
 #, c-format
 msgid "unsupported font format: %s"
 msgstr "formato di tipo di carattere non supportato: %s"
 
-#: open-type-font.cc:113
+#: open-type-font.cc:114
 #, c-format
 msgid "error reading font file %s: %s"
 msgstr "errore nella lettura del file del tipo di carattere %s: %s"
 
-#: open-type-font.cc:188
+#: open-type-font.cc:189
 #, c-format
 msgid "FT_Get_Glyph_Name () Freetype error: %s"
 msgstr "errore di Freetype in FT_Get_Glyph_Name (): %s"
 
-#: open-type-font.cc:336 pango-font.cc:256
+#: open-type-font.cc:337 pango-font.cc:257
 #, c-format
 msgid "FT_Get_Glyph_Name () error: %s"
 msgstr "errore in FT_Get_Glyph_Name (): %s"
@@ -2665,42 +2652,43 @@ msgid "best score for this sys-count: %f"
 msgstr "miglior punteggio per questo numero di sistemi: %f"
 
 #: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
-#: paper-score.cc:162
+#: paper-score.cc:156
 msgid "Drawing systems..."
 msgstr "Disegno dei sistemi..."
 
-#: output-def.cc:235
+#: output-def.cc:230
 msgid "margins do not fit with line-width, setting default values"
 msgstr "i margini non corrispondono con la larghezza del rigo, si impostano i valori predefiniti"
 
-#: output-def.cc:242
+#: output-def.cc:237
 msgid "systems run off the page due to improper paper settings, setting default values"
 msgstr "i sistemi escono fuori dalla pagina a causa di errate impostazioni del foglio, si impostano i valori predefiniti"
 
-#: page-breaking.cc:277
+#: page-breaking.cc:276
 msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
 msgstr "si ignorano min-systems-per-page e max-systems-per-page perché è stato impostato systems-per-page"
 
-#: page-breaking.cc:282
+#: page-breaking.cc:281
 msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
 msgstr "min-systems-per-page è maggiore di max-systems-per-page, si ignorano entrambi i valori"
 
+#: page-breaking.cc:636
+#, c-format
+msgid "page %d has been compressed"
+msgstr "la pagina %d è stata compressa"
+
 #: page-layout-problem.cc:402
 msgid "A page layout problem has been initiated that cannot accommodate footnotes."
 msgstr "Si è creato un problema di formattazione della pagina che impedisce di ospitare le note a pié di pagina."
 
 #: page-layout-problem.cc:731
-msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
-msgstr "impossibile far entrare la musica nella pagina: richiesta la spaziatura ridotta, ma la pagina è già stata compressa"
+msgid "ragged-bottom was specified, but page must be compressed"
+msgstr "è stato specificato ragged-bottom, ma la pagina deve essere compressa"
 
 #: page-layout-problem.cc:734
 #, c-format
-msgid "cannot fit music on page: overflow is %f"
-msgstr "impossibile far entrare la musica nella pagina: l'eccesso è %f"
-
-#: page-layout-problem.cc:736
-msgid "compressing music to fit"
-msgstr "si comprime la musica per farla entrare"
+msgid "compressing over-full page by %.1f staff-spaces"
+msgstr "compressione di una pagina strapiena di %.1f spazi rigo"
 
 #: page-layout-problem.cc:1199
 msgid "staff-affinities should only decrease"
@@ -2745,12 +2733,12 @@ msgstr "\tnumero delle pagine: %d"
 msgid "\tprevious break: %d"
 msgstr "\tinterruzione precedente: %d"
 
-#: pango-font.cc:245
+#: pango-font.cc:246
 #, c-format
 msgid "no glyph for character U+%0X in font `%s'"
 msgstr "manca il glifo per il carattere U+%0X del tipo \"%s\""
 
-#: pango-font.cc:272
+#: pango-font.cc:273
 #, c-format
 msgid ""
 "Glyph has no name, but font supports glyph naming.\n"
@@ -2759,21 +2747,21 @@ msgstr ""
 "Il glifo non ha un nome, ma il tipo di carattere permette di dare un nome al glifo.\n"
 "Si salta il glifo U+%0X, file %s"
 
-#: pango-font.cc:322
+#: pango-font.cc:323
 #, c-format
 msgid "no PostScript font name for font `%s'"
 msgstr "nessun nome di tipo di carattere PostScript per «%s»"
 
-#: pango-font.cc:372
+#: pango-font.cc:373
 msgid "FreeType face has no PostScript font name"
 msgstr "Il tipo FreeType non ha un nome per il tipo di carattere PostScript"
 
-#: paper-book.cc:214
+#: paper-book.cc:201
 #, c-format
 msgid "program option -dprint-pages not supported by backend `%s'"
 msgstr "l'opzione -dprint-pages del programma non è supportata dal backend «%s»"
 
-#: paper-book.cc:233
+#: paper-book.cc:220
 #, c-format
 msgid "program option -dpreview not supported by backend `%s'"
 msgstr "l'opzione -dpreview del programma non è supportata dal backend «%s»"
@@ -2787,37 +2775,33 @@ msgstr "l'interruzione forzata è stata sovrascritta da qualche altro evento, co
 msgid "Layout output to `%s'..."
 msgstr "Output della formattazione inviato a «%s»..."
 
-#: paper-score.cc:134
+#: paper-score.cc:128
 #, c-format
 msgid "Element count %d (spanners %d) "
 msgstr "Conto degli elementi %d (spanner %d)."
 
-#: paper-score.cc:138
+#: paper-score.cc:132
 msgid "Preprocessing graphical objects..."
 msgstr "Pre-elaborazione degli oggetti grafici..."
 
-#: parse-scm.cc:121
+#: parse-scm.cc:128
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE ha segnalato un errore per l'espressione che inizia qui"
 
-#: partial-iterator.cc:45
-msgid "trying to use \\partial after the start of a piece"
-msgstr "tentativo di usare \\partial all'inizio di un brano"
-
 #: pdf-scheme.cc:65
 #, c-format
 msgid "Conversion of string `%s' to UTF-16be failed: %s"
 msgstr "Fallita la conversione della stringa \"%s\" in UTF-16be: %s"
 
-#: percent-repeat-engraver.cc:147
+#: percent-repeat-engraver.cc:148
 msgid "unterminated percent repeat"
 msgstr "ripetizione percentuale non terminata"
 
-#: performance.cc:54
+#: performance.cc:55
 msgid "Track..."
 msgstr "Traccia..."
 
-#: performance.cc:82
+#: performance.cc:90
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "L'output MIDI è inviato a «%s»..."
@@ -2843,7 +2827,7 @@ msgstr "impossibile trovare la parentesi di apertura del pedale del pianoforte:
 msgid "no such internal option: %s"
 msgstr "opzione interna sconosciuta: %s"
 
-#: property-iterator.cc:100
+#: property-iterator.cc:115
 #, c-format
 msgid "not a grob name, `%s'"
 msgstr "non è il nome di un grob, «%s»"
@@ -2928,50 +2912,46 @@ msgstr "impossibile aprire il file: «%s»"
 msgid "Unknown relocation command %s"
 msgstr "Comando di rilocazione sconosciuto %s"
 
-#: rest-collision-engraver.cc:70
-msgid "rhythmic head is not part of a rhythmic column"
-msgstr "la testa ritmica non fa parte di una colonna ritmica"
-
-#: rest-collision.cc:150
+#: rest-collision.cc:153
 msgid "cannot resolve rest collision: rest direction not set"
 msgstr "impossibile risolvere la collisione di pause: direzione delle pause non impostata"
 
-#: rest-collision.cc:161 rest-collision.cc:270
+#: rest-collision.cc:164 rest-collision.cc:273
 msgid "too many colliding rests"
 msgstr "troppe collisioni tra pause"
 
-#: rest.cc:240
+#: rest.cc:239
 #, c-format
 msgid "rest `%s' not found"
 msgstr "pausa «%s» non trovata"
 
-#: score-engraver.cc:78
+#: score-engraver.cc:79
 #, c-format
 msgid "cannot find `%s'"
 msgstr "impossibile trovare «%s»"
 
-#: score-engraver.cc:80
+#: score-engraver.cc:81
 msgid "Music font has not been installed properly."
 msgstr "Il tipo di carattere musicale non è stato installato correttamente."
 
-#: score-engraver.cc:82
+#: score-engraver.cc:83
 #, c-format
 msgid "Search path `%s'"
 msgstr "Percorso di ricerca «%s»"
 
-#: score-engraver.cc:84
+#: score-engraver.cc:85
 msgid "Aborting"
 msgstr "Si sospende l'esecuzione"
 
-#: score.cc:172
+#: score.cc:160
 msgid "already have music in score"
 msgstr "musica già presente nello spartito"
 
-#: score.cc:173
+#: score.cc:161
 msgid "this is the previous music"
 msgstr "questa è la musica precedente"
 
-#: score.cc:178
+#: score.cc:166
 msgid "errors found, ignoring music expression"
 msgstr "trovati degli errori, si ignora l'espressione musicale"
 
@@ -2984,7 +2964,7 @@ msgstr "non so come interpretare l'articolazione:"
 msgid " scheme encoding: "
 msgstr " codifica di Scheme: "
 
-#: skyline-pair.cc:160
+#: skyline-pair.cc:135
 msgid "direction must not be CENTER in ly:skyline-pair::skyline"
 msgstr "in ly:skyline-pair::skyline la direzione non deve essere CENTER"
 
@@ -3028,16 +3008,16 @@ msgstr "Numerazione canale MIDI ricominciata"
 msgid "remapping modulo 16"
 msgstr "riassegnata con modulo 16"
 
-#: stem-engraver.cc:110
+#: stem-engraver.cc:100
 msgid "tremolo duration is too long"
 msgstr "la durata del tremolo è troppo lunga"
 
-#: stem-engraver.cc:162
+#: stem-engraver.cc:152
 #, c-format
 msgid "adding note head to incompatible stem (type = %d/%d)"
 msgstr "si aggiunge la testa della nota a un gambo incompatibile (tipo = %d/%d)"
 
-#: stem-engraver.cc:165
+#: stem-engraver.cc:155
 msgid "maybe input should specify polyphonic voices"
 msgstr "forse l'input dovrebbe specificare le voci polifoniche"
 
@@ -3056,13 +3036,7 @@ msgid "Grob count %d"
 msgstr "Numero degli oggetti grafici %d"
 
 #. TODO: Also print the arguments of the markup!
-#: text-interface.cc:129
-#, c-format
-msgid "Cyclic markup detected: %s"
-msgstr "Individuato un markup ciclico: %s"
-
-#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:142
+#: text-interface.cc:138
 #, c-format
 msgid "Markup depth exceeds maximal value of %d; Markup: %s"
 msgstr "La profondità di markup eccede il valore massimo di %d; Markup: %s"
@@ -3079,11 +3053,11 @@ msgstr "spanner testuale già presente"
 msgid "unterminated text spanner"
 msgstr "spanner testuale non terminato"
 
-#: tie-engraver.cc:119
+#: tie-engraver.cc:121
 msgid "unterminated tie"
 msgstr "legatura di valore non terminata"
 
-#: tie-engraver.cc:353
+#: tie-engraver.cc:373
 msgid "lonely tie"
 msgstr "legatura di valore solitaria"
 
@@ -3092,18 +3066,11 @@ msgstr "legatura di valore solitaria"
 #.
 #. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
 #.
-#: time-signature-engraver.cc:75
+#: time-signature-engraver.cc:95
 #, c-format
 msgid "strange time signature found: %d/%d"
 msgstr "si è incontrato uno strano segno di tempo: %d/%d"
 
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:89
-#, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr "non si è trovato il simbolo di tempo «%s»: si ritorna allo stile numerato"
-
 #: translator-ctors.cc:65
 #, c-format
 msgid "unknown translator: `%s'"
@@ -3119,12 +3086,12 @@ msgstr "errore fatale. Impossibile trovare il tipo: %s"
 msgid "cannot find: `%s'"
 msgstr "impossibile trovare: «%s»"
 
-#: translator.cc:326
+#: translator.cc:320
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
 msgstr "Due eventi %s simultanei, si butta via questo"
 
-#: translator.cc:327
+#: translator.cc:321
 #, c-format
 msgid "Previous %s event here"
 msgstr "L'evento %s precedente sta qui"
@@ -3189,205 +3156,214 @@ msgstr "è già presente uno spanner terminato"
 msgid "giving up"
 msgstr "rinuncia"
 
-#: parser.yy:158 parser.yy:172
-msgid "Too much lookahead"
-msgstr "Troppa ricerca in avanti (lookahead)"
-
-#: parser.yy:441 parser.yy:752 parser.yy:818
+#: parser.yy:463 parser.yy:847 parser.yy:928 parser.yy:1150
 msgid "bad expression type"
 msgstr "tipo d'espressione non corretto"
 
-#: parser.yy:650 parser.yy:1159
+#: parser.yy:759 parser.yy:1361 parser.yy:1406
 msgid "not a context mod"
 msgstr "non è una modalità di contesto"
 
-#: parser.yy:853
-msgid "score expected"
-msgstr "attesa una partitura"
+#: parser.yy:954
+msgid "Missing music in \\score"
+msgstr "Nessuna musica trovata in \\score"
 
-#: parser.yy:869
+#: parser.yy:991
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "non si può usare \\paper dentro \\score, usare \\layout al suo posto"
 
-#: parser.yy:893
+#: parser.yy:1027
+msgid "Spurious expression in \\score"
+msgstr "Espressione spuria in \\score"
+
+#: parser.yy:1057
 msgid "need \\paper for paper block"
 msgstr "è necessario \\paper per il blocco \"paper\""
 
-#: parser.yy:1033 parser.yy:1055
+#: parser.yy:1234
+msgid "music expected"
+msgstr "attesa la musica"
+
+#: parser.yy:1244 parser.yy:1278
 msgid "unexpected post-event"
 msgstr "«post-event» inatteso"
 
-#: parser.yy:1063
+#: parser.yy:1286
 msgid "Ignoring non-music expression"
 msgstr "Si ignora l'espressione non musicale"
 
-#: parser.yy:1075 parser.yy:2493
-msgid "music expected"
-msgstr "attesa la musica"
-
-#: parser.yy:1370
+#: parser.yy:1587
 msgid "not a symbol"
 msgstr "non è un simbolo"
 
-#: parser.yy:2182 parser.yy:2296 parser.yy:2309 parser.yy:2318
+#: parser.yy:2337 parser.yy:2451 parser.yy:2464 parser.yy:2473
 msgid "bad grob property path"
 msgstr "percorso sbagliato alla proprietà del «grob»"
 
-#: parser.yy:2276
+#: parser.yy:2431
 msgid "only \\consists and \\remove take non-string argument."
 msgstr "solo \\consists e \\remove prendono un argomento diverso da una stringa"
 
-#: parser.yy:2337
+#: parser.yy:2492
 msgid "bad context property path"
 msgstr "percorso sbagliato alla proprietà di contesto"
 
-#: parser.yy:2438
+#: parser.yy:2593
 msgid "simple string expected"
 msgstr "attesa una stringa semplice"
 
-#: parser.yy:2456
+#: parser.yy:2611
 msgid "symbol expected"
 msgstr "simbolo atteso"
 
-#: parser.yy:2611
+#: parser.yy:2747
 msgid "not a rhythmic event"
 msgstr "non è un evento ritmico"
 
-#: parser.yy:2685
+#: parser.yy:2797
 msgid "post-event expected"
 msgstr "atteso un post-event"
 
-#: parser.yy:2694 parser.yy:2699
+#: parser.yy:2806 parser.yy:2811
 msgid "have to be in Lyric mode for lyrics"
 msgstr "bisogna essere in modo \"Lyric\" per i testi"
 
-#: parser.yy:2767
-msgid "expecting string as script definition"
-msgstr "ci si aspetta una stringa come definizione dello script"
+#: parser.yy:2887
+msgid "expecting string or post-event as script definition"
+msgstr "ci si aspetta una stringa o un post-event come definizione dello script"
 
-#: parser.yy:2875
+#: parser.yy:2991
 msgid "not an articulation"
 msgstr "non è un'articolazione"
 
-#: parser.yy:2947 parser.yy:2990
+#: parser.yy:3063 parser.yy:3106
 msgid "not a duration"
 msgstr "non è una durata"
 
-#: parser.yy:3007
+#: parser.yy:3127
 msgid "bass number expected"
 msgstr "atteso un numero di basso"
 
-#: parser.yy:3106
+#: parser.yy:3219
 msgid "have to be in Note mode for notes"
 msgstr "bisogna essere in modo \"Note\" per le note"
 
-#: parser.yy:3166
+#: parser.yy:3258
 msgid "have to be in Chord mode for chords"
 msgstr "bisogna essere in modo \"Chord\" per gli accordi"
 
-#: parser.yy:3181
+#: parser.yy:3301
 msgid "markup outside of text script or \\lyricmode"
 msgstr "testo fuori da una scritta testuale o da \\lyricmode"
 
-#: parser.yy:3186
+#: parser.yy:3306
 msgid "unrecognized string, not in text script or \\lyricmode"
 msgstr "stringa non riconosciuta, non si trova in una scritta testuale o in \\lyricmode"
 
-#: parser.yy:3347 parser.yy:3356
+#: parser.yy:3458 parser.yy:3467
 msgid "not an unsigned integer"
 msgstr "non è un intero non negativo"
 
-#: parser.yy:3424
+#: parser.yy:3541
 msgid "not a markup"
 msgstr "non è un markup"
 
-#: lexer.ll:224
+#: lexer.ll:192
 msgid "stray UTF-8 BOM encountered"
 msgstr "si è incontrato un segno BOM UTF-8 isolato"
 
-#: lexer.ll:227
+#: lexer.ll:195
 msgid "Skipping UTF-8 BOM"
 msgstr "Si ignora il BOM UTF-8"
 
-#: lexer.ll:279
+#: lexer.ll:247
 #, c-format
 msgid "Renaming input to: `%s'"
 msgstr "Si rinomina l'input in: «%s»"
 
-#: lexer.ll:296
+#: lexer.ll:264
 msgid "quoted string expected after \\version"
 msgstr "\\version deve essere seguito da una stringa compresa tra virgolette"
 
-#: lexer.ll:300
+#: lexer.ll:268
 msgid "quoted string expected after \\sourcefilename"
 msgstr "\\sourcefilename deve essere seguito da una stringa compresa tra virgolette"
 
-#: lexer.ll:304
+#: lexer.ll:272
 msgid "integer expected after \\sourcefileline"
 msgstr "\\sourcefileline deve essere seguito da un intero"
 
-#: lexer.ll:331
+#: lexer.ll:299
 msgid "\\maininput not allowed outside init files"
 msgstr "\\maininput non permesso fuori dai file di inizializzazione"
 
-#: lexer.ll:355
+#: lexer.ll:323
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "indentificatore errato o non definito: «%s»"
 
-#: lexer.ll:381
+#: lexer.ll:348
 msgid "string expected after \\include"
 msgstr "stringa prevista dopo \\include"
 
-#: lexer.ll:391
+#: lexer.ll:358
 msgid "end quote missing"
 msgstr "mancano le virgolette di chiusura"
 
-#: lexer.ll:743
+#: lexer.ll:713
 msgid "EOF found inside a comment"
 msgstr "fine del file (EOF) trovata in un commento"
 
-#: lexer.ll:748
+#: lexer.ll:718
 msgid "EOF found inside string"
 msgstr "fine del file (EOF) trovata in una stringa"
 
-#: lexer.ll:763
+#: lexer.ll:733
 msgid "Unfinished main input"
 msgstr "Input principale non finito"
 
-#: lexer.ll:834
+#: lexer.ll:804
 #, c-format
 msgid "invalid character: `%s'"
 msgstr "carattere non valido: «%s»"
 
-#: lexer.ll:963
+#: lexer.ll:924
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "stringa di escape sconosciuta: «\\%s»"
 
-#: lexer.ll:983
+#: lexer.ll:944
 #, c-format
 msgid "undefined character or shorthand: %s"
 msgstr "carattere o abbreviazione non riconosciuti: %s"
 
-#: lexer.ll:1275
+#: lexer.ll:1235
 msgid "non-UTF-8 input"
 msgstr "input non UTF-8"
 
-#: lexer.ll:1319
+#: lexer.ll:1279
+#, c-format
+msgid "Invalid version string \"%s\""
+msgstr "Stringa di versione \"%s\" non valida"
+
+#: lexer.ll:1284
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "file troppo vecchio: %s (il più vecchio che si può gestire è: %s)"
 
-#: lexer.ll:1320
+#: lexer.ll:1285
 msgid "consider updating the input with the convert-ly script"
 msgstr "si consideri di aggiornare l'input con lo script convert-ly"
 
-#: lexer.ll:1326
+#: lexer.ll:1291
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "programma troppo vecchio: %s (il file richiede: %s)"
 
+#: auto-beam.scm:147
+msgid "Beam end fits no pattern"
+msgstr "Il termine della travatura non soddisfa nessuno schema"
+
 #: backend-library.scm:27
 #, scheme-format
 msgid "Invoking `~a'..."
@@ -3398,24 +3374,24 @@ msgstr "Invocazione di «~a»..."
 msgid "`~a' failed (~a)\n"
 msgstr "«~a» fallito (~a)\n"
 
-#: backend-library.scm:93
+#: backend-library.scm:94
 #, scheme-format
 msgid "Converting to `~a'...\n"
 msgstr "Conversione a «~a»...\n"
 
 #. Do not try to guess the name of the png file,
 #. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:102
+#: backend-library.scm:103
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr "Conversione a ~a..."
 
-#: backend-library.scm:140
+#: backend-library.scm:141
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr "Scrittura del campo di intestazione «~a» in «~a»..."
 
-#: backend-library.scm:189
+#: backend-library.scm:190
 #, scheme-format
 msgid "missing stencil expression `~S'"
 msgstr "manca l'espressione di stencil «~S»"
@@ -3456,74 +3432,65 @@ msgstr "Informazione incomprensibile dopo l'accordo: ~A"
 msgid "symbol ~S redefined"
 msgstr "simbolo ~S ridefinito"
 
-#: define-event-classes.scm:73
+#: define-event-classes.scm:74
 #, scheme-format
 msgid "unknown parent class `~a'"
 msgstr "Classe di evento «~a» sconosciuta"
 
-#: define-event-classes.scm:107
+#: define-event-classes.scm:108
 #, scheme-format
 msgid "Cannot redefine event class `~S'"
 msgstr "Impossibile ridefinire la classe di evento «~S»"
 
-#: define-event-classes.scm:109
+#: define-event-classes.scm:110
 #, scheme-format
 msgid "Undefined parent event class `~S'"
 msgstr "Classe di evento genitore «~S» sconosciuta"
 
-#: define-markup-commands.scm:1083
+#: define-markup-commands.scm:1062
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "non si è trovato alcun sistema nell'oggetto markup in cui è inserito \\score: contiene un blocco \\layout?"
 
-#: define-markup-commands.scm:2847
+#: define-markup-commands.scm:2886
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "Impossibile trovare il glifo ~a"
 
-#: define-markup-commands.scm:3273
+#: define-markup-commands.scm:3362
 #, scheme-format
 msgid "no brace found for point size ~S "
 msgstr "non c'è una graffa che abbia una dimensione di ~S punti"
 
-#: define-markup-commands.scm:3274
+#: define-markup-commands.scm:3363
 #, scheme-format
 msgid "defaulting to ~S pt"
 msgstr "si applica la dimensione predefinita ~S pt"
 
-#: define-markup-commands.scm:3526
+#: define-markup-commands.scm:3615
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "non è una durata valida per la stringa: ~a"
 
-#: define-markup-commands.scm:3737
+#: define-markup-commands.scm:3826
 #, scheme-format
 msgid "not a valid duration string: ~a - ignoring"
 msgstr "non è una durata valida per la stringa: ~a -- si ignora"
 
-#: define-music-types.scm:792
+#: define-music-types.scm:797
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr "simbolo atteso: ~S"
 
-#: define-music-types.scm:795
+#: define-music-types.scm:800
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr "impossibile trovare l'oggetto musicale: ~S"
 
-#: define-music-types.scm:815
+#: define-music-types.scm:820
 #, scheme-format
 msgid "bad make-music argument: ~S"
 msgstr "argomento di make-music non valido: ~S"
 
-#: define-music-types.scm:827
-#, scheme-format
-msgid "unknown repeat type `~S'"
-msgstr "tipo di ripetizione sconosciuto «~S»"
-
-#: define-music-types.scm:828
-msgid "See define-music-types.scm for supported repeats"
-msgstr "Si veda define-music-types.scm per le ripetizioni supportate"
-
 #: define-note-names.scm:972
 msgid "Select note names language."
 msgstr "Selezione della lingua dei nomi delle note."
@@ -3538,37 +3505,37 @@ msgstr "Utilizzo di \"~a\" per i nomi delle note..."
 msgid "Could not find language `~a'.  Ignoring."
 msgstr "Impossibile trovare il linguaggio \"~a\".  Si ignora."
 
-#: document-backend.scm:132
+#: document-backend.scm:135
 #, scheme-format
 msgid "pair expected in doc ~s"
 msgstr "si aspettava una coppia nel documento ~s"
 
-#: document-backend.scm:189
+#: document-backend.scm:202
 #, scheme-format
 msgid "cannot find interface for property: ~S"
 msgstr "impossibile trovare un'interfaccia per le proprietà: ~S"
 
-#: document-backend.scm:199
+#: document-backend.scm:212
 #, scheme-format
 msgid "unknown Grob interface: ~S"
 msgstr "interfaccia del Grob sconosciuta: ~S"
 
-#: documentation-lib.scm:59
+#: documentation-lib.scm:62
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Elaborazione di ~S..."
 
-#: documentation-lib.scm:176
+#: documentation-lib.scm:178
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Scrittura di ~S..."
 
-#: documentation-lib.scm:188
+#: documentation-lib.scm:190
 #, scheme-format
 msgid "cannot find description for property `~S' (~S)"
 msgstr "impossibile trovare la descrizione per la proprietà \"~S\" (~S)"
 
-#: documentation-lib.scm:209
+#: documentation-lib.scm:211
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "impossibile trovare la descrizione per la proprietà ~S (~S)"
@@ -3583,27 +3550,27 @@ msgstr "tipo di coda uncinata sconosciuto: «~a» o «~a»"
 msgid "Writing ~a..."
 msgstr "Scrittura di ~a..."
 
-#: framework-ps.scm:250
+#: framework-ps.scm:281
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "impossibile inserire ~S=~S"
 
-#: framework-ps.scm:293
+#: framework-ps.scm:324
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "impossibile estrarre il file corrispondente a ~a a partire da ~a"
 
-#: framework-ps.scm:311
+#: framework-ps.scm:342
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "impossibile realizzare l'integrazione ~S=~S"
 
-#: framework-ps.scm:336
+#: framework-ps.scm:367
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "non so come inserire il tipo di carattere ~s ~s ~s"
 
-#: framework-ps.scm:687
+#: framework-ps.scm:729
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -3651,20 +3618,20 @@ msgstr "Errore nella definizione delle travature. Previste (~S,~S), trovate ~S."
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Errore nella definizione delle travature.  Previste ~S 0, trovate ~S."
 
-#: lily-library.scm:333
+#: lily-library.scm:350
 msgid "Music unsuitable for context-mod"
 msgstr "Musica non adatta per context-mod"
 
-#: lily-library.scm:388
+#: lily-library.scm:405
 #, scheme-format
 msgid "Cannot find context-def \\~a"
 msgstr "Impossibile trovare context-def \\~a"
 
-#: lily-library.scm:404
+#: lily-library.scm:421
 msgid "Music unsuitable for output-def"
 msgstr "Musica non adatta per output-def"
 
-#: lily-library.scm:884
+#: lily-library.scm:921
 msgid ""
 "Find the index between @var{start} and @var{end} (an integer)\n"
 "which produces the closest match to @var{target-val} if\n"
@@ -3674,12 +3641,12 @@ msgstr ""
 "che produca l'abbinamento più vicino al @var{target-val} quando\n"
 "applicato alla funzione @var{getter}."
 
-#: lily-library.scm:955
+#: lily-library.scm:1015
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "unità sconosciuta: ~S"
 
-#: lily-library.scm:980
+#: lily-library.scm:1040
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr "dichiarazione di \\version assente; si aggiunga ~a per compatibilità futura"
@@ -3692,33 +3659,33 @@ msgstr "call-after-session usato dopo l'inizio di una sessione"
 msgid "define-session used after session start"
 msgstr "define-session usato dopo l'inizio di una sessione"
 
-#: lily.scm:393
+#: lily.scm:399
 msgid "Using (ice-9 curried-definitions) module\n"
 msgstr "Utilizzazione del modulo (ice-9 curried-definitions)\n"
 
-#: lily.scm:396
+#: lily.scm:402
 msgid "Guile 1.8\n"
 msgstr "Guile 1.8\n"
 
-#: lily.scm:455
+#: lily.scm:459
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "impossibile trovare ~A"
 
-#: lily.scm:878
+#: lily.scm:886
 msgid "Success: compilation successfully completed"
 msgstr "Successo: compilazione completata con successo"
 
-#: lily.scm:879
+#: lily.scm:887
 msgid "Compilation completed with warnings or errors"
 msgstr "Compilazione completata con avvertimenti o errori"
 
-#: lily.scm:940
+#: lily.scm:948
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "il lavoro ~a è terminato col segnale ~a"
 
-#: lily.scm:943
+#: lily.scm:951
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -3727,17 +3694,17 @@ msgstr ""
 "file di registro ~a (uscita ~a):\n"
 "~a"
 
-#: lily.scm:965 lily.scm:1054
+#: lily.scm:973 lily.scm:1062
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "errore nei file: ~S"
 
-#: lily.scm:1045
+#: lily.scm:1053
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Redirezione dell'output verso ~a..."
 
-#: lily.scm:1064 ps-to-png.scm:66
+#: lily.scm:1072 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr "Chiamata di «~a»...\n"
@@ -3747,12 +3714,12 @@ msgstr "Chiamata di «~a»...\n"
 msgid "~a function cannot return ~a"
 msgstr "la funzione ~a non può restituire ~a"
 
-#: ly-syntax-constructors.scm:75
+#: ly-syntax-constructors.scm:76
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "tipo di argomento errato per ~a. Previsto ~a, trovato ~s"
 
-#: ly-syntax-constructors.scm:199
+#: ly-syntax-constructors.scm:200
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Operazione di proprietà non valida: ~a"
@@ -3796,58 +3763,77 @@ msgstr "altezza da invertire non presente nella scala; si ignora"
 msgid "negative replication count; ignoring"
 msgstr "conto di riproduzione negativo; si ignora"
 
-#: music-functions.scm:272
-msgid "More alternatives than repeats.  Junking excess alternatives"
-msgstr "Più alternative che ripetizioni.  Vengono tralasciate le alternative in eccesso"
-
-#: music-functions.scm:303
+#: music-functions.scm:311
 #, scheme-format
 msgid "invalid tremolo repeat count: ~a"
 msgstr "numero di ripetizioni di tremolo non valido: ~a"
 
-#: music-functions.scm:459
+#: music-functions.scm:340
+#, scheme-format
+msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo"
+msgstr "tipo di ripetizione «~S» sconosciuto: deve essere volta, unfold, percent o tremolo"
+
+#: music-functions.scm:344
+msgid "More alternatives than repeats.  Junking excess alternatives"
+msgstr "Più alternative che ripetizioni.  Vengono tralasciate le alternative in eccesso"
+
+#: music-functions.scm:480
 #, scheme-format
 msgid "bad grob property path ~a"
 msgstr "percorso sbagliato alla proprietà del «grob»: ~a"
 
-#: music-functions.scm:753
+#: music-functions.scm:779
 msgid "Bad chord repetition"
 msgstr "Ripetizione di accordi sbagliata"
 
-#: music-functions.scm:788
+#: music-functions.scm:884
 #, scheme-format
 msgid "music expected: ~S"
 msgstr "musica attesa: ~S"
 
-#: music-functions.scm:1144
+#: music-functions.scm:1226
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr "impossibile trovare la musica citata: «~S»"
 
-#: music-functions.scm:1282
+#: music-functions.scm:1366
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr "Aggiungere @var{octave-shift} all'ottava di @var{altezza}."
 
-#: music-functions.scm:1342
+#: music-functions.scm:1429
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr "Tipo di ottava sconosciuto: ~S "
 
-#: music-functions.scm:1343
+#: music-functions.scm:1430
 msgid "Defaulting to 'any-octave."
 msgstr "Applicazione del valore predefinito 'any-octave."
 
-#: music-functions.scm:1688
+#: music-functions.scm:1822
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "stile di alterazione sconosciuto: ~S"
 
-#: output-ps.scm:278 output-svg.scm:539
+#: music-functions.scm:2040
+msgid "Missing duration"
+msgstr "Durata mancante"
+
+#: music-functions.scm:2549
+#, scheme-format
+msgid "not a symbol list: ~a"
+msgstr "non è una lista di simboli: ~a"
+
+#: music-functions.scm:2552
+#, scheme-format
+msgid "conflicting tag group ~a"
+msgstr "gruppo di etichette (tag) ~a in conflitto"
+
+#: output-ps.scm:290 output-svg.scm:539
 #, scheme-format
 msgid "unknown line-cap-style: ~S"
 msgstr "line-cap-style sconosciuto: ~S"
 
-#: output-ps.scm:283 output-svg.scm:545
+#: output-ps.scm:295 output-svg.scm:545
 #, scheme-format
 msgid "unknown line-join-style: ~S"
 msgstr "line-join-style sconosciuto: ~S"
@@ -3866,32 +3852,32 @@ msgstr "Un glifo deve avere un valore unicode"
 msgid "cannot find SVG font ~S"
 msgstr "impossibile trovare il tipo di carattere SVG ~S"
 
-#: paper.scm:120
+#: paper.scm:122
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size: non è nell'ambito di livello più alto"
 
-#: paper.scm:320
+#: paper.scm:322
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "Questo non è un oggetto \\layout {}, ~S"
 
-#: paper.scm:328
+#: paper.scm:330
 #, scheme-format
 msgid "Unknown paper size: ~a"
 msgstr "Dimensione del foglio sconosciuta: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:347
+#: paper.scm:349
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "Si deve usare #(set-paper-size .. ) all'interno di \\paper { ... }"
 
-#: parser-clef.scm:164
+#: parser-clef.scm:154
 #, scheme-format
 msgid "unknown clef type `~a'"
 msgstr "tipo di chiave sconosciuto «~a»"
 
-#: parser-clef.scm:165
+#: parser-clef.scm:155
 #, scheme-format
 msgid "supported clefs: ~a"
 msgstr "chiavi supportate: ~a"
@@ -3900,7 +3886,7 @@ msgstr "chiavi supportate: ~a"
 msgid "error in #{ ... #}"
 msgstr "errore in #{ ... #}"
 
-#: part-combiner.scm:598
+#: part-combiner.scm:748
 #, scheme-format
 msgid "quoted music `~a' is empty"
 msgstr "la musica quotata «~a» è vuota"
@@ -3915,40 +3901,40 @@ msgstr "~a è terminato con stato ~S"
 msgid "assertion failed: ~S"
 msgstr "errore di asserzione: ~S"
 
-#: translation-functions.scm:368
+#: translation-functions.scm:389
 #, scheme-format
 msgid "Negative fret for pitch ~a on string ~a"
 msgstr "Tasto negativo per l'altezza ~a sulla corda ~a"
 
-#: translation-functions.scm:371
+#: translation-functions.scm:392
 #, scheme-format
 msgid "Missing fret for pitch ~a on string ~a"
 msgstr "Manca il tasto per l'altezza ~a sulla corda ~a"
 
-#: translation-functions.scm:414
+#: translation-functions.scm:435
 #, scheme-format
 msgid "No open string for pitch ~a"
 msgstr "Nessuna corda a vuoto per l'altezza ~a"
 
-#: translation-functions.scm:429 translation-functions.scm:441
+#: translation-functions.scm:450 translation-functions.scm:462
 #, scheme-format
 msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
 msgstr "La corda richiesta per questa altezza necessita un tasto negativo: corda ~a altezza ~a"
 
-#: translation-functions.scm:432
+#: translation-functions.scm:453
 msgid "Ignoring string request and recalculating."
 msgstr "Ignorata la richiesta di questa corda, viene ricalcolata."
 
-#: translation-functions.scm:444
+#: translation-functions.scm:465
 msgid "Ignoring note in tablature."
 msgstr "Ignorata la nota nell'intavolatura."
 
-#: translation-functions.scm:469
+#: translation-functions.scm:490
 #, scheme-format
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr "Nessuna corda per l'altezza ~a (se i tasti sono ~a)"
 
-#: translation-functions.scm:574
+#: translation-functions.scm:595
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
@@ -3956,845 +3942,3 @@ msgid ""
 msgstr ""
 "Nessuna etichetta per il tasto ~a (sulla corda ~a);\n"
 "disponibili solo le etichette del tasto ~a"
-
-#~ msgid "cannot find start of (de)crescendo"
-#~ msgstr "impossibile trovare l'inizio del (de)crescendo"
-
-#~ msgid "already have a decrescendo"
-#~ msgstr "decrescendo già presente"
-
-#~ msgid "already have a crescendo"
-#~ msgstr "crescendo già presente"
-
-#~ msgid "cresc starts here"
-#~ msgstr "cresc inizia qui"
-
-#~ msgid "unterminated (de)crescendo"
-#~ msgstr "(de)crescendo non terminato"
-
-#~ msgid "unterminated phrasing slur"
-#~ msgstr "legatura di frase non terminata"
-
-#~ msgid "cannot end phrasing slur"
-#~ msgstr "impossibile chiudere la legatura di frase"
-
-#~ msgid "already have phrasing slur"
-#~ msgstr "legatura di frase già presente"
-
-#~ msgid "unterminated slur"
-#~ msgstr "legatura di portamento non terminata"
-
-#~ msgid "old relative compatibility not used"
-#~ msgstr "compatibilità col vecchio modo relativo non utilizzata"
-
-#~ msgid "undefined: ~S"
-#~ msgstr "~S indefinito"
-
-#~ msgid "Line spanner's left point is to the right of its right point."
-#~ msgstr "Il punto sinistro dello spanner della linea si trova alla destra del suo punto destro."
-
-#~ msgid "Grob name should be alphanumeric"
-#~ msgstr "Il nome del grob deve essere alfanumerico"
-
-#~ msgid "Brace found at end of lyric.  Did you forget a space?"
-#~ msgstr "Trovata una parentesi alla fine del testo.  È stato dimenticato uno spazio?"
-
-#~ msgid "Brace found at end of markup.  Did you forget a space?"
-#~ msgstr "Trovata una parentesi alla fine della marcatura.  È stato dimenticato uno spazio?"
-
-#~ msgid "add midi-block to .ly file"
-#~ msgstr "aggiunge il blocco midi al file .ly"
-
-#~ msgid "Found infinity or nan in output. Substituting 0.0"
-#~ msgstr "Trovato infinito o un valore non numerico nell'output. Sostituito con 0.0"
-
-#~ msgid "All classes must be the last in their matrilineal line."
-#~ msgstr "Tutte le classi devono essere le ultime della propria linea di discendenza."
-
-#~ msgid "All classes must have a well-defined pedigree in the existing class hierarchy."
-#~ msgstr "Tutte le classi devono avere un'ascendenza ben definita nella gerarchia di classe esistente."
-
-#~ msgid "event class ~A seems to be unused"
-#~ msgstr "la classe di evento ~A sembra essere non utilizzata"
-
-#~ msgid "translator listens to nonexisting event class ~A"
-#~ msgstr "il traduttore è in ascolto della classe di evento ~A inesistente"
-
-#~ msgid "setbeatGrouping. Use baseMoment and beatStructure.\n"
-#~ msgstr "setbeatGrouping. Usa baseMoment e beatStructure.\n"
-
-#~ msgid "success: %s"
-#~ msgstr "riuscito: %s"
-
-#~ msgid "Infinity or NaN encountered"
-#~ msgstr "incontrato infinito o un valore non numerico"
-
-#~ msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
-#~ msgstr "Vaticana_ligature: unione nulla (delta_pitch == 0)"
-
-#~ msgid "No spring between column %d and next one"
-#~ msgstr "Nessuna separazione tra la colonna %d e la successiva"
-
-#~ msgid "Sending non-event to context"
-#~ msgstr "Invio di un non-evento al contesto"
-
-#~ msgid "Invalid CreateContext event: Cannot create %s context"
-#~ msgstr "Evento CreateContext non valido: impossibile creare il contesto %s"
-
-#~ msgid "infinity or NaN encountered while converting Real number"
-#~ msgstr "si è incontrato infinito o un valore non numerico durante la conversione di un numero reale"
-
-#~ msgid "setting to zero"
-#~ msgstr "impostato a zero"
-
-#~ msgid "No spacing entry from %s to `%s'"
-#~ msgstr "Nessuno spazio da %s a «%s»"
-
-#~ msgid "error at EOF: %s"
-#~ msgstr "errore alla fine del file (EOF): %s"
-
-#~ msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
-#~ msgstr "dipendenza ciclica: calculation-in-progress incontrato per #'%s (%s)"
-
-#~ msgid "Mensural_ligature: unexpected case fall-through"
-#~ msgstr "Mensural_ligature: caso inatteso e non interpretabile"
-
-#~ msgid "Mensural_ligature: (join_right == 0)"
-#~ msgstr "Mensural_ligature: (join_right == 0)"
-
-#~ msgid "braces do not match"
-#~ msgstr "le graffe non corrispondono"
-
-#~ msgid "second argument must be pitch list"
-#~ msgstr "il secondo argomento deve essere una lista di altezze"
-
-#~ msgid "warning:"
-#~ msgstr "attenzione:"
-
-#~ msgid "Bar check failed.  Expect to be at ~a, instead at ~a"
-#~ msgstr "Controllo di battuta fallito.  Avrebbe dovuto trovarsi a ~a invece che a ~a"
-
-#~ msgid "Music head function must return Music object"
-#~ msgstr "Una funzione musicale principale deve restituire un Oggetto musicale"
-
-#~ msgid "vertical spacing has been changed; minimum-Y-extent is obsolete.\n"
-#~ msgstr "la spaziatura verticale è cambiata; minimum-Y-extent è obsoleto.\n"
-
-#~ msgid "no feasible beam position"
-#~ msgstr "nessuna posizione fattibile per la travatura"
-
-#~ msgid "Invalid index for character"
-#~ msgstr "Indice non valido per il carattere"
-
-#, fuzzy
-#~ msgid "deprecated function called: %s"
-#~ msgstr "non riesco a trovare il carattere `%s'"
-
-#, fuzzy
-#~ msgid "generate DVI (tex backend only)"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "do not generate printed output"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "cannot find start of trill spanner"
-#~ msgstr "non trovo le estremità di %s"
-
-#, fuzzy
-#~ msgid "already have a trill spanner"
-#~ msgstr "crescendo non terminato"
-
-#~ msgid "silly pitch"
-#~ msgstr "indicazione altezza priva di senso"
-
-#, fuzzy
-#~ msgid "show warranty"
-#~ msgstr "  -w, --warranty         mostra la garanzia e il copyright\n"
-
-#, fuzzy
-#~ msgid "loading default font"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "cannot find default font: `%s'"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "couldnnot find line breaking that satisfies constraints"
-#~ msgstr "la soluzione non soddisfa i vincoli"
-
-#, fuzzy
-#~ msgid "crescendo too small"
-#~ msgstr "troppo piccolo"
-
-#, fuzzy
-#~ msgid "cannot open file %s"
-#~ msgstr "non posso aprire il file: `%s'"
-
-#, fuzzy
-#~ msgid "Incorrect lilypond version: %s (%s, %s)"
-#~ msgstr "versione di mudela errata: %s (%s, %s)"
-
-#~ msgid "Creator: "
-#~ msgstr "Autore: "
-
-#, fuzzy
-#~ msgid "at "
-#~ msgstr ", a "
-
-#, fuzzy
-#~ msgid "in quotation: junking event %s"
-#~ msgstr "Cosa? Non è una richiesta: `%s'"
-
-#, fuzzy
-#~ msgid "cannot find ascii character: %d"
-#~ msgstr "non riesco a trovare il carattere `%s'"
-
-#, fuzzy
-#~ msgid "unterminated trill spanner"
-#~ msgstr "extender non terminato"
-
-#, fuzzy
-#~ msgid "cannot find signature for music function"
-#~ msgstr "Non trovo il contesto dello Score"
-
-#, fuzzy
-#~ msgid "Opening pipe `%s'"
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "Cleaning %s..."
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "Usage: %s [OPTION]... [FILE]..."
-#~ msgstr "Uso: %s [OPZIONE]... [FILE]..."
-
-#, fuzzy
-#~ msgid "%s: skipping: `%s'"
-#~ msgstr "% strumento:"
-
-#, fuzzy
-#~ msgid "Processing `%s'..."
-#~ msgstr "Elaboro..."
-
-#, fuzzy
-#~ msgid "Wrote `%s'"
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "cannot dlopen: %s: %s"
-#~ msgstr "non posso aprire il file: `%s'"
-
-#, fuzzy
-#~ msgid "install package: %s or %s"
-#~ msgstr "non posso cambiare `%s' in `%s'"
-
-#, fuzzy
-#~ msgid "parsing AFM file: `%s'"
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "beam has less than two visible stems"
-#~ msgstr "beam con meno di due gambi"
-
-#, fuzzy
-#~ msgid "adding lilypond directory: %s"
-#~ msgstr "non trovo e non posso creare `%s'"
-
-#, fuzzy
-#~ msgid "cannot handle a percent repeat of length: %s"
-#~ msgstr "non so manipolare tasti vuoti"
-
-#, fuzzy
-#~ msgid "suspect duration in beam: %s"
-#~ msgstr "non è una durata: %d"
-
-#, fuzzy
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "Stack now"
-#~ msgstr "traccia "
-
-#, fuzzy
-#~ msgid "Reading a token: "
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "syntax error; also memory exhausted"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "syntax error"
-#~ msgstr "Errore non fatale: "
-
-#, fuzzy
-#~ msgid "cannot find CFF/PFA/PFB font ~S=~S"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "unknown bar glyph: `~S'"
-#~ msgstr "tipo di chiave sconosciuto"
-
-#, fuzzy
-#~ msgid "Extracting fonts to %s..."
-#~ msgstr "non trovo e non posso creare `%s'"
-
-#, fuzzy
-#~ msgid "Writing %s..."
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "Writing output file."
-#~ msgstr "  -D, --debug            abilita l'output di debugging\n"
-
-#, fuzzy
-#~ msgid "Have to be in Lyric mode for lyrics"
-#~ msgstr "bisogna essere in Lyric mode per i testi"
-
-#, fuzzy
-#~ msgid "Have to be in Note mode for notes"
-#~ msgstr "bisogna essere in Note mode per le note"
-
-#, fuzzy
-#~ msgid "Have to be in Chord mode for chords"
-#~ msgstr "bisogna essere in Chord mode per gli accordi"
-
-#, fuzzy
-#~ msgid "Huh?  Got %d, expected %d characters"
-#~ msgstr "Come? Ho trovato %d caratteri al posto di %d"
-
-#, fuzzy
-#~ msgid "Missing end quote"
-#~ msgstr "apice finale mancante"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find %s file: `%s'"
-#~ msgstr "Non trovo il file `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find file: `%s'"
-#~ msgstr "Non trovo il file `%s'"
-
-#, fuzzy
-#~ msgid "generate DVI"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "generate TeX"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "kpathsea can not find %s file: `%s'"
-#~ msgstr "Non trovo il file `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find AFM file `%s'"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find TFM file: `%s'"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "add DIR to LilyPond's search path"
-#~ msgstr "  -I, --include=DIR      aggiunge DIR ai path di ricerca\n"
-
-#, fuzzy
-#~ msgid "produce MIDI output only"
-#~ msgstr "  -M, --no-paper         produce solo output midi\n"
-
-#, fuzzy
-#~ msgid "generate PDF output"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "generate PS.GZ"
-#~ msgstr "vincoli degenerati"
-
-#, fuzzy
-#~ msgid "Continuing..."
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "Analyzing %s..."
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "no LilyPond output found for `%s'"
-#~ msgstr "Output di Lily in %s..."
-
-#, fuzzy
-#~ msgid "%s output to <stdout>..."
-#~ msgstr "L'output MIDI è inviato a %s..."
-
-#, fuzzy
-#~ msgid "%s output to %s..."
-#~ msgstr "L'output MIDI è inviato a %s..."
-
-#, fuzzy
-#~ msgid "cannot find file: `%s.%s'"
-#~ msgstr "non trovo il file: `%s'"
-
-#, fuzzy
-#~ msgid "write dependencies"
-#~ msgstr "aspettavo uno spazio bianco"
-
-#, fuzzy
-#~ msgid "write Makefile dependencies for every input file"
-#~ msgstr "  -d, --dependencies     scrive le dependenze del Makefile per ogni file di input\n"
-
-#, fuzzy
-#~ msgid "invalid value: `%s'"
-#~ msgstr "carattere illegale: `%c'"
-
-#, fuzzy
-#~ msgid "Writing HTML menu `%s'"
-#~ msgstr "Genero le voci..."
-
-#, fuzzy
-#~ msgid "Beam has less than two stems. Removing beam."
-#~ msgstr "beam con meno di due gambi"
-
-#, fuzzy
-#~ msgid "Score contains errors; will not process it"
-#~ msgstr "lo spartito contiene errori; non lo elaborerò"
-
-#, fuzzy
-#~ msgid "Now processing: `%s'"
-#~ msgstr "stringa di escape sconosciuta: `\\%s'"
-
-#, fuzzy
-#~ msgid "inhibit file output naming and exporting"
-#~ msgstr "  -s, --safe             inibisce la rinomina dei file di output e l'esportazione di macro di TeX\n"
-
-#, fuzzy
-#~ msgid "GNU LilyPond -- The music typesetter"
-#~ msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
-
-#~ msgid "silly duration"
-#~ msgstr "indicazione durata priva di senso"
-
-#, fuzzy
-#~ msgid "paper output to `%s'..."
-#~ msgstr "L'output stampato è inviato a %s..."
-
-#, fuzzy
-#~ msgid "Outputting Score, defined at: "
-#~ msgstr "emetto lo Score, definito a: "
-
-#~ msgid "from musical definition: %s"
-#~ msgstr "della definizione musicale: %s"
-
-#, fuzzy
-#~ msgid "unterminated pedal bracket"
-#~ msgstr "beam non terminato"
-
-#, fuzzy
-#~ msgid "unbound spanner `%s'"
-#~ msgstr "Spanner non legato `%s'"
-
-#, fuzzy
-#~ msgid "Error syncing file (disk full?)"
-#~ msgstr "errore nel sincronizzare il file (disco pieno?)"
-
-#, fuzzy
-#~ msgid "Not adding translator: `%s'"
-#~ msgstr "traduttore sconosciuto `%s'"
-
-#, fuzzy
-#~ msgid "Must have duration object"
-#~ msgstr "indicazione durata priva di senso"
-
-#, fuzzy
-#~ msgid "%r: release directory"
-#~ msgstr "non trovo e non posso creare `%s'"
-
-#, fuzzy
-#~ msgid "Building `%s'..."
-#~ msgstr "Genero le voci..."
-
-#~ msgid ", at "
-#~ msgstr ", a "
-
-#, fuzzy
-#~ msgid "Putting slur over rest."
-#~ msgstr "Metto uno slur sulla pausa."
-
-#, fuzzy
-#~ msgid "Slur over rest?"
-#~ msgstr "Metto uno slur sulla pausa."
-
-#~ msgid "cannot map file"
-#~ msgstr "non posso mappare il documento"
-
-#, fuzzy
-#~ msgid "This binary was compiled with the following options:"
-#~ msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
-
-#~ msgid "EOF in a string"
-#~ msgstr "EOF in una corda"
-
-#, fuzzy
-#~ msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
-
-#~ msgid "#32 in quarter: %d"
-#~ msgstr "#32 in un quarto: %d"
-
-#, fuzzy
-#~ msgid "track %d:"
-#~ msgstr "traccia "
-
-#~ msgid "NOT Filtering tempo..."
-#~ msgstr "NON filtro il tempo..."
-
-#~ msgid "NOT Quantifying columns..."
-#~ msgstr "NON quantifico le colonne..."
-
-#~ msgid "Quantifying columns..."
-#~ msgstr "Quantifico le colonne..."
-
-#~ msgid "Settling columns..."
-#~ msgstr "Sistemo le colonne..."
-
-#, fuzzy
-#~ msgid "% MIDI instrument:"
-#~ msgstr "% strumento:"
-
-#~ msgid "lily indent level: %d"
-#~ msgstr "livello di indentazione di lili: %d"
-
-#~ msgid "% Creator: "
-#~ msgstr "% Autore: "
-
-#~ msgid "% Automatically generated"
-#~ msgstr "% Generato automaticamente"
-
-#~ msgid "% from input file: "
-#~ msgstr "% dal file di input: "
-
-#, fuzzy
-#~ msgid "write exact durations, e.g.: a4*385/384"
-#~ msgstr "  -b, --no-quantify      scrive durate esatte,  p.es.: a4*385/384\n"
-
-#, fuzzy
-#~ msgid "enable debugging output"
-#~ msgstr "  -D, --debug            abilita l'output di debugging\n"
-
-#, fuzzy
-#~ msgid "do not output tuplets, double dots or rests, smallest is 32"
-#~ msgstr "  -n, --no-silly         assume che non ci siano gruppetti o doppi punti, la figura più piccola è 32\n"
-
-#, fuzzy
-#~ msgid "set smallest duration"
-#~ msgstr "indicazione durata priva di senso"
-
-#, fuzzy
-#~ msgid "do not timestamp the output"
-#~ msgstr "  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
-
-#, fuzzy
-#~ msgid "assume no double dotted notes"
-#~ msgstr " -x, --no-double-dots   assume che non ci siano note con doppio punto\n"
-
-#~ msgid "Usage: %s [OPTIONS]... [FILE]"
-#~ msgstr "Uso: %s [OPZIONE]... [FILE]"
-
-#, fuzzy
-#~ msgid "Translate MIDI-file to lilypond"
-#~ msgstr "Traduce un file midi in mudela"
-
-#~ msgid "zero length string encountered"
-#~ msgstr "ho incostrato una striga di lunghezza nulla"
-
-#~ msgid "MIDI header expected"
-#~ msgstr "mi aspettavo un header MIDI"
-
-#, fuzzy
-#~ msgid "invalid header length"
-#~ msgstr "Lunghezza dell'header non valida"
-
-#, fuzzy
-#~ msgid "invalid MIDI format"
-#~ msgstr "evento MIDI non valido"
-
-#, fuzzy
-#~ msgid "invalid number of tracks"
-#~ msgstr "Numero di tracce non valido"
-
-#, fuzzy
-#~ msgid "cannot handle non-metrical time"
-#~ msgstr "tempo non metrico"
-
-#~ msgid "invalid running status"
-#~ msgstr "stato di eseguzione non valido"
-
-#~ msgid "invalid MIDI event"
-#~ msgstr "evento MIDI non valido"
-
-#~ msgid "MIDI track expected"
-#~ msgstr "mi spettavo una traccia MIDI"
-
-#~ msgid "invalid track length"
-#~ msgstr "lunghezza della traccia non valida"
-
-#, fuzzy
-#~ msgid "no Grace context available"
-#~ msgstr "non è una vera variabile"
-
-#, fuzzy
-#~ msgid "Fetching `%'s..."
-#~ msgstr "Genero le voci..."
-
-#~ msgid "Wrong type for property value"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
-
-#, fuzzy
-#~ msgid "not enough fields in Dstream init"
-#~ msgstr "Non ci sono sufficienti campi in Dstream init."
-
-#, fuzzy
-#~ msgid "floating point exception"
-#~ msgstr "Eccezione di virgola mobile"
-
-#, fuzzy
-#~ msgid "cannot set mem-checking!"
-#~ msgstr "non posso settare mem-checking"
-
-#, fuzzy
-#~ msgid "Dependency file left in `%s'"
-#~ msgstr "scrivo il file delle dipendenze: `%s'..."
-
-#, fuzzy
-#~ msgid "Usage: lilypond [OPTIONS]... FILE\n"
-#~ msgstr "Uso: %s [OPZIONE]... [FILE]"
-
-#~ msgid "unconventional key: flats: %d, sharps: %d"
-#~ msgstr "armatura non convenzionale: %d bemolli e %d diesis"
-
-#, fuzzy
-#~ msgid "wrong identifier type, expected: `%s'"
-#~ msgstr "Tipo di identificatore sbagliato: "
-
-#, fuzzy
-#~ msgid "show all changes in relative syntax"
-#~ msgstr "  -Q, --find-old-relative mostra tutti i cambiamenti nella sintassi relativa\n"
-
-#, fuzzy
-#~ msgid "switch on experimental features"
-#~ msgstr "  -t, --test             usa le caratteristiche sperimentali\n"
-
-#~ msgid "Automatically generated"
-#~ msgstr "Generato automaticamente"
-
-#, fuzzy
-#~ msgid "Wrong type for property"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
-
-#, fuzzy
-#~ msgid "Huh?  Not a Request: `%s'"
-#~ msgstr "Cosa? Non è una richiesta: `%s'"
-
-#~ msgid "cannot find both ends of %s"
-#~ msgstr "non trovo le estremità di %s"
-
-#, fuzzy
-#~ msgid "lost in time:"
-#~ msgstr "mi sono persa nel tempo"
-
-#~ msgid "Need a translator group for a context"
-#~ msgstr "Ho bisogno di un gruppo di traduzione per un contesto"
-
-#, fuzzy
-#~ msgid "No key name, assuming `C'"
-#~ msgstr "Nessuna armatura di chiave: assumo Do'"
-
-#, fuzzy
-#~ msgid "out of tune:"
-#~ msgstr "stonato"
-
-#, fuzzy
-#~ msgid "ignore mudela version"
-#~ msgstr "versione di mudela errata: %s (%s, %s)"
-
-#~ msgid "not a real variable"
-#~ msgstr "non è una vera variabile"
-
-#, fuzzy
-#~ msgid "Spanner `%s' has equal left and right spanpoints"
-#~ msgstr "I punti di span sinistro e destro dello spanner `%s' coincidono"
-
-#~ msgid "Debug output disabled.  Compiled with NPRINT."
-#~ msgstr "L'output di debug è disabilitato. Compilato con NPRINT."
-
-#~ msgid "0 lines"
-#~ msgstr "0 linee"
-
-#~ msgid "1 line (of %.0f columns)"
-#~ msgstr "1 linea (da %.0f colonne)"
-
-#~ msgid "%d lines (with an average of %.1f columns)"
-#~ msgstr "%d linee (con una media di %.f colonne)"
-
-#~ msgid "score does not have any columns"
-#~ msgstr "lo spartito non contiene nessuna colonna"
-
-#, fuzzy
-#~ msgid "calculated %s exactly"
-#~ msgstr "calcolato esattamente: %s"
-
-#~ msgid "Got a dynamic already.  Continuing dazed and confused"
-#~ msgstr "E' già presente una dinamica. Continuo, ma sono confusa"
-
-#~ msgid "Too many crescendi here"
-#~ msgstr "Troppi crescendi"
-
-#~ msgid "redeclaration of `\\%s'"
-#~ msgstr "doppia dichiarazione di `\\%s'"
-
-#~ msgid "Cannot solve this casting problem exactly; revert to Word_wrap"
-#~ msgstr "Non posso risolvere esattamente questo problema di conversione; ritorno al Word_wrap"
-
-#~ msgid "time: %.2f seconds"
-#~ msgstr "durata: %.2f secondi"
-
-#~ msgid "no minimum in measure at %s"
-#~ msgstr "non c'è minimo nella misura a %s"
-
-#~ msgid "I'm too fat; call Oprah"
-#~ msgstr "Son troppo grassa; chiama Oprah"
-
-#~ msgid "partial measure must be non-negative"
-#~ msgstr "la misura parziale deve essere non-negativa"
-
-#~ msgid "partial measure too large"
-#~ msgstr "misura parziale troppo grande"
-
-#~ msgid "Will ignore \\relative for transposed music"
-#~ msgstr "Ignorerò \\relative per la musica trasposta "
-
-#~ msgid "ugh, this measure is too long"
-#~ msgstr "ops, questa misura è troppo lunga"
-
-#~ msgid "I do not fit; put me on Montignac"
-#~ msgstr "Non ci sto; mettimi su Montignac"
-
-#~ msgid "More than one music block"
-#~ msgstr "Più di un blocco di musica"
-
-#~ msgid "cannot abbreviate"
-#~ msgstr "non posso abbreviare"
-
-#, fuzzy
-#~ msgid "cannot abbreviate tuplet"
-#~ msgstr "non posso abbreviare"
-
-#~ msgid "Parsing...\n"
-#~ msgstr "Interpreto...\n"
-
-#, fuzzy
-#~ msgid "do not timestamp the output "
-#~ msgstr "  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
-
-#~ msgid "  -a, --about            about LilyPond\n"
-#~ msgstr "  -a, --about            cos'è LilyPond\n"
-
-#~ msgid "  -h, --help             this help\n"
-#~ msgstr "  -h, --help             questo help\n"
-
-#~ msgid "  -f, --output-format=X  use output format X\n"
-#~ msgstr "  -f, --output-format=X  usa il formato dell'ouput X\n"
-
-#~ msgid "  -o, --output=FILE      set FILE as default output base\n"
-#~ msgstr "  -o, --output=FILE      indica FILE come base di default per l'output\n"
-
-#~ msgid "  -V, --ignore-version   ignore mudela version\n"
-#~ msgstr "  -V, --ignore-version   ignora la versione di mudela\n"
-
-#~ msgid "GNU LilyPond is Free software, see --warranty"
-#~ msgstr "GNU LilyPond è Free software, vedi --warranty"
-
-#~ msgid "  -D, --debug            enable debugging output\n"
-#~ msgstr "  -D, --debug            abilita l'output di debugging\n"
-
-#, fuzzy
-#~ msgid "  -p, --no-tuplets       assume no tuplets\n"
-#~ msgstr "  -p, --no-plets         assume che non ci siano gruppetti\n"
-
-#~ msgid "  -q, --quiet            be quiet\n"
-#~ msgstr "  -q, --quiet            sii silenzioso\n"
-
-#~ msgid "  -s, --smallest=N       assume no shorter (reciprocal) durations than N\n"
-#~ msgstr "  -s, --smallest=N       assume che non ci siano durate (reciproche) inferiori a N\n"
-
-#~ msgid "  -v, --verbose          be verbose\n"
-#~ msgstr "  -v, --verbose          sii loquace\n"
-
-#, fuzzy
-#~ msgid "Midi2ly, translate midi to mudela"
-#~ msgstr "Mi2mu, tradice midi in mudela"
-
-#~ msgid "of"
-#~ msgstr "di"
-
-#~ msgid "please fix me"
-#~ msgstr "correggimi, per favore"
-
-#~ msgid "stem at %s doesnnot fit in beam"
-#~ msgstr "il gambo a $s non rientra nel beam"
-
-#~ msgid "No stem direction set. Ignoring column in clash."
-#~ msgstr "Nessuna direzione del gambo è selezionata. Ignoro la colonna."
-
-#~ msgid "\\relative mode changed here, old value: "
-#~ msgstr "\\il modo relativo è cambiato in questo punto, valore vecchio: "
-
-#~ msgid "ignoring zero duration added to column at %s"
-#~ msgstr "ingnoro le durate nulle aggiunte alla colonna a %s"
-
-#~ msgid "script needs stem direction"
-#~ msgstr "lo script ha bisogno di una direzione per il gambo"
-
-#~ msgid "unconnected column: %d"
-#~ msgstr "colonna sconnessa: %d"
-
-#~ msgid "Staff_side::get_position_f(): somebody forgot to set my direction, returning -20"
-#~ msgstr "taff_side::get_position_f(): qualcuno ha dimenticato di impostare lamia direzione, quindi restituisco -20"
-
-#~ msgid "have to be in Note mode for @chords"
-#~ msgstr "bisogna essere in Note mode per i @chords"
-
-#~ msgid ""
-#~ "LilyPond is the GNU Project music typesetter.  This program can print\n"
-#~ "beautiful sheet music from a music definition file.  It can also play\n"
-#~ "mechanical performances to a MIDI file.  Features include multiple\n"
-#~ "staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
-#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
-#~ "part extraction.  It includes a nice font of musical symbols.\n"
-#~ msgstr ""
-#~ "LilyPond è il programma di notazione musicale del progetto\n"
-#~ "GNU. Questo programma può generare delle ottime partiture musicali\n"
-#~ "a partire da un file contenente la descrizione della musica. Può\n"
-#~ "anche generare esecuzioni meccaniche della partitura in formato\n"
-#~ "MIDI. Le caratteristiche del programma includono un versatile\n"
-#~ "linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
-#~ "divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
-#~ "terzine, segni di formattazione ed estrazione automatica delle parti. Nella\n"
-#~ "distribuzione è compreso anche un font di simboli musicali.\n"
index 170adca2d5b6c21a04bd696008223982fcb2622d..bf9cf6c87be655c1437883b4c69d94f53a1c8a67 100644 (file)
@@ -6,10 +6,10 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.19.15\n"
+"Project-Id-Version: lilypond 2.19.16\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
 "lilypond.bugs\n"
-"POT-Creation-Date: 2014-09-28 14:54+0100\n"
+"POT-Creation-Date: 2015-02-28 14:31+0000\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"
@@ -902,12 +902,12 @@ msgid ""
 msgstr ""
 
 #: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:182
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183
 msgid "show version number and exit"
 msgstr ""
 
 #: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:161
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162
 msgid "show this help and exit"
 msgstr ""
 
@@ -932,7 +932,7 @@ msgstr ""
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
 #: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:316
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr ""
@@ -983,7 +983,7 @@ msgid ""
 msgstr ""
 
 #: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:175
+#: musicxml2ly.py:2629 main.cc:176
 msgid "LOGLEVEL"
 msgstr ""
 
@@ -1015,7 +1015,7 @@ msgid "make a numbered backup [default: filename.ext~]"
 msgstr ""
 
 #: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:184
+#: main.cc:185
 msgid "show warranty and copyright"
 msgstr ""
 
@@ -1074,7 +1074,7 @@ msgid ""
 msgstr ""
 
 #: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:167 main.cc:179
+#: main.cc:168 main.cc:180
 msgid "FILE"
 msgstr ""
 
@@ -1114,7 +1114,7 @@ msgid "add DIR to include path"
 msgstr ""
 
 #: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:166
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167
 msgid "DIR"
 msgstr ""
 
@@ -1815,22 +1815,22 @@ msgstr ""
 msgid "need symbol arguments for \\override and \\revert"
 msgstr ""
 
-#: context.cc:148
+#: context.cc:143
 #, c-format
 msgid "cannot find or create new `%s'"
 msgstr ""
 
-#: context.cc:227
+#: context.cc:222
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
 msgstr ""
 
-#: context.cc:424
+#: context.cc:419
 #, c-format
 msgid "cannot find or create: `%s'"
 msgstr ""
 
-#: context.cc:438
+#: context.cc:433
 #, c-format
 msgid "cannot find or create new Bottom = \"%s\""
 msgstr ""
@@ -1840,20 +1840,20 @@ msgstr ""
 msgid "custos `%s' not found"
 msgstr ""
 
-#: dispatcher.cc:85
+#: dispatcher.cc:83
 msgid "Event class should be a list"
 msgstr ""
 
-#: dispatcher.cc:168
+#: dispatcher.cc:166
 #, c-format
 msgid "Junking event: %s"
 msgstr ""
 
-#: dispatcher.cc:273
+#: dispatcher.cc:271
 msgid "Attempting to remove nonexisting listener."
 msgstr ""
 
-#: dispatcher.cc:299
+#: dispatcher.cc:297
 msgid "Already listening to dispatcher, ignoring request"
 msgstr ""
 
@@ -1939,12 +1939,12 @@ msgstr ""
 msgid "Must be footnote-event."
 msgstr ""
 
-#: general-scheme.cc:395
+#: general-scheme.cc:403
 #, c-format
 msgid "failed redirecting stderr to `%s'"
 msgstr ""
 
-#: general-scheme.cc:474 output-ps.scm:48
+#: general-scheme.cc:482 output-ps.scm:48
 msgid "Found infinity or nan in output.  Substituting 0.0"
 msgstr ""
 
@@ -2000,7 +2000,7 @@ msgstr ""
 msgid "%d: %s"
 msgstr ""
 
-#: grob.cc:480
+#: grob.cc:481
 #, c-format
 msgid "ignored infinite %s-offset"
 msgstr ""
@@ -2153,7 +2153,7 @@ msgid ""
 "include-string instead."
 msgstr ""
 
-#: lily-parser.cc:108
+#: lily-parser.cc:107
 msgid "Parsing..."
 msgstr ""
 
@@ -2238,58 +2238,62 @@ msgstr ""
 msgid "generate PostScript"
 msgstr ""
 
-#: main.cc:163
+#: main.cc:161
+msgid "generate big PDF files"
+msgstr ""
+
+#: main.cc:164
 msgid "FIELD"
 msgstr ""
 
-#: main.cc:163
+#: main.cc:164
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:166
+#: main.cc:167
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:167
+#: main.cc:168
 msgid "use FILE as init file"
 msgstr ""
 
-#: main.cc:170
+#: main.cc:171
 msgid "USER, GROUP, JAIL, DIR"
 msgstr ""
 
-#: main.cc:170
+#: main.cc:171
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
 
-#: main.cc:175
+#: main.cc:176
 msgid ""
 "print log messages according to LOGLEVEL.  Possible values are:\n"
 "NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
 msgstr ""
 
-#: main.cc:179
+#: main.cc:180
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 
-#: main.cc:180
+#: main.cc:181
 msgid "relocate using directory of lilypond program"
 msgstr ""
 
-#: main.cc:181
+#: main.cc:182
 msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
 msgstr ""
 
-#: main.cc:183
+#: main.cc:184
 msgid "be verbose (equivalent to loglevel=DEBUG)"
 msgstr ""
 
 #. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:262
+#: main.cc:263
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -2297,74 +2301,74 @@ msgid ""
 msgstr ""
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:300
+#: main.cc:301
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr ""
 
-#: main.cc:302
+#: main.cc:303
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr ""
 
-#: main.cc:304
+#: main.cc:305
 msgid "LilyPond produces beautiful music notation."
 msgstr ""
 
-#: main.cc:306
+#: main.cc:307
 #, c-format
 msgid "For more information, see %s"
 msgstr ""
 
-#: main.cc:308
+#: main.cc:309
 msgid "Options:"
 msgstr ""
 
-#: main.cc:375
+#: main.cc:376
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr ""
 
-#: main.cc:389
+#: main.cc:390
 #, c-format
 msgid "no such user: %s"
 msgstr ""
 
-#: main.cc:391
+#: main.cc:392
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 
-#: main.cc:406
+#: main.cc:407
 #, c-format
 msgid "no such group: %s"
 msgstr ""
 
-#: main.cc:408
+#: main.cc:409
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 
-#: main.cc:416
+#: main.cc:417
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr ""
 
-#: main.cc:423
+#: main.cc:424
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr ""
 
-#: main.cc:429
+#: main.cc:430
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr ""
 
-#: main.cc:435
+#: main.cc:436
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr ""
 
-#: main.cc:820
+#: main.cc:825
 #, c-format
 msgid "exception caught: %s"
 msgstr ""
@@ -2444,7 +2448,7 @@ msgstr ""
 msgid "cannot write to file: `%s'"
 msgstr ""
 
-#: minimal-page-breaking.cc:40 paper-score.cc:122
+#: minimal-page-breaking.cc:40 paper-score.cc:116
 msgid "Calculating line breaks..."
 msgstr ""
 
@@ -2452,15 +2456,11 @@ msgstr ""
 msgid "Calculating page breaks..."
 msgstr ""
 
-#: multi-measure-rest.cc:154
+#: multi-measure-rest.cc:152
 msgid ""
 "usable-duration-logs must be a non-empty list.  Falling back to whole rests."
 msgstr ""
 
-#: multi-measure-rest.cc:364
-msgid "Using naive multi measure rest spacing."
-msgstr ""
-
 #: music.cc:149
 #, c-format
 msgid "octave check failed; expected \"%s\", found: \"%s\""
@@ -2478,8 +2478,8 @@ msgstr ""
 msgid "placing below"
 msgstr ""
 
-#: note-collision.cc:511
-msgid "ignoring too many clashing note columns"
+#: note-collision.cc:510
+msgid "this Voice needs a \\voiceXx or \\shiftXx setting"
 msgstr ""
 
 #: note-column.cc:150
@@ -2566,15 +2566,15 @@ msgid "best score for this sys-count: %f"
 msgstr ""
 
 #: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
-#: paper-score.cc:162
+#: paper-score.cc:156
 msgid "Drawing systems..."
 msgstr ""
 
-#: output-def.cc:232
+#: output-def.cc:230
 msgid "margins do not fit with line-width, setting default values"
 msgstr ""
 
-#: output-def.cc:239
+#: output-def.cc:237
 msgid ""
 "systems run off the page due to improper paper settings, setting default "
 "values"
@@ -2677,12 +2677,12 @@ msgstr ""
 msgid "FreeType face has no PostScript font name"
 msgstr ""
 
-#: paper-book.cc:211
+#: paper-book.cc:201
 #, c-format
 msgid "program option -dprint-pages not supported by backend `%s'"
 msgstr ""
 
-#: paper-book.cc:230
+#: paper-book.cc:220
 #, c-format
 msgid "program option -dpreview not supported by backend `%s'"
 msgstr ""
@@ -2698,12 +2698,12 @@ msgstr ""
 msgid "Layout output to `%s'..."
 msgstr ""
 
-#: paper-score.cc:134
+#: paper-score.cc:128
 #, c-format
 msgid "Element count %d (spanners %d) "
 msgstr ""
 
-#: paper-score.cc:138
+#: paper-score.cc:132
 msgid "Preprocessing graphical objects..."
 msgstr ""
 
@@ -2841,7 +2841,7 @@ msgstr ""
 msgid "too many colliding rests"
 msgstr ""
 
-#: rest.cc:240
+#: rest.cc:239
 #, c-format
 msgid "rest `%s' not found"
 msgstr ""
@@ -2864,15 +2864,15 @@ msgstr ""
 msgid "Aborting"
 msgstr ""
 
-#: score.cc:169
+#: score.cc:160
 msgid "already have music in score"
 msgstr ""
 
-#: score.cc:170
+#: score.cc:161
 msgid "this is the previous music"
 msgstr ""
 
-#: score.cc:175
+#: score.cc:166
 msgid "errors found, ignoring music expression"
 msgstr ""
 
@@ -2885,7 +2885,7 @@ msgstr ""
 msgid " scheme encoding: "
 msgstr ""
 
-#: skyline-pair.cc:152
+#: skyline-pair.cc:135
 msgid "direction must not be CENTER in ly:skyline-pair::skyline"
 msgstr ""
 
@@ -2974,11 +2974,11 @@ msgstr ""
 msgid "unterminated text spanner"
 msgstr ""
 
-#: tie-engraver.cc:119
+#: tie-engraver.cc:121
 msgid "unterminated tie"
 msgstr ""
 
-#: tie-engraver.cc:353
+#: tie-engraver.cc:373
 msgid "lonely tie"
 msgstr ""
 
@@ -2987,18 +2987,11 @@ msgstr ""
 #.
 #. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
 #.
-#: time-signature-engraver.cc:75
+#: time-signature-engraver.cc:95
 #, c-format
 msgid "strange time signature found: %d/%d"
 msgstr ""
 
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:89
-#, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr ""
-
 #: translator-ctors.cc:65
 #, c-format
 msgid "unknown translator: `%s'"
@@ -3014,12 +3007,12 @@ msgstr ""
 msgid "cannot find: `%s'"
 msgstr ""
 
-#: translator.cc:322
+#: translator.cc:320
 #, c-format
 msgid "Two simultaneous %s events, junking this one"
 msgstr ""
 
-#: translator.cc:323
+#: translator.cc:321
 #, c-format
 msgid "Previous %s event here"
 msgstr ""
@@ -3308,24 +3301,24 @@ msgstr ""
 msgid "`~a' failed (~a)\n"
 msgstr ""
 
-#: backend-library.scm:93
+#: backend-library.scm:94
 #, scheme-format
 msgid "Converting to `~a'...\n"
 msgstr ""
 
 #. Do not try to guess the name of the png file,
 #. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:102
+#: backend-library.scm:103
 #, scheme-format
 msgid "Converting to ~a..."
 msgstr ""
 
-#: backend-library.scm:140
+#: backend-library.scm:141
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
 msgstr ""
 
-#: backend-library.scm:189
+#: backend-library.scm:190
 #, scheme-format
 msgid "missing stencil expression `~S'"
 msgstr ""
@@ -3371,17 +3364,17 @@ msgstr ""
 msgid "symbol ~S redefined"
 msgstr ""
 
-#: define-event-classes.scm:73
+#: define-event-classes.scm:74
 #, scheme-format
 msgid "unknown parent class `~a'"
 msgstr ""
 
-#: define-event-classes.scm:107
+#: define-event-classes.scm:108
 #, scheme-format
 msgid "Cannot redefine event class `~S'"
 msgstr ""
 
-#: define-event-classes.scm:109
+#: define-event-classes.scm:110
 #, scheme-format
 msgid "Undefined parent event class `~S'"
 msgstr ""
@@ -3390,47 +3383,42 @@ msgstr ""
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:2861
+#: define-markup-commands.scm:2886
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr ""
 
-#: define-markup-commands.scm:3337
+#: define-markup-commands.scm:3362
 #, scheme-format
 msgid "no brace found for point size ~S "
 msgstr ""
 
-#: define-markup-commands.scm:3338
+#: define-markup-commands.scm:3363
 #, scheme-format
 msgid "defaulting to ~S pt"
 msgstr ""
 
-#: define-markup-commands.scm:3590
+#: define-markup-commands.scm:3615
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
 
-#: define-markup-commands.scm:3801
+#: define-markup-commands.scm:3826
 #, scheme-format
 msgid "not a valid duration string: ~a - ignoring"
 msgstr ""
 
-#: define-music-callbacks.scm:114
-#, scheme-format
-msgid "\\time in mid-measure at ~A"
-msgstr ""
-
-#: define-music-types.scm:791
+#: define-music-types.scm:797
 #, scheme-format
 msgid "symbol expected: ~S"
 msgstr ""
 
-#: define-music-types.scm:794
+#: define-music-types.scm:800
 #, scheme-format
 msgid "cannot find music object: ~S"
 msgstr ""
 
-#: define-music-types.scm:814
+#: define-music-types.scm:820
 #, scheme-format
 msgid "bad make-music argument: ~S"
 msgstr ""
@@ -3494,27 +3482,27 @@ msgstr ""
 msgid "Writing ~a..."
 msgstr ""
 
-#: framework-ps.scm:251
+#: framework-ps.scm:281
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:294
+#: framework-ps.scm:324
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr ""
 
-#: framework-ps.scm:312
+#: framework-ps.scm:342
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:337
+#: framework-ps.scm:367
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:688
+#: framework-ps.scm:729
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -3563,19 +3551,19 @@ msgstr ""
 msgid "Music unsuitable for output-def"
 msgstr ""
 
-#: lily-library.scm:901
+#: lily-library.scm:921
 msgid ""
 "Find the index between @var{start} and @var{end} (an integer)\n"
 "which produces the closest match to @var{target-val} if\n"
 "applied to function @var{getter}."
 msgstr ""
 
-#: lily-library.scm:995
+#: lily-library.scm:1015
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:1020
+#: lily-library.scm:1040
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
@@ -3601,37 +3589,37 @@ msgstr ""
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:884
+#: lily.scm:886
 msgid "Success: compilation successfully completed"
 msgstr ""
 
-#: lily.scm:885
+#: lily.scm:887
 msgid "Compilation completed with warnings or errors"
 msgstr ""
 
-#: lily.scm:946
+#: lily.scm:948
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:949
+#: lily.scm:951
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:971 lily.scm:1060
+#: lily.scm:973 lily.scm:1062
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:1051
+#: lily.scm:1053
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
 
-#: lily.scm:1070 ps-to-png.scm:66
+#: lily.scm:1072 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr ""
@@ -3704,63 +3692,63 @@ msgstr ""
 msgid "More alternatives than repeats.  Junking excess alternatives"
 msgstr ""
 
-#: music-functions.scm:491
+#: music-functions.scm:480
 #, scheme-format
 msgid "bad grob property path ~a"
 msgstr ""
 
-#: music-functions.scm:786
+#: music-functions.scm:779
 msgid "Bad chord repetition"
 msgstr ""
 
-#: music-functions.scm:888
+#: music-functions.scm:884
 #, scheme-format
 msgid "music expected: ~S"
 msgstr ""
 
-#: music-functions.scm:1230
+#: music-functions.scm:1226
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:1370
+#: music-functions.scm:1366
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
 msgstr ""
 
-#: music-functions.scm:1433
+#: music-functions.scm:1429
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
 msgstr ""
 
-#: music-functions.scm:1434
+#: music-functions.scm:1430
 msgid "Defaulting to 'any-octave."
 msgstr ""
 
-#: music-functions.scm:1826
+#: music-functions.scm:1822
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
 
-#: music-functions.scm:2044
+#: music-functions.scm:2040
 msgid "Missing duration"
 msgstr ""
 
-#: music-functions.scm:2613
+#: music-functions.scm:2549
 #, scheme-format
 msgid "not a symbol list: ~a"
 msgstr ""
 
-#: music-functions.scm:2616
+#: music-functions.scm:2552
 #, scheme-format
 msgid "conflicting tag group ~a"
 msgstr ""
 
-#: output-ps.scm:278 output-svg.scm:539
+#: output-ps.scm:290 output-svg.scm:539
 #, scheme-format
 msgid "unknown line-cap-style: ~S"
 msgstr ""
 
-#: output-ps.scm:283 output-svg.scm:545
+#: output-ps.scm:295 output-svg.scm:545
 #, scheme-format
 msgid "unknown line-join-style: ~S"
 msgstr ""
@@ -3779,23 +3767,23 @@ msgstr ""
 msgid "cannot find SVG font ~S"
 msgstr ""
 
-#: paper.scm:121
+#: paper.scm:122
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:321
+#: paper.scm:322
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:329
+#: paper.scm:330
 #, scheme-format
 msgid "Unknown paper size: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:348
+#: paper.scm:349
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
@@ -3813,7 +3801,7 @@ msgstr ""
 msgid "error in #{ ... #}"
 msgstr ""
 
-#: part-combiner.scm:608
+#: part-combiner.scm:748
 #, scheme-format
 msgid "quoted music `~a' is empty"
 msgstr ""
index 48f54d3582b77fb6a426803b55022c2da33de424..ba38d5a05738e1b42cd4b94d64f860d91c17fbf1 100644 (file)
@@ -93,8 +93,6 @@
 
 (define-public (scheme? x) #t)
 
-(define-public (symbol-or-boolean? x)
-  (or (symbol? x) (boolean? x)))
 
 (define-public (void? x)
   (unspecified? x))
index 5970da75422edce4c62b401540e0005a2a945328..d0753500aa4b62b25a7db0480455a677cdbfc6d2 100644 (file)
@@ -637,6 +637,11 @@ this long, normally in the horizontal direction.  This requires an
 appropriate callback for the @code{springs-and-rods} property.  If
 added to a @code{Tie}, this sets the minimum distance between
 noteheads.")
+     (minimum-length-after-break ,ly:dimension? "If set, try to make
+a broken spanner starting a line this long.  This requires an
+appropriate callback for the @code{springs-and-rods} property.  If
+added to a @code{Tie}, this sets the minimum distance to the
+notehead.")
      (minimum-length-fraction ,number? "Minimum length of ledger line
 as fraction of note head size.")
      (minimum-space ,ly:dimension? "Minimum distance that the victim
@@ -1124,8 +1129,7 @@ one below this grob.")
 ;;;
 ;;; w
 ;;;
-     (when ,ly:moment? "Global time step associated with this column
-happen?")
+     (when ,ly:moment? "Global time step associated with this column.")
      (whiteout ,boolean? "If true, the grob is printed over a white
 background to white-out underlying material, if the grob is visible.
  Usually #f by default.")
@@ -1254,7 +1258,8 @@ empty in a particular staff, then that staff is erased.")
      (keep-alive-with ,ly:grob-array? "An array of other
 @code{VerticalAxisGroup}s.  If any of them are alive, then we will stay alive.")
 
-     (left-items ,ly:grob-array? "DOCME")
+     (left-items ,ly:grob-array? "Grobs organized on the left by a spacing
+object.")
      (left-neighbor ,ly:grob? "The right-most column that has a spacing-wish
 for this column.")
 
@@ -1285,7 +1290,8 @@ relevant for finding the @code{pure-Y-extent}.")
      (rest ,ly:grob? "A pointer to a @code{Rest} object.")
      (rest-collision ,ly:grob? "A rest collision that a rest is in.")
      (rests ,ly:grob-array? "An array of rest objects.")
-     (right-items ,ly:grob-array? "DOCME")
+     (right-items ,ly:grob-array? "Grobs organized on the right by
+a spacing object.")
      (right-neighbor ,ly:grob? "See @code{left-neighbor}.")
 
      (scripts ,ly:grob-array? "An array of @code{Script} objects.")
index 845b514f4499767dcf4a9c2a0c540732a27e539f..ca532c5029a3bd669f901468263f8066559e4966 100644 (file)
@@ -105,15 +105,13 @@ expression."
 ;;;
 ;;; durations
 ;;;
-(define*-public (duration->lily-string ly-duration #:key (prev-duration (*previous-duration*))
-                                       (force-duration (*force-duration*))
-                                       (time-scale (*time-scale*))
-                                       remember)
-  (if remember (*previous-duration* ly-duration))
+(define*-public (duration->lily-string ly-duration #:key
+                                       (force-duration #f)
+                                       (time-scale (*time-scale*)))
   (let ((log2    (ly:duration-log ly-duration))
         (dots    (ly:duration-dot-count ly-duration))
         (scale (ly:duration-scale ly-duration)))
-    (if (or force-duration (not prev-duration) (not (equal? ly-duration prev-duration)))
+    (if (or force-duration (not (*omit-duration*)))
         (string-append (case log2
                          ((-1) "\\breve")
                          ((-2) "\\longa")
@@ -429,14 +427,15 @@ Otherwise, return #f."
                ;; '<' (notepitch | drumpitch)* '>" duration post_events
                (let ((duration (duration->lily-string (ly:music-property
                                                        (car chord-elements)
-                                                       'duration)
-                                                      #:remember #t)))
+                                                       'duration))))
                  ;; Format duration first so that it does not appear on
                  ;; chord elements
                  (format #f "< ~{~a ~}>~a~:{~:[-~;~]~a~^ ~}"
-                         (map-in-order (lambda (music)
-                                         (music->lily-string music parser))
-                                       chord-elements)
+                         (parameterize ((*omit-duration* #t))
+                                       (map-in-order
+                                        (lambda (music)
+                                          (music->lily-string music parser))
+                                        chord-elements))
                          duration
                          (map-in-order (lambda (music)
                                          (list
@@ -444,8 +443,7 @@ Otherwise, return #f."
                                           (music->lily-string music parser)))
                                        other-elements))))
               ((ly:duration? chord-repeat)
-               (let ((duration (duration->lily-string chord-repeat
-                                                      #:remember #t)))
+               (let ((duration (duration->lily-string chord-repeat)))
                  (format #f "q~a~:{~:[-~;~]~a~^ ~}"
                          duration
                          (map-in-order (lambda (music)
@@ -467,8 +465,7 @@ Otherwise, return #f."
 
 (define-display-method MultiMeasureRestMusic (mmrest parser)
   (format #f "R~a~{~a~^ ~}"
-          (duration->lily-string (ly:music-property mmrest 'duration)
-                                 #:remember #t)
+          (duration->lily-string (ly:music-property mmrest 'duration))
           (map-in-order (lambda (music)
                           (music->lily-string music parser))
                         (ly:music-property mmrest 'articulations))))
@@ -504,8 +501,7 @@ Otherwise, return #f."
                                         (make-string (1- (* -1 octave-check)) #\,))
                                        (else "")))
                 ""))
-          (duration->lily-string (ly:music-property event 'duration)
-                                 #:remember #t)
+          (duration->lily-string (ly:music-property event 'duration))
           (if ((make-music-type-predicate 'RestEvent) event)
               "\\rest" "")
           (map-in-order (lambda (event)
@@ -519,19 +515,15 @@ Otherwise, return #f."
          (simple-note->lily-string note parser))
         ((not (null? (ly:music-property note 'drum-type))) ;; drum
          (format #f "~a~a~{~a~}" (ly:music-property note 'drum-type)
-                 (duration->lily-string (ly:music-property note 'duration)
-                                        #:remember #t)
+                 (duration->lily-string (ly:music-property note 'duration))
                  (map-in-order (lambda (event)
                                  (music->lily-string event parser))
                                (ly:music-property note 'articulations))))
         (else
          ;; pure duration
-         ;; FIXME: { c4 c4 4 4 } must not be output as { c4 c 4 4 }
-         ;; quite tricky to do.  Do it when outputting sequences?
          (format #f "~a~{~a~}"
                  (duration->lily-string (ly:music-property note 'duration)
-                                        #:force-duration #t
-                                        #:remember #t)
+                                        #:force-duration #t)
                  (map-in-order (lambda (event)
                                  (music->lily-string event parser))
                                (ly:music-property note 'articulations))))))
@@ -543,20 +535,17 @@ Otherwise, return #f."
   (if (not (null? (ly:music-property rest 'pitch)))
       (simple-note->lily-string rest parser)
       (format #f "r~a~{~a~}"
-              (duration->lily-string (ly:music-property rest 'duration)
-                                     #:remember #t)
+              (duration->lily-string (ly:music-property rest 'duration))
               (map-in-order (lambda (event)
                               (music->lily-string event parser))
                             (ly:music-property rest 'articulations)))))
 
 (define-display-method MultiMeasureRestEvent (rest parser)
-  (string-append "R" (duration->lily-string (ly:music-property rest 'duration)
-                                            #:remember #t)))
+  (string-append "R" (duration->lily-string (ly:music-property rest 'duration))))
 
 (define-display-method SkipEvent (rest parser)
   (format #f "s~a~{~a~}"
-          (duration->lily-string (ly:music-property rest 'duration)
-                                 #:remember #t)
+          (duration->lily-string (ly:music-property rest 'duration))
           (map-in-order (lambda (event)
                           (music->lily-string event parser))
                         (ly:music-property rest 'articulations))))
@@ -631,7 +620,7 @@ Otherwise, return #f."
             (if (null? bracket-stop) "" "]"))))
 
 (define-display-method LyricEvent (lyric parser)
-  (format "~a~{~a~^ ~}"
+  (format #f "~a~{~a~^ ~}"
           (let ((text (ly:music-property lyric 'text)))
             (if (or (string? text)
                     (eqv? (first text) simple-markup))
@@ -674,7 +663,6 @@ Otherwise, return #f."
           (and span (duration->lily-string span #:force-duration #t)))
          (scale (/ num den))
          (time-scale (*time-scale*)))
-    (*previous-duration* #f)
     (let ((result
            (parameterize ((*force-line-break* #f)
                           (*time-scale* (* time-scale scale)))
@@ -683,7 +671,6 @@ Otherwise, return #f."
                                  num
                                  formatted-span
                                  (music->lily-string (ly:music-property times 'element) parser)))))
-      (*previous-duration* #f)
       result)))
 
 (define-display-method RelativeOctaveMusic (m parser)
@@ -1104,7 +1091,8 @@ Otherwise, return #f."
 (define-display-method LyricCombineMusic (expr parser)
   (format #f "\\lyricsto ~s ~a"
           (ly:music-property expr 'associated-context)
-          (parameterize ((*explicit-mode* #f))
+          (parameterize ((*explicit-mode* #f)
+                         (*omit-duration* #t))
                         (music->lily-string (ly:music-property expr 'element) parser))))
 
 ;; \addlyrics
@@ -1124,7 +1112,8 @@ Otherwise, return #f."
                         (format #f "~a~a \\addlyrics ~a"
                                 (music->lily-string ?note-sequence parser)
                                 (new-line->lily-string)
-                                (parameterize ((*explicit-mode* #f))
+                                (parameterize ((*explicit-mode* #f)
+                                               (*omit-duration* #t))
                                               (music->lily-string ?lyric-sequence parser)))
                         #f)))
 
index 6d38fff7844d0b3a4a506a887e1c27e3396beeca..8d8645b36b140088e0dfc7ea667077226be295db 100644 (file)
 ;;; Display methods are stored in the `display-methods' property of each music
 ;;; type.
 ;;;
-;;; - `music->lily-string' return a string describing a music expression using
-;;; LilyPond notation. The special variables *indent*, *previous-duration*,
-;;; and *force-duration* influence the indentation level and the display of
-;;; music durations.
+;;; - `music->lily-string' return a string describing a music
+;;; expression using LilyPond notation. The special variables *indent*
+;;; and *omit-duration* influence the indentation level and the
+;;; display of music durations.
 ;;;
 ;;; - `with-music-match' can be used to destructure a music expression, extracting
 ;;; some interesting music properties.
@@ -282,11 +282,8 @@ inside body."
 ;;; indentation
 (define-public *indent* (make-parameter 0))
 
-;;; set to #t to force duration printing
-(define-public *force-duration* (make-parameter #f))
-
-;;; last duration found
-(define-public *previous-duration* (make-parameter (ly:make-duration 2)))
+;;; set to #t to omit duration printing
+(define-public *omit-duration* (make-parameter #f))
 
 ;;; Set to #t to force a line break with some kinds of expressions (eg sequential music)
 (define *force-line-break* (make-parameter #t))
index 1b679a7228ab964d4cd2bb1de76ccc5aef4c8bc6..611879ae8b517ec9bb23d3507d1cdd3b10af84b6 100644 (file)
@@ -234,8 +234,7 @@ which often can be read back in order to generate an equivalent expression."
   "Display the music expression using LilyPond syntax"
   (memoize-clef-names supported-clefs)
   (parameterize ((*indent* 0)
-                 (*previous-duration* (ly:make-duration 2))
-                 (*force-duration* force-duration))
+                 (*omit-duration* #f))
                 (display (music->lily-string expr parser) port)
                 (newline port)))
 
index db4fb9b022255a7bc277706ff1774f4bb7fefa61..96456b1b77fb436ae4a90b6b7ae851c30fa01678 100644 (file)
 (define-public (grob::is-live? grob)
   (pair? (ly:grob-basic-properties grob)))
 
+(define-public (grob::name grob)
+  "Return the name of the grob @var{grob} as a symbol."
+  (assq-ref (ly:grob-property grob 'meta) 'name))
+
+(define-public (grob::rhythmic-location grob)
+  "Return a pair consisting of the measure number and moment within
+   the measure of grob @var{grob}."
+  (let* (; all grobs support either spanner- or item-interface
+         (item (if (grob::has-interface grob 'spanner-interface)
+                   (ly:spanner-bound grob LEFT)
+                   grob))
+         (col (ly:item-get-column item)))
+    (if (ly:grob? col)
+        (ly:grob-property col 'rhythmic-location)
+        '())))
+
+(define-public (grob::when grob)
+  "Return the global timestep (a moment) of grob @var{grob}."
+  (let* (; all grobs support either spanner- or item-interface
+         (item (if (grob::has-interface grob 'spanner-interface)
+                   (ly:spanner-bound grob LEFT)
+                   grob))
+         (col (ly:item-get-column item)))
+    (if (ly:grob? col)
+        (ly:grob-property col 'when)
+        '())))
+
 (define-public (make-stencil-boxer thickness padding callback)
   "Return function that adds a box around the grob passed as argument."
   (lambda (grob)
@@ -1367,7 +1394,7 @@ parent or the parent has no setting."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; measure counter
 
-(define (measure-counter-stencil grob)
+(define-public (measure-counter-stencil grob)
   "Print a number for a measure count.  The number is centered using
 the extents of @code{BreakAlignment} grobs associated with the left and
 right bounds of a @code{MeasureCounter} spanner.  Broken measures are