]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'translation' of ssh://git.sv.gnu.org/srv/git/lilypond into translation
authorTill Paala <till.rettig@gmx.de>
Thu, 17 May 2012 17:31:02 +0000 (20:31 +0300)
committerTill Paala <till.rettig@gmx.de>
Thu, 17 May 2012 17:31:02 +0000 (20:31 +0300)
48 files changed:
.mailmap
Documentation/contributor/build-notes.itexi
Documentation/contributor/release-work.itexi
Documentation/de/notation/input.itely
Documentation/es/notation/input.itely
Documentation/es/notation/rhythms.itely
Documentation/es/notation/vocal.itely
Documentation/fr/notation/input.itely
Documentation/ja/notation/input.itely
Documentation/ly-examples/aucun-snippet.ly
Documentation/notation/input.itely
Documentation/notation/rhythms.itely
Documentation/notation/vocal.itely
Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly [new file with mode: 0644]
Documentation/web/introduction.itexi
Documentation/web/server/tweets.xml
input/regression/chord-tremolo-scaled-durations.ly
input/regression/collision-seconds.ly
input/regression/display-lily-tests.ly
input/regression/footnote-auto-numbering-page-reset.ly
input/regression/footnote-auto-numbering-vertical-order.ly
input/regression/footnote-auto-numbering.ly
input/regression/footnote-break-visibility.ly
input/regression/footnote-footer-padding.ly
input/regression/footnote-spanner.ly
input/regression/footnote.ly
input/regression/in-note.ly
input/regression/time-signature-settings-by-staff.ly
lily/include/staff-symbol-referencer.hh
lily/lexer.ll
lily/parser.yy
lily/side-position-interface.cc
lily/slur-configuration.cc
lily/staff-symbol-referencer.cc
lily/tie-formatting-problem.cc
lily/tuplet-bracket.cc
ly/engraver-init.ly
ly/music-functions-init.ly
ly/performer-init.ly
ly/string-tunings-init.ly
po/README
po/fr.po
python/convertrules.py
scm/define-music-display-methods.scm
scm/define-music-types.scm
stepmake/stepmake/po-targets.make
stepmake/stepmake/podir-targets.make
tex/txi-nl.tex [new file with mode: 0644]

index ac9bad10287b1bc6e11547a5c74d5f1d12c622eb..a8ae3180ee8e9461f7c339ce3e30abafa74cf437 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -2,10 +2,13 @@ Andrew Hawryluk <ahawryluk@gmail.com>
 Andrew Hawryluk <andrew@obi-wan.(none)>
 Andrew Wilson <andrew@rivendale.net>
 Arjan Bos <arjan.bos@hetnet.nl>
+Benkő Pál <benko.pal@gmail.com>
 Boris Shingarov <b1@shingarov.com>
 Boris Shingarov <shingarov@gmail.com>
 Carl D. Sorensen <carldsorensen>
 Carl D. Sorensen <c_sorensen@byu.edu>
+Carl D. Sorensen <carl.d.sorensen@gmail.com>
+Colin Campbell <colinpkcampbell@gmail.com>
 Chris Snyder <csnyder@adoromusicpub.com>
 Damien Heurtebise <famille.heurtebise@free.fr>
 Daniel Johnson <il.basso.buffo@gmail.com>
@@ -102,6 +105,9 @@ James Lowe <james@james-lilybunto.(none)>
 James Lowe <james@james-lily.(none)>
 James Lowe <james.lowe@datacore.com>
 James Lowe <jlowe@james-ubuntu.(none)>
+Janek Warchoł <janek.lilypond@gmail.com>
+Janek Warchoł <lemniskata.bernoullego@gmail.com>
+Janek Warchoł <lemniskata.bernoulliego@gmail.com>
 Jan Nieuwenhuizen <jan>
 Jan Nieuwenhuizen <janneke>
 Jan Nieuwenhuizen <janneke@gnu.org>
index a1e258cc91a369eb8b65d06c70a8e2efe411f3d6..7891063c202e5eaa50e6ca00bd577f6f32becfc7 100644 (file)
@@ -15,6 +15,7 @@ chapter.}
 * Doc build::
 * Website build::
 * Building an Ubuntu distro::
+* Building GUB::
 @end menu
 
 
@@ -1501,3 +1502,68 @@ Test iso by installing in VM and repeating steps above for
 getting source files and building lp and docs.
 
 @end enumerate
+
+@node Building GUB
+@section Building GUB
+
+GUB - the Grand Unified Builder - is used to build the release
+versions of LilyPond.  For background information, see
+@ref{Grand Unified Builder (GUB)}.  The simplest way to set up a
+GUB build environment is to use a virtual machine with LilyDev
+(@ref{LilyDev}).  Follow the instructions on that page to set this
+up.  Make sure that your virtual machine has enough disk space -
+a GUB installation takes over 30 GBytes of disk space, and if you
+allocate too little, it will fail during the setting up stage and
+you will have to start again.  64 GBytes should be sufficient.
+
+While GUB is being built, any interruptions are likely to make it
+almost impossible to restart.  If at all possible, leave the build
+to continue uniterrupted.
+
+Download GUB and start the set up:
+
+@example
+git clone git://github.com/gperciva/gub/gub.git
+cd gub
+make bootstrap
+@end example
+
+This downloads and installs a number of packages.  You may find
+some fail during download and you will need to download them
+manually.  For example, the perl archive.  If this happens,
+download it from
+@uref{http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz}, saving the
+archive to @file{gub/downloads/perl/}.  Continue the set up with:
+
+@example
+make bootstrap
+@end example
+
+Once this has completed successfully, you can build the LilyPond
+release package.  However, this uses an archived version of the
+regression tests, so it is better to download this first.
+Download the test output from lilypond.org:
+
+@smallexample
+@uref{http://lilypond.org/download/binaries/test-output/lilypond-2.15.33-1.test-output.tar.bz2}
+@end smallexample
+
+Copy the tarball into @file{gub/regtests/}, and tell the build
+system that you have done this:
+
+@example
+touch regtests/ignore
+@end example
+
+Now start the GUB build:
+
+@example
+make lilypond
+@end example
+
+That's it.  This will build LilyPond from current master.  To build
+the current unstable release, run:
+
+@example
+make LILYPOND_BRANCH=release/unstable lilypond
+@end example
index baa68a85e468768c8defbf0d24412aaba1570134..4828d1ae0ea348b461df37346347411e7177fb93 100644 (file)
@@ -83,6 +83,7 @@ checkout displays modified files, you might want to run @code{git reset
 git fetch
 git checkout origin/release/unstable
 git merge origin
+make po-replace
 vi Documentation/web/news-front.itexi Documentation/web/news.itexi
 @end example
 
@@ -90,6 +91,7 @@ vi Documentation/web/news-front.itexi Documentation/web/news.itexi
 Commit, push, switch back to master (or wherever else):
 
 @example
+git commit -m "PO: update template." po/lilypond.pot
 git commit -m "Release: update news." Documentation/web/
 git push origin HEAD:release/unstable
 git checkout master
@@ -297,6 +299,13 @@ various websites, so be brief.
 @item
 Run convert-ly on all files, bump parser minimum version.
 
+@item
+Update lilypond.pot:
+
+@example
+make po-replace
+@end example
+
 @item
 Make directories on lilypond.org:
 
@@ -360,8 +369,8 @@ Disallow: /doc/v2.CURRENT-DEVELOPMENT/
 
 @itemize
 @item
-submit pots for translation: send url of tarball to
-translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
+submit po template for translation: send url of tarball to
+coordinator@@translationproject.org, mentioning lilypond-VERSION.pot
 
 @item
 update links to distros providing lilypond packages?  link in:
index ba01fc60a3bf2b55fc69dc799c0c4fd178a6b68e..33a06a52d88c961303374ec99073c284fd67f2db 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.15.32"
+@c \version "2.15.39"
 
 @c Translators: Till Paala
 
@@ -1127,10 +1127,10 @@ werden, auf den sich die Fußnote bezieht.
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote #'(0.5 . -2) #'NoteHead
+    <>\footnote #'(0.5 . -2) #'NoteHead
       \markup { Die erste Note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'NoteHead
+    <>\footnote #'(0.5 . 1) #'NoteHead
       \markup { Die dritte Note }
     e c4 d4
   }
@@ -1147,9 +1147,9 @@ stehen:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote #'(1 . -1.25) "Hier ein C"
-    es-\footnote #'(2 . -0.25) \markup { \italic "Ein Es" }
-    g-\footnote #'(2 . 3) \markup { \bold "Das ist ein G" }
+    c\footnote #'(1 . -1.25) "Hier ein C"
+    es\footnote #'(2 . -0.25) \markup { \italic "Ein Es" }
+    g\footnote #'(2 . 3) \markup { \bold "Das ist ein G" }
     >1
   }
 }
@@ -1167,25 +1167,25 @@ Tagline und Copyright gezeigt wird.
 \book {
   \header { copyright = \markup { "Copyright 1970" } }
   \relative c' {
-    \footnote #'(-3 . 0) #'DynamicText
+    <>\footnote #'(-3 . 0) #'DynamicText
       \markup { \bold Forte }
 
-    \footnote #'(0 . 1.5) #'Slur
+    <>\footnote #'(0 . 1.5) #'Slur
       \markup { Ein Bogen }
     a'4\f(
 
-    \footnote #'(0 . -2) #'Beam
+    <>\footnote #'(0 . -2) #'Beam
       \markup { Balken }
     b8)[ e]
 
-    \footnote #'(1 . -1) #'Stem
+    <>\footnote #'(1 . -1) #'Stem
       \markup  { \teeny { Das ist ein Hals } }
     c4
 
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
+    <>\footnote #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { Ein Warnungsversetzungszeichen }
 
-    \footnote #'(0.5 . -0.5) #'TextScript
+    <>\footnote #'(0.5 . -0.5) #'TextScript
       \markup \italic { Langsamer hier }
     dis?4_"rit."
   }
@@ -1228,13 +1228,13 @@ Wie auch bei automatischen Fußnoten muss der Befehl @code{\footnote}
 \book {
   \header { tagline = ##f }
   \relative c' {
-    a'4-\footnote
+    a'4\footnote
           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. Die erste Note" }
     b8
-    e-\footnote
+    e\footnote
           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. Die zweite Note"
     c4
-    d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+    d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
   }
 }
 @end lilypond
@@ -1246,10 +1246,10 @@ Fußnoten für Akkordnoten werden wie folgt notiert:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote "1" #'(1 . -1.25) "1. C"
-    es-\footnote
+    c\footnote "1" #'(1 . -1.25) "1. C"
+    es\footnote
        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
-    g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+    g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
     >1
   }
 }
@@ -1266,36 +1266,36 @@ Position der Fußnotentexte zu Tagline und Copyright anzeigen:
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote
+    <>\footnote
       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
       \markup { 1. \bold Forte }
 
-    \footnote
+    <>\footnote
       \markup { \teeny b } #'(0 . 1.5) #'Slur
       \markup { b. Ein Bogen }
     a'4\f(
 
-    \footnote
+    <>\footnote
       \markup { \teeny 3 } #'(0 . -2) #'Beam
       \markup { 3. Balken }
     b8)[ e]
 
-    \footnote
+    <>\footnote
       \markup { 4 } #'(1 . -1) #'Stem
       \markup  { \bold 4. { Das ist ein Hals } }
     c4
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "sharp (v)" } #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { v. Ein Warnungsversetzungszeichen }
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
       \markup \italic { a. Langsamer hier }
     dis?4_"rit."
 
     \breathe
-    \footnote
+    <>\footnote
       \markup { \teeny \musicglyph #"rests.4" } #'(1.5 . -0.25) #'BreathingSign
       \markup { \null }
   }
index 4668d0a1407815a238c43d41172e2ebdef7c6ebd..c7baa3540617510e0ee8e6f2efb5e44113e36317 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: c610645cc9a77cba1a2798280965db142d649ac5
+    Translation of GIT committish: 9ec7c79078944a94e2e9abbf8e1b3299c9706389
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.32"
+@c \version "2.15.39"
 
 @node Entrada y salida generales
 @chapter Entrada y salida generales
@@ -1107,10 +1107,10 @@ al que se adjunta la nota al pie:
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote #'(0.5 . -2) #'NoteHead
+    <>\footnote #'(0.5 . -2) #'NoteHead
       \markup { The first note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'NoteHead
+    <>\footnote #'(0.5 . 1) #'NoteHead
       \markup { The third note }
     e c4 d4
   }
@@ -1126,9 +1126,9 @@ quiere adjuntar la nota al pie como un @code{TextScript}:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote #'(1 . -1.25) "Here is a C"
-    es-\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
-    g-\footnote #'(2 . 3) \markup { \bold "This is a G" }
+    c\footnote #'(1 . -1.25) "Here is a C"
+    es\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
+    g\footnote #'(2 . 3) \markup { \bold "This is a G" }
     >1
   }
 }
@@ -1146,25 +1146,25 @@ línea informativa y la línea de copyright.
 \book {
   \header { copyright = \markup { "Copyright 1970" } }
   \relative c' {
-    \footnote #'(-3 . 0) #'DynamicText
+    <>\footnote #'(-3 . 0) #'DynamicText
       \markup { \bold Forte }
 
-    \footnote #'(0 . 1.5) #'Slur
+    <>\footnote #'(0 . 1.5) #'Slur
       \markup { A slur }
     a'4\f(
 
-    \footnote #'(0 . -2) #'Beam
+    <>\footnote #'(0 . -2) #'Beam
       \markup { Beam }
     b8)[ e]
 
-    \footnote #'(1 . -1) #'Stem
+    <>\footnote #'(1 . -1) #'Stem
       \markup  { \teeny { This is a stem } }
     c4
 
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
+    <>\footnote #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { A cautionary accidental }
 
-    \footnote #'(0.5 . -0.5) #'TextScript
+    <>\footnote #'(0.5 . -0.5) #'TextScript
       \markup \italic { Slow Down }
     dis?4_"rit."
   }
@@ -1206,13 +1206,13 @@ que la nota al pie está anotando y adjuntada como un
 \book {
   \header { tagline = ##f }
   \relative c' {
-    a'4-\footnote
+    a'4\footnote
           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
     b8
-    e-\footnote
+    e\footnote
           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
     c4
-    d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+    d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
   }
 }
 @end lilypond
@@ -1224,10 +1224,10 @@ Para anotar notas de acordes con notas al pie manuales:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote "1" #'(1 . -1.25) "1. C"
-    es-\footnote
+    c\footnote "1" #'(1 . -1.25) "1. C"
+    es\footnote
        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
-    g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+    g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
     >1
   }
 }
@@ -1245,37 +1245,37 @@ informativa a la de copyright:
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote
+    <>\footnote
       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
       \markup { 1. \bold Forte }
 
-    \footnote
+    <>\footnote
       \markup { \teeny b } #'(0 . 1.5) #'Slur
       \markup { b. A slur }
     a'4\f(
 
-    \footnote
+    <>\footnote
       \markup { \teeny 3 } #'(0 . -2) #'Beam
       \markup { 3. Beam }
     b8)[ e]
 
-    \footnote
+    <>\footnote
       \markup { 4 } #'(1 . -1) #'Stem
       \markup  { \bold 4. { This is a stem } }
     c4
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "sharp (v)" }
           #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { v. A cautionary accidental }
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
       \markup \italic { a. Slow Down }
     dis?4_"rit."
 
     \breathe
-    \footnote
+    <>\footnote
       \markup { \teeny \musicglyph #"rests.4" }
           #'(1.5 . -0.25) #'BreathingSign
       \markup { \null }
index c72e7ebe9a3e2bdfb82a20fac719256f63680dd4..a2d1b87c31523c28b3d98820e3c2f3b74d9e5131 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 6cc24e4a3246f1daaf79db3bec97a4a4541b5149
+    Translation of GIT committish: 0757febe2084fd8507334987b6f6b524888247c7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -328,7 +328,10 @@ un factor @code{N/M} añadiendo @code{*N/M} (o @code{*N} si @code{M} es
 silencios que se producen, pero la duración alterada se usará para
 calcular la posición dentro del compás y para establecer la duración
 en la salida MIDI.  Los factores de multiplicación se pueden combinar
-en la forma @code{*L*M/N}.
+en la forma @code{*L*M/N}.  Los factores son parte de la duración: si
+no especificamos una duración para las notas siguientes, la duración
+por omisión que se toma de la nota anterior incluye cualquier factor
+de escala que se haya aplicado.
 
 En el siguiente ejemplo las tres primeras notas duran exactamente dos
 partes, pero no se imprime ningún corchete de tresillo.
@@ -336,16 +339,16 @@ partes, pero no se imprime ningún corchete de tresillo.
 @lilypond[quote,relative=2,verbatim]
 \time 2/4
 % Alter durations to triplets
-a4*2/3 gis4*2/3 a4*2/3
+a4*2/3 gis a
 % Normal durations
-a4 a4
+a4 a
 % Double the duration of chord
 <a d>4*2
 % Duration of quarter, appears like sixteenth
 b16*4 c4
 @end lilypond
 
-La duración de las notas espaciadoras también se puede modificar
+La duración de los silencios espaciadores también se puede modificar
 mediante un multiplicador.  Esto es útil para saltar muchos compases,
 como por ejemplo @code{s1*23}.
 
@@ -359,8 +362,8 @@ De la misma forma, se pueden comprimir por una fracción trozos de
 música más largos, como si cada nota, acorde o silencio tuviera la
 fracción como multiplicador.  Esto dejará intacta la apariencia de la
 @emph{música}, pero la duración interna de las notas se multiplicará
-por la fracción @emph{numerador}/@emph{denominador}.  Los espacios que
-rodean el punto son necesarios.  He aquí un ejemplo que muestra cómo
+por la fracción @emph{numerador}/@emph{denominador}.
+He aquí un ejemplo que muestra cómo
 se puede comprimir y expandir la música:
 
 @lilypond[quote,relative=2,verbatim]
@@ -368,11 +371,11 @@ se puede comprimir y expandir la música:
 % Normal durations
 <c a>4 c8 a
 % Scale music by *2/3
-\scaleDurations #'(2 . 3) {
+\scaleDurations 2/3 {
   <c a f>4. c8 a f
 }
 % Scale music by *2
-\scaleDurations #'(2 . 1) {
+\scaleDurations 2/1 {
   <c' a>4 c8 b
 }
 @end lilypond
@@ -1090,8 +1093,8 @@ existentes se pueden cambiar, o pueden añadirse valores nuevos:
   \new Staff {
     \relative c' {
       \overrideTimeSignatureSettings
-        #'(4 . 4)  % timeSignatureFraction
-        #'(1 . 4)  % baseMomentFraction
+        4/4        % timeSignatureFraction
+        1/4        % baseMomentFraction
         #'(3 1)    % beatStructure
         #'()       % beamExceptions
       \time 4/4
@@ -1106,11 +1109,11 @@ existentes se pueden cambiar, o pueden añadirse valores nuevos:
 @enumerate
 
 @item
-@code{@var{timeSignatureFraction}}, una pareja de Scheme que describe
+@code{@var{timeSignatureFraction}}, una fracción que describe
 el tipo de compás.
 
 @item
-@code{@var{baseMomentFraction}}, una pareja de Scheme que contiene el
+@code{@var{baseMomentFraction}}, una fracción que contiene el
 numerador y denominador de la unidad de medida básica de ese tipo de
 compás.
 
@@ -1136,8 +1139,8 @@ antes de la llamada a @code{\overrideTimeSignatureSettings}:
   \relative c' {
     % This call will fail because the context isn't yet instantiated
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1145,8 +1148,8 @@ antes de la llamada a @code{\overrideTimeSignatureSettings}:
     \repeat unfold 7 { c8 } |
     % This call will succeed
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1168,13 +1171,13 @@ compás se pueden restaurar a los valores originales:
   \relative c' {
     \repeat unfold 8 { c8 } |
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
-    \revertTimeSignatureSettings #'(4 . 4)
+    \revertTimeSignatureSettings 4/4
     \time 4/4
     \repeat unfold 8 { c8 } |
   }
@@ -1192,8 +1195,8 @@ moviendo el @code{Timing_translator} y el
   \new StaffGroup <<
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(3 1)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1201,8 +1204,8 @@ moviendo el @code{Timing_translator} y el
      }
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(1 3)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1630,14 +1633,14 @@ de barrado automático.
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(9 . 8)
-    \scaleDurations #'(2 . 3)
+    \set Staff.timeSignatureFraction = 9/8
+    \scaleDurations 2/3
       \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(10 . 8)
-    \scaleDurations #'(3 . 5) {
+    \set Staff.timeSignatureFraction = 10/8
+    \scaleDurations 3/5 {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] } |
       c4. c \times 2/3 { c8[ c c] } c4
@@ -2351,8 +2354,8 @@ automático para una indicación de compás se describe en
 <<
   \new Staff {
     \overrideTimeSignatureSettings
-      #'(3 . 4)         % timeSignatureFraction
-      #'(1 . 8)         % baseMomentFraction
+      3/4               % timeSignatureFraction
+      1/8               % baseMomentFraction
       #'(1 5)           % beatStructure
       #'()             % beamExceptions
     \time 3/4
@@ -3410,7 +3413,7 @@ se convierte en:
 Otra opción es cambiar explícitamente la duración musical:
 
 @example
-\acciaccatura @{ \scaleDurations #' (1 . 2) @{ c'8[ d' e' f' g'] @} @}
+\acciaccatura @{ \scaleDurations 1/2 @{ c'8[ d' e' f' g'] @} @}
 @end example
 
 Véase @ref{Escalar las duraciones}.
index 2eaf82a795590b53f538f7d1a3809015465413a7..6b500db22e9c03569ab8f7effcbab15064f7c11a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: f71ede90de06fdc16dad9ed75f38558efe819080
+    Translation of GIT committish: a65e32f0ecbd7b9794a03894162cbe2d2501b934
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -2015,7 +2015,7 @@ muestra cómo producir dicha salida en LilyPond.
 
 @lilypond[ragged-right,quote,verbatim]
 melody = \relative c' {
-  c c c c | d d d d
+  c4 c c c | d d d d
 }
 
 text = \lyricmode {
@@ -2034,7 +2034,7 @@ text = \lyricmode {
 \markup {
   \fill-line {
     \hspace #0.1 % moves the column off the left margin;
-        % can be removed if space on the page is tight
+     % can be removed if space on the page is tight
      \column {
       \line { \bold "2."
         \column {
@@ -2042,7 +2042,7 @@ text = \lyricmode {
           "It has two lines."
         }
       }
-      \hspace #0.1 % adds vertical spacing between verses
+      \vspace #0.1 % adds vertical spacing between verses
       \line { \bold "3."
         \column {
           "This is verse three."
@@ -2050,17 +2050,15 @@ text = \lyricmode {
         }
       }
     }
-    \hspace #0.1  % adds horizontal spacing between columns;
-        % if they are still too close, add more " " pairs
-        % until the result looks good
-     \column {
+    \hspace #0.1 % adds horizontal spacing between columns;
+    \column {
       \line { \bold "4."
         \column {
           "This is verse four."
           "It has two lines."
         }
       }
-      \hspace #0.1 % adds vertical spacing between verses
+      \vspace #0.1 % adds vertical spacing between verses
       \line { \bold "5."
         \column {
           "This is verse five."
@@ -2069,11 +2067,12 @@ text = \lyricmode {
       }
     }
   \hspace #0.1 % gives some extra space on the right margin;
-      % can be removed if page space is tight
+  % can be removed if page space is tight
   }
 }
 @end lilypond
 
+
 @seealso
 Referencia de funcionamiento interno:
 @rinternals{LyricText},
index 182c8e54b2c5f9d829bd125f90f91e8c46450138..754a39b2b8576fd52cacbfeb73073b8e09fbcecc 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.32"
+@c \version "2.15.39"
 
 @c Translators: Jean-Charles Malahieude, Valentin Villenave
 
@@ -1154,10 +1154,10 @@ l'objet auquel la note est attachée.
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote #'(0.5 . -2) #'NoteHead
+    <>\footnote #'(0.5 . -2) #'NoteHead
       \markup { La première note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'NoteHead
+    <>\footnote #'(0.5 . 1) #'NoteHead
       \markup { La troisième note }
     e c4 d4
   }
@@ -1174,9 +1174,9 @@ le @code{TextScript} fait référence.
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote #'(1 . -1.25) "Voici un do"
-    es-\footnote #'(2 . -0.25) \markup { \italic "Un mi bémol" }
-    g-\footnote #'(2 . 3) \markup { \bold "Ceci est un sol" }
+    c\footnote #'(1 . -1.25) "Voici un do"
+    es\footnote #'(2 . -0.25) \markup { \italic "Un mi bémol" }
+    g\footnote #'(2 . 3) \markup { \bold "Ceci est un sol" }
     >1
   }
 }
@@ -1195,25 +1195,25 @@ et le pied de page.
 \book {
   \header { copyright = \markup { "Copyright 1970" } }
   \relative c' {
-    \footnote #'(-3 . 0) #'DynamicText
+    <>\footnote #'(-3 . 0) #'DynamicText
       \markup { \bold Forte }
 
-    \footnote #'(0 . 1.5) #'Slur
+    <>\footnote #'(0 . 1.5) #'Slur
       \markup { A slur }
     a'4\f(
 
-    \footnote #'(0 . -2) #'Beam
+    <>\footnote #'(0 . -2) #'Beam
       \markup { Beam }
     b8)[ e]
 
-    \footnote #'(1 . -1) #'Stem
+    <>\footnote #'(1 . -1) #'Stem
       \markup  { \teeny { This is a stem } }
     c4
 
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
+    <>\footnote #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { A cautionary accidental }
 
-    \footnote #'(0.5 . -0.5) #'TextScript
+    <>\footnote #'(0.5 . -0.5) #'TextScript
       \markup \italic { Slow Down }
     dis?4_"rit."
   }
@@ -1261,13 +1261,13 @@ référence.
 \book {
   \header { tagline = ##f }
   \relative c' {
-    a'4-\footnote
+    a'4\footnote
           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
     b8
-    e-\footnote
+    e\footnote
           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
     c4
-    d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+    d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
   }
 }
 @end lilypond
@@ -1281,10 +1281,10 @@ l'annotation fait référence, comme s'il s'agissait d'une articulation.
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote "1" #'(1 . -1.25) "1. C"
-    es-\footnote
+    c\footnote "1" #'(1 . -1.25) "1. C"
+    es\footnote
        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
-    g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+    g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
     >1
   }
 }
@@ -1303,37 +1303,37 @@ et le pied de page.
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote
+    <>\footnote
       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
       \markup { 1. \bold Forte }
 
-    \footnote
+    <>\footnote
       \markup { \teeny b } #'(0 . 1.5) #'Slur
       \markup { b. A slur }
     a'4\f(
 
-    \footnote
+    <>\footnote
       \markup { \teeny 3 } #'(0 . -2) #'Beam
       \markup { 3. Beam }
     b8)[ e]
 
-    \footnote
+    <>\footnote
       \markup { 4 } #'(1 . -1) #'Stem
       \markup  { \bold 4. { This is a stem } }
     c4
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "sharp (v)" }
           #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { v. A cautionary accidental }
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
       \markup \italic { a. Slow Down }
     dis?4_"rit."
 
     \breathe
-    \footnote
+    <>\footnote
       \markup { \teeny \musicglyph #"rests.4" }
           #'(1.5 . -0.25) #'BreathingSign
       \markup { \null }
index eafb56fb51361451dcd335bc962c3ae0250ea6cd..a6f7fe2e830527b4939c9efc67e764048fe4d875 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.32"
+@c \version "2.15.39"
 
 
 @c Translators: Yoshiki Sawada
@@ -1106,10 +1106,10 @@ scoreTitleMarkup = \markup @{ \column @{
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote #'(0.5 . -2) #'NoteHead
+    <>\footnote #'(0.5 . -2) #'NoteHead
       \markup { The first note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'NoteHead
+    <>\footnote #'(0.5 . 1) #'NoteHead
       \markup { The third note }
     e c4 d4
   }
@@ -1125,9 +1125,9 @@ scoreTitleMarkup = \markup @{ \column @{
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote #'(1 . -1.25) "Here is a C"
-    es-\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
-    g-\footnote #'(2 . 3) \markup { \bold "This is a G" }
+    c\footnote #'(1 . -1.25) "Here is a C"
+    es\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
+    g\footnote #'(2 . 3) \markup { \bold "This is a G" }
     >1
   }
 }
@@ -1145,25 +1145,25 @@ scoreTitleMarkup = \markup @{ \column @{
 \book {
   \header { copyright = \markup { "Copyright 1970" } }
   \relative c' {
-    \footnote #'(-3 . 0) #'DynamicText
+    <>\footnote #'(-3 . 0) #'DynamicText
       \markup { \bold Forte }
 
-    \footnote #'(0 . 1.5) #'Slur
+    <>\footnote #'(0 . 1.5) #'Slur
       \markup { A slur }
     a'4\f(
 
-    \footnote #'(0 . -2) #'Beam
+    <>\footnote #'(0 . -2) #'Beam
       \markup { Beam }
     b8)[ e]
 
-    \footnote #'(1 . -1) #'Stem
+    <>\footnote #'(1 . -1) #'Stem
       \markup  { \teeny { This is a stem } }
     c4
 
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
+    <>\footnote #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { A cautionary accidental }
 
-    \footnote #'(0.5 . -0.5) #'TextScript
+    <>\footnote #'(0.5 . -0.5) #'TextScript
       \markup \italic { Slow Down }
     dis?4_"rit."
   }
@@ -1204,13 +1204,13 @@ scoreTitleMarkup = \markup @{ \column @{
 \book {
   \header { tagline = ##f }
   \relative c' {
-    a'4-\footnote
+    a'4\footnote
           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
     b8
-    e-\footnote
+    e\footnote
           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
     c4
-    d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+    d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
   }
 }
 @end lilypond
@@ -1222,10 +1222,10 @@ scoreTitleMarkup = \markup @{ \column @{
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote "1" #'(1 . -1.25) "1. C"
-    es-\footnote
+    c\footnote "1" #'(1 . -1.25) "1. C"
+    es\footnote
        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
-    g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+    g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
     >1
   }
 }
@@ -1243,37 +1243,37 @@ scoreTitleMarkup = \markup @{ \column @{
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote
+    <>\footnote
       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
       \markup { 1. \bold Forte }
 
-    \footnote
+    <>\footnote
       \markup { \teeny b } #'(0 . 1.5) #'Slur
       \markup { b. A slur }
     a'4\f(
 
-    \footnote
+    <>\footnote
       \markup { \teeny 3 } #'(0 . -2) #'Beam
       \markup { 3. Beam }
     b8)[ e]
 
-    \footnote
+    <>\footnote
       \markup { 4 } #'(1 . -1) #'Stem
       \markup  { \bold 4. { This is a stem } }
     c4
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "sharp (v)" }
           #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { v. A cautionary accidental }
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
       \markup \italic { a. Slow Down }
     dis?4_"rit."
 
     \breathe
-    \footnote
+    <>\footnote
       \markup { \teeny \musicglyph #"rests.4" }
           #'(1.5 . -0.25) #'BreathingSign
       \markup { \null }
index 9fb71c8c085b7326f221a36583d0d4e04effcdde..bcfc2f1dceaa5b6fc0a929fc7e1e748e185944a0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.18"
+\version "2.15.39"
 \include "example-header.ily"
 
 \paper {
@@ -187,9 +187,9 @@ triplumNotes = \relative c' {
   f8 f4 e8 d c f f f | % 1
        % the \scaleDurations command below makes 5 notes last the
        % duration of a dotted quarter
-       e8 c4 \scaleDurations #'(3 . 2) {       \times 4/5{e16[ d e d e]} } e8 f4 | % 2
+       e8 c4 \scaleDurations 3/2 {     \times 4/5{e16[ d e d e]} } e8 f4 | % 2
   g2. ~ g4. | % 3
-       f8 d4 f4. \scaleDurations #'(3 . 2) { \times 4/6{ g16[ f e f e f]}} % 4
+       f8 d4 f4. \scaleDurations 3/2 { \times 4/6{ g16[ f e f e f]}} % 4
        g8 g4 g4. e4. | % 5
        fis8 d4 e8\startGroup g4\stopGroup f8[ e d] | % 6
        c2. r4. | % 7
@@ -222,10 +222,10 @@ tenorNotes = \relative c {
                  %\set Staff.instrumentName = "Triplum"
                  \set Staff.instrumentName = \incipitTriplum
                        \set Staff.shortInstrumentName = "Tr."
-      \set Staff.timeSignatureFraction = #'(9 . 8)
-      \scaleDurations #'(2 . 3)
+      \set Staff.timeSignatureFraction = 9/8
+      \scaleDurations 2/3
                  \context Voice = "triplum" { \global \triplumNotes }
-%      \scaleDurations #'(2 . 3)
+%      \scaleDurations 2/3
 %                      \context Voice = "slashes" { \triplumSkips }
            \new Lyrics { \lyricsto "triplum" { \triplumWords }}
                >>
@@ -233,8 +233,8 @@ tenorNotes = \relative c {
                  %\set Staff.instrumentName = "Motetus"
                  \set Staff.instrumentName = \incipitMotetus
                        \set Staff.shortInstrumentName = "M."
-      \set Staff.timeSignatureFraction = #'(9 . 8)
-      \scaleDurations #'(2 . 3)
+      \set Staff.timeSignatureFraction = 9/8
+      \scaleDurations 2/3
                        \context Voice = "motetus" { \global \motetusNotes }
            \new Lyrics { \lyricsto "motetus" { \motetusWords }}
          >>
index 9294d5cd0838826481f4dd87fd5f90783cc0d074..76cffd15c2407804b79c06f639e86d11cb63acf4 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.32"
+@c \version "2.15.39"
 
 @node General input and output
 @chapter General input and output
@@ -1053,10 +1053,10 @@ footnote is being attached to:
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote #'(0.5 . -2) #'NoteHead
+    <>\footnote #'(0.5 . -2) #'NoteHead
       \markup { The first note }
     a'4 b8
-    \footnote #'(0.5 . 1) #'NoteHead
+    <>\footnote #'(0.5 . 1) #'NoteHead
       \markup { The third note }
     e c4 d4
   }
@@ -1071,9 +1071,9 @@ the note to which the footnote is being attached as a @code{TextScript}:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote #'(1 . -1.25) "Here is a C"
-    es-\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
-    g-\footnote #'(2 . 3) \markup { \bold "This is a G" }
+    c\footnote #'(1 . -1.25) "Here is a C"
+    es\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
+    g\footnote #'(2 . 3) \markup { \bold "This is a G" }
     >1
   }
 }
@@ -1090,25 +1090,25 @@ relative position of the footnotes to the tagline and copyright.
 \book {
   \header { copyright = \markup { "Copyright 1970" } }
   \relative c' {
-    \footnote #'(-3 . 0) #'DynamicText
+    <>\footnote #'(-3 . 0) #'DynamicText
       \markup { \bold Forte }
 
-    \footnote #'(0 . 1.5) #'Slur
+    <>\footnote #'(0 . 1.5) #'Slur
       \markup { A slur }
     a'4\f(
 
-    \footnote #'(0 . -2) #'Beam
+    <>\footnote #'(0 . -2) #'Beam
       \markup { Beam }
     b8)[ e]
 
-    \footnote #'(1 . -1) #'Stem
+    <>\footnote #'(1 . -1) #'Stem
       \markup  { \teeny { This is a stem } }
     c4
 
-    \footnote #'(0 . 0.5) #'AccidentalCautionary
+    <>\footnote #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { A cautionary accidental }
 
-    \footnote #'(0.5 . -0.5) #'TextScript
+    <>\footnote #'(0.5 . -0.5) #'TextScript
       \markup \italic { Slow Down }
     dis?4_"rit."
   }
@@ -1147,13 +1147,13 @@ Like automatic footnotes, manual @code{\footnote} commands must come
 \book {
   \header { tagline = ##f }
   \relative c' {
-    a'4-\footnote
+    a'4\footnote
           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
     b8
-    e-\footnote
+    e\footnote
           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
     c4
-    d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+    d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
   }
 }
 @end lilypond
@@ -1165,10 +1165,10 @@ To annotate chorded notes with manual footnotes:
   \header { tagline = ##f }
   \relative c' {
     <
-    c-\footnote "1" #'(1 . -1.25) "1. C"
-    es-\footnote
+    c\footnote "1" #'(1 . -1.25) "1. C"
+    es\footnote
        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
-    g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+    g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
     >1
   }
 }
@@ -1185,37 +1185,37 @@ the relative position of the footnotes to the tagline and copyright
 \book {
   \header { tagline = ##f }
   \relative c' {
-    \footnote
+    <>\footnote
       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
       \markup { 1. \bold Forte }
 
-    \footnote
+    <>\footnote
       \markup { \teeny b } #'(0 . 1.5) #'Slur
       \markup { b. A slur }
     a'4\f(
 
-    \footnote
+    <>\footnote
       \markup { \teeny 3 } #'(0 . -2) #'Beam
       \markup { 3. Beam }
     b8)[ e]
 
-    \footnote
+    <>\footnote
       \markup { 4 } #'(1 . -1) #'Stem
       \markup  { \bold 4. { This is a stem } }
     c4
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "sharp (v)" }
           #'(0 . 0.5) #'AccidentalCautionary
       \markup \italic { v. A cautionary accidental }
 
-    \footnote
+    <>\footnote
       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
       \markup \italic { a. Slow Down }
     dis?4_"rit."
 
     \breathe
-    \footnote
+    <>\footnote
       \markup { \teeny \musicglyph #"rests.4" }
           #'(1.5 . -0.25) #'BreathingSign
       \markup { \null }
index e223bab4124b6d54cedca6e31056b37e6c6a3521..872464c4eae7317674fb452cda20ac92e9fd4d4c 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.18"
+@c \version "2.15.39"
 
 @node Rhythms
 @section Rhythms
@@ -317,8 +317,10 @@ fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if @code{M}
 is 1) to the duration.  This will not affect the appearance of the
 notes or rests produced, but the altered duration will be used in
 calculating the position within the measure and setting the duration
-in the MIDI output.  Multiplying factors may be combined such as
-@code{*L*M/N}.
+in the MIDI output.  Multiplying factors may be combined like
+@code{*L*M/N}.  Factors are part of the duration: if
+you don't specify a duration for subsequent notes, the default
+duration taken from the preceding note includes any scaling factor.
 
 In the following example, the first three notes take up exactly
 two beats, but no triplet bracket is printed.
@@ -326,16 +328,16 @@ two beats, but no triplet bracket is printed.
 @lilypond[quote,relative=2,verbatim]
 \time 2/4
 % Alter durations to triplets
-a4*2/3 gis4*2/3 a4*2/3
+a4*2/3 gis a
 % Normal durations
-a4 a4
+a4 a
 % Double the duration of chord
 <a d>4*2
 % Duration of quarter, appears like sixteenth
 b16*4 c4
 @end lilypond
 
-The duration of spacing notes may also be modified by
+The duration of spacer rests may also be modified by
 a multiplier.  This is useful for skipping many measures, e.g.,
 @code{s1*23}.
 
@@ -349,20 +351,19 @@ Longer stretches of music may be compressed by a fraction in the
 same way, as if every note, chord or rest had the fraction as a
 multiplier.  This leaves the appearance of the music unchanged but
 the internal duration of the notes will be multiplied by the
-fraction @emph{num}/@emph{den}.  The spaces around the dot are
-required.  Here is an example showing how music can be compressed
-and expanded:
+fraction @emph{num}/@emph{den}.  Here is an example showing how music
+can be compressed and expanded:
 
 @lilypond[quote,relative=2,verbatim]
 \time 2/4
 % Normal durations
 <c a>4 c8 a
 % Scale music by *2/3
-\scaleDurations #'(2 . 3) {
+\scaleDurations 2/3 {
   <c a f>4. c8 a f
 }
 % Scale music by *2
-\scaleDurations #'(2 . 1) {
+\scaleDurations 2/1 {
   <c' a>4 c8 b
 }
 @end lilypond
@@ -1061,8 +1062,8 @@ be changed, or new default values can be added:
   \new Staff {
     \relative c' {
       \overrideTimeSignatureSettings
-        #'(4 . 4)  % timeSignatureFraction
-        #'(1 . 4)  % baseMomentFraction
+        4/4        % timeSignatureFraction
+        1/4        % baseMomentFraction
         #'(3 1)    % beatStructure
         #'()       % beamExceptions
       \time 4/4
@@ -1077,11 +1078,11 @@ be changed, or new default values can be added:
 @enumerate
 
 @item
-@code{@var{timeSignatureFraction}}, a Scheme pair describing the
+@code{@var{timeSignatureFraction}}, a fraction describing the
 time signature.
 
 @item
-@code{@var{baseMomentFraction}}, a Scheme pair containing the numerator
+@code{@var{baseMomentFraction}}, a fraction containing the numerator
 and denominator of the basic timing unit for the time signature.
 
 @item
@@ -1105,8 +1106,8 @@ instantiated or there must be music in the context before the
   \relative c' {
     % This call will fail because the context isn't yet instantiated
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1114,8 +1115,8 @@ instantiated or there must be music in the context before the
     \repeat unfold 7 { c8 } |
     % This call will succeed
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1138,13 +1139,13 @@ to the original values:
   \relative c' {
     \repeat unfold 8 { c8 } |
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
-    \revertTimeSignatureSettings #'(4 . 4)
+    \revertTimeSignatureSettings 4/4
     \time 4/4
     \repeat unfold 8 { c8 } |
   }
@@ -1161,8 +1162,8 @@ for different staves by moving the @code{Timing_translator} and the
   \new StaffGroup <<
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(3 1)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1170,8 +1171,8 @@ for different staves by moving the @code{Timing_translator} and the
      }
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(1 3)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1585,14 +1586,14 @@ affect the autobeaming rules.
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(9 . 8)
-    \scaleDurations #'(2 . 3)
+    \set Staff.timeSignatureFraction = 9/8
+    \scaleDurations 2/3
       \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(10 . 8)
-    \scaleDurations #'(3 . 5) {
+    \set Staff.timeSignatureFraction = 10/8
+    \scaleDurations 3/5 {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] } |
       c4. c \times 2/3 { c8[ c c] } c4
@@ -2291,8 +2292,8 @@ beaming settings for a time signature are described in
 <<
   \new Staff {
     \overrideTimeSignatureSettings
-      #'(3 . 4)         % timeSignatureFraction
-      #'(1 . 8)         % baseMomentFraction
+      3/4               % timeSignatureFraction
+      1/8               % baseMomentFraction
       #'(1 5)           % beatStructure
       #'()             % beamExceptions
     \time 3/4
@@ -3321,7 +3322,7 @@ becomes:
 Or explicitly change the musical duration:
 
 @example
-\acciaccatura @{ \scaleDurations #' (1 . 2) @{ c'8[ d' e' f' g'] @} @}
+\acciaccatura @{ \scaleDurations 1/2 @{ c'8[ d' e' f' g'] @} @}
 @end example
 
 See @ref{Scaling durations}.
index f2ea75ca29d57ef72cbe5acfff8bbd6c13896cc3..a8fcffa8473699f9888a05f8492b921d66803867 100644 (file)
@@ -1954,7 +1954,7 @@ output in LilyPond.
 
 @lilypond[ragged-right,quote,verbatim]
 melody = \relative c' {
-  c c c c | d d d d
+  c4 c c c | d d d d
 }
 
 text = \lyricmode {
@@ -1973,7 +1973,7 @@ text = \lyricmode {
 \markup {
   \fill-line {
     \hspace #0.1 % moves the column off the left margin;
-        % can be removed if space on the page is tight
+     % can be removed if space on the page is tight
      \column {
       \line { \bold "2."
         \column {
@@ -1981,7 +1981,7 @@ text = \lyricmode {
           "It has two lines."
         }
       }
-      \hspace #0.1 % adds vertical spacing between verses
+      \vspace #0.1 % adds vertical spacing between verses
       \line { \bold "3."
         \column {
           "This is verse three."
@@ -1989,17 +1989,15 @@ text = \lyricmode {
         }
       }
     }
-    \hspace #0.1  % adds horizontal spacing between columns;
-        % if they are still too close, add more " " pairs
-        % until the result looks good
-     \column {
+    \hspace #0.1 % adds horizontal spacing between columns;
+    \column {
       \line { \bold "4."
         \column {
           "This is verse four."
           "It has two lines."
         }
       }
-      \hspace #0.1 % adds vertical spacing between verses
+      \vspace #0.1 % adds vertical spacing between verses
       \line { \bold "5."
         \column {
           "This is verse five."
@@ -2008,7 +2006,7 @@ text = \lyricmode {
       }
     }
   \hspace #0.1 % gives some extra space on the right margin;
-      % can be removed if page space is tight
+  % can be removed if page space is tight
   }
 }
 @end lilypond
diff --git a/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly b/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly
new file mode 100644 (file)
index 0000000..66013ce
--- /dev/null
@@ -0,0 +1,39 @@
+\version "2.15.17"
+
+\header {
+  lsrtags = "workaround, contexts-and-engravers, contemporary-notation, rhythms"
+
+  doctitle = "Changing time signatures inside a polymetric section using \\scaleDurations"
+}
+
+
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
+}
+
+<<
+  \new Staff {
+    \scaleDurations 8/5 {
+      \time 6/8
+      \set Timing.measureLength = #(ly:make-moment 6 5)
+      b8 b b b b b
+      \time 2/4
+      \set Timing.measureLength = #(ly:make-moment 4 5)
+      b4 b
+    }
+  }
+  \new Staff {
+    \clef bass
+    \time 2/4
+    c2 d e f
+  }
+>>
index 1d9703ae6eba281466a1b18138f154531111b8d6..7088f9e31a355165453cccc5ca11b569550f0b26 100644 (file)
@@ -432,7 +432,7 @@ documentation explaining how to use these features -- we can
 achieve our goal with only a fraction of the individual effort.
 
 @item
-@qq{Gift culture}: the Free Software (or @qq{Open Source})
+@qq{Gift culture}: the Free Software
 movement has created many great software projects, such as
 @uref{http://kernel.org/, GNU/Linux},
 @uref{http://www.getfirefox.com/, Mozilla Firefox}, and
@@ -441,7 +441,7 @@ benefitted from these projects, some developers want to @qq{give
 back} to the community.
 
 @item
-Work experience: contributing to open-source projects is a great way to
+Work experience: contributing to free software projects is a great way to
 practice programming, documentation writing, documentation translation,
 or design.  This experience has helped some developers gain job offers
 or scholarships.
@@ -1077,11 +1077,9 @@ viewer with advanced point-and-click support.
 
 @uref{http://www.frescobaldi.org}
 
-Frescobaldi is a dedicated LilyPond music and text editor with a
-built-in PDF previewer, a powerful score wizard and many editing
-features.  It is built on top of the KDE4 libraries and runs
-currently on all flavours of Linux and other UNIX-like operating
-systems.
+Frescobaldi is lightweight, yet powerful LilyPond music and text editor
+with a built-in PDF viewer.  It is easy to use and will run on all major
+operating systems (Linux, Mac OS X and Windows).
 
 @divEnd
 
index 355ba95c7325bc19cec28891a834678bdc879048..60e418f19c3af131bad56a0d3d38602da67490c4 100644 (file)
@@ -34,4 +34,56 @@ href="http://www.inadiutorium.xf.cz"&gt;
 Project&lt;/a&gt; in adiutorium provides chants to the catholic Divine
 Office in the Czech language. We use LilyPond for the typesetting.
 </tweet>
+<tweet>
+28/07/2012 : Christophe Rousset et les Talens Lyriques interprètent Phaëton
+de Lully au
+&lt;a
+href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
+target="_blank"
+&gt;
+festival
+de Beaune&lt;/a&gt;,
+en utilisant un &lt;a
+href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
+target="_blank"
+&gt;
+matériel créé avec LilyPond.
+&lt;/a&gt;
+</tweet>
+<tweet>
+28/07/2012 : Christophe Rousset et les Talens Lyriques interprètent Phaëton
+de Lully au
+&lt;a
+href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
+target="_blank"
+&gt;
+festival
+de Beaune&lt;/a&gt;,
+en utilisant un &lt;a
+href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
+target="_blank"
+&gt;
+matériel créé avec LilyPond&lt;/a&gt;.
+</tweet>
+<tweet>
+2012.07.28: Christophe Rousset and Les Talens Lyriques play Phaëton by Lully
+at the
+&lt;a
+href="http://festivalbeaune.pagesperso-orange.fr/2012/o120728.htm"
+target="_blank"
+&gt;
+Beaune festival&lt;/a&gt;, using
+&lt;a
+href="http://nicolas.sceaux.free.fr/index.php/2009/05/03/39"
+target="_blank"
+&gt;
+music typeset with LilyPond&lt;/a&gt;.
+</tweet>
+<tweet>
+Schumann - &lt;a target="_blank"
+href="http://superbonus.project.free.fr/spip.php?article50"&gt;
+Album pour la Jeunesse&lt;/a&gt;, Op. 68.
+Currently in French or German, with or without
+fingering. LilyPond typeset and freely downloadable!
+</tweet>
 </tweets>
index 0b8c6c8ad1589641dd79ce81129ee8df31de4167..6cf26b9589870ecc74a5f9322cc089573be0bc82 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.14.0"
+\version "2.15.17"
 
 \header {
   texidoc = "Don't allow scaled durations to confuse the tremolo beaming.
@@ -8,7 +8,7 @@ The tremolos should each have 3 beams."
 {
   \time 3/4
   \repeat tremolo 12 {e'32 f'}
-  \scaleDurations #'(3 . 4) {
+  \scaleDurations 3/4 {
     \repeat tremolo 12 {e'32 f'} r4
   }
 }
index ea9a72735508fc9bf701ee0c52af4fa71e8844b3..f7086444409ce42feea9f6764f0282438ad3ff14 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.13.34"
+\version "2.14.0"
 
 \header {
   texidoc = "Seconds do not confuse the collision algorithm.
index 22eaf893d3c2b8dc0c364aad924b061b04985961..6e7a3ab24c9b418aac64bc0cdb597ff25b7765b4 100644 (file)
    (make-column-markup (string-split str #\NewLine)))
 
 test =
-#(let ((test-number 0))
-  (define-void-function (parser location result-info strings)
-   ((string? "BUG") pair?)
-   (let ((input (car strings))
-        (output (cdr strings)))
-    (set! test-number (1+ test-number))
-    (if (not (equal? input output))
-     (ly:progress "Test ~a unequal: ~a. \nin  = ~a\nout = ~a\n"
-      test-number
-      result-info
+#(define-void-function (parser location harmless strings)
+  ((string?) pair?)
+  (let ((input (car strings))
+       (output (cdr strings))
+       (result-info (or harmless "BUG")))
+   (if (not (equal? input output))
+    (if harmless
+     (ly:progress "Test unequal: ~a.\nin  = ~a\nout = ~a\n"
+      harmless input output)
+     (ly:input-warning location "Test unequal: BUG.\nin  = ~a\nout = ~a\n"
       input output)))))
 
 %%%
@@ -115,13 +115,13 @@ stderr of this run."
 \test ##[ { c-> c^> c_> } #]
 \test ##[ { c-. c^. c_. } #]
 \test ##[ { c-_ c^_ c__ } #]
-\test ##[ { c-\trill c^\trill c_\trill } #]
+\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\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
@@ -141,8 +141,8 @@ stderr of this run."
 \test ##[ \breathe #]
 \test ##[ { c \[ c \] } #]                     % LigatureEvent
 \test ##[ \~ #]                                                % PesOrFlexaEvent
-\test ##[ { c-\bendAfter #3 } #]    % BendAfterEvent
-\test ##[ < c-\rightHandFinger #1 > #]    % StrokeFingerEvent
+\test ##[ c\bendAfter #3 #]    % BendAfterEvent
+\test ##[ c\rightHandFinger #1 #]    % StrokeFingerEvent
 
 \test ##[ \break #]
 \test ##[ \noBreak #]
index 5014b32cb22a1d24d8555c750a94cd7c2d92899b..23102214338e2bd2000a038ab1f45dd5bf799ecb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "This is an example of automatic footnote numbering
 where the number is reset on each page.  It uses the symbol-footnotes
@@ -24,7 +24,7 @@ have been reached.
 \markup { h i }
 
 \relative c' {
-\footnote #'(1 . -1) #'NoteHead \markup { j }
+<>\footnote #'(1 . -1) #'NoteHead \markup { j }
 a b c d }
 
 \pageBreak
@@ -35,9 +35,9 @@ a b c d }
 
 \relative c' {
   d4 e
-  < f  a-\footnote #'(1 . -1) \markup { n } c >
-  \footnote #'(1 . 1) #'Beam \markup { o }
-  \footnote #'(1 . 1) #'Hairpin \markup { p }
+  < f  a\footnote #'(1 . -1) \markup { n } c >
+  <>\footnote #'(1 . 1) #'Beam \markup { o }
+  <>\footnote #'(1 . 1) #'Hairpin \markup { p }
   a8\< [ b c d ] a4 b c |
   d a b c |
   d a b c |
index d229da8454df55067b42ec9faa65240c9cc11671..549075b3682118f6fdc1ab712e78809582d0f35f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "This regtest makes sure that footnote numbers are laid out
 in the correct vertical order.
@@ -32,31 +32,31 @@ in the correct vertical order.
         d4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 0))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 2 4)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c\f |
         d a b c |\break
         d,4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 6))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 8 10)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c |
         d a b c\f |\pageBreak
         d,4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 12))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 14 16)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c |
         d a b c\! |\break
       }
@@ -64,31 +64,31 @@ in the correct vertical order.
         d4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 1))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 3 5)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c\f |
         d a b c |\break
         d,4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 7))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 9 11)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c |
         d a b c\f |\pageBreak
         d,4 e
         \once \override FootnoteItem #'numbering-assertion-function =
           #(lambda (grob) (make-footnote-numbering-assertion-function 13))
-        < f  a-\footnote #'(1 . -1) \markup { n } c >
+        < f  a\footnote #'(1 . -1) \markup { n } c >
         \once \override FootnoteSpanner #'numbering-assertion-function =
           #(simultaneous-footnote-numbering-assertion-function 15 17)
-        \footnote #'(1 . 1) #'Beam \markup { o }
-        \footnote #'(1 . 1) #'Hairpin \markup { p }
+        <>\footnote #'(1 . 1) #'Beam \markup { o }
+        <>\footnote #'(1 . 1) #'Hairpin \markup { p }
         a8\< [ b c d ] a4 b c |
         d a b c\! |\break
       }
index 11d9c276f5e13f722cbfe3fdbcd0116a74a9de59..dd2251ecbf8b9fdf85b01186321b7c3e07d77e0c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "This is an example of automatic footnote numbering
 where the number is not reset on each page.  It uses the default
@@ -40,7 +40,7 @@ footnotes.
 \relative c' {
   \once \override FootnoteItem #'numbering-assertion-function =
     #(lambda (grob) (make-footnote-numbering-assertion-function 3))
-  \footnote #'(1 . -1) #'NoteHead \markup { j }
+  <>\footnote #'(1 . -1) #'NoteHead \markup { j }
   a b c d
 }
 
@@ -54,11 +54,11 @@ footnotes.
   d4 e
   \once \override FootnoteItem #'numbering-assertion-function =
     #(lambda (grob) (make-footnote-numbering-assertion-function 5))
-  < f  a-\footnote #'(1 . -1) \markup { n } c >
+  < f  a\footnote #'(1 . -1) \markup { n } c >
   \once \override FootnoteSpanner #'numbering-assertion-function =
     #(simultaneous-footnote-numbering-assertion-function 6 7)
-  \footnote #'(1 . 1) #'Beam \markup { o }
-  \footnote #'(1 . 1) #'Hairpin \markup { p }
+  <>\footnote #'(1 . 1) #'Beam \markup { o }
+  <>\footnote #'(1 . 1) #'Hairpin \markup { p }
   a8\< [ b c d ] a4 b c |
   d a b c |
   d a b c |
index fb49e84841245ab43e4cbe5d0de7c0aa3798afec..0176312e0ae342cb5e3f66c84c937ab9d921df8c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "With grobs that have break visibility, footnotes will
 automatically take the break visibility of the grob being footnoted.
@@ -14,12 +14,12 @@ This behavior can be overridden.
 {
   \relative c' {
     c1
-    \footnote "foo" #'(0 . 2) #'TimeSignature "bar"
+    <>\footnote "foo" #'(0 . 2) #'TimeSignature "bar"
     \time 3/4
     \break \pageBreak
     c2.
     \once \override Staff . FootnoteItem #'break-visibility = ##(#f #f #t)
-    \footnote "foo" #'(0 . 2) #'TimeSignature "bar"
+    <>\footnote "foo" #'(0 . 2) #'TimeSignature "bar"
     \time 4/4
     \break \pageBreak
     c1 \bar "|."
index 0c72c5e41feef332a22e569f56b1a7f7e1be2673..3011b07331ae71ea2acfcf3e64ec39b6ad99ee7f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "The padding between a footnote and the footer can be tweaked."
 }
@@ -8,19 +8,19 @@
 \book {
 
   \relative c' {
-    \footnote
+    <>\footnote
                   \markup { \tiny 1 }
                   #'(1 . -1) #'NoteHead
                   \markup { 1. Tiny space below. }
     e1
 
-    \footnote
+    <>\footnote
                   \markup { \tiny 2 }
                   #'(1 . -1) #'NoteHead
                   \markup { 2. Tiny space below. }
     e1
 
-    \footnote
+    <>\footnote
                   \markup { \tiny 3 }
                   #'(1 . -1) #'NoteHead
                   \markup { 3. Big space below. }
index c550eae244be1989b4b769ba91f259d827cc17c7..58ce06a92b26a86b6f985db95c2c8624fb367bfe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "Footnotes are annotated at the correct place, and the
 annotation goes to the correct page."
@@ -13,7 +13,7 @@ annotation goes to the correct page."
 \book {
 
 \relative c'' {
-\footnote
+<>\footnote
               \markup { \tiny "1." }
               #'(0.5 . 0.5) #'Hairpin
               \markup { 1. \justify { Goes to the first broken spanner. } }
@@ -37,7 +37,7 @@ b c d a
 b c d a\!
 
 \once \override FootnoteSpanner #'spanner-placement = #RIGHT
-\footnote
+<>\footnote
               \markup { \tiny "2." }
               #'(0.5 . 0.5) #'Hairpin
               \markup { 2. \justify { Goes to the last broken spanner. } }
index 8086ecca74c4ca04e834260d8e39d188be07a9b3..037635965e7902e0e3926cd7b62c9268e537b6cf 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 \header {
   texidoc = "Lilypond does footnotes."
 }
@@ -15,7 +15,7 @@
 \markup { h i }
 
 \relative c' {
-\footnote \markup { \tiny 4 } #'(1 . -1) #'NoteHead \markup { 4. j }
+<>\footnote \markup { \tiny 4 } #'(1 . -1) #'NoteHead \markup { 4. j }
 a b c d }
 
 \pageBreak
@@ -26,8 +26,8 @@ a b c d }
 
 \relative c' {
   d4 e
-  < f  a-\footnote \markup { \tiny 6 } #'(1 . -1) \markup { 6. n } c >
-  \footnote \markup { \tiny 7 } #'(1 . 1) #'Beam \markup { 7. o }
-  \footnote \markup { \tiny 8 } #'(1 . 1) #'Hairpin \markup { 8. p }
+  < f  a\footnote \markup { \tiny 6 } #'(1 . -1) \markup { 6. n } c >
+  <>\footnote \markup { \tiny 7 } #'(1 . 1) #'Beam \markup { 7. o }
+  <>\footnote \markup { \tiny 8 } #'(1 . 1) #'Hairpin \markup { 8. p }
   a8\< [ b c d\f ] r2. |
 }}
index a7466f9fea78f72272dc1ffe119b336081015a7d..8748353513f532101a403b1e1aad752da8105515 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.15.25"
+\version "2.15.39"
 
 \header {
   texidoc = "LilyPond does in-notes.
   \relative c' {
     \repeat unfold 5 {
       \once \override FootnoteItem #'footnote = ##f
-      \footnote
+      <>\footnote
                     "" #'(0 . 0) #'NoteHead \markup { \box \fill-line { "this is a test" } }
       \repeat unfold 5 { a\< b c d\! }
-      \footnote #'(-1 . 1) #'NoteHead "foobar"
+      <>\footnote #'(-1 . 1) #'NoteHead "foobar"
       \repeat unfold 5 { a\< b c d\! }
     }
   }
index b5ddc6f81807ca0fe6d174a948e6588f27372547..c772b7b1a44f320121a353a9df2b28f92450b7ef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.14.0"
+\version "2.15.17"
 
 \header {
   texidoc = "
@@ -13,8 +13,8 @@ should be beamed 3/4, 1/4.  The lower staff should be beamed 1/4, 3/4.
   \new StaffGroup <<
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(3 1)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -22,8 +22,8 @@ should be beamed 3/4, 1/4.  The lower staff should be beamed 1/4, 3/4.
      }
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(1 3)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
index 179bae828f6905339b16ffa2757e67b9fb87fa12..79d07cfe7c91f9c6e1df1de0c5c75074f1784dbf 100644 (file)
@@ -48,7 +48,17 @@ public:
   static int line_count (Grob *);
   static Real get_position (Grob *);
   static Real pure_get_position (Grob *);
+
+  /**
+     Interval of staff lines.
+  */
+  static Interval staff_span (Grob *);
+
+  /**
+     Half of the height, in staff space, i.e. 2.0 for a normal staff.
+  */
   static Real staff_radius (Grob *);
+
   static int get_rounded_position (Grob *);
   static int pure_get_rounded_position (Grob *);
   static Interval extent_in_staff (Grob *);
index 78b647530335db8b81bae575d6bea71e3dadb4fe..bdbf1283141e643d28d2216b381cddd5184586a9 100644 (file)
@@ -711,6 +711,11 @@ BOM_UTF8   \357\273\277
        }
 }
 
+{FRACTION}     {
+       yylval.scm =  scan_fraction (YYText ());
+       return FRACTION;
+}
+
 -{UNSIGNED}    | // backup rule
 {REAL}         {
        yylval.scm = scm_c_read_string (YYText ());
@@ -721,6 +726,7 @@ BOM_UTF8    \357\273\277
        return REAL;
 }
 
+{UNSIGNED}/\/  | // backup rule
 {UNSIGNED}     {
        yylval.scm = scm_c_read_string (YYText ());
        return UNSIGNED;
index 601d63fc31e5586ad9016195f48d031644a8549b..49acd012d51ca0820db2b8cdf3a613aedbdcf901 100644 (file)
@@ -786,6 +786,9 @@ identifier_init:
        | number_expression {
                $$ = $1;
        }
+       | FRACTION {
+               $$ = $1;
+       }
        | string {
                $$ = $1;
        }
@@ -2060,12 +2063,14 @@ simple_string: STRING {
 scalar:
        embedded_scm_arg
        | bare_number
+       | FRACTION
        | lyric_element
        ;
 
 scalar_closed:
        embedded_scm_arg_closed
        | bare_number
+       | FRACTION
        | lyric_element
        ;
 
index 7cf332e85c5bfd78e60ab63ff96abca40f6f808d..6fad89ea54cccf0e5846d69d35e90d6e0ff391c3 100644 (file)
@@ -349,7 +349,9 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i
           Real rounded = directed_round (position, dir);
           Grob *head = me->get_parent (X_AXIS);
 
-          if (fabs (position) <= 2 * Staff_symbol_referencer::staff_radius (me) + 1
+          Interval staff_span = Staff_symbol::line_span (staff);
+          staff_span.widen (1);
+          if (staff_span.contains (position)
               /* In case of a ledger lines, quantize even if we're outside the staff. */
               || (Note_head::has_interface (head)
 
index d6d231de305e2b90c6aabdb80ea581c6dfb35064..c446ca1a12cbf59d9c9a1ef0d621253dfdf59dab 100644 (file)
@@ -49,19 +49,15 @@ avoid_staff_line (Slur_score_state const &state,
       Real p = 2 * (y - staff->relative_coordinate (state.common_[Y_AXIS], Y_AXIS))
                / state.staff_space_;
 
-      Real distance = fabs (my_round (p) - p);  //  in halfspaces
-      if (distance < 4 * state.thickness_
-          && (int) fabs (my_round (p))
-          <= 2 * Staff_symbol_referencer::staff_radius (staff) + 0.1
-          && (int (fabs (my_round (p))) % 2
-              != Staff_symbol_referencer::line_count (staff) % 2))
+      Real const round = my_round (p);
+      Real const frac = p - round;
+      if (fabs (frac) < 4 * state.thickness_
+          && Staff_symbol_referencer::on_staff_line (staff, int (round)))
         {
-          Direction resolution_dir
-            = (distance ? state.dir_ : Direction (sign (p - my_round (p))));
+          Direction resolution_dir = frac ? state.dir_ : CENTER;
 
           // TODO: parameter
-          Real newp = my_round (p) + resolution_dir
-                      * 5 * state.thickness_;
+          Real newp = round + resolution_dir * 5 * state.thickness_;
 
           Real dy = (newp - p) * state.staff_space_ / 2.0;
 
@@ -278,11 +274,12 @@ Slur_configuration::score_encompass (Slur_score_state const &state)
     }
   add_score (demerit, "encompass");
 
-  if (convex_head_distances.size ())
+  if (vsize n = convex_head_distances.size ())
     {
       Real avg_distance = 0.0;
       Real min_dist = infinity_f;
-      for (vsize j = 0; j < convex_head_distances.size (); j++)
+
+      for (vsize j = 0; j < n; j++)
         {
           min_dist = min (min_dist, convex_head_distances[j]);
           avg_distance += convex_head_distances[j];
@@ -292,12 +289,11 @@ Slur_configuration::score_encompass (Slur_score_state const &state)
         For slurs over 3 or 4 heads, the average distance is not a
         good normalizer.
       */
-      Real n = convex_head_distances.size ();
       if (n <= 2)
         {
           Real fact = 1.0;
           avg_distance += height_ * fact;
-          n += fact;
+          ++n;
         }
 
       /*
index b18bb04fa3b8f7f2dd6b8d60206e09ac2fb08863..3b8aa6ba187698bb8ea6a92f1580c3069c9f787e 100644 (file)
@@ -189,11 +189,23 @@ Staff_symbol_referencer::internal_set_position (Grob *me, Real p, bool pure)
   me->translate_axis ((p - oldpos) * ss * 0.5, Y_AXIS);
 }
 
-/* Half of the height, in staff space, i.e. 2.0 for a normal staff. */
+Interval
+Staff_symbol_referencer::staff_span (Grob *me)
+{
+  Interval result;
+  if (me)
+    if (Grob *symb = get_staff_symbol (me))
+      result = Staff_symbol::line_span (symb);
+  return result;
+}
+
 Real
 Staff_symbol_referencer::staff_radius (Grob *me)
 {
-  return (line_count (me) - 1) / 2.0;
+  /*
+    line_span is measured in pitch steps, not in staff spaces
+  */
+  return staff_span (me).length () / 4.0;
 }
 
 int
index d93df73abf2ef3db0d49169833cba4b7a2b7dd76..e2c3736f70d380147386b06847db5ee2849df594 100644 (file)
@@ -497,22 +497,25 @@ Tie_formatting_problem::generate_configuration (int pos, Direction dir,
         size.
 
        */
+      Interval staff_span =
+        Staff_symbol_referencer::staff_span (details_.staff_symbol_referencer_);
+      staff_span.widen (-1);
+      bool const within_staff = staff_span.contains(pos);
       if (head_positions_slice (columns[LEFT]).contains (pos)
           || head_positions_slice (columns[RIGHT]).contains (pos)
-          || abs (pos) < 2 * Staff_symbol_referencer::staff_radius (details_.staff_symbol_referencer_))
+          || within_staff)
         {
           if (h < details_.intra_space_threshold_ * 0.5 * details_.staff_space_)
             {
-              if (!Staff_symbol_referencer::on_line (details_.staff_symbol_referencer_, pos)
-                  && abs (pos) < 2 * Staff_symbol_referencer::staff_radius (details_.staff_symbol_referencer_))
-                {
-                  conf->center_tie_vertically (details_);
-                }
-              else if (Staff_symbol_referencer::on_line (details_.staff_symbol_referencer_, pos))
+              if (Staff_symbol_referencer::on_line (details_.staff_symbol_referencer_, pos))
                 {
                   conf->delta_y_ += dir *
                                     details_.tip_staff_line_clearance_ * 0.5 * details_.staff_space_;
                 }
+              else if (within_staff)
+                {
+                  conf->center_tie_vertically (details_);
+                }
             }
           else
             {
@@ -718,9 +721,11 @@ Tie_formatting_problem::score_configuration (Tie_configuration *conf) const
   Real top_y = tip_y + conf->dir_ * height;
   Real top_pos = 2 * top_y / details_.staff_space_;
   Real round_top_pos = rint (top_pos);
+  Interval staff_span =
+    Staff_symbol_referencer::staff_span (details_.staff_symbol_referencer_);
   if (Staff_symbol_referencer::on_line (details_.staff_symbol_referencer_,
                                         int (round_top_pos))
-      && Staff_symbol_referencer::staff_radius (details_.staff_symbol_referencer_) > top_y)
+      && staff_span[UP] * 0.5 > top_y)
     {
       conf->add_score (details_.staff_line_collision_penalty_
                        * peak_around (0.1 * details_.center_staff_line_clearance_,
@@ -730,10 +735,11 @@ Tie_formatting_problem::score_configuration (Tie_configuration *conf) const
     }
 
   int rounded_tip_pos = int (rint (tip_pos));
+  staff_span.widen (-1);
   if (Staff_symbol_referencer::on_line (details_.staff_symbol_referencer_, rounded_tip_pos)
       && (head_positions_slice (conf->column_ranks_[LEFT]).contains (rounded_tip_pos)
           || head_positions_slice (conf->column_ranks_[RIGHT]).contains (rounded_tip_pos)
-          || abs (rounded_tip_pos) < 2 * Staff_symbol_referencer::staff_radius (details_.staff_symbol_referencer_))
+          || staff_span.contains (rounded_tip_pos))
      )
     {
       conf->add_score (details_.staff_line_collision_penalty_
index 37099683bf859b33cf91cbcf5fea282f60c74087..643d07ae67cc48dcebc51cacf07025a5e594cc00 100644 (file)
@@ -681,21 +681,20 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
   /*
     horizontal brackets should not collide with staff lines.
 
-    Kind of pointless since we put them outside the staff anyway, but
-    let's leave code for the future when possibly allow them to move
-    into the staff once again.
-
     This doesn't seem to support cross-staff tuplets atm.
   */
-  if (*dy == 0
-      && fabs (*offset) < ss * Staff_symbol_referencer::staff_radius (me))
+  if (*dy == 0)
     {
       // quantize, then do collision check.
-      *offset *= 2 / ss;
+      *offset /= 0.5 * ss;
 
-      *offset = rint (*offset);
-      if (Staff_symbol_referencer::on_line (me, (int) rint (*offset)))
-        *offset += dir;
+      Interval staff_span = Staff_symbol_referencer::staff_span (me);
+      if (staff_span.contains (*offset))
+        {
+          *offset = rint (*offset);
+          if (Staff_symbol_referencer::on_line (me, int (*offset)))
+            *offset += dir;
+        }
 
       *offset *= 0.5 * ss;
     }
index 6e8210b9c183f788e5ab0bff425d6aaaf65d415d..7f9a2b9699812347a237e86ff3529cc20581aa48 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.15.20"
+\version "2.15.39"
 
 \context {
   \name "Global"
@@ -614,7 +614,7 @@ automatically when an output definition (a @code{\score} or
   repeatCountVisibility = #all-repeat-counts-visible
 
   timeSignatureSettings = #default-time-signature-settings
-  timeSignatureFraction = #'(4 . 4)
+  timeSignatureFraction = 4/4
 
 %% These defaults should be the same as the rules established in
 %%   scm/time-signature-settings.scm for 4/4 time
index 59a11264f7c741d84d3c854494adfd3f8cdfad2c..842da9ace606dc026169808b6b5e664603cfc214 100644 (file)
@@ -342,7 +342,7 @@ featherDurations=
      argument))
 
 footnote =
-#(define-music-function (parser location text offset grob-name footnote)
+#(define-event-function (parser location text offset grob-name footnote)
    ((markup?) number-pair? (symbol? '()) markup?)
    (_i "Attach @var{text} at @var{offset} with @var{text} referring to
 @var{footnote}.  If @var{text} is given as @code{\\default}, use
index 1a36b7fd19ef8b13a326ac610b08007f3fad19e9..fdfa7add3c69ee58dc6c18b0a8ce47dfa447b5cf 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.14.0"
+\version "2.15.39"
 
 %%
 %% setup for Request->Element conversion.
   %% Timing variables in layout definitions before any
   %% Timing_translator has been run.
 
-  timeSignatureFraction = #'(4 . 4)
+  timeSignatureFraction = 4/4
 
 %% These defaults should be the same as the rules established in
 %%   scm/time-signature-settings.scm for 4/4 time
index b4259a8410a9acad6491db5e082a4587ad589c4a..a003a1e4921de89a27d6fe97c75215c801d6a82b 100644 (file)
@@ -75,8 +75,8 @@ for documentation purposes.")
 %% ukulele tunings
 \makeDefaultStringTuning #'ukulele-tuning \stringTuning <g' c' e' a'>
 \makeDefaultStringTuning #'ukulele-d-tuning \stringTuning <a' d' fis' b'>
-\makeDefaultStringTuning #'tenor-ukulele-tuning \stringTuning <a' e' c' g>
-\makeDefaultStringTuning #'baritone-ukulele-tuning \stringTuning <e' b g d>
+\makeDefaultStringTuning #'tenor-ukulele-tuning \stringTuning <g c' e' a'>
+\makeDefaultStringTuning #'baritone-ukulele-tuning \stringTuning <d g b e'>
 
 %% orchestral strings
 \makeDefaultStringTuning #'violin-tuning \stringTuning <g d' a' e''>
index 7b9c400308ecaa035ebd4846846d77c472d25ae9..f691dbb6b8714a6a72a0dc7e522fe55363e6c5f6 100644 (file)
--- a/po/README
+++ b/po/README
@@ -28,12 +28,13 @@ automatically notified to lilypond-devel@gnu.org list by the FTP
 robot; you can also see LilyPond page on FTP.
 
 
-2) updating lilypond.pot: run 'make po-replace' at toplevel, clean up
-lilypond.pot header to make it look like its previous state, commit
-only lilypond.pot to Git and reset all .po files, roll a tarball with
-'make dist', upload it somewhere on the web (or wait for the release),
-and send a notification to FTP coordinator with a link to the tarball.
-
+2) updating lilypond.pot: run 'make po-replace' at toplevel, commit
+lilypond.pot to Git, roll a tarball with 'make dist', upload it
+somewhere on the web (or wait for the release), and send a notification
+to FTP coordinator with a link to the tarball.
+Running 'po-update' at top-level and opening either po/out/fr.po or
+po/out/es.po gives you an idea of the changes that have affected
+the sources (number of fuzzy and untranslated stings).
 
 Rationale
 =========
index 1ffefb72650fd1bc4e15aefcf8e9a24508a381f5..c9c2a6b2475e30726ff07bac835310d48eff9f0b 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: lilypond 2.15.37\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-04-21 20:51+0200\n"
-"PO-Revision-Date: 2012-04-29 14:00+0200\n"
+"PO-Revision-Date: 2012-05-12 11:37+0200\n"
 "Last-Translator: Jean-Charles Malahieude <lilyfan@orange.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -62,12 +62,12 @@ msgstr "option ly inconnue et ignorée : %s"
 #: book_snippets.py:741
 #, python-format
 msgid "Running through filter `%s'"
-msgstr "Passage par le filtre « %s »"
+msgstr "Passage par le filtre « %s »"
 
 #: book_snippets.py:761
 #, python-format
 msgid "`%s' failed (%d)"
-msgstr "« %s » a échoué (%d)"
+msgstr "« %s » a échoué (%d)"
 
 #: book_snippets.py:762
 msgid "The error log is as follows:"
@@ -99,7 +99,7 @@ msgstr ""
 #: convertrules.py:12
 #, python-format
 msgid "Not smart enough to convert %s."
-msgstr "Pas assez intelligent pour convertir « %s »."
+msgstr "Pas assez intelligent pour convertir « %s »."
 
 #: convertrules.py:13
 msgid "Please refer to the manual for details, and update manually."
@@ -352,7 +352,7 @@ msgid ""
 "textheight is no longer used.\n"
 msgstr ""
 "La mise en page a été modifiée, utilisant la taille du papier et les marges.\n"
-"« textheight » n'est plus utilisé.\n"
+"« textheight » n'est plus utilisé.\n"
 
 #: convertrules.py:1957
 msgid ""
@@ -360,7 +360,7 @@ msgid ""
 "fold \\new FooContext \\foomode into \\foo."
 msgstr ""
 "\\toto -> \\totomode (pour accords, notes, etc.)\n"
-"transforme « \\new TotoContext \\totomode » en \\toto."
+"transforme « \\new TotoContext \\totomode » en \\toto."
 
 #: convertrules.py:1995
 msgid ""
@@ -614,7 +614,7 @@ msgstr ""
 "ly:note-head::brew-ez-stencil -> note-head::brew-ez-stencil\n"
 "ly:ambitus::print -> ambitus::print\n"
 "La définition du contexte de nuances explicites du canevas\n"
-"« Piano et nuances entre les portées » est remplacée par le nouveau\n"
+"« Piano et nuances entre les portées » est remplacée par le nouveau\n"
 "contexte `Dynamics'."
 
 #: convertrules.py:2867
@@ -834,7 +834,7 @@ msgstr "Niveau de journalisation fixé à %s"
 #: lilylib.py:99
 #, python-format
 msgid "Unknown or invalid loglevel '%s'"
-msgstr "« %s » n'est pas un niveau de journalisation reconnu."
+msgstr "« %s » n'est pas un niveau de journalisation reconnu."
 
 #: lilylib.py:128 warn.cc:211
 #, c-format, python-format
@@ -844,12 +844,12 @@ msgstr "Erreur : %s"
 #: lilylib.py:185
 #, python-format
 msgid "Processing %s.ly"
-msgstr "Traitement de « %s.ly »"
+msgstr "Traitement de « %s.ly »"
 
 #: lilylib.py:189 lilylib.py:250
 #, python-format
 msgid "Invoking `%s'"
-msgstr "Appel de « %s »"
+msgstr "Appel de « %s »"
 
 #: lilylib.py:191 lilylib.py:252
 #, python-format
@@ -897,7 +897,7 @@ msgstr "Impossible de convertir l'altération %s en expression LilyPond"
 #. TODO: Handle pieces without a time signature!
 #: musicxml.py:361
 msgid "Senza-misura time signatures are not yet supported!"
-msgstr "Les métriques « senza-misura » ne sont pas prises en charge."
+msgstr "Les métriques « senza-misura » ne sont pas prises en charge."
 
 #: musicxml.py:379
 msgid "Unable to interpret time signature! Falling back to 4/4."
@@ -944,7 +944,7 @@ msgstr "Impossible de trouver \\begin{document} dans le document LaTeX."
 #, python-format
 msgid "Running `%s' on file `%s' to detect default page settings.\n"
 msgstr ""
-"Traitement par %s du fichier « %s »\n"
+"Traitement par %s du fichier « %s »\n"
 "pour déterminer la mise en page par défaut.\n"
 
 #: musicxml2ly.py:228
@@ -981,7 +981,7 @@ msgstr "Impossible de déterminer l'armure."
 msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
 msgstr ""
 "%s : mode inconnu.\n"
-"Devrait être « majeur », « mineur » ou « mode d'église »."
+"Devrait être « majeur », « mineur » ou « mode d'église »."
 
 #: musicxml2ly.py:934
 #, python-format
@@ -991,7 +991,7 @@ msgstr "Détection d'un marqueur non traité : %s\n"
 #: musicxml2ly.py:1028
 #, python-format
 msgid "unknown span event %s"
-msgstr "Événement de prolongation inconnu : « %s »"
+msgstr "Événement de prolongation inconnu : « %s »"
 
 #: musicxml2ly.py:1038
 #, python-format
@@ -1075,7 +1075,7 @@ msgid ""
 "If the given filename is -, musicxml2ly reads from the command line.\n"
 msgstr ""
 "Convertit FICHIER.xml (MusicXML) au format LilyPond.\n"
-"Si le nom du fichier est « - », musicxml2ly lira la ligne de commande.\n"
+"Si le nom du fichier est « - », musicxml2ly lira la ligne de commande.\n"
 
 #: musicxml2ly.py:2570 midi2ly.py:1062 abc2ly.py:1388 lilypond-book.py:140
 #: convert-ly.py:92 etf2ly.py:1204 main.cc:153
@@ -1219,12 +1219,12 @@ msgstr "Lecture du fichier MusicXML %s..."
 #: musicxml2ly.py:2892
 #, python-format
 msgid "Output to `%s'"
-msgstr "Fichier de sortie : « %s »"
+msgstr "Fichier de sortie : « %s »"
 
 #: musicxml2ly.py:2962
 #, python-format
 msgid "Unable to find input file %s"
-msgstr "Impossible de trouver le fichier d'entrée : « %s »"
+msgstr "Impossible de trouver le fichier d'entrée : « %s »"
 
 #: midi2ly.py:81 lilypond-book.py:115 convert-ly.py:75 etf2ly.py:1191
 #, python-format
@@ -1260,7 +1260,7 @@ msgstr ""
 #: midi2ly.py:1032
 #, python-format
 msgid "%s output to `%s'..."
-msgstr "%s reproduit dans « %s »..."
+msgstr "%s reproduit dans « %s »..."
 
 #: midi2ly.py:1044 abc2ly.py:1376 lilypond-book.py:122 convert-ly.py:81
 #, python-format
@@ -1322,7 +1322,7 @@ msgstr "quantifie les débuts de note sur DUR"
 
 #: midi2ly.py:1083
 msgid "use s instead of r for rests"
-msgstr "traduit les silences en « s », non en « r »"
+msgstr "traduit les silences en « s », non en « r »"
 
 #: midi2ly.py:1085
 msgid "DUR*NUM/DEN"
@@ -1531,7 +1531,7 @@ msgstr "%s est à jour."
 #: lilypond-book.py:506
 #, python-format
 msgid "Writing `%s'..."
-msgstr "Écriture de « %s »..."
+msgstr "Écriture de « %s »..."
 
 #: lilypond-book.py:567
 msgid "Output would overwrite input file; use --output."
@@ -1559,7 +1559,7 @@ msgstr "Traitement d'inclusion : %s"
 #: lilypond-book.py:608
 #, python-format
 msgid "Removing `%s'"
-msgstr "Suppression de « %s »"
+msgstr "Suppression de « %s »"
 
 #: lilypond-book.py:699
 #, python-format
@@ -1636,18 +1636,18 @@ msgstr "Arrêt à la dernière règle appliquée avec succès"
 #: convert-ly.py:231
 #, python-format
 msgid "Processing `%s'... "
-msgstr "Traitement de « %s »..."
+msgstr "Traitement de « %s »..."
 
 #: convert-ly.py:338
 #, python-format
 msgid "%s: Unable to open file"
-msgstr "impossible d'ouvrir le fichier « %s »"
+msgstr "impossible d'ouvrir le fichier « %s »"
 
 #: convert-ly.py:345
 #, python-format
 msgid "%s: Unable to determine version.  Skipping"
 msgstr ""
-"impossible de déterminer la version  de « %s ».\n"
+"impossible de déterminer la version  de « %s ».\n"
 " Au suivant !"
 
 #: convert-ly.py:350
@@ -1658,7 +1658,7 @@ msgid ""
 msgstr ""
 "%s porte un numéro de version invalide : %s \n"
 "Un numéro de version valide est formé de trois nombres séparés par un point,\n"
-"comme par exemple « 2.8.12 »"
+"comme par exemple « 2.8.12 »"
 
 #: etf2ly.py:1197
 #, python-format
@@ -1695,7 +1695,7 @@ msgstr "Niveau de journalisation fixé à %d\n"
 #: warn.cc:89
 #, c-format
 msgid "unknown log level `%s', using default (INFO)"
-msgstr "« %s » n'est pas un niveau de journalisation reconnu ; utilisation de INFO"
+msgstr "« %s » n'est pas un niveau de journalisation reconnu ; utilisation de INFO"
 
 #. Some expected warning was not triggered, so print out a warning.
 #: warn.cc:112
@@ -1735,32 +1735,32 @@ msgstr "avertissement supprimé : %s"
 #: getopt-long.cc:153
 #, c-format
 msgid "option `%s' requires an argument"
-msgstr "L'option « %s » requiert un argument"
+msgstr "L'option « %s » requiert un argument"
 
 #: getopt-long.cc:157
 #, c-format
 msgid "option `%s' does not allow an argument"
-msgstr "L'option « %s » s'emploie sans argument"
+msgstr "L'option « %s » s'emploie sans argument"
 
 #: getopt-long.cc:161
 #, c-format
 msgid "unrecognized option: `%s'"
-msgstr "option non reconnue : « %s »"
+msgstr "option non reconnue : « %s »"
 
 #: getopt-long.cc:167
 #, c-format
 msgid "invalid argument `%s' to option `%s'"
-msgstr "argument « %s » invalide pour l'option « %s »"
+msgstr "argument « %s » invalide pour l'option « %s »"
 
 #: flag.cc:113
 #, c-format
 msgid "flag `%s' not found"
-msgstr "crochet inconnu : « %s »"
+msgstr "crochet inconnu : « %s »"
 
 #: flag.cc:133
 #, c-format
 msgid "flag stroke `%s' not found"
-msgstr "type de crochet inconnu : « %s »"
+msgstr "type de crochet inconnu : « %s »"
 
 #: parse-scm.cc:112
 msgid "GUILE signaled an error for the expression beginning here"
@@ -1773,7 +1773,7 @@ msgstr "l'inclusion de fichiers n'est pas permise en mode sans échec"
 #: lily-lexer.cc:282
 #, c-format
 msgid "identifier name is a keyword: `%s'"
-msgstr "Le nom de l'identificateur est un mot clé : « %s »"
+msgstr "Le nom de l'identificateur est un mot clé : « %s »"
 
 #: lily-lexer.cc:303 lily-lexer.cc:316
 #, c-format
@@ -1812,7 +1812,7 @@ msgstr "on les place en dessous"
 #: translator-group.cc:188
 #, c-format
 msgid "cannot find: `%s'"
-msgstr " « %s » inconnu(e)"
+msgstr " « %s » inconnu(e)"
 
 #: glissando-engraver.cc:158
 msgid "unterminated glissando"
@@ -1821,7 +1821,7 @@ msgstr "glissando non terminé"
 #: midi-item.cc:89
 #, c-format
 msgid "no such MIDI instrument: `%s'"
-msgstr "instrument MIDI non répertorié : « %s »"
+msgstr "instrument MIDI non répertorié : « %s »"
 
 #: open-type-font.cc:44
 #, c-format
@@ -1898,22 +1898,22 @@ msgstr "pas de glyphe correspondant au bécarre"
 #: lyric-combine-music-iterator.cc:337
 #, c-format
 msgid "cannot find Voice `%s'"
-msgstr "impossible de repérer la voix (Voice) « %s »"
+msgstr "impossible de repérer la voix (Voice) « %s »"
 
 #: context.cc:148
 #, c-format
 msgid "cannot find or create new `%s'"
-msgstr "impossible de trouver ou créer un nouveau « %s »"
+msgstr "impossible de trouver ou créer un nouveau « %s »"
 
 #: context.cc:206
 #, c-format
 msgid "cannot find or create `%s' called `%s'"
-msgstr "impossible de trouver ou créer « %s » dénommé « %s »"
+msgstr "impossible de trouver ou créer « %s » dénommé « %s »"
 
 #: context.cc:399
 #, c-format
 msgid "cannot find or create: `%s'"
-msgstr "impossible de trouver ou créer « %s »"
+msgstr "impossible de trouver ou créer « %s »"
 
 #: dispatcher.cc:83
 msgid "Event class should be a symbol"
@@ -1922,12 +1922,12 @@ msgstr "La classe Event devrait être un symbole"
 #: dispatcher.cc:90
 #, c-format
 msgid "Unknown event class %s"
-msgstr "Classe d'événement inconnue : « %s »"
+msgstr "Classe d'événement inconnue : « %s »"
 
 #: dispatcher.cc:172
 #, c-format
 msgid "Junking event: %s"
-msgstr "Événement escamoté : « %s »"
+msgstr "Événement escamoté : « %s »"
 
 #: auto-change-iterator.cc:74 change-iterator.cc:72
 #, c-format
@@ -2037,12 +2037,12 @@ msgstr "Les pédales de piano nécessitent 3 cordes. Il y en a %ld"
 #: piano-pedal-performer.cc:104
 #, c-format
 msgid "cannot find start of piano pedal: `%s'"
-msgstr "début de la pédale de piano indéterminé : « %s »"
+msgstr "début de la pédale de piano indéterminé : « %s »"
 
 #: piano-pedal-engraver.cc:340
 #, c-format
 msgid "cannot find start of piano pedal bracket: `%s'"
-msgstr "début du crochet de la pédale de piano indéterminé : « %s »"
+msgstr "début du crochet de la pédale de piano indéterminé : « %s »"
 
 #: input.cc:138 source-file.cc:178 source-file.cc:193
 msgid "position unknown"
@@ -2059,7 +2059,7 @@ msgstr "échec de la vérification d'octave, a obtenu : "
 #: translator-ctors.cc:65
 #, c-format
 msgid "unknown translator: `%s'"
-msgstr "translateur inconnu : « %s »"
+msgstr "translateur inconnu : « %s »"
 
 #: ligature-engraver.cc:104 ligature-bracket-engraver.cc:72
 msgid "cannot find start of ligature"
@@ -2097,7 +2097,7 @@ msgstr "Aucun n-olet à terminer"
 #, c-format
 msgid "font index %d too large for font `%s', using index 0"
 msgstr ""
-"index %d trop grand pour la fonte « %s » ;\n"
+"index %d trop grand pour la fonte « %s » ;\n"
 "réindexé sur 0"
 
 #: ttf.cc:512 ttf.cc:562
@@ -2122,7 +2122,7 @@ msgstr "Calcul des sauts de page..."
 #, c-format
 msgid "ignored prefix(es) `%s' of this head according to restrictions of the selected ligature style"
 msgstr ""
-"préfixe(s) « %s » ignoré(s) pour la tête de note, \n"
+"préfixe(s) « %s » ignoré(s) pour la tête de note, \n"
 "selon les restrictions du style de ligature sélectionné"
 
 #: vaticana-ligature-engraver.cc:736
@@ -2155,7 +2155,7 @@ msgstr "épisème non terminé"
 #: score-engraver.cc:78
 #, c-format
 msgid "cannot find `%s'"
-msgstr "impossible de trouver « %s »"
+msgstr "impossible de trouver « %s »"
 
 #: score-engraver.cc:80
 msgid "Music font has not been installed properly."
@@ -2164,7 +2164,7 @@ msgstr "Les fontes musicales n'ont pas été installées correctement."
 #: score-engraver.cc:82
 #, c-format
 msgid "Search path `%s'"
-msgstr "Chemin de recherche : « %s »"
+msgstr "Chemin de recherche : « %s »"
 
 #: score-engraver.cc:84
 msgid "Aborting"
@@ -2177,7 +2177,7 @@ msgstr "Piste..."
 #: performance.cc:82
 #, c-format
 msgid "MIDI output to `%s'..."
-msgstr "Sortie MIDI vers « %s »..."
+msgstr "Sortie MIDI vers « %s »..."
 
 #: note-collision.cc:506
 msgid "ignoring too many clashing note columns"
@@ -2248,12 +2248,12 @@ msgstr "la source devrait spécifier des voix polyphoniques"
 #: includable-lexer.cc:71 lily-guile.cc:91 lily-parser-scheme.cc:108
 #, c-format
 msgid "cannot find file: `%s'"
-msgstr "fichier non trouvé : « %s »"
+msgstr "fichier non trouvé : « %s »"
 
 #: includable-lexer.cc:73 lily-parser-scheme.cc:100
 #, c-format
 msgid "(search path: `%s')"
-msgstr "(chemin de recherche : « %s »)"
+msgstr "(chemin de recherche : « %s »)"
 
 #: relocate.cc:52
 #, c-format
@@ -2324,7 +2324,7 @@ msgstr "Fichier de relocalisation : %s"
 #: relocate.cc:364 source-file.cc:65
 #, c-format
 msgid "cannot open file: `%s'"
-msgstr "Impossible d'ouvrir le fichier « %s »"
+msgstr "Impossible d'ouvrir le fichier « %s »"
 
 #: relocate.cc:394
 #, c-format
@@ -2350,7 +2350,7 @@ msgstr "réaffectation modulo 16"
 #: dots.cc:48
 #, c-format
 msgid "dot `%s' not found"
-msgstr "point « %s » introuvable"
+msgstr "point « %s » introuvable"
 
 #: font-config.cc:38
 msgid "Initializing FontConfig..."
@@ -2359,12 +2359,12 @@ msgstr "Initialisation de FontConfig..."
 #: font-config.cc:53 font-config-scheme.cc:151
 #, c-format
 msgid "failed adding font directory: %s"
-msgstr "échec lors de l'ajout d'un répertoire de fontes : « %s »"
+msgstr "échec lors de l'ajout d'un répertoire de fontes : « %s »"
 
 #: font-config.cc:55 font-config-scheme.cc:153
 #, c-format
 msgid "Adding font directory: %s"
-msgstr "Ajout d'un répertoire de fontes : « %s »"
+msgstr "Ajout d'un répertoire de fontes : « %s »"
 
 #: font-config.cc:58
 msgid "Building font database..."
@@ -2373,7 +2373,7 @@ msgstr "Construction de la base de donnée des fontes..."
 #: change-iterator.cc:34
 #, c-format
 msgid "cannot change `%s' to `%s'"
-msgstr "impossible de changer « %s » en « %s »"
+msgstr "impossible de changer « %s » en « %s »"
 
 #. FIXME: constant error message.
 #: change-iterator.cc:93
@@ -2438,7 +2438,7 @@ msgstr "tentative pour %d systèmes"
 #: optimal-page-breaking.cc:138 optimal-page-breaking.cc:201
 #, c-format
 msgid "best score for this sys-count: %f"
-msgstr "meilleur résultat pour cette configuration « sys-count » : %f"
+msgstr "meilleur résultat pour cette configuration « sys-count » : %f"
 
 #: new-dynamic-engraver.cc:168
 #, c-format
@@ -2473,7 +2473,7 @@ msgstr ""
 "Ce logiciel est libre. Il est couvert par la licence GNU General Public\n"
 "License, et vous êtes libre de le modifier et/ou d'en distribuer des copies\n"
 "sous certaines conditions.\n"
-"Invoquez « %s --warranty » pour plus d'informations.\n"
+"Invoquez « %s --warranty » pour plus d'informations.\n"
 
 #: main.cc:107
 msgid ""
@@ -2655,7 +2655,7 @@ msgstr "une cage requiert %d arguments, il y en a %u"
 #: main.cc:345
 #, c-format
 msgid "no such user: %s"
-msgstr "utilisateur inconnu : « %s »"
+msgstr "utilisateur inconnu : « %s »"
 
 #: main.cc:347
 #, c-format
@@ -2747,7 +2747,7 @@ msgstr "        coupure précédente : %d"
 #: key-signature-interface.cc:77
 #, c-format
 msgid "No glyph found for alteration: %s"
-msgstr "Pas de glyphe pour l'altération « %s »"
+msgstr "Pas de glyphe pour l'altération « %s »"
 
 #: key-signature-interface.cc:87
 msgid "alteration not found"
@@ -2790,12 +2790,12 @@ msgstr "Événement %s précédent ici"
 #: lily-guile.cc:93
 #, c-format
 msgid "(load path: `%s')"
-msgstr "(chemin de chargement : « %s »)"
+msgstr "(chemin de chargement : « %s »)"
 
 #: lily-guile.cc:416
 #, c-format
 msgid "cannot find property type-check for `%s' (%s)."
-msgstr "vérification du type de propriété pour « %s » (%s) non trouvée"
+msgstr "vérification du type de propriété pour « %s » (%s) non trouvée"
 
 #: lily-guile.cc:419
 msgid "perhaps a typing error?"
@@ -2809,8 +2809,8 @@ msgstr "affectation faite malgré tout"
 #, c-format
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
-"la vérification du type de « %s » a échoué ; \n"
-"   la valeur « %s » doit être du type « %s »"
+"la vérification du type de « %s » a échoué ; \n"
+"   la valeur « %s » doit être du type « %s »"
 
 #: text-spanner-engraver.cc:72
 msgid "cannot find start of text spanner"
@@ -2827,7 +2827,7 @@ msgstr "extension de texte non terminée"
 #: clef.cc:65
 #, c-format
 msgid "clef `%s' not found"
-msgstr "clé « %s » introuvable"
+msgstr "clé « %s » introuvable"
 
 #: beam-engraver.cc:147
 msgid "already have a beam"
@@ -2870,24 +2870,24 @@ msgstr ""
 msgid "Changing working directory to: `%s'"
 msgstr ""
 "Modification du répertoire de travail pour\n"
-" « %s »"
+" « %s »"
 
 #: lily-parser-scheme.cc:84
 #, c-format
 msgid "unable to change directory to: `%s'"
 msgstr ""
 "impossible d'accéder au répertoire\n"
-" « %s »"
+" « %s »"
 
 #: lily-parser-scheme.cc:99
 #, c-format
 msgid "cannot find init file: `%s'"
-msgstr "impossible de trouver le fichier d'initialisation « %s »"
+msgstr "impossible de trouver le fichier d'initialisation « %s »"
 
 #: lily-parser-scheme.cc:117
 #, c-format
 msgid "Processing `%s'"
-msgstr "Traitement de « %s »"
+msgstr "Traitement de « %s »"
 
 #: lily-parser-scheme.cc:208
 msgid "ly:parser-parse-string is only valid with a new parser.  Use ly:parser-include-string instead."
@@ -2904,17 +2904,17 @@ msgstr ""
 #: font-config-scheme.cc:167
 #, c-format
 msgid "failed adding font file: %s"
-msgstr "échec lors de l'ajout d'un fichier de fontes : « %s »"
+msgstr "échec lors de l'ajout d'un fichier de fontes : « %s »"
 
 #: font-config-scheme.cc:169
 #, c-format
 msgid "Adding font file: %s"
-msgstr "Ajout d'un fichier de fontes : « %s »"
+msgstr "Ajout d'un fichier de fontes : « %s »"
 
 #: custos.cc:88
 #, c-format
 msgid "custos `%s' not found"
-msgstr "custode « %s » introuvable"
+msgstr "custode « %s » introuvable"
 
 #: accidental-engraver.cc:179
 #, c-format
@@ -2950,7 +2950,7 @@ msgstr ""
 #: pango-font.cc:242
 #, c-format
 msgid "no PostScript font name for font `%s'"
-msgstr "« %s » n'est pas un fichier de fonte PostScript"
+msgstr "« %s » n'est pas un fichier de fonte PostScript"
 
 #: pango-font.cc:291
 msgid "FreeType face has no PostScript font name"
@@ -2975,7 +2975,7 @@ msgstr ""
 #: paper-outputter-scheme.cc:41
 #, c-format
 msgid "Layout output to `%s'..."
-msgstr "Sortie mise en page vers « %s »..."
+msgstr "Sortie mise en page vers « %s »..."
 
 #: gregorian-ligature-engraver.cc:70
 #, c-format
@@ -2990,12 +2990,12 @@ msgstr "\\%s implicite ajouté(e)"
 #. ligature may not start with 2nd head of pes or flexa
 #: gregorian-ligature-engraver.cc:224
 msgid "cannot apply `\\~' on first head of ligature"
-msgstr "Impossible d'appliquer « \\~ » à la première tête de ligature"
+msgstr "Impossible d'appliquer « \\~ » à la première tête de ligature"
 
 #. (pitch == prev_pitch)
 #: gregorian-ligature-engraver.cc:236
 msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr "Impossible d'appliquer « \\~ » à des têtes ayant la même hauteur"
+msgstr "Impossible d'appliquer « \\~ » à des têtes ayant la même hauteur"
 
 #: chord-tremolo-engraver.cc:88
 msgid "No tremolo to end"
@@ -3008,7 +3008,7 @@ msgstr "accord en tremolo non terminé"
 #: general-scheme.cc:390
 #, c-format
 msgid "failed redirecting stderr to `%s'"
-msgstr "échec lors de la redirection de stderr vers « %s »"
+msgstr "échec lors de la redirection de stderr vers « %s »"
 
 #: general-scheme.cc:469
 msgid "Found infinity or nan in output. Substituting 0.0"
@@ -3041,7 +3041,7 @@ msgstr "retrait de ce groupe vertical"
 #: cluster.cc:120
 #, c-format
 msgid "unknown cluster style `%s'"
-msgstr "style de cluster inconnu : « %s »"
+msgstr "style de cluster inconnu : « %s »"
 
 #: cluster.cc:157
 msgid "junking empty cluster"
@@ -3081,7 +3081,7 @@ msgstr "répétition en pourcent non terminée"
 #: note-head.cc:86
 #, c-format
 msgid "none of note heads `%s' or `%s' found"
-msgstr "tête de note « %s » ou « %s » non trouvée"
+msgstr "tête de note « %s » ou « %s » non trouvée"
 
 #. FIXME:
 #: script-engraver.cc:113
@@ -3100,24 +3100,24 @@ msgstr "option interne inconnue : %s"
 #: property-iterator.cc:93
 #, c-format
 msgid "not a grob name, `%s'"
-msgstr " « %s » n'est pas un nom d'objet graphique (grob)"
+msgstr " « %s » n'est pas un nom d'objet graphique (grob)"
 
 #: all-font-metrics.cc:149
 #, c-format
 msgid "cannot find font: `%s'"
-msgstr "fonte « %s » introuvable"
+msgstr "fonte « %s » introuvable"
 
 #: pdf-scheme.cc:50
 #, c-format
 msgid "Conversion of string `%s' to UTF-16be failed: %s"
 msgstr ""
-"La conversion de la chaîne « %s » en UTF-16be a échoué :\n"
+"La conversion de la chaîne « %s » en UTF-16be a échoué :\n"
 " %s"
 
 #: rest.cc:193
 #, c-format
 msgid "rest `%s' not found"
-msgstr "silence « %s » inconnu"
+msgstr "silence « %s » inconnu"
 
 #: bar-check-iterator.cc:84
 #, c-format
@@ -3195,20 +3195,20 @@ msgstr "suite à des erreurs répétées, l'expression musicale sera ignorée"
 #, c-format
 msgid "time signature symbol `%s' not found; reverting to numbered style"
 msgstr ""
-"symbole de chiffrage de mesure « %s » inconnu ;\n"
+"symbole de chiffrage de mesure « %s » inconnu ;\n"
 "retour à un style numérique"
 
 #: grob-interface.cc:68
 #, c-format
 msgid "Unknown interface `%s'"
-msgstr "Interface inconnue : « %s »"
+msgstr "Interface inconnue : « %s »"
 
 #: grob-interface.cc:79
 #, c-format
 msgid "Grob `%s' has no interface for property `%s'"
 msgstr ""
-"L'objet graphique (Grob) « %s »\n"
-" n'a pas d'interface pour la propriété « %s »"
+"L'objet graphique (Grob) « %s »\n"
+" n'a pas d'interface pour la propriété « %s »"
 
 #: midi-stream.cc:39
 #, c-format
@@ -3218,7 +3218,7 @@ msgstr "impossible d'ouvrir le fichier en écriture : %s : %s"
 #: midi-stream.cc:55
 #, c-format
 msgid "cannot write to file: `%s'"
-msgstr "impossible d'écrire dans le fichier « %s »"
+msgstr "impossible d'écrire dans le fichier « %s »"
 
 #. TODO: Also print the arguments of the markup!
 #: text-interface.cc:129
@@ -3285,7 +3285,7 @@ msgstr "doit être en mode Chord pour des accords"
 
 #: parser.yy:3055
 msgid "not a markup"
-msgstr "n'est pas un « markup »"
+msgstr "n'est pas un « markup »"
 
 #: lexer.ll:225
 msgid "stray UTF-8 BOM encountered"
@@ -3298,7 +3298,7 @@ msgstr "Escamotage d'UTF-8 BOM"
 #: lexer.ll:286
 #, c-format
 msgid "Renaming input to: `%s'"
-msgstr "L'entrée a été renommée en « %s »"
+msgstr "L'entrée a été renommée en « %s »"
 
 #: lexer.ll:303
 msgid "quoted string expected after \\version"
@@ -3319,7 +3319,7 @@ msgstr "\\maininput n'est pas permis en dehors des fichiers d'initialisation"
 #: lexer.ll:358
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
-msgstr "identificateur erroné ou non défini : « %s »"
+msgstr "identificateur erroné ou non défini : « %s »"
 
 #: lexer.ll:384
 msgid "string expected after \\include"
@@ -3345,12 +3345,12 @@ msgstr "Fin de fichier (EOF) à l'intérieur du commentaire"
 #: lexer.ll:775
 #, c-format
 msgid "invalid character: `%s'"
-msgstr "caractère invalide : « %s »"
+msgstr "caractère invalide : « %s »"
 
 #: lexer.ll:878 lexer.ll:879
 #, c-format
 msgid "unknown escaped string: `\\%s'"
-msgstr "chaîne d'échappement inconnue : « \\%s »"
+msgstr "chaîne d'échappement inconnue : « \\%s »"
 
 #: lexer.ll:1127 lexer.ll:1128
 msgid "non-UTF-8 input"
@@ -3375,7 +3375,7 @@ msgstr "Programme plus qu'obsolète : %s (le fichier requiert %s)"
 #: parser-clef.scm:143 parser-clef.scm:183
 #, scheme-format
 msgid "unknown clef type `~a'"
-msgstr "type de clef inconnu : « ~a »"
+msgstr "type de clef inconnu : « ~a »"
 
 #: parser-clef.scm:144 parser-clef.scm:184
 #, scheme-format
@@ -3400,7 +3400,7 @@ msgstr "interface d'objet graphique (Grob) inconnue : ~S"
 #: graphviz.scm:64
 #, scheme-format
 msgid "Writing graph `~a'..."
-msgstr "Écriture du graphique « ~a »..."
+msgstr "Écriture du graphique « ~a »..."
 
 #: parser-ly-from-scheme.scm:71
 msgid "error in #{ ... #}"
@@ -3448,17 +3448,17 @@ msgstr "#(set-paper-size ..) doit être dans la section \\paper { ... }"
 #: backend-library.scm:27
 #, scheme-format
 msgid "Invoking `~a'..."
-msgstr "Appel de « ~a »..."
+msgstr "Appel de « ~a »..."
 
 #: backend-library.scm:31
 #, scheme-format
 msgid "`~a' failed (~a)\n"
-msgstr "échec de « ~a » (~a)\n"
+msgstr "échec de « ~a » (~a)\n"
 
 #: backend-library.scm:90
 #, scheme-format
 msgid "Converting to `~a'...\n"
-msgstr "Conversion à « ~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.
@@ -3470,12 +3470,12 @@ msgstr "Conversion à ~a..."
 #: backend-library.scm:137
 #, scheme-format
 msgid "Writing header field `~a' to `~a'..."
-msgstr "écriture du champ d'entête « ~a » dans « ~a »..."
+msgstr "écriture du champ d'entête « ~a » dans « ~a »..."
 
 #: backend-library.scm:187
 #, scheme-format
 msgid "missing stencil expression `~S'"
-msgstr "absence d'expression stencil « ~S »"
+msgstr "absence d'expression stencil « ~S »"
 
 #: output-svg.scm:47
 #, scheme-format
@@ -3499,7 +3499,7 @@ msgstr "fonte SVG ~S introuvable"
 #: flag-styles.scm:151
 #, scheme-format
 msgid "flag stroke `~a' or `~a' not found"
-msgstr "type de crochet inconnu : « ~a » ou « ~a »"
+msgstr "type de crochet inconnu : « ~a » ou « ~a »"
 
 #: modal-transforms.scm:38
 msgid "'from' pitch not in scale; ignoring"
@@ -3534,12 +3534,12 @@ msgstr "erreur d'assertion : ~S"
 #: define-music-properties.scm:21
 #, scheme-format
 msgid "symbol ~S redefined"
-msgstr "symbole « ~S » redéfini"
+msgstr "symbole « ~S » redéfini"
 
 #: chord-entry.scm:52
 #, scheme-format
 msgid "Spurious garbage following chord: ~A"
-msgstr "Information incompréhensible à la suite de l'accord « ~A »"
+msgstr "Information incompréhensible à la suite de l'accord « ~A »"
 
 #: lily.scm:234
 msgid "Using (ice-9 curried-definitions) module\n"
@@ -3589,7 +3589,7 @@ msgstr "Redirection de la sortie vers ~a..."
 #: lily.scm:891 ps-to-png.scm:66
 #, scheme-format
 msgid "Invoking `~a'...\n"
-msgstr "Appel de « ~a »...\n"
+msgstr "Appel de « ~a »...\n"
 
 #: lily-library.scm:299
 msgid "Music unsuitable for context-mod"
@@ -3638,7 +3638,7 @@ msgstr "Actualisation de la fonte dans ~a"
 #: part-combiner.scm:598
 #, scheme-format
 msgid "quoted music `~a' is empty"
-msgstr "il n'y a rien à reproduire de « ~a » "
+msgstr "il n'y a rien à reproduire de « ~a » "
 
 #: music-functions.scm:274
 msgid "More alternatives than repeats.  Junking excess alternatives"
@@ -3663,7 +3663,7 @@ msgstr "~S requiert de la musique"
 #: music-functions.scm:1013
 #, scheme-format
 msgid "cannot find quoted music: `~S'"
-msgstr "impossible de trouver la citation de musique « ~S »"
+msgstr "impossible de trouver la citation de musique « ~S »"
 
 #: music-functions.scm:1151
 msgid "Add @var{octave-shift} to the octave of @var{pitch}."
@@ -3672,7 +3672,7 @@ msgstr "Ajoute @var{octave-shift} à l'octave de @var{hauteur}."
 #: music-functions.scm:1211
 #, scheme-format
 msgid "Unknown octaveness type: ~S "
-msgstr "Octave inconnue : « ~S »"
+msgstr "Octave inconnue : « ~S »"
 
 #: music-functions.scm:1212
 msgid "Defaulting to 'any-octave."
@@ -3721,7 +3721,7 @@ msgstr ""
 #: markup-macros.scm:373
 #, scheme-format
 msgid "Not a markup command: ~A"
-msgstr "~A n'est pas une commande de type « markup »"
+msgstr "~A n'est pas une commande de type « markup »"
 
 #: define-note-names.scm:962
 msgid "Select note names language."
@@ -3730,13 +3730,13 @@ msgstr "Sélection de la langue des noms de note."
 #: define-note-names.scm:968
 #, scheme-format
 msgid "Using `~a' note names..."
-msgstr "Utilisation de « ~a » pour le nom des notes..."
+msgstr "Utilisation de « ~a » pour le nom des notes..."
 
 #: define-note-names.scm:971
 #, scheme-format
 msgid "Could not find language `~a'.  Ignoring."
 msgstr ""
-"« ~a » n'est pas une langue reconnue pour les noms de note.\n"
+"« ~a » n'est pas une langue reconnue pour les noms de note.\n"
 " Abandon."
 
 #: framework-ps.scm:250
@@ -3810,7 +3810,7 @@ msgstr "impossible de trouver l'objet de type musique : ~S"
 #: define-music-types.scm:787
 #, scheme-format
 msgid "unknown repeat type `~S'"
-msgstr "type de répétition inconnu : « ~S »"
+msgstr "type de répétition inconnu : « ~S »"
 
 #: define-music-types.scm:788
 msgid "See define-music-types.scm for supported repeats"
@@ -3900,7 +3900,7 @@ msgstr "Écriture de ~S..."
 #, scheme-format
 msgid "cannot find description for property `~S' (~S)"
 msgstr ""
-"impossible de trouver une description de la propriété « ~S »\n"
+"impossible de trouver une description de la propriété « ~S »\n"
 " (~S)"
 
 #: documentation-lib.scm:209
index 5c94c59e1f7a88a42aa4cad91598cff460f37965..acabe0237e452869b4648caf98180af7c8ace815 100644 (file)
@@ -3346,6 +3346,25 @@ def conv (str):
                   sub_tempo, str)
     return str
 
+@rule((2, 15, 39), r"\footnote -> <>\footnote, -\footnote -> \footnote")
+def conv (str):
+    def not_first (s):
+        def match_fun (m):
+            if m.group (1):
+                return m.group (0)
+            return m.expand (s)
+        return match_fun
+    str = re.sub ("(" + matchmarkup + ")|"
+                  + r"(?<![-_^])((?:[-_^][-_^])*)(\\footnote(?:\s*"
+                  + matchmarkup + ")?" + matcharg + "(?:" + matcharg
+                  + ")?\s+" + matchmarkup + ")",
+                  not_first (r"\2<>\3"), str)
+    str = re.sub ("(" + matchmarkup + ")|"
+                  + r"(?<![-_^])((?:[-_^][-_^])*)-(\\footnote(?:\s*"
+                  + matchmarkup + ")?" + matcharg + "(?:" + matcharg
+                  + ")?\s+" + matchmarkup + ")",
+                  not_first (r"\2\3"), str)
+    return str
 
 # Guidelines to write rules (please keep this at the end of this file)
 #
index 6089e2539255c85f509b608d6ec87b94e25517d3..6d0449edfc5c5ebd0ef9443bdc17ab086d2c8e5c 100644 (file)
@@ -181,17 +181,22 @@ expression."
                         ""
                         tremolo-type))))
 
-(define-post-event-display-method ArticulationEvent (event parser) #t
-  (let ((articulation  (ly:music-property event 'articulation-type)))
-    (case (string->symbol articulation)
-      ((marcato) "^")
-      ((stopped) "+")
-      ((tenuto)         "-")
-      ((staccatissimo) "|")
-      ((accent) ">")
-      ((staccato) ".")
-      ((portato) "_")
-      (else (format #f "\\~a" articulation)))))
+(define-display-method ArticulationEvent (event parser) #t
+  (let* ((articulation  (ly:music-property event 'articulation-type))
+        (shorthand
+         (case (string->symbol articulation)
+           ((marcato) "^")
+           ((stopped) "+")
+           ((tenuto)    "-")
+           ((staccatissimo) "|")
+           ((accent) ">")
+           ((staccato) ".")
+           ((portato) "_")
+           (else #f))))
+    (format #f "~a~:[\\~;~]~a"
+           (event-direction->lily-string event shorthand)
+           shorthand
+           (or shorthand articulation))))
 
 (define-post-event-display-method FingeringEvent (event parser) #t
   (ly:music-property event 'digit))
@@ -202,16 +207,16 @@ expression."
 (define-post-event-display-method MultiMeasureTextEvent (event parser) #t
   (markup->lily-string (ly:music-property event 'text)))
 
-(define-post-event-display-method BendAfterEvent (event parser) #t
+(define-post-event-display-method BendAfterEvent (event parser) #f
   (format #f "\\bendAfter #~a" (ly:music-property event 'delta-step)))
 
 (define-post-event-display-method HarmonicEvent (event parser) #f "\\harmonic")
-(define-post-event-display-method GlissandoEvent (event parser) #t "\\glissando")
-(define-post-event-display-method ArpeggioEvent (event parser) #t "\\arpeggio")
+(define-post-event-display-method GlissandoEvent (event parser) #f "\\glissando")
+(define-post-event-display-method ArpeggioEvent (event parser) #f "\\arpeggio")
 (define-post-event-display-method AbsoluteDynamicEvent (event parser) #f
   (format #f "\\~a" (ly:music-property event 'text)))
 
-(define-post-event-display-method StrokeFingerEvent (event parser) #t
+(define-post-event-display-method StrokeFingerEvent (event parser) #f
   (format #f "\\rightHandFinger #~a" (ly:music-property event 'digit)))
 
 (define-span-event-display-method BeamEvent (event parser) #f "[" "]")
@@ -494,7 +499,7 @@ Otherwise, return #f."
 ;;;
 
 (define (simple-note->lily-string event parser)
-  (format #f "~a~a~a~a~a~a~{~a~}" ; pitchname octave !? octave-check duration optional_rest articulations
+  (format #f "~a~a~a~a~a~a~:{~:[-~;~]~a~}" ; pitchname octave !? octave-check duration optional_rest articulations
          (note-name->lily-string (ly:music-property event 'pitch) parser)
          (octave->lily-string (ly:music-property event 'pitch))
          (let ((forced (ly:music-property event 'force-accidental))
@@ -519,16 +524,21 @@ Otherwise, return #f."
          (if ((make-music-type-predicate 'RestEvent) event)
              "\\rest" "")
          (map-in-order (lambda (event)
-                         (music->lily-string event parser))
+                         (list
+                          (post-event? event)
+                          (music->lily-string event parser)))
                        (ly:music-property event 'articulations))))
 
 (define-display-method NoteEvent (note parser)
   (cond ((not (null? (ly:music-property note 'pitch))) ;; note
         (simple-note->lily-string note parser))
        ((not (null? (ly:music-property note 'drum-type))) ;; drum
-        (format #f "~a~a" (ly:music-property note 'drum-type)
+        (format #f "~a~a~{~a~}" (ly:music-property note 'drum-type)
                 (duration->lily-string (ly:music-property note 'duration)
-                                       #:remember #t)))
+                                       #:remember #t)
+                (map-in-order (lambda (event)
+                                (music->lily-string event parser))
+                              (ly:music-property note 'articulations))))
        (else ;; unknown?
         "")))
 
@@ -538,16 +548,24 @@ Otherwise, return #f."
 (define-display-method RestEvent (rest parser)
   (if (not (null? (ly:music-property rest 'pitch)))
       (simple-note->lily-string rest parser)
-      (string-append "r" (duration->lily-string (ly:music-property rest 'duration)
-                                               #:remember #t))))
+      (format #f "r~a~{~a~}"
+             (duration->lily-string (ly:music-property rest 'duration)
+                                    #:remember #t)
+             (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)))
 
 (define-display-method SkipEvent (rest parser)
-  (string-append "s" (duration->lily-string (ly:music-property rest 'duration)
-                                           #:remember #t)))
+  (format #f "s~a~{~a~}"
+         (duration->lily-string (ly:music-property rest 'duration)
+                                #:remember #t)
+         (map-in-order (lambda (event)
+                         (music->lily-string event parser))
+                       (ly:music-property rest 'articulations))))
 
 (define-display-method RepeatedChord (chord parser)
   (music->lily-string (ly:music-property chord 'element) parser))
index 8161601b78ab723a853870c92c580df33e8bdbaa..658027c88c24a6dd5f545c9aac71bc4a0f1e2901 100644 (file)
@@ -228,7 +228,7 @@ duration stored in @code{duration}.")
 
     (FootnoteEvent
      . ((description . "Footnote a grob.")
-       (types . (general-music event footnote-event))
+       (types . (general-music event post-event footnote-event))
        ))
 
     (GlissandoEvent
@@ -545,7 +545,7 @@ print anything, and also does not create staves or voices implicitly.
 Syntax: @code{\\skip} @var{duration}")
        (length-callback . ,ly:music-duration-length)
        (iterator-ctor . ,ly:simple-music-iterator::constructor)
-       (types . (general-music event rhythmic-event skip-event))
+       (types . (general-music event skip-event))
        ))
 
     (SlurEvent
index 05088ee1700a49164a67681a3e5f84d75ded7c06..bb6215cf3025161afd1a5b7452f9e2abdfb011b9 100644 (file)
@@ -1,5 +1,14 @@
-
-
+XGETTEXT_OPTIONS = \
+       --default-domain=$(package) \
+       --from-code=UTF-8 \
+       --join \
+       --add-comments \
+       --msgid-bugs-address="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs" \
+       --package-name=$(package) \
+       --package-version=$(VERSION)
+
+sed-header = \# Translation of LilyPond\n\# Copyright \(C\) 1998--2012 Han-Wen Nienhuys, Jan Nieuwenhuizen.\n\# This file is distributed under the same license as the LilyPond package.
+sed-content = "Content-Type: text\/plain; charset=UTF-8\\n"
 
 ####
 #### UGH!
@@ -21,12 +30,14 @@ ALL_PO_SOURCES = $(ALL_C_SOURCES) $(ALL_CC_SOURCES) $(PYTHON_SCRIPTS_IN) $(PY_MO
 local-po:
 ifneq ($(strip $(ALL_PO_SOURCES)),)
        @echo $(ALL_PO_SOURCES)
-       xgettext --default-domain=$(package) --join \
-        --output-dir=$(po-dir)/$(outdir) --add-comments \
+       xgettext $(XGETTEXT_OPTIONS) --output-dir=$(po-dir)/$(outdir) \
         --keyword=_ --keyword=_f --keyword=_i \
         $(XGETTEXT_FLAGS) $(ALL_PO_SOURCES)
 endif
 endif
+       sed -i '1,2d' $(po-dir)/$(outdir)/$(package).po
+       sed -i -e 's/^\# This file is distributed.*/$(sed-header)/' $(po-dir)/$(outdir)/$(package).po
+       sed -i -e 's/^\"Content-Type: text\/plain.*/$(sed-content)/' $(po-dir)/$(outdir)/$(package).po
 
 
 po-update: po
index 0b831c5c797b622a230d2d80ea0be2a3c80bd99a..fdfa5ef33f472194b1701629b34edc85a8dd1f8f 100644 (file)
@@ -29,4 +29,3 @@ po-changes:
 
 po-replace: po-update
        mv $(outdir)/$(package).po $(package).pot
-       mv $(outdir)/*.po .
diff --git a/tex/txi-nl.tex b/tex/txi-nl.tex
new file mode 100644 (file)
index 0000000..e5263e1
--- /dev/null
@@ -0,0 +1,70 @@
+% $Id: txi-nl.tex,v 1.7 2008/10/16 17:13:10 karl Exp $
+% txi-nl.tex -- Dutch translations for texinfo.tex.  
+%
+% Copyright 1999, 2007, 2008 Free Software Foundation.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+\txisetlanguage{dutch}{2}{2}
+
+\plainfrenchspacing
+
+\gdef\putwordAppendix{Appendix}
+\gdef\putwordChapter{Hoofdstuk}
+\gdef\putwordfile{bestand}
+\gdef\putwordin{in}
+\gdef\putwordIndexIsEmpty{(Index is leeg)}
+\gdef\putwordIndexNonexistent{(Index bestaat niet)}
+\gdef\putwordInfo{Info}
+\gdef\putwordInstanceVariableof{Instantie Variabele van}
+\gdef\putwordMethodon{Methode van}
+\gdef\putwordNoTitle{Geen titel}
+\gdef\putwordof{van}
+\gdef\putwordon{op}
+\gdef\putwordpage{pagina}
+\gdef\putwordsection{sectie}
+\gdef\putwordSection{Sectie}
+\gdef\putwordsee{zie}
+\gdef\putwordSee{Zie}
+\gdef\putwordShortTOC{Korte inhoudsopgave}
+\gdef\putwordTOC{Inhoudsopgave}
+%
+\gdef\putwordMJan{Januari}
+\gdef\putwordMFeb{Februari}
+\gdef\putwordMMar{Maart}
+\gdef\putwordMApr{April}
+\gdef\putwordMMay{Mei}
+\gdef\putwordMJun{Juni}
+\gdef\putwordMJul{Juli}
+\gdef\putwordMAug{Augustus}
+\gdef\putwordMSep{September}
+\gdef\putwordMOct{Oktober}
+\gdef\putwordMNov{November}
+\gdef\putwordMDec{December}
+%
+\gdef\putwordDefmac{Macro}
+\gdef\putwordDefspec{Speciale Vorm}
+\gdef\putwordDefvar{Variabele}
+\gdef\putwordDefopt{Gebruikers optie}
+\gdef\putwordDeffunc{Functie}
+
+% Produces Day Month Year style of output.
+\def\today{%
+  \number\day\space
+  \ifcase\month
+  \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+  \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+  \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+  \fi
+  \space\number\year}